[OS] PCB & Context Switching

foresec·2023년 7월 20일
0

Computer Science

목록 보기
20/28

Process Management

CPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것

Process Metadata

  • Process ID
  • Process State : 실행 상태
  • Process Priority
  • CPU Registers
  • Owner
  • CPU Usage
  • Memory Usage

PCB(Process Control Block)

OS가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 DB를 PCB라 함.
OS는 빠르게 PCB에 접근하기 위해 프로세스 테이블을 사용하여 각 프로세스의 PCB를 관리함
프로세스 메타데이터를 저장해 놓는 곳이며, 한 PCB 안에는 한 프로세스의 정보가 담김

앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해둠

PCB 는 연결 리스트 방식으로 관리된다. 프로세스가 생성, 삭제될 때 PCB 의 삽입 삭제가 용이

Context Switching

CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정

  1. P0를 실행 중 interrupt가 발생하거나 system call이 발생하면 P0의 상태를 PCB0에 저장한다.
  2. PCB1에 저장된 P1의 상태를 불러와 복구한다.
  3. P1를 실행한다.
  4. 이때 다시 interrupt가 발생하거나 system call이 발생하면 P1의 상태를 PCB1에 저장한다.
  5. PCB0에 저장된 P0의 상태를 불러와 복구한다.
  6. P0를 실행한다.

Context Switching의 발생

멀티 태스킹

실행 가능한 여러개의 프로세스들이 운영체제의 스케쥴러에 의해, 우선순위에 따라 조금씩 번갈아가면서 수행된다. CPU를 할당 받는 프로세스가 변경될 때 마다 컨텍스트 스위칭이 일어난다.

인터럽트 핸들링

컴퓨터 시스템에서 예외 상황이 발생했을 때 이를 CPU 에게 알려 실행중이던 프로세스 정보를 저장하고 발생한 예외 상황을 처리하기 위한 컨텍스트 스위칭이 일어난다.

사용자모드 커널모드 전환 (User and Kernel mode Switching)

context switching 이 필수는 아니지만 운영체제에 따라 발생 가능하다.

Context

CPU 가 프로세스를 실행시키기 위해 필요한 정보들을 Context

Context Switching Overhead

오버헤드란, Context Switching에 걸린 시간과 메모리를 말함

overhead를 감수하더라도 Context Switching을 하는게 수고스럽지만 CPU를 낭비하지 않고 써먹을수 있어 더 이익임


참고
https://code-lab1.tistory.com/41
https://gyoogle.dev/blog/computer-science/operating-system/PCB%20&%20Context%20Switching.html
https://velog.io/@nnnyeong/OS-Context-Switching-PCB-Process-Control-Block

profile
왼쪽 태그보다 시리즈 위주로 구분

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 좋은 글 감사합니다!

답글 달기