4.[os] CPU 스케줄링

1.CPU 스케줄링

  • CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다

2.스케줄링의 단계

  • 고수준 스케줄링: 시스템 내의 전체 프로세스 수를 조절
  • 중간 수준 스케줄링: 전체 시스템의 활성화된 프로세스 수를 조절하며 과부화를 막음 (활성 or 보류)
  • 저수준 스케줄링: 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼 지 등을 결정

3.스케줄링의 목적

  • 공평성: 모든 프로세스가 자원을 공평하게 배정받아야 하며, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안 됨
  • 효율성: 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링을 하고, 유휴 자원을 사용하 려는 프로세스에는 우선권을 주어야 한다
  • 안정성: 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자 원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 한다.
  • 확장성: 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야 한다. 또한 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야 한다.

  • 반응 시간 보장: 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 한다

  • 무한 연기 방지: 특정 프로세스의 작업이 무한히 연기되어서는 안 된다

4.스케줄링 시 고려사항

  • 우선순위가 높은 프로세스에 CPU를 먼저 할당한다. 우선순위가 높은 프로세스는 커널 프로 세스, 전면 프로세스, 대화형 프로세스, 입출력 집중 프로세스이고, 우선순위가 낮은 프로세스는 일반 프로세스,후면 프로세스, 일괄 작업 프로세스, CPU 집중 프로세스이다.

5. 다중 큐

  • 프로세스를 효율적으로 관리하기 위해 큐를 여러 개두어 관리古분 것을 말하다. 준비 상태 에서는 우선순위에 따라 다중 큐를 운영하고,대기 상태에서는 같은 입출력을 요구한 프로세스들을 모아 다중 큐를 운영한다

6.스케줄링 알고리즘

  • FCFS 스케줄링: 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 방식 이다

  • SJF 스케줄링: 준비 큐에 있는 프로세스 중에서 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 방식이다

  • HRN 스케줄링: CPU를 할당 받기 위한 대기 시간과 CPU 사용 시간을 고려하여 스케줄링을 하는 비선점형 방식이다

  • 라운드 로빈 스케줄링: 한 프로세스가 할당 받은 시간(타임 슬라이스) 동안 작업을 하다가 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 자기 차례를기다리는선점형 방식이다

  • SRT 스케줄링: 기본적으로 라운드 로빈 스케줄링을 사용하지만, CPU를 할당 받을 프로세스를 선택할 때 남아있는 작업 시간이 가장 적은 프로세스를 선택하는 선점형 방식이다.

  • 우선순위 스케줄링: 프로세스는 중요도에 따라 우선순위를 갖는데 이러한 우선순위를 반영하여 CPU를 할당하는 방식이다. 선점형 혹은 비선점형 방식으로 구현이 가능하다.

  • 다단계 큐 스케줄링: 우선순위에 따라 준비 큐를 여러 개 사용하는 비선점형 방식이다. 프로세스는운영체제로부터 부여받은 우선순위에 따라 해당 우선순위의 큐에 삽입되어 실행 된다.

  • 다단계 피드백 큐 스케줄링: 다단계 큐 스케줄링과 기본적인 형태가 같지만. CPU를 사용 하고 난 프로세스가 원래의 큐로 되돌아가지 않고 우선순위가 하나 낮은 큐의 끝으로 들어 간다.


  1. 시스템 내 전체 프로세스의 수를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가?

    • 고수준 스케줄링
  2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가?

    • 저수준 스케줄링
  3. 어떤 프로세스가 CPU를 할당받아 실행 중 이더라도 운영체제가 C PU를 강제로 빼앗올 수 있 는 스케줄링은 무엇인가?

    • 선점형 스케줄링
  4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고 도 불리는 것은 무엇인가?

    • 전면 프로세스
  5. 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?

    • FCFS 스케줄링
  6. 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 스 케줄링 알고리즘은무엇인가?

    • SJF 스케줄링
  1. SJF 스케줄링 알고리즘의 단점으로 크기가 큰 작업이 계속 뒤로 밀리는 현상을 무엇이라 하는가?

    • 아사 현상, 무한 봉쇄 현상
  2. 아사 현상을 해결하는 방법을 설명하시오.

    • 에이징
  3. 서비스를 받기 위해 대기한 시간CPU 사용 시간을 고려하여 우선순위를 정하는 스케줄링 알고리즘은 무엇인가?

    • HRN 스케줄링
  4. 프로세스가 할당받은 시간(타임 슬라이스) 동안 작업하다가 작업을 완료하지 못하면 준비 큐 의 맨 뒤로 가서 다음 자기 차례가 올 때까지 기다리는 선점형 스케줄링 알고리즘 중 가장 단 순한 것은 무엇인가?

    • 라운드 로빈 스케줄링
  5. 타임 슬라이스의 크기문맥 교환의 관계를 설명하시오.

    • 타임 슬라이스가 작으면 문맥 교환이 많아진다.
    • 타임 슬라이스가 크면 문맥 교환이 적어진다.

    • 따라서 타임 슬라이스의 크기와 문맥 교환의 관계는 반비례 관계다.

  1. 기본적으로 라운드 로빈 방식을 사용하지만, CPU를 할당 받을 프로세스를 선택할 때 남아 있는 작업 시간이 가장 적은 것을 선택하는 스케줄링 알고리즘은무엇인가?

    • SRT 스케줄링
  2. 우선순위에 따라 준비 큐를 여러 개 사용하며 고정형 우선순위를 적용하는 스케줄링 알고리즘은 무엇인가?

    • 다단계 큐 스케줄링(multilevel queue)
  3. 우선순위에 따라 준비 큐를 여러 개 사용하며,프로세스가 CPU를 사용한 후 우선순위가 낮 아지는 특징을 가진 스케줄링 알고리즘은무엇인가?

    • 다단계 피드백 큐 스케줄링(multilevel feedback queue)
  4. 다단계 피드백 큐 스케줄링에서 마지막 큐에 있는 프로세스(우선 순위가 가장 낮은 프로세스의 타임 슬라이스 크기는 얼마인가

    • 무한대
  5. 다단계 피드백 큐 스케줄링에서 우선순위가 낮아질수록 타임 슬라이스의 크기는 어떻게 변 하는가?

    • 커진다
  6. 다단계 피드백 큐 스케줄링에서 마지막 큐(우선순위가 가장 낮은 큐)는 어떤 스케줄링 알고리즘처럼 동작하는가

    • FCFS 스케줄링

Did you find this article valuable?

Support Software Engineer at Your Service by becoming a sponsor. Any amount is appreciated!