[정보처리기사] 스케줄링
[정보처리기사] 스케줄링
스케줄링
시스템의 여러자원을 해당 프로세서에게 할당하는 작업을
의미한다.
프로세스가 생성되어 실행될 때 필요한 시스템의 여러자원을
해당 프로세스에게할당하는 작업으로
공정성, 처리율증가, CPU 이용률 증가, 응답시간 및 반환시간최소화
를 목저으로 하는것
장기 스케줄링
시스템의 자원을 차지할 수있도록 할것인가?
중기 스케줄링
어떤 프로세서들이 CPU를 할당 받을것인지를 결정
단기 스케줄링
프로세서를 실행하기위해 CPU를 할당 받는 시기
[정보처리기사] 비선점스케줄링
비선점 스케줄링
이미 할당된 CPU를
다른 프로세스가 강제로 빼앗아 사용할수 없는것
비선점 스케줄링의 종류
기한부, FCFS, HRN,우선순위 SJF
[정보처리기사] 비선점스케줄링
선점 스케줄링
프로세스가 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는
스케줄링 기법
선점 스케줄링의 종류
Round Robin, 다단계 큐, SRT 선점 우선순위
[정보처리기사] FCFS
FCFS
(First Come First Service , 선입 선출)
준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는기법
평균 실행, 평균 대기, 평균 반환 구하는 공식
평균 실행 시간(Average Execution Time, AET)은 프로세스가 실행되는 데 걸리는 평균 시간을 의미합니다. 평균 대기 시간(Average Wait Time, AWT)은 프로세스가 실행을 기다리는 데 걸리는 평균 시간을 의미합니다. 평균 반환 시간(Average Turnaround Time, ATT)은 프로세스가 실행을 시작하고 종료하는 데 걸리는 평균 시간을 의미합니다. 평균 실행 시간은 다음 공식으로 계산할 수 있습니다
#include <stdio.h>
#include <stdlib.h>
int main() {
// 프로세스의 수
int n = 5;
// 각 프로세스의 실행 시간
int execution_times[] = {10, 20, 30, 40, 50};
// 각 프로세스의 대기 시간
int wait_times[] = {5, 10, 15, 20, 25};
// 각 프로세스의 반환 시간
int turnaround_times[] = {15, 30, 45, 60, 75};
// 평균 실행 시간
double aet = 0;
for (int i = 0; i < n; i++) {
aet += execution_times[i];
}
aet /= n;
// 평균 대기 시간
doubleawt = 0;
for (int i = 0; i < n; i++) {
awt += wait_times[i];
}
awt /= n;
// 평균 반환 시간
doubleatt = 0;
for (int i = 0; i < n; i++) {
att += turnaround_times[i];
}
att /= n;
// 출력
printf("평균 실행 시간: %.2f\n", aet);
printf("평균 대기 시간: %.2f\n", awt);
printf("평균 반환 시간: %.2f\n", att);
return 0;
}
평균반환 출력값
평균 실행 시간: 25.00
평균 대기 시간: 15.00
평균 반환 시간: 40.00
[정보처리기사] FCFS 평균대기시간
-평균대기시간 1번째 값
도착시간 =평균대기시간 첫번째 값
-평균대기시간 2번째 값
1번째CPU사용시간 - 2번째 도착시간 = 평균대기시간 2번째값
-평균대기시간 3번째 값
도착시간+ CPU사용시간+2번째대기시간=
평균대기시간 3번째값
[정보처리기사] SJF
SJF
단기 작업 우선
(Shortest Job First)
준비상태 큐애서 기다리고 있는 프로세스 중에서
실행기간이 가장 짧은 프로세스에게
먼저 CPU를 할당하는 기법
가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
[정보처리기사] HRN
HRN
(Hightest Response-ratio Nest)
대기시간과 서비스(실행)시간을 이용하는 기법
HRN 비선점형 스케줄링 우선순위 구하는 계산식을 쓰시오.
(대기시간 서비스시간)/서비스 시간
댓글