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로 가지는 않음