당연히 아무거나 스케줄링을 하진 않는다.
아무거나하면 효율적으로 나올리가 있나??
당연히 없다.
스케줄링 알고리즘이 여러가지가 있는데 걔네들은 뭘 기준으로 짠걸까??
기준 알아보자
우선 우리가 배운 것들을 알아보면? 5가지가 있다.
• CPU utilization – keep the CPU as busy as possible
• Throughput – # of processes that complete their execution per time unit
• Turnaround time – amount of time to execute a particular process
• Waiting time – amount of time a process has been waiting in the ready queue
• Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)
1. CPU 이용률
우리는 가능한 CPU를 쉬지 않게 하고 싶다. // 우리는 쉬고 싶어하면서 ㅎㅎ 우리가 쉬려면 컴퓨터는 바빠야함
2. 처리량
CPU가 프로세스를 수행하느라고 바쁘다면? 작업이 진행되고 있는 것이다.
작업량은 단위 시간당 완료되는 프로세스 개수로 판단한다.
3. 총 처리시간
특정한 프로세스의 입장에서 보면, 그 프로세스를 실행하는 데 소요된 시간이 중요하다.
총처리시간 = 준비 큐 대기시간 + CPU 실행시간 + I/O시간
4. 대기 시간
CPU 스케줄링 알고리즘은 프로세스가 실행하거나 I/O을 하는 시간의 양에 영향을 미치지 않는다.
스케줄링 알고리즘은 단지 프로세스가 준비 큐에서 대기하는 시간에만 영향을 준다.
// 넌 좀 더 기다려 다른 것부터 해야하니까 라고 하는 순간 대기 시간 늘어남 ㅋㅋㅋ
5. 응답 시간
총처리 시간보다 더 적합한 기준이 될 수 도 있다. 어떤 출력을 매우 일찍 생성하고, 앞서의 결과에서 사용자에게 출력되는 사이에 새로운 결과를 얻으려고 연산을 계속하는 겨우가 종종 있다. 따라서 또 다른 기준은 하나의 요구를 제출한 후 첫 번째 응답이 나올 때까지의 시간이다.
다시 정리하자
응답이 시작되는 데까지 걸리는 시간이다.
응답을 출력하는데 걸리는 시간이 아니다.
결국
• Max CPU utilization
• Max throughput
• Min turnaround time
• Min waiting time
• Min response time
최대 이용률, 최대 처리량, 최소 시간을 원하는 것이다. 그러나 다 만족할 수는 없으니까.
알고리즘 별로 다음 글에서 알아보자
'컴퓨터(Computer Science) > 운영체제(Operation System)' 카테고리의 다른 글
동기화, 세마포 : Synchronization, Semaphores [운영체제] (0) | 2020.06.03 |
---|---|
CPU 스케줄링 알고리즘, Scheduling Algorithms [운영체제] (0) | 2020.06.02 |
CPU Scheduling 스케줄링, 기본 개념 [운영체제] (0) | 2020.06.02 |
프로세스 간 통신, Interprocess Commnunication/IPC (0) | 2020.05.31 |
스레드 라이브러리?? Thread library (0) | 2020.05.31 |