OS terminology

1. DMA
  • Disk controller가 자신이 가진 buffer로 disk data를 읽어서 CPU 이용 없이 memory에 copy(block)후 interrupt를 걸면 CPU가 작업 수행
  • Programmed I/O : CPU가 읽어서 래지스터에 올리고, memory에 올린다. (핵느림)
2. Interrupt, Polling
  • Polling : I/O 요청시 CPU가 waiting하면서 지속적 체크 -> CPU 소모, Context Switch 오버헤드 없음 -> 짧은 시간일 경우 더 낫다.
  • Interrupt: I/O 요청시 data가 다 오면 HW에서 INT를 건다. -> CPU는 다른 일을 할 수 있다. 
    • HW INT 
    • SW INT (Trap) : sytemcall, error
3. Multiprogramming
  • 여러 프로세스를 동시에 띄워서 CPU utilization을 최대화한다.
  • Degree of multiprogramming이 커질수록 CPU utilization은 증가하다가, 감소한다. (context switch overhead, memory swap)
  • 스케줄러가 ready queue를 보고 degree를 정한다.

4. Virtual Machine : 
  • 컴퓨터 하드웨어를 여러 environment로 추상화하여 각 environment가 하나의 private computer로 보이는 illusion을 제공한다.
5. Context Switch
  • CPU가 process를 바꾸면 전 process의 상태를 저장하고, 후 process상태를 load해야함.
6. Zombie, Orphan
  • Zombie process
    •  자식 process가 종료되었으나 parent process가 PCB를 회수하지 않음
    • Child는 죽었으나 Parent가 살아있는 상태
  • Orphan process
    • Parent가 죽어서 자식을 종료하지 못하는 상태
    • Parent는 죽었으나 Child는 살아있음
    • Zombie보다 치명적
7. Thread
  • process간 통신 IPC가 오버헤드 크고(리소스 sharing), process creation, context switch(dirty bit처리, Cache 문제, swap In/Out) overhead
  • process의 address space(data 와 code)를 공유하는 flow of control
8. RoundRobin
  • time quantum 동안 process실행후 preemptive된다. 
  • response time을 줄인다.
9. Multi-level Queue
  • Response time이 중요한 interactive program과 CPU burst time이 큰 batch program을 따로 스케줄링
  • 우선순위 낮아질수록 time quantum이 길어지며, 가장 아랫단은 FCFS
10. Race condition
  • 여러 process가 shared data를 동시에 접근하여 조작이 가능한 상황
  • 접근 순서에 따라 data가 달라질 수 있음 -> synchronized 되어야함
11. Critical Section
  • Race condition을 synchronized하게 하기 위해 Critical Section 코드영역을 지정하여 한번에 한 process만 해당 영역을 수행하도록 한다.
  • Mutual Exclusion : CS에는 한놈만
  • Progress : 둘다 안들어간 상태면 막으면 안됨
  • Bounded Waiting : 유효시간 내에는 들어갈 수 있도록 보장
12. Lock
  • Spinlock - busy waiting
  • Mutex Lock - Binary Semaphore
  • Semaphore - Blocking방식
13. Deadlock
  • 여러 프로세스가 서로를 영원히 기다리는 상태



댓글

가장 많이 본 글