CPU 스케줄링 - 1

chanto11

·

2021. 3. 24. 11:23

CPU scheduling : CPU 스케줄링

 

- 멀티프로그래밍 기반 OS에서 사용 (1개 이상의 프로그램이 동시에 메모리에 적재 가능한 OS)

- 가장 효율적으로 CPU를 사용하기 위해 (컴퓨터 시스템의 성능 향상을 위해)

 

프로세스 생명주기


- 메모리에 로드된 프로세스들 중에 CPU 자원을 어떻게 할당할껀가?

= ready 상태의 프로세스들중에 CPU 자원을 할당에 대한 문제

 

preemptive : 선점
한 프로세스가 CPU를 할당받아 실행중이라도 다른 프로세스가
현재 프로세스를 중지 시키고 CPU를 강제적으로 뺏을 수 있는 스케줄링 방식

Non-preemptive : 비선점
한 프로세스가 CPU를 할당받아 실행중이라면
다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링 방식

- 어떻게 다음 프로세스를 선택할껀가?

형태 : Linked List or Binary Tree

  • FCFS (First-Come First-Served) : 비선점 : 먼저 요청한 순서대로
    장점: 자원의 효율성 높음, 일괄 처리 시스템 등에 적합
    단점: 독점시 장시간 wait, 대화형 시스템에 부적합
  • SJF (Shortest-Job-First) : 비선점 : 작업 시간이 짧은 순서대로 (작업 시간 동일시 FCFS)
    장점: 많은 프로세스들에게 빠른 응답시간 제공
    단점: 작업이 긴 프로세스들은 무기한 연기, 작업 시간의 정확한 계산 불가능
  • SRTF (Shortest-Remaining-Time-First) : 선점 : 선점형 SJF 방식
    단점: context switching overhead 증가, 작업이 긴 프로세스들은 무기한 연기, 작업 시간의 예측이 힘듬
  • RR (Round-Robin) : 선점 : 시분활 시스템 이용 (일정 시간 만큼씩만)
    장점: 응답시간이 짧아 대화형 시스템에 적합
    단점: 시분활 단위에 의존적, 너무 크면 FCFS와 차이없음, 너무작으면 빈번한 context switching
  • 우선순위 스케줄링 : 선점 또는 비선점 : 우선순위별 CPU 할당 (같으면 FCFS)
    단점: 우선순위가 낮은 프로세스의 경우 영구 대기
  • MLQ (Multi Level Queue) : 선점 : 사전 실행 정보가 없는 경우 준비 상태의 큐를 여러 개 두어 스케줄링
  • MLFQ (Multi Level Feedback Queue) : 선점 : 다단계 큐 스케줄링에서 한 단계 발전된 방식으로,
    큐마다 서로 다른 CPU Time Slice(Quantum)를 부여

 

- dispatcher 란?

- context switch 를 해주는 모듈 (프로세스에게 CPU 할당)

- user mode로 전환, 프로그램을 적정한 위치로 이동

 

※ 간단하게는 scheduler는 선택, dispatcher는 switching 역활


CPU 성능 지표

성능 지표  내용
응답 시간(response time) 대기열에서 처음으로 CPU를 얻을때까지 걸린시간
작업 처리량(throughtput) 단위 시간 내의 프로세스 처리량
대기시간(Waiting Time) 대기열에 들어와 CPU를 할당받기까지 기다린 시간
프로세서 이용률(CPU Utilization) 시간당 CPU를 사용한 시간의 비율
반환시간 또는 소요시간(Turnaround Time) CPU burst time(쓰고 나갈때까지의 시간, 누적되지 않음)

 

시스템 입장에서의 CPU 스케줄링 성능에서 중요한 것
CPU Utilization + Throughput

 

사용자 입장에서의 CPU 스케줄링 성능에서 중요한 것
Turnaround Time + Waiting Time + Response Time

'운영체제' 카테고리의 다른 글

스레드 와 동시성 - Thread & Concurrency  (0) 2021.03.23
프로세스 - 3  (0) 2021.03.18
프로세스 - 2  (0) 2021.03.10
프로세스 - 1  (0) 2021.03.09
운영체제 - 2  (0) 2021.03.08