[운영체제] CPU 스케줄링 개요

cosmos-JJ·2023년 9월 25일
0

Computer Science

목록 보기
10/15
post-thumbnail

CPU 스케줄링

CPU 스케줄링이란?

CPU 스케줄링 (CPU scheduling)이란 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것이다.

프로세스 우선 순위

  • 입출력 집중 프로세스 (I/O bound process) : 입출력 작업이 많은 프로세스
  • CPU 집중 프로세스 (CPU bound process) : CPU 작업이 많은 프로세스
  • CPU 버스트 (CPU burst) : CPU를 이용하는 작업
  • 입출력 버스트 (I/O burst) : 입출력장치를 기다리는 작업

일반적으로 프로세스는 CPU 버스트와 입출력 버스트를 반복하여 실행되며, CPU 집중 프로세스 보다 입출력 집중 프로세스를 우선순위로 CPU를 할당하는 것이 효율적이다.

❗❗프로세스 우선순위 확인하기❗❗

유닉스 체계 운영체제 : 명령어 ps -el
Window : Process Explore 소프트웨어

스케줄링 큐

  • 준비 큐 (ready queue) : CPU를 이용하기 위해 기다리는 줄
  • 대기 큐 (waiting queue) : 입출력장치를 이용하기 위해 기다리는 줄

선점형 스케줄링 vs 비선점형 스케줄링

  • 선점형 스케줄링(preemptive scheduling) : 하나의 프로세스가 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 빼앗을 수 있는 스케줄링

    • 장점 : 한 프로세스의 자원 독점을 막고 프로세스들에게 골고루 자원을 배분할 수 있다.
    • 단점 : 문맥 교환 과정에서 오버헤드가 발생할 수 있다.
  • 비선점형 스케줄링(non-preemptive scheduling) : 하나의 프로세스가 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 빼앗을 수 없는 스케줄링

    • 장점 : 문맥 교환 횟수가 선점형 스케줄링보다 적기 때문에 오버헤드가 상대적으로 적다.
    • 단점 : 모든 프로세스가 자원을 골고루 사용할 수 없다.
❗오버헤드 : 프로세스를 처리하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다.

참고

  • 혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 지음)
profile
🤍도전하는 건 즐거워요🤍

0개의 댓글