개념정리
- 자원: 컴퓨터에서 사용될 수 있는 요소. 하드웨서, 소프트웨어, 데이터 자원 등
- 프로그램: 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음
- 프로세스: 실행되기 위해 주기억 장치로 옮게진 프로그램. ⇒ 실행중인 프로그램
- 프로세서: 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 제어 장치
- 프로세서 제어 블록(PCB): 프로세스의 중요한 정보를 포함하는 운영 체제 커널의 자료구조
- 스케줄링(scheduling): 다중 프로그래밍을 가능케 하는 운영체제의 동작기법
- 교착 상태(Deadlock): 두 개 이상의 작업이 서로 끝나기를 기다리고 있어서 결과적으로 아무것도 완료되지 못하는 상태
- 준비 큐: 프로세스가 CPU를 할당받기위해 대기함
내용정리
- 프로세스 상태
-
생성(new): 프로세스가 생성 중임. 생성된 프로세스는 준비 큐에 등록됨.
-
준비(ready): 프로세스가 CPU에 할당되기를 기다림. 준비 큐에 연결된 상태.
-
실행(running): 명령어(코드)들이 실행되고 있음.
-
대기(waiting): 프로세스가 I/O(입출력)을 위해 대기하는 상태. 준비 큐로 돌아가지 않고 대기.
-
종료(terminated): 프로세스의 실행이 종료
※ 준비 큐로 돌아가는 상태는?
할당된 시간을 모두 소진한 경우 돌아감 → 준비 큐에서 CPU를 할당받기 위해 또 기다림(실행→준비)
입/출력이 완료될 경우 준비 큐로 돌아감(대기→준비)

프로세스 스케줄링
준비 상태의 프로세스 중 먼지 실행상태가 될 프로세스를 결정하는 것.
FCFS(First Come First Server) 스케줄링
먼저 요청한 프로세스를 먼저 처리하는 방식
- 자원의 효율성을 높임
- 일괄 처리 시스템(한꺼번에 모아서 처리하는 시스템)에 적합
- 프로세서를 장시간 독점하는 경우 다른 프로세스들이 오래 기다려야 함
- 우선순위가 높은 프로세스를 빨리 처리하지 못할 수도 있음

SJF(Shortest Job First) 스케줄링
실행시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
- 가장 적은 평균대기 시간을 제공
- 실행시간이 긴 프로세스는 순위가 밀려 무한 연기 상태가 될 수 있음(=기아상태 유발)

HRN(Highest Response-ratio Next) 스케줄링:
실행 시간이 긴 프로세스에게 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 실행 시간을 이용
- SJF의 단점을 보완

RR(Round Robin)스케줄링
기본적으로 FCFS와 동일하지만 시간 할당향 동안만 실행하는 기법
- 시분할 시스템을 위해 고안된 방식
- 할당되는 시간이 매우 클 경우 FCFS와 동일
- 할당되는 시간이 매우 작을 경우 오버헤드가 발생

우선순위(Priority) 스케줄링
- 우선순위 가 동일할 경우 FCFS기법으로 CPU를 할당.
- 낮은 순위를 부여 받는 프로세스는 무한 연기 또는 기아 생태가 발생 할 수 있음.


선점: 실행중인 프로세스를 중간에 뺏을 수 있다
비선점: 그거 안됨