Processor가 활동 중인 것을 Process라고 하며
Process 생성 시 프로세스 제어 블록이 만들어진다.
여기서 프로세스에서 실행 제어만 분리한 실행 단위를 Thread라고 하며
1개의 Process는 여러 개의 Thread 가질 수 있다.
프로세스 상태 | 설명 |
---|---|
생성 상태 Create |
사용자에 의해 프로세스가 생성된 상태 |
준비 상태 Ready |
CPU 할당 받을 수 있는 상태 준비 리스트: 각각의 우선 순위를 부여하고 가장 높은 순위를 갖는 프로세스가 다음 순서의 CPU 할당 받는다. |
실행 상태 Running |
프로세스가 CPU 할당 받아 동작, 실행 중인 상태 |
대기 상태 Waiting |
프로세스 실행 중, IO 처리 등으로 인해 CPU 양도하고 IO 처리가 완료될 때까지 대기 리스트에서 기다리는 상태 대기 리스트 : 우선 순위 존재 X |
완료 상태 Complite |
프로세스가 CPU 할당 받아 주어진 시간 내에 완전히 수행을 종료하는 상태 |
이때 프로세스의 상태가 변하는 활동을 프로세스 상태 전이라고 한다.
준비
상태인 여러 Process 중 실행될 프로세스를 선정하여 CPU 할당하는 것 (dispatching)준비
에서 실행
상태로 전이된다.준비
상태로 전이된다.실행
상태인 프로세스가 지정된 할당 시간을 초과하기 전에 I/O 발생이나 실행
→ 대기
준비
상태로 전이된다.대기
→ 준비
프로세스 스케쥴링
☆☆☆프로세스 스케쥴링
에 의해 Process Scheduling의 목적
- 모든 작업에 대한 공평성을 유지해야 한다.
- 처리량 (처리율, CPU 이용률)을 최대화해야 한다.
- 경과 시간의 예측이 가능해야 한다.
- Overhead, 응답시간, 반환시간, 대기시간을 최소화 해야한다.
프로세스 스케쥴링
은 방식에 따라 선점형 스케쥴링
과 비선점형 스케쥴링
나뉘어진다.선점형 스케쥴링
/ Preemptive Scheduling하나의 Process가 CPU 차지하고 있을 상황에서 우선 순위가 높은 Process가 들어오면
현재 프로세스를 Block (대기)하고, CPU 점유하는 Schduling 방식
Overhead
=> 프로그램 실행 흐름에서 나타나는 현상 중 하나
=> 프로세스 실행 도중, 다른 프로세스를 실행해야 할 경우가 생겼을 때
추가적인 시간이나 메모리 등의 자원이 사용되는 현상
=> 특정 기능을 수행하는데 드는 간접적인 시간, 메모리 등의 자원
시분할 시스템
) 사용하는 Scheduling 기법Time Sharing System 시분할 시스템
- CPU Scheduling과 다중 프로그래밍을 이용해서
- 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여
- 이용할 수 있게 하는 대화식 시스템
비선점형 스케쥴링
/ Non Preemptive Scheduling기아 현상 (Starvation 현상)
- 시스템 부하가 많아서 낮은 등급의 준비 Queue에 있는
프로세스가 무한정 기다리는 현상
발생 조건 | 설명 |
---|---|
상호 배제 Mutual Exclusive |
프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태 |
점유와 대기 Hold & Wait |
한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태 |
비 선점 Non Preemption |
한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고 오직 점유한 프로세스 만이 해제가 가능한 상태 |
원형 대기 Circular Wait |
2개 이상의 Process 간 자원의 점유와 대기가 하나의 원형을 구성한 상태 |
기법 | 설명 | 세부 기법 |
---|---|---|
예방 Prevention |
상호 배제를 제외한 나머지 교착 상태 발생 조건을 위배, 하는 방안 |
점유 자원 해제 후 새 자원 요청 |
회피 Avoidance |
교착 상태의 발생 가능성을 배제하지 않고 이를 적절하게 피해나가는 방법 |
은행원 알고리즘 Wound-wait, Wait-die |
발견 Detection |
시스템의 상태를 감시 알고리즘 통해서 교착 상태를 검사하는 방법 |
자원 할당 그래프 Wait for Graph |
복구 Recovery |
교착 상태가 없어질 때까지 프로세스를 Kill, 순차적으로 제거 희생될 프로세스 선택해야 한다. 기아 상태가 발생 |
Process Kill 자원 선점 |
은행원 알고리즘
- 사용자 Process는 사전에 자기 작업에 필요한 자원의 수를 제시하고
- 운영체제가 자원 상태를 감시, 안정 상태인 경우에만 자원을 할당하는
- 교착 상태 '회피' 기법