티스토리 뷰
- 미리 읽어보자
2023.02.26 - [운영체제] - #9 컨텍스트 스위칭(Context switching)
● 스케줄링의 목표
- 스케줄링의 목표에는 여러가지가 있다.
1. 리소스 사용률
- 해당 목표는 CPU 사용률을 높이는 것일 수도 있고 I/O 디바이스의 사용률을 높이는 것을 목표로 할 수도 있다.
2. 오버헤드 최소화
- 스케줄링을 하기 위한 계산이 너무 복잡하거나 컨텍스트 스위칭(Context switching)을 너무 자주하면 소위 말해 배보다 배꼽이 더 커지는 상황이 발생한다.
- 스케줄러(OS)는 이러한 오버헤드를 최소화하는 것을 목표로한다.
3. 공평성
- CPU는 모든 프로세스에게 공평하게 할당되어야 한다. 단, 공평의 의미는 시스템의 종류에 따라 달라질 수 있다.
ex)
- 자율주행 시스템에서 가장 중요한 프로세스는 안전을 위한 프로세스이다.(사람을 인식하고 장애물을 피하는 등)
(위 그림에서 안전을 위한 프로세스 = 자율주행 프로세스)
- 그 외 음악이나 온도 체크 같은 프로세스는 안전 프로세스보다 상대적으로 덜 중요하다고 할 수 있다.
- 따라서 이러한 스케줄러(OS)에서는 안전을 위한 프로세스에게 CPU가 더 많이 할당되는 것이 공평하다고 할 수 있다.
- 이러한 CASE가 아니라 일반적으로 사용하는 PC의 OS는 모든 프로세스에게 CPU를 균등하게 할당해야 한다.
4. 처리량
- 당연한 얘기지만 스케줄링은 같은 시간내에 더 많은 처리를 할 수 있는 방법을 목표로 삼아야한다.
5. 대기시간
- 작업을 요청한 후 실제 작업이 이루어지기 전까지의 대기시간이 짧은 것을 목표로 한다.
- 아래 그림의 경우 대기시간이 1초인 프로세스를 실행시킨다.
6. 응답시간
- 대화형 시스템에서는 사용자의 요청에 대해 얼마나 빨리 반응하는지가 중요하기 때문에 응답시간이 짧은 것을 목표로 한다.
- 위에서 말한 목표들을 모두 원하는 수준까지 유지하는 것은 어렵다.
- 이는 각 목표간에 서로 상반되는 상황이 있기 때문이다.
ex)
- 처리량 : 처리량을 높이기 위해서는 하나의 프로세스에 CPU를 오래 할당해야한다.
- 응답시간 : 이에 반해 응답시간을 줄이기 위해서는 여러 프로세스에 CPU를 고르게 할당해야한다.
- 2가지 목표가 충돌하기 때문에 처리량과 응답시간은 목표를 동시에 달성할 수 없다.
- 이럴때는 사용자가 사용하는 시스템의 종류에 맞춰서 목표를 설정해야한다.
- 터치스크린과 같이 사용자에 대한 빠른 응답이 필요한 경우에는 '응답시간'에 목표를, 수학 계산 같은 경우에는 '처리량'에 목표를 맞춰야한다.
'CS > 운영체제' 카테고리의 다른 글
#16 스케줄링 알고리즘 - SJF(Shortest Job First) (0) | 2023.03.14 |
---|---|
#15 스케줄링 알고리즘 - FIFO(First In First Out) / 평균 대기 시간 (0) | 2023.03.13 |
#13 다중큐 (0) | 2023.03.10 |
#12 CPU 스케줄링 개요 (0) | 2023.03.09 |
#11 프로세스와 Thread (0) | 2023.03.03 |
- Total
- Today
- Yesterday
- git
- 코딩테스트
- jpa
- SQL
- SpringBoot
- 코테
- API
- MySQL
- Spring Boot
- Stream
- OS
- 메모리
- Phaser3
- 프로그래머스
- 프로세스
- DART
- Java8
- 빅데이터 분석기사
- java
- Advanced Stream
- db
- spring
- MongoDB
- 운영체제
- Phaser
- 알고리즘
- 빅데이터
- 자료구조
- node.js
- nosql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |