1. 스케줄링
- 스케쥴링은 처리율과 CPU 이용률을 증가시키고, 오버헤드/응답시간/반환시간/대기시간을 최소화 시키는 기법
- 프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것
- 디스크 스케줄링 : 디스크를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것
2. 스케줄링 방식
1) 선점형 : (실행->대기), (실행->준비), (대기->준비), (수행->종료) 모든 상태 변화에서 적용된다.
- 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있다.
- 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있어 빠른 응답을 요하는 대화식 시분할 시스템에 적합하다.
2) 비선점형 : 프로세스가 (실행->대기), (실행->종료) 로 상태 전이가 있을 때 적용된다.
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
- 일괄 처리 시스템에 적합하다.
- 하나의 프로세스가 CPU 사용시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있기 때문에 처리율이 떨어질 수 있다는 단점이 있다.
3. 스케쥴링 알고리즘
1) 선점형
- SRT(Shortest Remaing Time) : 잔여 시간이 짧은 프로세스를 우선으로 하는 방식
- RR(Round Robin) : 프로세스 사이에 우선 순위를 두지 않고, 순서대로 시간 단위로 CPU를 할당하는 방식
- MQ (Multi-level Queue) : 프로세스를 특정 그룹으로 분류해서 여러 작업 큐에 할당하는 방식
2) 비선점형
- SJF(Shortest Job First) : 버스트 시간이 짧은 프로세스부터 CPU를 할당한다.
- FCFS(First Com First Served) : 먼저 CPU를 요청한 프로세스를 먼저 처리하는 방식
- HRN(highest Response-ratio Next) : 우선순위 알고리즘으로 계산한 값이 큰 프로세스부터 실행하는 방식
* 우선순위 = (실행시간 + 대기시간) / 대기시간
'면접 - 운영체제' 카테고리의 다른 글
개발자 면접 질문 - 페이징(Paging)과 세그멘테이션(Segmentation) (0) | 2020.12.04 |
---|---|
개발자 면접 질문 - Write through, Write Back 차이 (0) | 2020.12.04 |
개발자 면접 질문 - 라운드 로빈 스케쥴링(Round Robin Scheduling) (0) | 2020.12.04 |
개발자 면접 질문 - BFS 와 DFS 정의 (0) | 2020.12.04 |
개발자 면접 질문 - 데드락(Dead Lock) 정의 (0) | 2020.12.04 |