반응형
1. Process
1.1 Job vs Process
- 작업(Job) / 프로그램(Program)
- 실행 할 프로그램(즉, 아직 실행하지 않은 프로그램) + 데이터
- 컴퓨터 시스템에 실행 요청 전의 상태 - 프로세스(Process)
- 실행을 위해 시스템(커널)에 등록 된 작업
- 시스템 성능 향상을 위해 커널에 의해 관리됨
즉, 작업(Job)에서 메모리를 할당받으면 프로세스(Process)
1.2 프로세스의 정의
- 실행중인 프로그램
- 커널에 등록되고 커널의 관리하에 있는 작업
- 각종 지원들을 요청하고 할당 받을 수 있는 개체
- 프로세스 관리 블록(PCB)을 할당 받은 개체
- 능동적인 개체(Active entity)
- 실행중에 각종 자원을 요구, 할당, 반납하며 진행 - Process Control Block(PCB)
- 커널 공간내에 존재
- 각 프로세스들에 대한 정보를 관리
1.3 프로세스의 종류
구분 | 종류 | 설명 |
역할 | 시스템(Kernel) 프로세스 | 모든 시스템 메모리와 프로세스의 명령에 의해 엑세스 할 수 있는 프로세스이다. 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하게 하지 못하게 감시하고 사용자 프로세스를 생성하는 기능을 한다. |
사용자 프로세스 | 사용자 코드를 수행하는 프로세스이다. | |
병행 수행 방법 | 독립 프로세스 | 다른 프로세스에 영향을 주지 않고, 받지 않으면서 수행하는 병행 프로세스이다. |
협력 프로세스 | 다른 프로세스에 영향을 주거나, 영향을 받는 병행 프로세스이다. |
2. 운영체제의 기능
- 프로세스 관리
- 프로세서 관리 (CPU)
- 메모리 관리
- 파일 관리
- 입출력 관리
- 보조 기억 장치 및 기타 주변 장치 관리 등
2.1 Process Management
- 프로세스(Process)
- 커널에 등록된 실행 단위 (실행중인 프로그램)
- 사용자 요청 / 프로그램 수행 주체(entity) - OS의 프로세스 관리 기능
- 생성 및 삭제, 상태 관리
- 자원 할당
- 프로세스 간 통신 및 동기화
- 교착상태(dead lock) 해결 - 프로세스 정보 관리
- PCB(Process Control Block)
2.2 Processor Management
- 중앙 처리 장치(CPU)
- 프로그램을 실행하는 핵심 자원 - 프로세스 스케쥴링(Scheduling)
- 시스템내의 프로세스 처리 순서 결정 - 프로세서 할당 관리
- 프로세서들에 대한 프로세서 할당(한번에 하나의 프로세스만 사용 가능)
2.3 Memory Management
- 주 기억장치
- 작업을 위한 프로그램 및 데이터를 올려 놓는 공간 - Multi-user, Multi-tasking System
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유 공간 관리
- 각 프로세스의 할당 메모리 영억 접근 보호 - 메모리 할당 방법
- 전체 적재
→ 장점: 구현이 간단
→ 단점: 제한적 공간
- 일부 적재
→ 장점: 메모리의 효율적 활용
→ 단점: 보조기억 장치 접근 필요
2.4 File Management
- 파일: 논리적 데이터 저장 단위
- 사용자 및 시스템의 파일 관리
- 디렉토리 구조 지원
- 파일 관리 기능
- 파일 및 디렉토리 생성 및 삭제- 파일 접근 및 조작
- 파일을 물리적 저장 공간으로 사상
- 백업 등
2.5 I/O Management
- 입출력 과정
- OS를 반드시 거쳐야 함
입출력 요구 입출력 요구 전달
-----------> ----------->
실행중인 프로세스 운영체제(OS) 입출력 처리 장치
<----------- <-----------
실행 가능한 상태로 전이 입출력 완료(인터럽트)
3. 자원(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의 성능을 결정짓는 중요한 요소 중 하나
지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다
반응형
'OS' 카테고리의 다른 글
[OS] - Virtual Memory - Non-continuous allocation (32) | 2024.06.26 |
---|---|
[OS] - Scheduling Algorithms (34) | 2024.06.26 |
[OS] - Scheduling (29) | 2024.06.25 |
[OS] - Thread (30) | 2024.06.25 |
[OS] - Process states (32) | 2024.06.25 |