작업(Job) / 프로그램(Program)
Job이란 우리가 짠 프로그램과 이 프로그램이 처리하는 데이터를 묶어놓은 것이다. 심플하게 프로그램이라고 부르기도 한다. Job은 Disk에 보관된 상태이고 실행 요청 전의 상태이다.
프로세스(Process)
실행을 위해 시스템(커널)에 등록된 작업이다. 시스템에 등록됐다는 것은 메모리를 할당받았다는 것이다. 시스템 성능 향상을 위해 시스템(커널)에 의해 관리된다. 각종 자원들을 요청하고 할당 받을 수 있는 개체이며, 프로세스 관리 블록(PCB)을 할당받은 개체이다.
Process Control Block(PCB)
커널 공간 내에 존재하며 각 프로세스들에 대한 정보를 관리한다.
시스템(커널) 프로세스
모든 시스템 메모리와 프로세서의 명령에 액세스 할 수 있는 프로세스이다. 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하지 못하게 감시하고, 사용자 프로세스를 생성하는 기능을 한다.
사용자 프로세스
사용자 코드를 수행하는 프로세스이다.
독립 프로세스
다른 프로세스에 영향을 주지 않거나 다른 프로세스의 영향을 받지 않으면서 수행하는 병행 프로세스이다.
협력 프로세스 다른 프로세스에 영향을 주거나 다른 프로세스에서 영향을 받는 병행 프로세스이다.
프로세스에게 할당/반납되는 수동적 개체(passive entity)를 자원이라 한다. 이러한 프로세스 할당/반납을 관리하는 것이 커널이다.
하드웨어 리소스(H/W resources)
Processor, memory, disk, monitor, keyboard, Etc.
소프트웨어 리소스(S/W)
Mesasge, Signal, files, installed SWs, etc.
Process Identification Number(PID)
프로세스 고유 식별번호
스케줄링 정보
프로세스 우선순위 등과 같은 스케줄링 관련 정보들
프로세스 상태
자원 할당, 요청 정보 등
메모리 관리 정보
Page table, segment table 등
입출력 상태 정보
할당 받은 입출력 장치, 파일 등에 대한 정보 등
문맥 저장 영역(context save area)
프로세스의 레지스터 상태를 저장하는 공간 등
계정 정보
자원 사용 시간 등을 관리