CPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것
OS가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 DB를 PCB라 함.
OS는 빠르게 PCB에 접근하기 위해 프로세스 테이블을 사용하여 각 프로세스의 PCB를 관리함
프로세스 메타데이터를 저장해 놓는 곳이며, 한 PCB 안에는 한 프로세스의 정보가 담김
앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해둠
PCB 는 연결 리스트 방식
으로 관리된다. 프로세스가 생성, 삭제될 때 PCB 의 삽입 삭제가 용이
CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정
실행 가능한 여러개의 프로세스들이 운영체제의 스케쥴러에 의해, 우선순위에 따라 조금씩 번갈아가면서 수행된다. CPU를 할당 받는 프로세스가 변경될 때 마다 컨텍스트 스위칭이 일어난다.
컴퓨터 시스템에서 예외 상황이 발생했을 때 이를 CPU 에게 알려 실행중이던 프로세스 정보를 저장하고 발생한 예외 상황을 처리하기 위한 컨텍스트 스위칭이 일어난다.
context switching 이 필수는 아니지만 운영체제에 따라 발생 가능하다.
CPU 가 프로세스를 실행시키기 위해 필요한 정보들을 Context
오버헤드란, 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
정말 좋은 글 감사합니다!