118. 스케줄링

alpaka·2024년 2월 4일
0

정보처리기사

목록 보기
122/161
post-thumbnail

스케줄링(Scheduling)의 개요

  • 스케줄링은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다.
  • 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 된다.
  • 장기 스케줄링
    • 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미한다.
    • 작업 스케줄링(Job Scheduling), 상위 스케줄링이라고도 하며, 작업 스케줄러에 의해 수행된다.
  • 중기 스케줄링
    • 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업을 의미한다.
    • CPU를 할당받으려는 프로세스가 많을 경우 프로세스를 일시 보류시킨 후 활성화해서 일시적으로 부하를 조절한다.
  • 단기 스케줄링
    • 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업을 의미한다.
    • 프로세서 스케줄링(Processor Scheduling), 하위 스케줄링이라고도 한다.
    • 프로세서 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행된다.

문맥 교환(Context Switching)

  • 문맥 교환은 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것으로 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업을 의미합니다.

프로세스 스케줄링의 기법

비선점(Non-Preemptive) 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
  • 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.
  • 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.
  • 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합하다.
  • 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있다.
  • 비선점 스케줄링의 종류에는 FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘이 있다.

선점(Preemptive) 스케줄링

  • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.
  • 우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
  • 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용된다.
  • 많은 오버헤드(Overhead)를 초래한다.
  • 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록(Clock)이 필요하다.
  • 선점 스케줄링의 종류에는 Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 있다.
profile
alpaka의 자격증 공부장

0개의 댓글

관련 채용 정보