운영 체제의 분류

동시 작업 가능 여부

  • 단일 작업(single tasking) : 한 번에 하나의 작업만 처리
    • ex) MS-DOS -> 한 명령의 수행 끝나기 전에 다른 명령어 수행X
  • 다중 작업(multi tasking) : 동시에 두 개 이상의 작업 처리
    • ex) UNIX, MS Windows -> 한 명령 수행 끝나기 전에 다른 명령어 수행O

사용자의 수

  • 단일 사용자(single user) : 한 대의 컴퓨터에 한 사용자만 접속O
    • ex) MS-DOS, MS Windows
  • 다중 사용자(multi user) : 한 대의 컴퓨터에 여러 사용자가 동시접속O
    • 보안 문제 등 해결 필요
    • ex) UNIX, NT server

처리 방식

  • 일괄 처리(batch processing)
    • 작업 요청 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야 함
    • pc가 편한대로 처리, 현재 사용X
    • ex) 초기 Punch Card 처리 시스템
  • 시분할 처리(time sharing)
    • 여러 작업 수행시 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
      • 사용자에게 자원을 번갈아가면서 할당 -> 혼자 쓰는것 같은 환상 제공
    • 일괄 처리 시스템에 비해 응답 시간 짧음
    • ex) UNIX
    • interactive한 방식 <-> batch processing
      • 작업 요청 하면 바로 처리되는 방식
  • 실시간 처리(realtime OS)
    • 정해진 시간 안에 반드시 종료되어야 하는 시스템을 위한 OS
      • deadline에 만족해야하는 시스템
  • 실시간 시스템의 개념 확장
    • Hard realtime system(경성 실시간 시스템)
      • deadline을 지키지 않으면 큰일남
      • ex) 원자로/공장 제어, 미사일, 반도체 장비 등
    • Soft realtime system(연성 실시간 시스템)
      • deadline 어기면 문제 생기지만 엄청 큰 문제는 아님
      • ex) 동영상 재생 시 초당 24프레임인 deadline을 못지키면 영상 끊김 현상

몇 가지 용어

  • 컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미하는 용어들
    • Multitasking : 컴퓨터 안에서 여러 개 프로그램을 동시에 돌리는 것
    • Multiprogramming : 메모리에 여러 프로그램이 올라가 있음 강조
    • Time sharing : CPU의 시간을 분할해서 나누어 쓴다는 의미 강조
    • Multiprocess
  • Multiprocessor : 하나의 컴퓨터에 여러 CPU (processor)가 여러 개 있음을 의미

운영 체제의 예

  • 유닉스(UNIX) -> 서버를 위한 OS
    • 어셈블리 언어로 HW 제어 어려움 -> C언어 만듬(사용자가 HW 효율적으로 관리 가능) -> C언어로 유닉스 만듬
      • 어셈블리 언어로 작성 시 HW 바뀔 때 마다 다시 작성
      • C언어로 작성 시 높은 이식성과 확장성 지님
    • 최소한의 커널구조, 시스템에 맞게 확장 용이
    • 다양한 버전
      • System V, FreeBSD, SunOS, Solaris
      • Linux
  • DOS(Disk Operating System)
    • MS사의 개인 사용자용 OS 만듬
    • 단일 사용자 OS, 메모리 관리 능력의 한계
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 OS
    • 풍부한 지원 소프트웨어
  • Handheld device를 위한 OS
    • 안드로이드, IOS -> SW 플랫폼 or OS

컴퓨터 시스템 구조

  • mode bit :
  • PC(Program Counter) : 다음번에 실행할 레지스터의 메모리 주소를 가지고 있음
  • I/O device controller : 모든 I/O 장치를 전담하는 CPU
  • local buffer : 각 device가 갖고 있는 일종의 메모리, 작업공간
  • 시스템 콜

인터럽트(Interrupt) -> 현재 OS 구동 방식

  • 인터럽트 당한 시점의 레지스터와 PC를 저장한 후 CPU의 제어를 인터럽트 제어 루틴에 넘김
  • Interrupt(하드웨어 인터럽트)
    • 하드웨어가 발생시킨 인터럽트
  • Trap(소프트웨어 인터럽트)
    • Exception : 프로그램이 오류를 범한 경우
    • System call : 프로그램이 커널 함수를 호출한 경우

동기식 입출력과 비동기식 입출력

동기식 입출력(synchronous I/O)

  • I/O 요청 후 입출력 작업이 완료된 후에야 프로그램에 제어가 넘어감
  • 구현방법 1
    • I/O가 끝날 때까지 CPU를 낭비
    • 매시점 하나의 I/O만 일어날 수 있음
  • 구현방법 2
    • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음
    • I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움
    • 다른 프로그램에게 CPU를 줌

비동기식 입출력(asynchronous I/O)

  • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

DMA(Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • I/O 작업이 바이트 단위가 아닌 block 단위로 인터럽트 발생

reference

운영체제 - 이화여자대학교