3 분 소요

1. 스케쥴러가 입출력 중심 프로그램과 CPU 중심 프로그램을 구분하는 것이 중요한 이유는 무엇인가?

  • 입출력 중심 프로그램은 짧은 CPU 버스트를 많이 가지고, CPU 중심 프로그램은 다수의 긴 CPU 버스트를 갖는다. 다중 프로그래밍 환경에서 프로세스의 실행은 입출력과 CPU실행의 사이클을 반복하므로, CPU 스케줄링 결정에 매우 중요할 수 있다.

2. 다음과 같은 두 스케쥴링 기준들은 어떤 상황에서 서로 충돌하는 지 논의하시오.

  • a. CPU 이용률과 응답 시간
    • 문맥 교환이 자주 일어나면 오버헤드가 발생하고, CPU 이용률이 증가 된다. 오버헤드를 줄이기 위해선 문맥교환의 빈도를 줄이면 되는데, 이는 응답 시간 증가를 초래할 수 있다.
  • b. 평균 총처리 시간과 최대 대기 시간
    • 짧은 프로세스를 먼저 처리하면 평균 총 처리 시간이 줄어들지만, 긴 프로세스의 대기 시간이 늘어나 기아 현생이 발생할 수 있다. 이는 최대 대기시간의 증가로 이어진다.
  • c. 입출력 장치 이용률과 CPU 이용률
    • CPU 이용률은 CPU-bound 프로세스를 실행 할 때 늘어나고, 입출력 장치 이용률은 I/O-bound 프로세스를 실행 할 때 늘어난다. I/O-bound 프로그램들은 보통 짧은 CPU-burst를 가지고 있고, 이는 많은 문맥교환으로 이어지고 CPU 이용률을 줄이게 된다.

4. 5장에서 다양한 커널 자료구조에서 발생할 수 있는 경쟁조건에 대해 논의하였다. 거의 모든 스케줄링 알고리즘은 실행 큐를 유지하여 스케줄 할 프로세스들을 관리한다. 다중코어 시스템에서는 다음 두 가지 선택이 존재한다. (1) 각 처리기 코어마다 각자의 실행 큐를 유지하거나 (2) 하나의 실행 큐를 모든 처리기 코어가 공유한다. 각 선택의 장단점은 무엇인지 설명하시오.

  • 각 처리기 코어마다 큐가 있을 경우에는 독립 되어 있기 때문에 충돌이 일어나지 않고, 프로세스를 병렬적으로 실행 할 수 있다. 스케쥴링을 결정 할 때, 가지고 있는 큐만 점검하면 된다.
  • 싱글 큐라면 race condition을 주의 해야 한다. 하지만, 로드밸런싱을 고려하지 않아도 된다.

6. 라운드로빈 스케줄러의 한 가지 변형은 퇴행 라운드 로빈(Regressive Round Robin) 스케줄러이다. 이 스케줄러는 각 프로세스에게 시간 할당량과 우선순위를 부여한다. 시간 할당량의 초기값은 50ms이지만 프로세스에 CPU가 할당되고(입출력 때문에 봉쇄되지 않고) 시간 할댱량을 소진할 때마다 10ms씩 시간 할당량이 증가되고 우선순위가 상승된다(시간 할당량은 최대 100 ms까지 증가된다). 시간 할당량을 소진하기 전에 프로세스가 봉쇄되면 시간 할당량이 5ms씩 감소되지만 우선순위는 변하지 않는다. 이 퇴행 라운드 로빈 스케줄러는 CPU 중심 프로세스와 입출력 중심 프로세스 중에 어느 프로세스를 우대하는지 설명하시오.

  • CPU 중심 프로세스를 우대한다. 프로세스를 많이 실행 할 수록 우선순위가 높아지고, 적게 실행 할 수록 우선순위가 낮아진다. CPU를 blocking 하면 시간 할당량이 감소하기 때문에 선호되지 않는다. I/O 중심 프로세스는 blocking 하기 때문에 선호되지 않는다.

10. 다음 알고리즘 중 기아 현상을 일으킬 수 있는 알고리즘은 무엇인가?

a. 선입 선처리 b. 최소 작업 우선 c. 라운드 로빈 d. 우선순위

d, Aging으로 해결 할 수 있다.

13. 다단계 큐 스케줄링을 구현한 시스템을 고려하자. 자신의 프로세스에게 할당된 CPU 시간이 최대가 되게 하기 위해서 사용자는 어떤 전략을 세울 수 있는가?

  • 모든 시간 할당량을 사용하지 않음으로서 CPU 시간을 최대화 할 수 있다. 시간 할당량이 끝나기 전에 CPU를 포기 하여 프로세스와 관련된 우선 순위를 높인다.

15. 다음의 알고리즘들이 짧은 프로세스를 우대하는 정도의 차이에 대해 설명하시오.

  • a. FCFS
    • 우대 하지 않는다.
  • b. RR
    • 모든 프로세스에게 동일한 시간을 부여하기 때문에, 가장 짧은 프로세스가 제일 먼저 완수된다.
  • c. 다단계 피드백 큐
    • 짧은 프로세스에게 최고 우선순위를 부여한다.

20. 실시간 시스템에서 우선순위 역전 문제를 해결할 수 있는 방안에 대해 논의하시오. 또한 그러한 해결 방안을 일정 비율의 몫 스케줄러 안에 구현할 수 있는지에 대해서도 논의하시오.

  • 관련된 프로세스들의 우선 순위를 잠시 바꿈으로서 해결 할 수 있다. 자원에 접근하는 프로세스들은 동작이 끝날 때 까지 높은 우선순위를 가지게 하고, 끝나면 원래 우선 순위로 돌려놓는다.

23. 경성 실시간 시스템에서 인터럽트와 디스패치 지연 시간이 일정 시간 내로 한정되는 것이 보장되어야 하는 이유를 설명하시오.

  • 디스패치 지연 시간은 하나의 프로세스를 중단 하고 다른 것을 시작 할 때의 지연이다. 인터럽트와 디스패치 지연 시간은 둘 다 실시간 시스템에서 빠른 응답을 위해 최소화 되어야 한다.

What advantage is there in having different time-quantum sizes at different levels of a multilevel queueing system?

다단계 피드백 큐에서 시간 퀀텀의 크기를 레벨마다 다르게 하게 되면 어떤 이득을 얻을 수 있는가?

  • 즉각적인 변경이 필요한 것들은(ex. 텍스트 편집기) time-quantum의 크기를 작게 하는 것이 좋고, 그게 아니라면 문맥 교환을 최소화 하기 위해 크기를 크게 하는 것이 좋다.

카테고리:

업데이트: