Process
프로세스란 실행중인 프로그램의 단위이다. 프로세스는 프로그램 카운터의 값과 처리기 레지스터의 내용으로 대표되는 현재 활동을 포함한다. 프로세스는 일반적으로 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시적인 자료를 가지는 프로세스 스택과 전역변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행중에 동적으로 할당되는 메모리인 힙을 포함한다.프로세스별로 각각 독립적인 메모리를 할당받는다. 하나의 프로세스가 오류로 인해 중지되어도 다른 프로세스에게 영향을 주지 않는다. 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 된다.
Process Status
- New : 프로세스가 생성중이다
- Running : 명령들이 실행중이다
- Waiting 프로세스가 어떤 사건이 일어나기를 기다린다
- Ready : 프로세스가 처리기에 할당되기를 기다린다
- Terminated : 프로세스가 실행을 종료하였다
PCB
Process Control Block는 다음과 같은 내용을 포함한다
- 프로세스 상태
- 프로그램 카운터 : 프로세스가 다음에 실행할 명령의 주소
- CPU 레지스터들
- CPU 스케쥴링 정보
- 메모리 관련 정보 : base와 limit 레지스터를 통한 접근 가능한 메모리 주소 정보 관리 등..
- Accounting 정보 : cpu가 사용된 양과 사용된 실제 시간 등을 포함
- 입출력 상태 정보