요약

  • 1) 목적
    • 1.1 편리한 환경 제공
      • 동시 사용자/프로그램이 독자적으로 잡을 수행한다는 일루젼 제공
      • 하드웨어 다루기 대행
    • 1.2 자원관리자
      • CPU 스케쥴링, 메모리 공간 분배
  • 2) 분류
    • 2.1동시작업 가능여부, 사용자의 수
    • 2.2처리 방식
      • 2.2.1 Batch
      • 2.2.2 Time Sharing
        • Interactive
      • 2.2.3 Real time
        • 데드라인이 있는 실시간 시스템을 위한 OS
        • Soft Real time: 스트리밍
    • 2.3 Terminology
      • 멀티태스킹, 멀티프로그래밍, 타임 쉐어링, 멀티 프로세스
        • 같은 말. 여러 작업을 짧은 시간 분할해 실행
        • 여러 프로그램이 메모리에 올라가 있음을 의미
  • 3) 역할
    • CPU 스케쥴링
      • 디스크가 메모리보다 100만배 느리다. 스케쥴링 절실..!
    • 메모리 관리
      • 예: 미래를 예측해 다시 올라오지 않을 것 같은 잡은 Disk로 방출
    • 파일 관리
      • 헤드가 움직이면서 읽고 쓴다.
      • 엘레베이터 스케쥴링
    • 입츨력, 프로세스 관리
    • 보호 시스템, 네트워킹, 커맨드라인

운영체제의 목적

  • 1) 컴퓨터 시스템을 사용할 편리한 환경 제공
    • 동시 사용자/프로그램이 독자적으로 수행하는 것 같은 환상을 제공
    • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
  • 2) 컴퓨터 시스템 자원을 효율적으로 관리 –> 자원관리자
    • 형평성 있는 자원 분배
    • 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리
    • CPU 스케쥴링: 실행 중인 프로그램들에게 짧은 시간씩 CPU 번갈아 할당
    • 메모리 공간 분배: 실행 프로그램들에 메모리 공간 분배
      • 할당할 때 정책의 문제: 알고리즘

운영체제란?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

  • 협의의 운영체제 –> 커널: 전공자 입장에서의 운영체제
    • 운영체제의 핵심 부분으로 메모리에 상주하는 부분
  • 광의의 운영체제
    • 커널뿐만 아니라 각종 주변 시스템 유틸리티까지 포함한 개념

운영체제의 분류

동시작업 가능여부

단일 작업(single tasking)

  • 예: MS-DOS: 한 명령 수행이 끝나기 전에 다른 명령을 수행할 수 없음

다중 작업(multi tasking)

  • 예: UNIX, MS Windows: 한 명령 수행 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음

사용자의 수

  • single user: MS-DOS, MS Windows
  • multi user: UNIX, NT server

처리 방식

  • 1) 일괄처리(batch processing)
    • 작업 요청을 모아서 한꺼번에 처리
    • 예: 초기 펀치카드 처리 시스템
    • 예: 동사무소 신청서가 일정 분량 쌓이면 결과를 알려주는 옛날 시스템
  • 2) 시분할(time sharing)
    • 대표적인 예: PC
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 예) UNIX
    • Interactive한 방식
  • 3) 실시간(Real time OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
    • 예: 원자로/공장 제어, 반도체 장비
    • 예: 반도체 공장 정전사태가 심각한 이유: 파이프라인으로 공정마다 데드라인이 설정돼 있어서 하나 망가지면 도미노처럼 모두 망가지므로 정전이 났을 때까지 망기진 제품은 모두 버리고 파이프라인 처음부터 다시 시작해야 함.
    • 실시간 시스템의 개념 확장
      • Hard real time system
      • Soft real time system
        • 반도체 공정처럼 엄격하지는 않지만 동영상 스트리밍처럼 초당 24프레임의 데드라인을 못 맞춰줄 수도 있는 시스템

Terminology

  • Multitasking
    • 여러 가지 작업을 동시에 수행? 엄밀히 말하면 CPU에서는 매순간 하나의 작업을 수행, 짧은 시간으로 분할하므로 동시에 실행되는 것처럼 보일 뿐이다.
  • Multi programming
  • Time sharing
  • Multi process

  • 구분
    • 위의 용어들은 유사한 개념, 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.
    • Multi programming은 여러 프로그램이 메모리에 올라가 있음을 강조
    • Time Sharing은 CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
    • Multi processor
      • 하나의 컴퓨터에 CPU(Processor)가 여러 개임을 의미

운영체제의 예

  • UNIX
    • 대형 컴퓨터용 운영체제
    • 여러 사용자 사용 가능: 멀티 태스킹으로 출발
    • C언어로 작성
    • 높은 이식성
      • 하나의 컴퓨터에서 다른 컴퓨터에도 이식할 수 있다는 의미: C언어를 쓰므로
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스 코드 공개
    • 프로그램 개발에 용이
    • 다양한 버전
      • System V, FreeBSD(버클리), SunOS, Solaris
      • Linux(안드로이드 커널은 Linux로 씀)
  • DOS(Disk Operating System)
    • 단일 사용자용 운영체제
    • IBM-PC를 위해 개발
    • 메모리 관리 능력의 한계(주기억장치: 640KB)
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 운영체제

운영체제의 구조

  • CPU 스케줄링
    • 디스크가 메모리에 비해 60~100만배 느린 천문학적인 속도 차이가 나므로 이를 완충하기 위해 스케줄링
  • 메모리 관리
    • 메모리가 꽉 차면 미래를 예측(예: 과거에 도둑질했으면 나중에 또 할 가능성이 높다고 가정)해서 CPU에서 다시 사용할 가능성이 낮은 잡은 Disk로 방출
  • 파일 관리
    • 헤드가 움직이면서 읽고 쓰므로 헤드의 이동이 줄어드는 방식
    • 예: 엘리베이터 스케쥴링: 1층, 5층, 100층 눌렀을 때 1층과 100층을 먼저 누르고 50층이 나중에 누르더라도 50층을 들렸다가는 스케쥴링
  • 입출력 관리
    • I/O Device가 워낙 느려서 인터럽트 등을 통해 CPU가 최대한 방해받지 않도록 관리
  • 프로세스 관리
  • ETC
    • 보호 시스템
    • 네트워킹
    • 커맨드라인 인터프리터

Source