- 정리의 기반은 학교 강의 노트와 [Operating System Concepts]를 참고하였습니다.
22-1학기 운영체제를 들으면서 중간고사에 대비하면서 정리해놓은 개념들입니다…ㅎ 다른 핵심 내용이나 기본이라고 생각되는 내용들은 제외하고 제가 시험에서 중요하다고 생각하는 것들만 중구난방으로 정리되어있습니다.
Scheduling
Non-Preemptive : 비선점형(프로세스가 직접 점유 포기)
Preemptive : 선점형(운영체제가 cpu 점유 제어)
스케쥴링 알고리즘
- FCFS(First-Come-First-Served)
- convoy effect : 일명 똥차 효과, 앞에 차가 느리게 가면 교통 체증이 일어나듯이, 먼저 들어온 프로세스가 cpu점유를 오래할 경우, 뒷 프로세스의 처리가 늦어진다.
- Non-Preemptive : 프로세스가 자신의 할 일을 마치면, 자동으로 cpu 점유를 포기한다.
- Not Optimal : 당연하게도, 최선의 알고리즘이 아니다.
- no starvation : 기다리면 자신(프로세스)의 순서가 오므로, 기아 현상이 나타나지 않는다.
Starvation(기아 현상) 특정 프로세스의 우선 순위가 낮아서 자원을 계속 할당받지 못하는 상태
- SJF(Shortest-Job-First)
- Non-Preemptive
- 기아 현상 발생
- Not optimal
Turnaround Time : execute time + waiting time
= 실행시간 + waiting 큐에서 대기하는 시간
- Shortest-next-CPU-burst
- = SRTF(Shortest-Remaining-Time-First)
- SJF의 Preemptive 버젼
- 새로 온 작업이 현재 진행중인 작업의 남은 시간보다 작다면 그 작업을 바로 수행
- RR(Round Robin)
- = Preemptive FCFS with a time quantum
- Run Queue가 원형 큐
- Time Slice
- Preemptive
- 기아 x
- response time 향상
- Quantum size는 context switch time보다 커야한다.
- SJF보다 turnaround time이 높지만, response time은 더 좋다.
- Priority Scheduling
- 선점 or 비선점 선택 가능
- 기아 발생
- 기아 발생을 Aging으로 해결
Aging이란?
대기하고 있는 프로세스가 시간이 지나면 나이를 먹는다 -> 나이먹으면 우선 순위가 올라간다. - Turnaround time의 최적화
- response time의 최소화
- 한계 : 새로 올 작업의 내용을 알지 못함.
- MLFQ(Multi-Level-Feedback-Queue)
- RR + Priority Scheduling
- 우선 순위대로 Queue를 나눈다.
- 그 Queue안에 RR
- Multiple-Processor Scheduling
- Load balancing
- Push migration : task가 overloaded하면, 다른 CPU로 그걸 옮김.
- Pull migration : busy processor의 waiting task를 가져옴.
Real-Time CPU Scheduling
주어진 시간 내에 task 완료
- Soft real-time system
- 처리 시간이 달라지면 성능이 감소
- 빨리 하는 대신 데이터를 좀 놓침
- ex) 영상 스트리밍
- Hard real-time system
- 처리 시간이 달라지면 실패
- deadline을 지킴