컴퓨터 공학 & 통신
[개념 정리/운영체제] PCB & 컨텍스트 스위칭
왈왈디
2023. 7. 26. 15:58
728x90
PCB(Process Control Block)
PCB는 운영체제에서 관리하는 프로세스에 대한
메타 데이터를 저장한 데이터 블록이며,
중요한 정보이기에 커널 스택에 저장된다.
각 프로세스가 생성될 때마다
고유의 PCB가 생성되고
프로세스가 종료되면 PCB는 제거된다.
*커널 스택:
가상 메모리는 사용자 공간과 커널 공간으로 구분되며,
두 공간 모두 스택 자료구조를 기반으로 관리되어
사용자 스택, 커널 스택이라고도 부른다.
커널 스택은 가상 메모리 주소의 윗 부분을 말한다.
예를 들어, 가장 처음 시작하는 주소값이라고 볼 수 있다.
커널 스택은 커널 모드에서만 접근할 수 있으며,
사용자 스택은 유저 모드에서만 접근 가능하다.
*메타 데이터:
데이터에 관한 구조화된 데이터이자, 데이터를 설명하는 작은 데이터.
대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내어 이용하기 위해
일정한 규칙에 따라 콘텐츠에 부여되는 데이터이다.
필터링 기능에서 많이 사용된다.
PCB의 구조
PCB에는 다양한 것들이 포함되나,
가장 중요한 아래의 6가지만 살펴보자.
- 프로세스 상태(process state): 대기 중, 실행 중 등 프로세스의 상태
- 프로세스 번호(PID, process number): 각 프로세스의 고유 식별 번호 (프로세스 ID)
- 프로그램 카운터(PC, program counter): 이 프로세스에 대해 실행될 다음 명령의 주소에 대한 포인터
- 레지스터(register): 레지스터 관련 정보
- 메모리 제한(memory limits): 프로세스의 메모리 관련 정보
- 열린 파일 정보(list of open files): 프로세스를 위해 열린 파일 목록들
컨텍스트 스위칭(context switching)
컨텍스트 스위칭은 PCB를 기반으로 프로세스의 상태를 저장하고,
다시 복원시키는 과정이다.
(이하에서는 프로세스 기준으로 설명되나, 스레드도 가능함)
컨텍스트 스위칭은 프로세스 종료나 인터럽트에 의해 발생한다.
컨텍스트 스위칭 비용
- 유휴시간 발생: 컨텍스트 스위칭을 할 때마다 유휴시간(idle time)이 발생하여, CPU의 가용성이 떨어진다는 비용이 발생한다.
- 캐시 미스: 컨텍스트 스위칭 과정에서 TLB 상의 원래 실행하던 프로세스 캐싱 정보가 사라지고 새로운 프로세스 정보가 저장된다. 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 일어나므로, 캐시 클리어 과정이 반드시 수반되어, TLB에서 page table로 가서 다시 로드해야 하는 캐시 미스가 발생한다.
스레드에서의 컨텍스트 스위칭
스레드는 스택 영역을 제외한 모든 메모리를 공유하기 때문에
비용이 더 적고 시간도 더 적게 걸린다는 장점이 있다.
참고: inflearn 강의 'CS 지식의 정석 - 큰돌'
728x90