CS 지식/○ OS(Operating System)

(6) PCB & Context Switching

코르시카 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

  1. 프로그램 실행
  2. 프로세스 생성 (like system call)
  3. 프로세스 주소공간에 Code, data, stack 생성
  4. 이 정보들(+ 1-2)의 정보들)이 메타데이터로 PCB의 head에 새로운 item in linked list로 저장됨
  5. 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

 

(2) 프로세스 & 스레드

1. 프로세스와 스레드 1-1) 정의 (a) 프로세스 : 메모리 상에서 실행중인 프로그램의 작업 (b) 스레드 : 프로세스 안에서 실행되는 여러 흐름의 단위 1-2) 기본 개념 (a) 프로세스-스레드 관계 기본적

korshika.tistory.com

> 기본적으로 PCB에서 값읽어와서 교체할 때 발생

 

3-3) Overhead

context switching 과정에서는 CPU가 작업을 할 수 없으므로
추가 비용이 발생
메모리가 프로세스 단위로 관리되므로 메모리 안정성이 있으나 Context-switching시 CPU가 놀게 되는 비용이 단점

 

 


참조

https://gyoogle.dev/blog/computer-science/operating-system/PCB%20&%20Context%20Switching.html

 

PCB & Context Switching | 👨🏻‍💻 Tech Interview

PCB & Context Switching Process Management CPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함 이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함 프로세스들의 특징을 갖고있

gyoogle.dev

 

반응형