2021-9-18 운영체제 (2주차)

운영체제의 분류

  • 동시 작업 가능 여부
  • 사용자의 수
  • 처리 방식

동시 작업 가능 여부

  • 단일 작업(single tasking)

한 번에 하나의 작업만 처리

  • 다중 작업(multi tasking)

동시에 두 개 이상의 작업 처리

사용자의 수

  • 단일 사용자 - ex) MS-DOS, MS Windows
  • 다중 사용자 - ex) UNIX, NT server

처리 방식

  • 일괄 처리(batch processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야함
    • ex) 초기 Punch Card 처리 시스템
  • 시분할(time sharing)
    • interactive한 방식
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 - ex) UNIX
  • 실시간(Realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
    • ex)원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
    • Hard realtime system (경성 실시간 시스템)
    • Soft realtime system (연성 실시간 시스템)

Multiprocessor - 하나의 컴퓨터에 CPU가 여러개 붙어있음을 의미

운영 체제의 예

유닉스(UNIX)

  • 코드의 대부분을 C언어로 작성 - 사람이 이해하기 편리
  • 높은 이식성 - C언어로 작성했기에
  • 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장 용이
  • 소스 코드 공개
  • 프로그램 개발에 용이
  • 다양한 버전

DOS(Disk Operating System)

  • MS사에서 IBM-PC를 위해 개발
  • 단일 사용자용 운영체제

MS Windows

  • 다중 작업용 GUI 기반 운영체제
  • 네트워크 환경 강화
  • DOS용 응용 프로그램과 호환성 제공
  • 불한정성

image

Mode bit

Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원

1 - 사용자 모드 : 사용자 프로그램 수행

0 - 모니터 모드 : OS 코드 수행

보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 ‘특권명령으로 규정’

CPU의 독점을 막기위해서 timer 존재

  • 일정시간 간격으로 인터럽트 발생
  • OS 가 CPU를 넘길때 timer에 일정시간 정해놓고 넘겨줌
  • CPU 제어권이 자동적으로 OS로 넘어감

인터럽트 (Interrupt)

  • CPU제어를 인터럽트 처리 루틴에 넘긴다.
  • 하드웨어 인터럽트 : 하드웨어가 발생시킨 인터럽트
  • Trap : 소프트웨어 인터럽트
    • Exception : 프로그램이 오류를 범한경우
    • System call : 프로그램이 커널 함수를 호출하는 경우

시스템콜

  • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
  • 소프트웨어가 본인이 직접 할 수 없는 일을 운영체제에게 맡기기 위해 인터럽트를 거는것

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

  • 동기식 입출력 (synchronous I/O)
    • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
      • I/O 가 끝날때까지 CPU 낭비
      • 매 시점 하나의 I/O 만 일어날 수 있음
  • 비동기식 입출력(asynchronous I/O)
    • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

image

DMA (Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU 중재 없이 divice controller 가 device 의 buffer storage 의 내용을 메모리에 block 단위로 직접 전송
  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴
  • 기존엔 메모리 접근할때 항상 cpu를 거쳐야하기때문에~~ 덜 빈번하게 인터럽트 발생시키는 방식

image

Written on September 18, 2021