1. 프로세스 스케줄링
정당성
- 프로세스 스케줄링은 스케줄에 따라 CPU에서 실행되는 프로세스를 실행하는 활동입니다.
- 다중 프로그래밍 운영 체제에서 특히 중요합니다.
비선점 및 선점
- 비선점형(Non-preemptive): 간단히 말해서, 라운드 로빈, 자발적 반환, 강제로 빼앗지 않음(비선점형)
- Preemptive : 우선순위에 따라 프로세스 전환, 강제 인계(preemptive)
프로세스 스케줄링 큐
- OS는 PCB를 통해 프로세스 스케줄링 대기열을 관리합니다.
- OS는 프로세스의 상태에 따라 서로 다른 큐를 관리하며, 같은 큐에는 같은 상태의 프로세스 PCB가 저장된다.
- 작업 대기열: 시스템의 모든 현재 프로세스 모음(준비 대기열 + 장치 대기열)
- Ready Queue: 현재 메모리에서 CPU 실행을 선점하기 위해 대기 중인 프로세스 그룹입니다.
- 장치 대기열: I/O 장치를 처리하기 위해 대기 중인 프로세스 그룹입니다.
2. 스케줄러
스케줄러
- 각 리소스 정렬
장기 스케줄러(장기 스케줄러 또는 작업 스케줄러)
- PCB를 ReadyQ로 옮기는 과정을 담당
- 새로운 → 준비된
- 어떤 시작 프로세스를 준비 대기열로 보낼지 결정
- 프로세스에 메모리를 제공하는 것으로 생각하십시오.
- MPC
- 일반적으로 장기 스케줄러가 없거나 작습니다.
단기 스케줄러(단기 스케줄러 또는 CPU 스케줄러 또는 디스패처)
- 다음에 실행할 프로세스 결정
- 프로세스에 CPU 할당
- 장기 스케줄러보다 빠름
중기 스케줄러 또는 Swapper
- 공간을 확보하기 위해 전체 프로세스를 메모리에서 디스크로 팝
- 프로세스에서 메모리 가져오기(스왑 아웃, CS 용어로 일시 중지라고 함)
3. CPU 스케줄링
목적
- 이 프로세스의 목적은 CPU를 사용할 때 리소스를 정확하고 효율적으로 할당하는 것입니다.
- I/O 작업 중
자귀
- 도착 시간: 프로세스가 준비 대기열에 도착한 시간입니다.
- 완료 시간: 프로세스가 실행을 완료하는 데 걸린 시간입니다.
- 버스트 시간: 프로세스가 CPU에서 실행되는 데 걸리는 시간입니다.
- 처리 시간: 도착 시간과 완료 시간 사이의 중간 시간
성능 규모
1) CPU 기반
CPU 사용률
– CPU가 유휴 작업을 하지 않은 총 시간
– 고가의 리소스이므로 자주 사용
처리량
– 주어진 시간당 처리량
2) 사용자별
소요시간(소요시간, 반납시간)
– CPU 획득, 사용 및 방치에 소요된 시간
– 작성시간 및 대기시간 포함
대기 시간
– 프로세스가 준비 큐에서 대기한 시간
– CPU 쓰기 대기 시간
– 얼리 액세스 시 빼앗긴 후의 대기 시간 포함
응답 시간
– 처음으로 CPU를 얻는 데 걸린 시간
⇒ CPU를 최대한 사용하고, 높은 처리량, 낮은 처리 시간, 대기 시간 및 응답 시간, 높은 효율성.
일정 유형
FCFS(선착순)
- 프로세스 요청 순서대로 스케줄링(비선점)
- 단점: 호송 효과, 다른 모든 프로세스는 하나의 큰 프로세스가 CPU를 포기하기를 기다립니다.
최단 작업 우선(SJF)
- CPU 버스트 시간이 가장 짧은 프로세스가 먼저 예약됩니다.
- 장점: 최소 평균 대기 시간 보장(선점 시)
- 비선점형/선점형
– 비선점형: CPU가 점유된 경우 CPU 버스트가 완료될 때까지 CPU를 선점하지 않습니다.
– 선점형 : CPU 버스트 시간보다 짧은 CPU 버스트 시간을 가진 프로세스가 도착하면 CPU를 빼앗는다.
⇒ SRTF(Shortest Remaining Time First)라고 함 - 단점: 장기 실행 프로세스 기아
- 예상 CPU 버스트 시간이 가장 짧은 스케줄에 우선 순위를 부여하는 우선 순위 스케줄링
우선순위 스케줄링
- 우선 순위가 높은 프로세스에 CPU 할당
- 비선점형/선점형
- 단점: 배고픔
- 해결 방법: 시간 경과에 따라 프로세스의 우선 순위를 높입니다.
라운드 로빈(RR)
- 각 프로세스는 동일한 양의 할당된 시간(타임 슬라이스)을 가집니다.
- 할당된 시간이 경과하면 프로세스는 선점되고 준비 큐의 맨 뒤로 이동하여 다시 대기합니다.
- 할당 시간을 너무 크게 설정한 경우 → FCFS와 동일
- 너무 작은 할당 시간 → 큰 컨텍스트 전환 오버헤드
- 장점: 빠른 응답 시간
다단계 대기열
- 준비 대기열을 여러 개로 분할(각 행에 우선 순위가 있음)
- 프로세스는 특성에 따라 특정 대기열에 할당됩니다.
- 각 큐에는 독립적인 스케줄링 알고리즘이 있습니다.
다단계 피드백 대기열
- 준비 대기열이 있지만 우선 순위가 뒤바뀔 수 있습니다.
- 프로세스가 대기열 간에 이동하도록 허용
- 다단계 피드백 대기열 스케줄러의 매개변수를 정의합니다.
– 대기열 수
– 대기열별 스케줄링 알고리즘
– 더 높은 대기열로 프로세스를 보내기 위한 기준
– 프로세스를 하위 대기열로 보내는 기준
프로세스가 CPU 서비스를 받기를 원할 때 들어가는 대기열을 결정하기 위한 기준.