CS/OS

[OS] 5. CPU Scheduling 연습문제

JWonK 2023. 4. 16. 13:14
728x90
반응형

5.1 Consider a multiprocessor system and a multithreaded program written using the many-to-many threading model. Let the number of user-level threads in the program be more than the number of processors in the system. Discuss the performance implications of the following scenarios:

a. The number of kernel threads allocated to the program is less than the number of processors.

b. The number of kernel threads allocated to the program is equal to the number of processors.

c. The number of kernel threads allocated to the program is greater than the number of processors but less than the number of user-level threads. 

 

Answer:

다중 프로세서 시스템에서 많은-많은 스레딩 모델을 사용하여 작성된 멀티스레드 프로그램을 고려해 보겠습니다. 
프로그램의 사용자 수준 스레드 수가 시스템의 프로세서 수보다 많은 경우 다음 시나리오의 성능 영향에 대해 논의합니다.

a. 프로그램에 할당된 커널 스레드 수가 프로세서 수보다 적은 경우

프로세서는 실행 대기 중인 스레드가 없는 경우 놀게 됩니다.
이러한 상황에서 성능은 단일 프로세서에서 실행하는 것보다 향상되지 않을 수 있습니다.
b. 프로그램에 할당된 커널 스레드 수가 프로세서 수와 같은 경우

모든 프로세서에 대해 커널 스레드가 사용 가능하므로 프로그램이 최대한 활용됩니다.
그러나 사용자 수준 스레드 수가 많을 수록 프로그램이 더 많은 스레드를 생성하려고 할 수 있으므로 문제가 발생할 수 있습니다.
c. 프로그램에 할당된 커널 스레드 수가 프로세서 수보다 많지만 사용자 수준 스레드 수보다 적은 경우

일부 프로세서는 커널 스레드를 실행하고 다른 프로세서는 대기 중인 사용자 수준 스레드를 실행합니다.
성능은 프로그램이 사용자 수준 스레드를 최대한 활용할 수 있는 경우에만 개선됩니다.

 

 

 

 

 

 


5.2 Consider the following set of processes, with the length of CPU burst given in milliseconds.

 

a.Draw four Gantt charts that illustrate the execution of these processes using the following scheduling algorithms: FCFS, SJF, nonpreemptive priority (a smaller priority number implies a higher priority), and RR (quantum = 1).

 

b. What is the turnaround time of each process for each of the scheduling algorithms in part a?

 

c. What is the waiting time of each process for each of the scheduling algorithms in part a?

 

d. Which of the algorithms in part a results in the minimum average waiting time (over all processes)?

 

 

 

 

 

Answer:

Average turn-around time = Average waiting time + Average execution time = 9.6 + 3.8 = 13.4

 

 

Average turn-around time= Average waiting time + Average execution time = 3.2 + 3.8 = 7

 

Average turn-around time= Average waiting time + Average execution time = 8.2 + 3.8 = 12

 

 

 

 

 

 


5.3 Why is it important for the scheduler to distinguish I/O-bound programs from CPU-bound programs?

 

Answer:

스케줄러는 CPU 시간을 효율적으로 사용하기 위해 프로세스를 스케줄링하는 중요한 역할을 합니다. 
I/O-bound 프로그램은 대개 입력 및 출력 작업이 많아 CPU를 대기 상태로 놔둬야 하는 경우가 많습니다. 
반면 CPU-bound 프로그램은 대부분 계산이 많아 CPU를 많이 사용하는 경우가 많습니다. 
이러한 차이점은 스케줄러가 프로세스를 할당할 때 중요합니다.
I/O-bound 프로세스는 빠른 응답을 위해 CPU를 최소한으로 사용해야 하므로 
스케줄러는 I/O-bound 프로세스에 높은 우선순위를 부여하여 CPU 시간을 최소한으로 유지해야 합니다. 
CPU-bound 프로세스는 가능한 한 빨리 실행되도록 스케줄링되어야 하므로, 
스케줄러는 CPU-bound 프로세스에 높은 우선순위를 부여하여 CPU 시간을 최대한 활용해야 합니다.

따라서, 스케줄러가 I/O-bound 및 CPU-bound 프로그램을 구별하는 것은 시스템 성능을 최적화하기 위해 매우 중요합니다.

 


5.4 Which of the following-scheduling algorithms could result in starvation?

 

a. First-come, first-served

b. Shortest job first

c. Round robin

d. Priority

 

Answer:

다음 스케줄링 알고리즘 중 어떤 것이 (Starvation)을 일으킬 수 있는지?

a. FCFS (First-Come, First-Served)
b. SJF (Shortest Job First)
c. Round Robin
d. Priority

답: d. Priority

우선순위 스케줄링 알고리즘에서는 우선순위가 높은 프로세스가 다른 프로세스보다 더 많은 시간을 할당받는다.
이 경우, 우선순위가 낮은 프로세스는 계속해서 우선순위가 높은 프로세스에게 선점될 수 있기 때문에 
굶주림이 발생할 수 있다.

 

 

 


5.5 Consider a system running ten I/O-bound tasks and one CPU-bound task. Assume that the I/O-bound tasks issue an I/O operation once for every millisecond of CPU computing and that each I/O operation takes 10 milliseconds to complete. Also assume that the context-switching overhead is 0.1 millisecond and that all processes are long-running tasks. What is the CPU utilization for a round-robin scheduler when:

 

a. The time quantum is 1 millisecond.

b. The time quantum is 10 millisecond.

 

Answer:

이 문제에서는 10개의 I/O 바운드 태스크와 1개의 CPU 바운드 태스크가 실행 중인 시스템을 가정합니다. 
각 I/O 바운드 태스크는 1 밀리초마다 I/O 작업을 발생시키며, 각 I/O 작업은 10 밀리초가 걸립니다.
컨텍스트 전환 오버헤드는 0.1 밀리초이며, 모든 프로세스가 장기 실행 작업이라고 가정합니다.
라운드 로빈 스케줄러에서 다음과 같은 경우 CPU 이용률은 얼마입니까?

a. 시간 양자가 1 밀리초인 경우
b. 시간 양자가 10 밀리초인 경우

a. 시간 양자가 1 밀리초인 경우
라운드 로빈 스케줄러에서 각 태스크는 최대 1밀리초 동안 CPU를 사용할 수 있습니다. 
그러나 I/O 바운드 태스크에서는 I/O 작업이 발생하고 있기 때문에 대부분의 태스크는 자발적으로 
CPU를 양도하고 대기하게 됩니다. 이 경우 CPU 바운드 태스크는 매 시간 양자마다 CPU를 점유하고 1밀리초를 사용합니다. 
그 결과 CPU 이용률은 1/(1+(10*10^-3)/1) = 9.09%입니다.

b. 시간 양자가 10 밀리초인 경우
라운드 로빈 스케줄러에서 각 태스크는 최대 10밀리초 동안 CPU를 사용할 수 있습니다. 
이 경우, I/O 바운드 태스크가 10밀리초 동안 CPU를 사용한 후 I/O 작업을 발생시키므로 대부분의 태스크는 
자발적으로 CPU를 양도하고 대기하게 됩니다. 
CPU 바운드 태스크는 매 시간 양자마다 CPU를 점유하고 10밀리초를 사용합니다. 
그 결과 CPU 이용률은 1/(1+(10*10^-3)/10) = 50%입니다.

 

 

 

 

 


5.6 Consider a system implementing multilevel queue scheduling. What strategy can a computer user employ to maximize the amount of CPU time allocated to the user's process?

 

Answer:

다단계 큐 스케줄링을 사용하는 시스템에서 사용자가 자신의 프로세스에 할당되는 CPU 시간을
최대화하는 데 사용할 수 있는 전략 중 하나는 다음과 같습니다.

1. 우선순위 높은 큐에 프로세스를 할당: 
   많은 다단계 큐 스케줄링 알고리즘에서는 각 큐에 우선순위가 있으며 높은 우선순위 큐에 있는 프로세스는 
   낮은 우선순위 큐에 있는 프로세스보다 CPU 시간을 더 많이 할당받을 수 있습니다.

2. 자주 I/O를 수행하는 작업을 생성: 
   다단계 큐 스케줄링에서는 일반적으로 I/O 바운드 프로세스를 위한 별도의 큐가 있으며, 
   이러한 프로세스는 CPU 바운드 프로세스보다 CPU 시간을 덜 할당 받을 수 있습니다.

3. 짧은 작업 생성: 
   대개 다단계 큐 스케줄링에서는 단기 작업 우선 큐 또는 최단 작업 우선 큐가 있으며, 
   이러한 큐에 있는 짧은 작업은 CPU 시간을 더 많이 할당 받을 수 있습니다.

4. 우선순위 높은 프로세스 생성: 
   우선순위 큐 스케줄링 알고리즘에서는 우선순위가 높은 프로세스가 CPU 시간을 더 많이 할당 받을 수 있습니다. 
   따라서 높은 우선순위를 가진 프로세스를 생성하는 것이 유리할 수 있습니다.

 

 

 

 

 

 


5.7 Explain the differences in the degree to which the following scheduling algorithms discriminate in favor of short processes:

 

a. FCFS

b. RR

c. Multilevel feedback queues

 

Answer:

다음 스케줄링 알고리즘들이 짧은 프로세스를 우대하는 정도에 차이가 있는 이유를 설명하시오:

a. FCFS
b. RR
c. Multilevel feedback queues

a. FCFS (First-Come, First-Serve) : 
   FCFS는 선입선처리 알고리즘이기 때문에, 프로세스의 크기나 소요시간에 관계없이 먼저 도착한 순서대로 처리한다.
   그렇기 때문에 작은 프로세스는 큰 프로세스 뒤에 대기하게 되어 우대되지 않는다.

b. RR (Round Robin) :
   RR은 CPU 시간 할당량을 정해놓고, 해당 시간만큼 프로세스에게 CPU를 할당한 후, 다음 프로세스로 넘어간다. 
   이 과정을 반복한다. 작은 프로세스의 경우 CPU 할당 시간이 짧기 때문에 빨리 처리될 수 있어 우대된다.

c. Multilevel feedback queues :
   Multilevel feedback queues는 여러 개의 큐를 이용하여 프로세스를 분류하고 우선순위를 부여한다. 
   그리고 프로세스의 CPU 점유 시간에 따라 우선순위를 조정한다. 
   작은 프로세스는 높은 우선순위를 가지므로 빠르게 처리될 가능성이 높아 우대된다.
728x90
반응형