패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.
프로세스(process)란?
실행 중인 프로그램
- 메모리에 올려져서 실행중인 프로그램
- 작업, task, job 이라는 용어와 혼용해서 사용.
응용 프로그램은 프로세스가 아니다
- 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음
- 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음
스케줄러
- 프로세스 실행을 관리!
스케줄링 알고리즘의 목표
- 시분할 시스템의 경우 -> 프로세스 응답 시간을 가능한 짧게
- 멀티 프로그래밍의 경우 -> CPU활용도를 최대로 높여서 프로세스를 빨리 실행
종류
- FIFO 스케줄러
- 최단 작업 우선(SJF) 스케줄러
- 우선순위 기반 스케줄러
- Round Robin 스케줄러
FIFO 스케줄러
- 먼저 요청한대로 실행
- 가장 간단한 스케줄러 (배치 처리 시스템과 비슷)
- FCFS(First Come First Served)스케줄러
스케줄러도 프로그램이라 자료구조를 썼을것이고
FIFO 개념을 적용했던 자료구조는? -> 바로 Queue!
최단 작업 우선(SJF) 스케줄러
SJF(Shortest Job First)스케줄러
- 프로세스 실행시간이 가장 짧은 프로세스부터 먼저 실행
장점
- 실행시간이 긴 프로세스들로 인해 짧은 프로세스들이 실행되는 딜레이가 없어짐
단점
- 각 프로세스별 실행시간을 알아야 함
우선순위 기반 스케줄러
Priority-Based 스케줄러
- 정적 우선순위
- 프로세스마다 우선순위를 미리 지정
- 동적 우선순위
- 스케쥴러가 상황에 따라 우선순위를 동적으로 변경
Round Robin 스케줄러
우선순위 기반 스케줄러와 반대되는 개념으로,
프로세스들 사이에 우선순위를 두지 않고 순서대로 시간단위로 CPU를 할당하는 방식
장점
- 응답시간이 짧아져 실시간 시스템에 유리
단점
- 문맥전환의 오버헤드가 크다
정리
다양한 기본 스케줄링 알고리즘
- FIFO(FCFS)스케줄링 알고리즘 (배치 처리 시스템)
- 최단 작업 우선(SJF) 스케줄링 알고리즘
- 우선순위 기반 스케줄링 알고리즘
- 정적 우선순위, 동적 우선순위
- Round Robin 스케줄링 알고리즘
- 시분할 시스템 기반
Comments