티스토리 뷰

CS/운영체제

#14 스케줄링 목표

RadderNepa 2023. 3. 12. 20:30

- 미리 읽어보자

2023.02.26 - [운영체제] - #9 컨텍스트 스위칭(Context switching)

 

#9 컨텍스트 스위칭(Context switching)

2023.02.22 - [운영체제] - #7 PCB(Process Control Block) - 프로세스 제어 블록 #7 PCB(Process Control Block) - 프로세스 제어 블록 ● PCB - 프로그램이 메모리에 올라가서 실행중인 상태를 프로세스라고 하며 OS는

radderveloper.tistory.com


● 스케줄링의 목표 

- 스케줄링의 목표에는 여러가지가 있다.

 

1. 리소스 사용률

- 해당 목표는 CPU 사용률을 높이는 것일 수도 있고 I/O 디바이스의 사용률을 높이는 것을 목표로 할 수도 있다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

 

2. 오버헤드 최소화

- 스케줄링을 하기 위한 계산이 너무 복잡하거나 컨텍스트 스위칭(Context switching)을 너무 자주하면 소위 말해 배보다 배꼽이 더 커지는 상황이 발생한다.

- 스케줄러(OS)는 이러한 오버헤드를 최소화하는 것을 목표로한다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

 

3. 공평성

- CPU는 모든 프로세스에게 공평하게 할당되어야 한다. 단, 공평의 의미는 시스템의 종류에 따라 달라질 수 있다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

ex)

- 자율주행 시스템에서 가장 중요한 프로세스는 안전을 위한 프로세스이다.(사람을 인식하고 장애물을 피하는 등)

(위 그림에서 안전을 위한 프로세스 = 자율주행 프로세스)

- 그 외 음악이나 온도 체크 같은 프로세스는 안전 프로세스보다 상대적으로 덜 중요하다고 할 수 있다.

- 따라서 이러한 스케줄러(OS)에서는 안전을 위한 프로세스에게 CPU가 더 많이 할당되는 것이 공평하다고 할 수 있다.

- 이러한 CASE가 아니라 일반적으로 사용하는 PC의 OS는 모든 프로세스에게 CPU를 균등하게 할당해야 한다.

 

4. 처리량

- 당연한 얘기지만 스케줄링은 같은 시간내에 더 많은 처리를 할 수 있는 방법을 목표로 삼아야한다.

 

5. 대기시간

- 작업을 요청한 후 실제 작업이 이루어지기 전까지의 대기시간이 짧은 것을 목표로 한다.

- 아래 그림의 경우 대기시간이 1초인 프로세스를 실행시킨다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

 

6. 응답시간

- 대화형 시스템에서는 사용자의 요청에 대해 얼마나 빨리 반응하는지가 중요하기 때문에 응답시간이 짧은 것을 목표로 한다.

https://gammabeta.tistory.com/1802


- 위에서 말한 목표들을 모두 원하는 수준까지 유지하는 것은 어렵다.

- 이는 각 목표간에 서로 상반되는 상황이 있기 때문이다.

 

ex)

- 처리량 : 처리량을 높이기 위해서는 하나의 프로세스에 CPU를 오래 할당해야한다.

- 응답시간 : 이에 반해 응답시간을 줄이기 위해서는 여러 프로세스에 CPU를 고르게 할당해야한다.

- 2가지 목표가 충돌하기 때문에 처리량과 응답시간은 목표를 동시에 달성할 수 없다.

- 이럴때는 사용자가 사용하는 시스템의 종류에 맞춰서 목표를 설정해야한다.

- 터치스크린과 같이 사용자에 대한 빠른 응답이 필요한 경우에는 '응답시간'에 목표를, 수학 계산 같은 경우에는 '처리량'에 목표를 맞춰야한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함