1. CPU와 I/O bursts
✓ CPU burst : 한번에 CPU를 연속적으로 쓰는 시간
✓ CPU bound job : CPU를 많이 쓰는 프로그램
✓ I/O bound job : I/O를 많이 쓰고, CPU를 적게 쓰는 프로그램; 주로 사람과의 interaction하는 프로그램이 속함
CPU를 빠르게 주는게 좋음
⌾ 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다
2. 프로세스의 특성 분류
✓ I/O-bound process : CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job
(many short CPU bursts)
✓ CPU-bound process : 계산 위주의 job
(few very long CPU bursts)
3. CPU Scheduler & Dispatcher
📌 CPU Scheduler : Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다
📌 Dispatcher : CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다
이 과정을 context switch(문맥 교환)라고 한다
📌 CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다
1. Running → Blocked (예: I/O 요청하는 시스템 콜)
2. Terminate
3. Running→ Ready (예: 할당시간만료로 timer interrupt)
4. Blocked → Ready (예: I/O 완료후 언터럽트)
• 1,2에서의 스케줄링은 nonpreemptive (=강제로 빼앗지 않고 자진 반납)
• 다른 모든 스케줄링은 preemptive (=강제로 빼앗음)
4. Scheduling Criteria
• CPU utilization (이용률)
• Throughput (처리량)
• Turnaround time (소요시간, 반환시간) : CPU를 사용한 시간 + CPU를 기다린 시간
• Waiting time (대기 시간) : 기다린 전체 시간
• Response time (응답 시간) : CPU를 사용하러 들어와서 최초로 CPU를 얻기까지 걸린 시간
'운영체제 (이화여대 반효경)' 카테고리의 다른 글
운영체제 강의 15 (0) | 2021.07.14 |
---|---|
운영체제 강의 14 (0) | 2021.07.14 |
운영체제 강의 12 (0) | 2021.07.13 |
운영체제 강의 11 (0) | 2021.07.13 |
운영체제 강의 10 (0) | 2021.07.13 |