프로세스 스케줄링
1) 프로세스 정의
2) 프로세스 상태
3) 프로세스 스케쥴링
다중프로그래밍 환경(context switching)에서 여러 프로세스들의(작업 수행시간이 길어지면 다른 프로세스들이 수행 가능하도록 조정) 각 작업 순서를 조정하는 작업
(1) preemptive(선점) programming
현재 수행중인 프로세스를 강제 중지 시키고 다른 프로세스가 수행할 수 있는 방법
대화식 시분할 시스템에 사용되며, 우선순위가 높은 프로세스 수행이 가능하고, 빠른 응답을 요구하는 프로세스를 처리하지만 선점으로 인한 오버해드 발생
1) round-robin scheduling
PSWR(program status word register)
cpu에 존재, 8 byte크기, 현재 수행중인 프로그램 조건, 코드, 레지스터 정보 저장, pc,스택(주기억)
(2)non-preemptive scheduling
비선점 스케줄링-FIFO,SJF,HRN
1) FIFO(FCFS)
- First in First out, 순서에 의해 대기큐에 돡한 프로세스들을 cpu가 처리
- 중요하지 않은 작업 수행으로 중요한 작업이 대기
- 긴 작업 수행으로 인해 짧은 작업이 대기
- 대화식 시분할 시스템에는 부적합한 방법
2) Shortest Job First(SJF)
- 작업 완료의 수행시간이 가장 적은 프로세스를 우선 처리하는 방법
- 프로세스 요구시간 파악이 어려운 단점이 있다.
3) Highest Response ratio Next(HRN)
03 스레드: 실행중에는 문맥 교환과 상관없이 수행되는 단위
프로세스에서 실행의 개념만을 분리한 것으로서, 입출력과 연계되는 작업에 제한을 받지 않고, 인터럽트(내부: s/w 프로그램과 동기, 외부: h/w 프로그램과 비동기)와 무관하게 cpu에 의해 처리되는 단위
스레드는 독립된 제어 흐름을 가지며, 자신의 스택과 레지스터와 같은 자원을 사용하고, 다른 스레드와 코드, 주소공간, 자원등을 공유하면서 수행
문맥교환: 할당> 인터럽트