-
(6) PCB & Context SwitchingCS 지식/○ OS(Operating System) 2021. 6. 16. 14:57
1. Process Management 란?
1-1) 정의
CPU 프로세스가 여러개일 때 CPU 스케쥴링을 통해 프로세스들을 관리하는 것을 말함
이 때, CPU는 정보를 활용하여 프로세스들을 관리하고 이때 사용하는 정보가
Process Metadata※ Metadata란?
메타데이터(metadata)는 데이터(data)에 대한 데이터이다. 이렇게 흔히들 간단히 정의하지만 엄격하게는, Karen Coyle에 의하면 "어떤 목적을 가지고 만들어진 데이터 (Constructed data with a purpose)"라고도 정의한다.
1-2) Process Metadata
- Process ID (PID)
- Process State
- Process Priority
- CPU registers
- Owner
- CPU usage
- Memory usage
2. PCB란?
2-1) 정의
위에서 정의한 Process별 Process Metadata가 생성되고
이것이 저장되는 곳이 PCB( Process Control Block ) 이라고 함
2-2) Process 생성 flow
- 프로그램 실행
- 프로세스 생성 (like system call)
- 프로세스 주소공간에 Code, data, stack 생성
- 이 정보들(+ 1-2)의 정보들)이 메타데이터로 PCB의 head에 새로운 item in linked list로 저장됨
- Process 종료시 PCB에서 제거됨
2-3) PCB 필요의 이유
PCU에서는 프로세스 상태에 따른 교체 작업이 이루어진다
(interrupt 발생, 할당받은 프로세스가 waiting 상태로 바뀌고
[+ 복귀주소 저장 → 인터럽트 벡터로 점프 → 인터럽트 처리] → 원래 process 복귀 )
※ 이때 수행 대기하는 프로세스 메타 정보를 PCB 스택에 저장
PCB 자료구조
1) linked list 방식의 stack으로 관리
- PCB list head( =Stack 입구)에 PCB들이 생성될 때 마다 붙게 됨
- Linked list 특성상 삽입 삭제가 매우 용이2) Process 생성시( 2-2 (2) 와 동일)
- 생성시 PCB 생성, 완료시 제거
이렇게 수행중인 프로세스 변경 시 CPU 레지스터(상태 레지스터), PC 등이 변하게 되는데 이를
Context Switching 이라고 함3. Context Switching
3-1) 정의
CPU가 이전 프로세스 상태를 PCB(Stack , linked-list)에 보관하고
수행할 다른 프로세스의 정보를 PCB에서 읽어 레지스터 값 등을 변경하는 과정3-2) 발생 경우
참조 :
https://korshika.tistory.com/132?category=970462
> 기본적으로 PCB에서 값읽어와서 교체할 때 발생
3-3) Overhead
context switching 과정에서는 CPU가 작업을 할 수 없으므로
추가 비용이 발생
메모리가 프로세스 단위로 관리되므로 메모리 안정성이 있으나 Context-switching시 CPU가 놀게 되는 비용이 단점
참조
https://gyoogle.dev/blog/computer-science/operating-system/PCB%20&%20Context%20Switching.html
반응형'CS 지식 > ○ OS(Operating System)' 카테고리의 다른 글
(8) CPU Scheduling (0) 2021.06.21 (7) IPC - Inter Process Communication (0) 2021.06.20 (5) System Call (0) 2021.06.15 (4) 인터럽트 (0) 2021.06.15 (3) 프로세스 주소 공간 (0) 2021.06.13