View
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-스케쥴링 알고리즘 기본
Melody:) 2021. 11. 24. 21:32프로세스(process)란?
- 실행중인 프로그램을 프로세스라고 부른다.
- 프로세스 : 메모리에 올려져서, 실행중인 프로그램
- 코드이미지(바이너리): 실행파일, 예:EELF format프로세스라는 용어는 작업, task, job이라는 용어와 혼용되어 쓰인다.
- 응용 프로그램 =! 프로세스
- 응용 프로그램은 여러개의 프로세스로 이루어질 수 있음.
- 하나의 응용 프로그램은 여러개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수 도 있음
- 간단한 C/C+ 프로그램을 만든다면 -> 하나의 프로세스
여러프로그램을 만들어서, 서로 통신하면서 프로그램을 작성할수도 있음(IPC기법 : 프로세스가 서로 통신하는 기법)
누가 프로세스 실행을 관리할까?
=> 스케쥴러
스케쥴링 알고리즘
어느 순서대로 프로세스를 실행시킬까?
- 목표
- 시분할 시스템 예: 프로세스 응답 시간을 가능한 짧게
- 멀티 프로그래밍 예: CPU활용도를 최대로 높혀서, 프로세스를 빨리 실행
FIFO
- 가장 간단한 스케쥴러(배치 처리 시스템과 유사)
- FCFS(First Come First Served)
- 들어온 순서대로 프로세서(CPU)에서 처리를 한다.
FIFO는 어디서 배웠을까?
- 배치처리시스템에서 쓰였던 스케줄러로, Queue의 자료구료를 활용한 First In Fist Out 시스템!!
최단 작업 우선(SJF) 스케쥴러
- SJF(Shortest Job First) 스케쥴러
- 가장 프로세스 실행시간이 가장 짧은 프로세스부터 먼저 실행을 시키는 알고리즘
- 실행시간을 알아야하는 단점이 존재.
여기서 잠깐!
- RealTime OS(RTOS) : 응용 프로그램 실시간 성능 보장을 목표로 하는 OS
- 정확하게 프로그램 시작, 완료 시간을 보장
- Hardware RROS, Software RTOS
- General Purpose OS(GPOS)
- 프로세스 실행 시간에 만감하지 않고, 일반적인 목적으로 사용되는 OS, 예:Windows, Linux 등
우선순위 기반 스케쥴러
- Priority-Based 스케쥴러
- 정적 우선순위
- 프로세스마다 우선순위를 미리 지정
- 동적 우선순위
- 스케쥴러가 상황에 따라 우선수위를 동적으로 변경
- 스케쥴러가 상황에 따라 우선수위를 동적으로 변경
- 정적 우선순위
Round Robin 스케쥴러
- 시분할 시스템으로 프로세스가 끝나지 않으면, Round Robin(RR) Ready Queue에 다음 순서로 담아진다.


오늘 배운 내용 정리
- 다양한 기본 스케쥴링 알고리즘
- FIFO(FCFS) 스케쥴링 알고리즘(배치처리 시스템)
- 최단작업우선(SJF) 스케쥴링 알고리즘
- 우선순위 기반 스케쥴링 알고리즘
- 정적 우선순위, 동적 우선순위
- Round Robin 스케쥴링 알고리즘
- 시분할 시스템 기반
'Computer Science > 운영체제(OS)' 카테고리의 다른 글
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-선점형과 비선점형 스케쥴러, 스케쥴링 알고리즘 조합 (0) | 2021.11.25 |
---|---|
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 상태와 스케쥴러, 프로세스 상태기반 스케쥴링 알고리즘 기본 (0) | 2021.11.24 |
컴공전공자_따라잡기 | CH02. 스케쥴링 - 멀티 프로그래밍 (0) | 2021.11.24 |
컴공전공자_따라잡기 | CH02. 스케쥴링 - 배치 처리, 멀티 태스킹, 멀티프로세 (0) | 2021.11.23 |
컴공전공자_따라잡기 | CH02. 운영체제 구조-사용자 모드와 커널 모드 (0) | 2021.11.23 |