3.4 CPU 스케줄링 알고리즘

2025. 1. 15. 22:18·SW개발/면접을 위한 CS 전공지식 노트
반응형

*내용이 짧아, 상세 구분 없이 한번에 정리

CPU 스케줄링 알고리즘은 여러 프로세스가 CPU를 공유하는 환경에서 어떤 프로세스를 언제 실행할지 결정하는 알고리즘. 이를 선점형과 비선점형으로 구분할 수 있음.

구분 알고리즘 주요 특징
비선점형 FCFS, SJF, Priority Scheduling, RR 자원 점유 중인 프로세스가 CPU를 선점하지 않음
선점형 SRTF, Preemptive Priority Scheduling, Round Robin,
Multilevel Queue
프로세스가 CPU를 강제로 빼앗길 수 있음
  • 비선점형 알고리즘은 간단하지만, 긴 프로세스가 다른 프로세스를 지연시키는 문제가 있음.
  • 선점형 알고리즘은 프로세스가 CPU를 강제로 빼앗길 수 있어 공정성이 높지만, starvation이나 과도한 context switching 문제가 발생할 수 있음.

1. 비선점형 CPU 스케줄링 알고리즘

비선점형 알고리즘에서는 프로세스가 자원을 점유한 상태에서 다른 프로세스가 강제로 CPU를 빼앗을 수 없음. 즉, 프로세스가 완료될 때까지 CPU를 독점적으로 사용.

 

알고리즘 특징 장점 단점
FCFS (First-Come, First-Served) 먼저 도착한 프로세스를 먼저 실행. 큐에서 먼저 도착한 순서대로 실행. 간단하고 직관적. 긴 프로세스가 먼저 실행되면 짧은 프로세스가 대기하게 되어 convoy effect 발생.
SJF (Shortest Job First) 가장 짧은 실행 시간을 가진 프로세스를 먼저 실행. 평균 대기 시간이 최소화됨. 실행 시간 예측이 어려움. 실행 시간을 정확히 알 수 없으면 사용하기 어려움.
Priority Scheduling 프로세스에 우선순위를 부여하고, 높은 우선순위를 가진 프로세스를 먼저 실행. 중요한 작업을 우선 실행 가능. starvation(기아 현상) 발생 가능. 우선순위가 낮은 프로세스는 영원히 실행되지 않을 수 있음.
RR (Round Robin) 각 프로세스에 고정된 시간 할당량(time quantum)을 주고, 순차적으로 실행. 공정하고, 프로세스가 CPU를 효율적으로 공유. 시간 할당량이 너무 짧거나 길면 성능이 저하될 수 있음.

2. 선점형 CPU 스케줄링 알고리즘

선점형 알고리즘에서는 프로세스가 실행 중일 때 다른 프로세스가 CPU를 강제로 빼앗을 수 있음. 프로세스가 자원을 강제로 할당받을 수 있어, 실시간 성능이 중요한 환경에 적합함.

 

알고리즘 특징 장점 단점
SRTF (Shortest Remaining Time First) 현재 남은 실행 시간이 가장 짧은 프로세스를 먼저 실행. 평균 대기 시간이 최소화됨. 프로세스가 계속 선점되어 starvation 발생 가능.
Preemptive Priority Scheduling 프로세스의 우선순위에 따라, 우선순위가 높은 프로세스가 실행되며, CPU를 빼앗을 수 있음. 우선순위 높은 프로세스를 즉시 실행 가능. starvation 문제 발생 가능.
Round Robin (RR) 고정된 시간 할당량을 주고 순차적으로 실행. 선점형 방식으로, 각 프로세스가 차례대로 실행되며, 시간이 다되면 다른 프로세스에게 CPU를 넘김. 공정한 스케줄링, 모든 프로세스가 동일하게 실행될 기회가 있음. 할당된 시간만큼 처리할 수 없는 작업에 비효율적일 수 있음.
Multilevel Queue Scheduling 여러 개의 큐를 만들어 우선순위에 따라 프로세스를 배정. 높은 우선순위 큐에서 실행되며, 낮은 우선순위 큐는 낮은 우선순위를 가진 프로세스들이 실행됨. 여러 종류의 프로세스를 다룰 수 있음. 높은 우선순위의 프로세스를 신속히 실행. 우선순위 큐마다 자원이 고정되어 있어, 낮은 우선순위 큐는 CPU를 빼앗기 어려울 수 있음.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'SW개발 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글

4.1 데이터베이스의 기본  (0) 2025.01.21
참고. 가상 메모리, 페이징 기법, Segmentation Fault  (2) 2025.01.17
3.3 프로세스와 스레드  (0) 2025.01.15
3.2 메모리  (0) 2025.01.15
3.1 운영체제와 컴퓨터  (1) 2025.01.15
'SW개발/면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
  • 4.1 데이터베이스의 기본
  • 참고. 가상 메모리, 페이징 기법, Segmentation Fault
  • 3.3 프로세스와 스레드
  • 3.2 메모리
코코도롱
코코도롱
    반응형
  • 코코도롱
    도롱이의 전자공학소
    코코도롱
  • 전체
    오늘
    어제
    • 분류 전체보기 (61) N
      • AI (17) N
        • 데이터 분석과 모델 학습 (4)
        • 모델별 정리 (8) N
        • (PJT)음성 화자 분류 (4)
      • SW개발 (38)
        • C++ (9)
        • 면접을 위한 CS 전공지식 노트 (24)
        • Django+Vue.js (0)
        • 이런저런 개발이야기 (1)
        • 갑자기 C코테를 봐야할때 (2)
        • RPI5 프로젝트 (1)
        • 트러블슈팅 (1)
      • ESG (2)
        • 내가 쓰는 Assay (1)
        • 뉴스 스크랩 (1)
      • 반도체 (4)
        • 반도체 (3)
        • 슬기로운 학부생활 (1)
        • 회로 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    운영체제
    홉바이홉
    입출력관리
    MySQL
    반도체 물성
    메시지큐
    ios7계층
    공백포함입력받기
    요약본
    ESG
    반도체 소자 공학
    c언어 입출력
    데이터분석 #데이터전처리 #결측치 #머신러닝 #딥러닝 #Pandas #DataFrame
    c io
    os구조
    면접을 위한 CS 전공지식 노트
    멀티프로세스
    전공 지식
    데이터분석 #머신러닝 #딥러닝 #데이터사이언스 #알고리즘 #데이터전처리
    홉바이홉통신
    데이터전처리 #데이터분석 #딥러닝 #머신러닝 #Pandas #Numpy #Python
    CS지식
    LAN
    word 수식
    보고서 수식
    정리본
    파일입출력 #DataFrame불러오기
    페이징 기법
    반도체 공학
    면접을 위한 cs전공지식 노트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코코도롱
3.4 CPU 스케줄링 알고리즘
상단으로

티스토리툴바