CPU 스케줄링

2023. 7. 25. 18:25·CS 지식/[운영체제]

1. 스케줄링

  • 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓
  • 목표
    1. Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요
    2. Interactive System: 빠른 응답 시간. 적은 대기 시간.
    3. Real-time System: 기한(deadline) 맞추기.

2. 선점 / 비선점 스케줄링

  • 선점 (preemptive) : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움)
  • 비선점 (nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함)

3. 프로세스 상태

  • 선점 스케줄링 : Interrupt, I/O or Event Completion, I/O or Event Wait, Exit
  • 비선점 스케줄링 : I/O or Event Wait, Exit

4. CPU 스케줄링의 종류

  • 비선점 스케줄링
    1. FCFS (First Come First Served)
      • 큐에 도착한 순서대로 CPU 할당
      • 실행 시간이 짧은 게 뒤로 가면 평균 대기 시간이 길어짐
    2. SJF (Shortest Job First)
      • 수행시간이 가장 짧다고 판단되는 작업을 먼저 수행
      • FCFS 보다 평균 대기 시간 감소, 짧은 작업에 유리
    3. HRN (Hightest Response-ratio Next)
      • 우선순위를 계산하여 점유 불평등을 보완한 방법(SJF의 단점 보완)
      • 우선순위 = (대기시간 + 실행시간) / (실행시간)
  • 선점 스케줄링
    1. Priority Scheduling
      • 정적/동적으로 우선순위를 부여하여 우선순위가 높은 순서대로 처리
      • 우선 순위가 낮은 프로세스가 무한정 기다리는 Starvation이 생길 수 있음
      • Aging 방법으로 Starvation 문제 해결 가능
    2. Round Robin
      • FCFS에 의해 프로세스들이 보내지면 각 프로세스는 동일한 시간의 Time Quantum 만큼 CPU를 할달 받음
        • Time Quantum or Time Slice : 실행의 최소 단위 시간
      • 할당 시간(Time Quantum)이 크면 FCFS와 같게 되고, 작으면 문맥 교환 (Context Switching) 잦아져서 오버헤드 증가
    3. Multilevel-Queue (다단계 큐)
      • 작업들을 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 기법
      • 우선순위가 낮은 큐들이 실행 못하는 걸 방지하고자 각 큐마다 다른 Time Quantum을 설정 해주는 방식 사용
      • 우선순위가 높은 큐는 작은 Time Quantum 할당. 우선순위가 낮은 큐는 큰 Time Quantum 할당.
    4. Multilevel-Feedback-Queue (다단계 피드백 큐)
      • 다단계 큐에서 자신의 Time Quantum을 다 채운 프로세스는 밑으로 내려가고 자신의 Time Quantum을 다 채우지 못한 프로세스는 원래 큐 그대로
        • Time Quantum을 다 채운 프로세스는 CPU burst 프로세스로 판단하기 때문
      • 짧은 작업에 유리, 입출력 위주(Interrupt가 잦은) 작업에 우선권을 줌
      • 처리 시간이 짧은 프로세스를 먼저 처리하기 때문에 Turnaround 평균 시간을 줄여줌
      5. CPU 스케줄링 척도
      1. Response Time
        • 작업이 처음 실행되기까지 걸린 시간
      2. Turnaround Time
        • 실행 시간과 대기 시간을 모두 합한 시간으로 작업이 완료될 때 까지 걸린 시간
저작자표시 비영리 변경금지 (새창열림)

'CS 지식 > [운영체제]' 카테고리의 다른 글

데드락 (DeadLock, 교착 상태)  (0) 2023.07.25
프로세스 & 스레드  (0) 2023.07.25
운영체제(OS, Operating System)  (0) 2023.07.25
'CS 지식/[운영체제]' 카테고리의 다른 글
  • 데드락 (DeadLock, 교착 상태)
  • 프로세스 & 스레드
  • 운영체제(OS, Operating System)
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    springboot
    리눅스
    리눅스마스터
    플러터
    programmers
    CS지식
    DB
    CS
    Java
    Oracle
    Flutter
    스프링
    Spring Security
    postgresql
    python
    backjoon
    Linux
    pcce 기출문제
    시큐리티
    JPA
    baekjoon
    백준
    스프링 부트 쇼핑몰 프로젝트 with JPA
    리눅스마스터 1급
    spring
    자바
    스프링부트
    데이터베이스
    프로그래머스
    데이터
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
CPU 스케줄링
상단으로

티스토리툴바