Process의 정의 = Job, Task
프로세스는 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 운영체제가 관리하는 실행 단위
PCB(Process Control Block, 프로세스 제어블록)
PCB는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로, Task Control Block또는 Job Control Block이라고 한다.
PCB에 저장되어있는 정보
- 프로세스의 현재 상태
- 포인터
- 프로세스 고유 식별자
- 스케줄링 및 프로세스의 우선순위
- CPU레지스터 정보
- 주기억장치 관리 정보
- 입출력 상태 정보
- 계정 정보
프로세스 상태 전이
프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스 상태가 변하는것
상태전이도로 프로세스 상태를 나타냄!
- 제출(Submit): 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(Hold): 제출된 작업이 스풀 공간인 디스크 할당 위치에 저장된 상태
- 준비(Ready): 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
프로세스는 준비상태 큐 에서 실행 준비
접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행
- 실행(Run): 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
프로세스 수행이 완료되기전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 프로세스는 준비 상태로 전이된다
준비상태에서 실행 상태로의 전이는 CPU 스케줄러에 의해 수행
- 대기(Wait), 보류, 블록(Block): 프로세스에 입출력처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될때까지 대기하고 있는 상태이다.
- 종료(Terminated Exit): 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태이다.