프로세스 예시
Job vs Process
•
작업 (Job) / 프로그램 (Program)
◦
실행 할 (프로그램 + 데이터) or 프로그램
◦
컴퓨터 시스템에 실행 요청 전의 상태
◦
디스크에 보관
•
프로세스 (Process)
◦
실행을 위해 시스템(커널)에 등록된 작업
◦
시스템 성능 향상을 위해 커널에 의해 관리 됨
Job이 디스크에 보관됨
실행하기 위해 시스템에 처리해달라고 요청
해당 요청(작업)이 시스템(커널)에 등록 ⇒ 프로세스
프로세스의 정의
•
실행 중인 프로그램
◦
커널에 등록되고 커널의 관리하에 있는 작업
◦
각종 자원들을 요청하고 할당 받을 수 있는 개체
◦
프로세스 관리 블록(PCB)을 할당 받은 개체
◦
능동적인 개체(active entity)
▪
실행 중에 각종 자원을 요구, 할당, 반납하며 진행
•
Process Control Block (PCB)
◦
커널 공간 (kernel space) 내에 존재
◦
각 프로세스들에 대한 정보를 관리
프로세스의 종류
자원(Resource)의 개념
커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체(passive entity)
•
자원의 분류
◦
H/W resources
▪
Processor, memory, disk, monitor, keyboard, Etc.
◦
S/W resources
▪
Message, signal, files, installed SWs, Etc.
Process Control Block (PCB) ⇒ 프로세스 제어 블록
•
OS가 프로세스 관리에 필요한 정보(데이터)를 저장하는 블록
•
프로세스 생성 시, 커널에 생성 됨
PCB가 관리하는 정보 (프로세스의 동작 상태)
•
PID : Process Identification Number
◦
프로세스 고유 식별 번호
•
스케줄링 정보
◦
프로세스 우선순위 등과 같은 스케줄링 관련 정보들
•
프로세스 상태
◦
자원 할당, 요청 정보 등
•
메모리 관리 정보
◦
Page table, segment table 등
•
입출력 상태 정보
◦
할당 받은 입출력 장치, 파일 등에 대한 정보 등
•
문맥 저장 영역 (context save area)
◦
프로세스의 레지스터 상태를 저장하는 공간 등
•
계정 정보
◦
자원 사용 시간 등을 관리
•
PCB 정보는 OS 별로 서로 다름
•
PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나
프로세스의 상태 (Process States)
•
프로세스 – 자원 간의 상호작용에 의해 결정
•
프로세스 상태 및 특성
Process State Transition Diagram
Created State
•
작업(Job)을 커널에 등록
•
PCB 할당 및 프로세스 생성
•
커널
◦
가용 메모리 공간 체크 및 프로세스 상태 전이
▪
Ready or Suspended ready
Ready State
•
프로세서 외에 다른 모든 자원을 할당 받은 상태
◦
프로세서 할당 대기 상태
◦
즉시 실행 가능 상태
•
Dispatch (or Schedule)
◦
Ready state → running state
Running State
•
프로세서와 필요한 자원을 모두 할당 받은 상태
•
Preemption
◦
Running state → ready states
◦
프로세서 스케줄링 (e.g, time-out, priority changes)
•
Block/sleep
◦
Running state → asleep state
◦
I/O 등 자원 할당 요청
Blocked/Asleep State
•
프로세서 외에 다른 자원을 기다리는 상태
•
자원 할당은 System call에 의해 이루어 짐
•
Wake-up
•
Asleep state → ready state