CS/운영체제&네트워크

스케줄링 알고리즘

린예라 2022. 4. 2. 17:51

프로그램이 실행중인 상태 > 프로세스

프로그램 = 프로세스 가 아닌게 하나의 프로그램이 여러개의 프로세스로 실행중일 수 있다.

 

1. FIFO

먼저 들어간 순서대로 처리.  실행시간이 짧은 프로세스라도 응답시간이 길어질 수 있다.

 

2.최단작업우선 스케줄러 (Shortest Job First)

프로세스 실행시간이 가장 짧은 것부터 처리.

나름 합리적이나 모든 프로세스의 실행시간을 다 알 수 없다는 점에서 비현실적임.

 

3.우선순위 기반 스케줄러 (Priority Based Scheduler)

우선순위에 따라 작업처리

정적우선순위: 프로세스마다 우선순위를 미리 지정

동적우선순위: 스케줄러가 상황에 따라 우선순위를 동적으로 변경

 

4.Round Robin 스케줄러

FIFO로 실행하되 일정 시간이 지나면 바로 다음 작업실행 like 시분할시스템, 리볼버탄창 느낌

RealTime OS(RTOS) : 으용프로그램 실시간 성능 보장을 목표로 하는 OS. 정확하게 프로세스의 시작시간과 완료시간을 보장, 시간에 민감한 작업에 사용. 프로세스가 대체로 간단해야함 > 실행시간예측이 가능하게 > 공정등에 사용.

 

General Purporse OS(GPOS) : 그냥 우리가 사용하는 일반적인 OS.

 

 

멀티프로그래밍 : CPU를 최대한으로 활용 (쉴틈도 없이 악덕업자마냥 굴림)

그러려면 해당 프로세스의 상태를 알아야 굴려먹을 수 있다. 

프로세스 상태

종료 같은경우 > 움켜잡고 있는 자원을 종료전에 풀어줘야하는 경우도 있어서 필요.

 

 

프로세스 상태간 관계

유의할점은 Block 상태에서 바로 Running로 가지는 않음

 

그런데 이런 상태 정보만으로는 어떤것을 먼저 실행시켜야 할 지 결정하기 애매함.