열렬히.뛰기

5장 연습문제

운영체제 > Part 2 : 프로세스 관리 > 5장 연습문제

  1. n개의 프로세스를 스케쥴링하면 몇 개의 다른 스케쥴이 가능?

💡 n개의 보따리의 순서를 정하는 것과 같다. 결국 n!

  1. 선점 스케쥴링과 비선점 스케쥴링의 차이.

선점 스케쥴링 : 하나의 프로세스가 CPU를 점유하고 있을 때 다른 프로세스가 cpu를 뺏어서 자신이 실행할 수 있게 함.

비선점 스케쥴링 : 하나의 프로세스가 완전히 끝나야 다른 프로세스가 실행.

  1. 다음 그림을 읽고 문제를 풉시다.

  • 전부 비선점형 알고리즘으로 푼다.
  • turnaround time = burst - arrival
  • FCFS일 때 : P1 → P2 → P3
    • 평균 = {8 + (12 - 0.4) + (13 - 1)} / 3 = 10.53
  • SJF일 때 : P3 → P2 → P1
    • 평균 = 9.53 (왜??)
  1. 다음 그림을 읽고 문제를 풉시다.

  1. 다음 그림을 읽고 문제를 풉시다.

  1. 다단계 큐 시스템에서 단계마다 다른 시간 할당량을 지정하는 것은 어떠한 이점이 있는가?

💡 자주 서비스 제공을 해야하는 프로세스들은 짧은 시간 동안 있을 수 있고, 그럴 필요가 없는 프로세스들은 긴 시간 동안 있으면서 문맥 교환의 빈도를 적게 만들 수 있다.

  1. 우리가 배운 알고리즘은 실제로는 알고리즘 집합이다. 다음 알고리즘 집합 쌍에는 어떤 관계가 있는가?
1. 가장 짧은 job이 가장 높은 우선순위를 가진다.

2. 가장 낮은 레벨의 다단계 피드백 큐가 선입선출이다.

3. 선입선출은 가장 긴 시간 동안 있는 job에게 최대 우선선위를 부여.

4. 없음.
  1. CPU 스케쥴링 알고리즘이 최근 과거에 가장 적은 프로세서 시간을 사용한 프로세스를 선호한다고 한다.

    이 알고리즘이 CPU 중심 프로그램보다 I/O 중심 프로그램을 선호하지만, CPU 중심 프로그램을 영구적인 기아 상태로 만들지 않는 이유는?

    → 우선순위가 낮은 프로그램인 CPU 중심 프로그램을 계속 실행시키지 않으면 결국 프로그램이 종료되면서 회수를 하지 못할 수 있기 때문이다.

  2. PCS와 SCS 스케쥴링을 구분하라

    💡 PCS 스케쥴링은 같은 프로세스 내에 존재하는 쓰레드끼리 경쟁상태에 놓이게 된다.

    반면 SCS 스케쥴링은 시스템에 존재하는 모든 쓰레드끼리 경쟁 상태에서 놓이게 된다.