본문 바로가기

오늘의 공부/코딩테스트

운영체제 알고리즘 SJF 와 디스크 컨트롤러

https://programmers.co.kr/learn/courses/30/lessons/42627

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

운영체제 스케쥴링 알고리즘

CJSF 알고리즘

First Come First Start

" 온 순서대로 업무를 처리한다. "

 

단점: waiting time 이 길다.

 

SJF 알고리즘

Shortest Job First

"소요 시간이 짧은 업무부터 처리한다. "

 

장점: waiting time 이 단축된다.

단점: 미래에 올 업무의 소요 시간을 예측할 수 없어 실제로 사용할 순 없다.

 

Priority Scheduling

" 우선순위에 따라 업무를 처리한다. "

 

단점: 우선순위가 낮은 업무는 영원히 처리되지 않을 수도 있다!

해결책: 우선순위를 갱신해준다 (aging)

 

문제풀이

해당 알고리즘 문제는 SJF 알고리즘을 이용하여 풀 수 있다.

(고려사항)

1. 소요 시간이 짧은 업무부터 처리한다.

2. 업무를 수행하지 않는 상황이라면 먼저 들어온 업무를 수행한다. 

3. 업무를 수행하는 중에 들어온 업무에 대하여 : 소요 시간 순으로 자동 정렬해주는 heap을 사용한다.

4. 업무가 시작하는 시간과 끝나는 시간을 갱신하는 방법을 생각한다.

 

github 링크[클릭]