반효경 교수님의 위대한 운영체제 - 1. 운영체제 개요

이석규·2024년 1월 10일
0

1. 운영체재 개요
2. 컴퓨터 시스템의 구조
3. 프로세스 관리
4. CPU 스케줄링
5. 병행 제어
6. 데드락
7. 메모리 관리
8. 가상 메모리
9. 파일 시스템
10. 입출력 시스템
11. 디스크 관리

운영체제 목표

컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다.
  • 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 작동하는 듯한 환상을 제공
  • **컴퓨터 시스템 자원의 효율적인 관리**
    - 리소스를(프로세서-CPU, 기억장치-메모리, 입출력 장치 등) 효율적으로 관리
    • 주어진 리소스로 최대한의 성능을 내는 것

원칙적으로 컴퓨터에는 CPU가 하나이지만, 여러 프로그램을 동시에 실행하려면 CPU가 동작을 빠르게 번갈아가며 할당해서 메모리들을 분배해야한다.

운영체제 란

컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 한 부분이다.

좁은 의미 : 커널 (운영 체제의 핵심 부분으로 메모리에 상주하는 부분)
넓은 의미 : 커널 뿐만 아니라, 주변 시스템 유틸리티를 포함한 개념

운영체제의 분류

- 동시 작업 가능 여부

단일 작업 (single tasking)

한번에 하나의 작업만 처리 (MS-DOS 프롬프트 상에서는 하나의 명령이 끝나기 전까지 다른 명령을 처리할 수 없음)

다중 작업 (multi tasking)

동시에 두 개 이상의 작업 처리 (UNIX, MS Widow 등에서 하나의 명령이 끝나기 전에 다른 명령을 실행할 수 있음)

- 사용자 수

단일 사용자 (single user)

MS-DOS, MS-Windows

다중 사용자 (multi user)

UNIX, LINUX

- 처리 방식

일괄 처리 (batch processing)

작업을 모아서 한꺼번에 처리
작업이 완전 종료될 때까지 기다려야함

시분할 (time sharing)

여러 작업이 수행할 때, 컴퓨터 처리 능력을 시간 단위로 분할하여 사용
일괄 처리에 비해 짧은 응답 시간을 가짐
interactive 한 방식

실시간 (realtime OS)

정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
확장된 개념으로는 hard realtime system, soft realtime system이 있다.

용어 설명

Multi Tasking : 여러 작업이 동시에 작업되는 것
Multi Programming : Multi Tasking과 같지만, 여러 프로그램이 메모리에 올라가 있음을 강조
Time Sharing : 시분할 CPU의 시간을 분할하여 나누어 쓰는 것을 강조
Multi Process : 프로세스 = 실행 중인 프로그램

Multi Processor : 다중 처리기 CPU가 여러 개 임을 의미함

  • 기본적으로는 CPU 한개인 것을 전재로 강의가 진행될 예정

운영체제의 예

UNIX 유닉스

코드의 대부분이 C언어로 작성
높은 이식성
최소한의 커널 구조
복잡한 시스템에 맞게 확장 용이
소스 코드 공개
프로그램 개발에 용이
다양한 버전 : System V, FreeBSD, SunOS, Solaris, Linux

DOS(Disk Operating System)

MS 사에서 1981년에 IBM-PC를 위해 개발
단일 사용자용 운영체제, 메모리 관리 능력의 한계

MS Windows

MS 사의 다중 작업용 GUI 기반 운영 체제
Plug and play, 네트워크 강화
Dos용 응용 프로그램과 호환성 제공
불안정성
풍부한 지원 소프트웨어

운영체제의 구조

CPU 스케줄링
너무 빨라서 어떻게 관리할 것인가

Disk 스케줄링
어떻게 움직임을 최소화 하면서 관리할 것인가

입출력 관리는
인터럽트 기반으로 관리한다.

profile
안드안드안드

0개의 댓글