아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.
📃 참고자료
# Job vs Process
작업 (Job) / 프로그램 (Program)
- 실행 할 프로그램 + 데이터
- 컴퓨터 시스템에 실행 요청 전의 상태
프로세스 (Process)
- 실행을 위해 시스템(커널)에 등록한 작업
- 시스템 성능 향상을 위해 커널에 의해 관리 됨
프로세스의 정의
실행중인 프로그램
- 커널에 등록되고 커널의 관리하에 있는 작업
- 각종 자원들을 요청하고 할당 받을 수 있는 개체
- 프로세스 관리 블록(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, signa, 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 chages) - Block / sleep
- Running state -> asleep state
- I/O 등 자원 할당 요청
Blocked / Asleep State
- 프로세서 외에 다른 자원을 기다리는 상태
- 자원 할당은 System call에 의해 이루어 짐 - Wake-up
- Asleep state -> ready state
Suspended State
- 메모리를 할당 받지 못한(빼앗긴) 상태ㅐ
- Memory image 를 swap device에 보관
* Swap device : 프로그램 정보 저장을 위한 특별한 파일 시스템
- 커널 또는 사용자에 의해 발생 - Swap-out (suspended), Swap-in (resume)
Terminated / Zombie State
- 프로세스 수행이 끝난 상태
- 모든 자원 반납 후,
- 커널 내에 일부 PCB 정보만 남아 있는 상태
- 이후 프로세스 관리를 위해 정보 수집
# 프로세스 관리를 위한 자료구조
- Ready Queue
- I/O Queue
- Device Queue
반응형
'IT > CS(컴퓨터 과학)' 카테고리의 다른 글
스레드 관리(Thread management) (0) | 2021.08.31 |
---|---|
프로세스 관리(Process Management) - (2 / 2) (0) | 2021.08.30 |
운영체제 개요(Operating System Overview) - (3 / 3) (0) | 2021.08.28 |
운영체제 개요(Operating System Overview) - (2 / 3) (0) | 2021.08.27 |
운영체제 개요(Operating System Overview) - (1 / 3) (0) | 2021.08.26 |