스케줄링 (CPU Scheduling)

이상수·2022년 11월 28일
0

CS - 운영체제

목록 보기
4/4

1. 스케줄링 이란?

  • CPU의 자원을 효율적으로 사용하기 위해서 자원을 사용할 순서를 결정짓는 작업
  • 멀티 프로세스 환경에서 메모리 내에 실행 준비된 프로세스 중 어떤 프로세스를 CPU에 할당할 지 정하는 작업
  • CPU를 최대로 활용하기 위하여 사용한다.
  • 장기, 중기, 단기 스케줄러가 있으며 일반적으로 부르는 스케줄링은 단기 스케줄러를 의미
  • 단기 : 멀티 프로그래밍 과 관련

2. 스케줄링 기준(Criteria)

  1. CPU 활용률 : 전체 시스템 시간 중 CPU가 작업을 처리하는 시간의 비율

  2. 처리량 : CPU가 초당 처리하는 프로세스의 갯수

  3. 응답 시간 : 프로세스가 입/출력을 시작해서 첫 결과가 나오는데 걸리는 시간

  4. 대기 시간 : 프로세스가 레디큐에서 대기하는 시간의 총합

  5. Turnaround Time : 프로세스가 시작해서 끝날 때 까지 걸리는 시간

  • 최대의 CPU 사용률, 최대 처리량, 응답시간 최소, 대기시간 최소, 걸리는 시간최소 목적

3. 스케줄링 기법 소개

1). 선점형 스케줄링

  • 어떤 프로세스가 자원을 사용 중임에도 우선순위가 더 높은 프로세스가 자원을 뺏을 수 있는 스케줄링
  • 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 이용
  • 라운드 로빈, SRTF, 다단계 큐, 다단계 피드백 큐 등

2). 비선점 스케줄링

  • 이미 할당된 자원을 다른 프로세스가 뺏을 수 없는 스케줄링
  • 응답 시간의 예측이 가능해 진다.
  • 일괄 처리 방식에 적합하다.
  • 중요한 작업이 중요하지 않는 작업을 기다리는 경우 발생
  • FCFS, SJF, HRN 등
profile
Will be great Backend-developer

0개의 댓글