오래 못 할 짓 하지 않기
[ 운영체제 ] 10. CPU Scheduling 본문
CPU Scheduling
목적 : CPU 활용도를 최대로 하기 위해 ( 멀티 프로그래밍 / 멀티 태스킹을 사용함 )
● CPU-IO Burst Cycle
: burst = " 열심히 일한다 " 정도로 생각하면 된다.
Load , add , read를 할 땐 CPU Burst Time 이고
I/O가 일을 할 때, 즉 CPU가 I/O 작업이 끝나기를 기다릴 때는
(I/O 기준) I/O Burst = (CPU 기준) I/O wait 라고 한다.
(주로) CPU Burst 뒤에는 I/O Burst가 따라온다.
- I/O bound process = 짧고 많은 개수의 burst로 이루어져 있음
- CPU bound process = 적은 수의 burst로 이루어져 있음
I/O bound process가 많고
CPU bound process가 적다.
● CPU Scheduler
: Ready queue에 있는 프로세스에게 CPU를 할당해준다.
▶ 다음 Process로 어떤 걸 선택해야하나?
- Ready queue를 구현하는 방법은 다양하다. ( FIFO , Priority , Tree , Linked list )
- 각각의 Process는 PCB로 나타낸다
.
▶ 언제 Scheduling 이 일어나는가?
1. Running → Waiting
2. Running → Ready
3. Waiting → Ready
4 . Terminates
(4번빼고는 R로 시작하는 게 1개 이상 있어야 함)
● 선점형 vs 비선점형
- 비선점형(Non- preemptive) : 자발적으로 나온다.
> 자발적으로 나오기(Release) 전까지는 쓰게 냅둔다.
> Terminate , Waiting으로 전환할 때에 해당한다.
(동전 노래방이라고 생각하면 쉬움)
하다가, Process: 나 이제 끝낼래 / 나 지금 나가서 기다려야함, 시간 남았는데 너 쓰셈
* Interrupt 를 받지 않는다.
- 선점형(Preemptive) : 쫓겨나는 느낌이다.
> 시간 다 되어서 나온다 OR 직원(CPU Interrupt) 이 온다.
* H/W의 Support와 shared data 의 handling이 필요하다.
(시간되면 꺼지기)
* 선점형 Scheduling은 공유 자원에 대해 프로세스 순서 등이 결과값에 영향을 줄 수 있는 Race conditions을 초래한다.
● Dispatcher
: Ready queue에 있는 Process가 CPU를 사용할 수 있게 해주는 Module
= Context Switch를 해주는 모듈
- 역할
1) Context Switch
2) User mode로 전환
3) 새로운 Process,Program으로 Jump
Dispatch Latency
: 하나의 프로세스에서 다음 프로세스로 넘어가는 시간
= P0 ▶ P1 로 넘어가는 시간
→ 가능한 짧아야 한다.
Scheduling의 성능 판단 기준
● CPU 활용도 : 가능한 CPU를 바쁜 상태로 사용하기
● Throughput ( 처리량 ) : 기준 시간 안에 몇 개의 일 을 하는지
● Trunaround time : 프로세스가 작업(실행~종료) 하나 끝내는 데에 걸리는 시간.
● 대기시간 : Ready queue에 있는 프로세스가 Ready queue에서 기다리는 시간의 총합.
● 응답시간 : 요청 받았을 때부터, 응답할 떄까지 걸리는 시간.
(출처)
한동대학교 고윤민교수님 - 운영체제
'3학년 1학기 > 운영체제 (OS)' 카테고리의 다른 글
[ 운영체제 ] 12. Scheduling ( Multiple - Process / Real - Time CPU ) (1) | 2024.04.16 |
---|---|
[ 운영체제 ] 11. Scheduling Algorithms (0) | 2024.04.12 |
[ 운영체제 ] 9. Thread(2) (0) | 2024.04.08 |
[ 운영체제 ] 8. Thread (0) | 2024.04.05 |
[ 운영체제 ] 7. Thread (0) | 2024.04.02 |