반응형

** KOCW에서 반효경 교수님의 운영체제(2014년) 강의를 수강한 내용을 정리한 글입니다.

http://www.kocw.net/home/cview.do?cid=3646706b4347ef09

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

컴퓨터 시스템 구조

  • 우측 장치들은 I/O 장치
  • CPU : 명령을 처리
  • Memory : CPU의 작업 공간
  • Interrupt : 특정 이유로 작업권을 넘김 (I/O 장치의 입력, 처리 완료 등)
  • Timer : CPU를 점유하는 시간을 측정하고, 너무 길면 멈추게 하는 하드웨어
    • Time sharing 구현에 이용
  • I/O 장치들은 각각의 Controller(일종의 작은 CPU)가 관리하고 처리한다
  • 초기에는 OS가 CPU를 사용하고, 이후에는 순차적으로 사용자 프로그램과 OS가 CPU를 사용한다

 

Mode bit

  • 1 : 사용자 모드 → 사용자 프로그램 수행
  • 0 : 모니터 모드(커널 모드) → OS 코드 수행
  • 사용자 프로그램은 나쁜 짓을 할 수 있기 때문!
  • 보안을 해칠 수 있는 중요 명령어는 모니터 모드에서만 수행 가능한 ‘특권 명령’으로 규정

 

Interrupt

  • 인터럽트 당한 시점의 레지스터와 Program counter를 save한 후, CPU의 제어를 인터럽트 처리 루틴에 넘긴다.
  • 하드웨어 인터럽트 : 하드웨어(I/O 장치 등)가 발생시킴
    • Timer, I/O장치의 Controller 등
  • 소프트웨어 인터럽트(Trap) : 넓은 의미로 포함되는 개념 / Exception, System call(사용자 프로그램이 커널 함수 호출)
  • 인터럽트 벡터 : 해당 인터럽트 처리 루틴 주소를 가지고 있음
    • 인터럽트 처리 루틴(인터럽트 핸들러) : 해당 인터럽트를 처리하는 커널 함수
  • 현대의 운영체제는 인터럽트에 의해 구동됨!

 

 

입출력(I/O)의 수행

  • 모든 입출력 명령은 특권 명령 → 사용자 프로그램은 어떻게 I/O를 하는가?
    • System call(Trap의 일종) → 운영체제에 I/O 요청
    • 올바른 요청인지 OS가 확인 후 수행

 

동기식/비동기식 입출력

  • 동기식 입출력(Synchronous I/O)
    • I/O를 요청하고, 입출력 작업이 완료된 후에 사용자 프로그램에게 제어가 넘어감
      • 구현 방법 1 : I/O 끝날 때까지 CPU 낭비
      • 구현 방법 2 : I/O 완료될 때까지(해당 프로그램을 I/O 처리를 기다리는 줄에 세워 놓고) 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력(Aynchronous I/O)
    • I/O 요청 직후 제어가 사용자 프로그램에 넘어감(입출력 요청과 입출력이 별도의 싸이클)

  • 두 경우 모두 I/O 완료는 인터럽트로 알려준다.

 

DMA(Direct Memory Access)

  • 입출력 장치를 빠르게 처리하기 위함
  • CPU 중재 없이, Device controller가 Device buffer storage 내용을 메모리에 Block 단위로 직접 전송
  • Byte가 아닌 Block 단위로 인터럽트를 발생시킴

 

저장장치 계층 구조

  • Primary(Registers, Cache Memory, Main Memory)
    • 빠르고 비쌈 → 용량이 낮음
    • 휘발성
    • CPU에서 직접 접근 가능(Executable)
  • Secondary
    • 느리고 쌈 → 용량이 큼
    • 비휘발성
    • CPU에서 직접 접근 불가능
  • Caching이란? → 재사용을 목적으로, 하위 메모리에서 불러온 정보를 보다 빠른 메모리에 임시로 저장하는 것

 

프로그램의 실행(Memory load)

  • File System에 저장된 파일을 실행하면 → Virtual Memory를 거쳐 → Physical memory(Virtual Memory의 반대 개념)에 프로세스로 들어감
  • Virtual Memory(가상 메모리) : 특정 프로세스 할당되는, 0번지부터 시작하는 가상의 주소 공간
  • Kernel Address space를 확대하면 아래와 같다

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts