작업(Job) / 프로그램(Program)
- 실행 할 프로그램(즉, 아직 실행하지 않은 프로그램) + 데이터
- 컴퓨터 시스템에 실행 요청 전의 상태
프로세스(Process)
- 실행을 위해 시스템(커널)에 등록 된 작업
- 시스템 성능 향상을 위해 커널에 의해 관리됨
즉, 작업(Job)에서 메모리를 할당받으면 프로세스(Process)
실행중인 프로그램
- 커널에 등록되고 커널의 관리하에 있는 작업
- 각종 지원들을 요청하고 할당 받을 수 있는 개체
- 프로세스 관리 블록(PCB)을 할당 받은 개체
- 능동적인 개체(Active entity)
- 실행중에 각종 자원을 요구, 할당, 반납하며 진행
Process Control Block(PCB)
- 커널 공간내에 존재
- 각 프로세스들에 대한 정보를 관리
구분 | 종류 | 설명 |
---|---|---|
역할 | 시스템(Kernel) 프로세스 | 모든 시스템 메모리와 프로세스의 명령에 의해 엑세스 할 수 있는 프로세스이다. 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하게 하지 못하게 감시하고 사용자 프로세스를 생성하는 기능을 한다. |
사용자 프로세스 | 사용자 코드를 수행하는 프로세스이다. | |
병행 수행 방법 | 독립 프로세스 | 다른 프로세스에 영향을 주지 않고, 받지 않으면서 수행하는 병행 프로세스이다. |
협력 프로세스 | 다른 프로세스에 영향을 주거나, 영향을 받는 병행 프로세스이다. |
프로세스(Process)
- 커널에 등록된 실행 단위 (실행중인 프로그램)
- 사용자 요청 / 프로그램 수행 주체(entity)
OS의 프로세스 관리 기능
- 생성 및 삭제, 상태 관리
- 자원 할당
- 프로세스 간 통신 및 동기화
- 교착상태(dead lock) 해결
프로세스 정보 관리
- PCB(Process Control Block)
중앙 처리 장치(CPU)
- 프로그램을 실행하는 핵심 자원
프로세스 스케쥴링(Scheduling)
- 시스템내의 프로세스 처리 순서 결정
프로세서 할당 관리
- 프로세서들에 대한 프로세서 할당(한번에 하나의 프로세스만 사용 가능)
주 기억장치
- 작업을 위한 프로그램 및 데이터를 올려 놓는 공간
Multi-user, Multi-tasking System
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유 공간 관리
- 각 프로세스의 할당 메모리 영억 접근 보호
메모리 할당 방법
- 전체 적재
→ 장점: 구현이 간단
→ 단점: 제한적 공간
- 일부 적재
→ 장점: 메모리의 효율적 활용
→ 단점: 보조기억 장치 접근 필요
입출력 요구 입출력 요구 전달
-----------> ----------->
실행중인 프로세스 운영체제(OS) 입출력 처리 장치
<----------- <-----------
실행 가능한 상태로 전이 입출력 완료(인터럽트)
🎈 커널의 관리하에 프로세스에게 할당 및 반납 되는 수동적 개체(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의 성능을 결정짓는 중요한 요소 중 하나
지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다
잘 보고 가요~😉