pcb context map

PCB는 프로세스를 다시 이어 달리게 하는 실행 스냅샷이다

컨텍스트 스위칭은 단순 교체가 아니라 레지스터, 주소 공간, 큐 위치, 열린 파일, 캐시 영향을 저장하고 복원하는 커널 작업이다.

ID

식별 정보

PID, PPID, UID, GID가 관계와 권한의 기준이다.

CPU

CPU 상태

PC, SP, 레지스터 값이 중단 지점을 보존한다.

MEM

메모리 정보

주소 공간과 페이지 테이블이 접근 경계를 만든다.

I/O

열린 파일

파일 디스크립터 테이블이 외부 자원 연결을 유지한다.

trap

커널 진입

타이머 인터럽트나 시스템 콜로 제어권이 이동한다.

save

현재 상태 저장

실행 중인 레지스터를 현재 PCB에 기록한다.

select

다음 대상 선택

Ready Queue에서 스케줄러가 다음 프로세스를 고른다.

space

주소 공간 전환

페이지 테이블과 TLB 영향이 비용을 만든다.

restore

새 상태 복원

PC가 돌아가면 멈춘 다음 명령부터 이어진다.

비용
원인
증상
직접 비용

커널 진입, 레지스터 저장, 스케줄링 결정

초당 전환 수가 많을수록 CPU 시간이 줄어든다.

간접 비용

캐시 오염과 TLB 미스

다시 돌아온 프로세스가 데이터를 새로 데워야 한다.

스레드 이점

같은 주소 공간을 공유

페이지 테이블 전환 부담이 작아 프로세스 전환보다 가볍다.

ready

Ready Queue

CPU를 받을 수 있는 프로세스가 대기한다. 스케줄러의 선택 대상이다.

wait

Wait Queue

디스크, 네트워크, 시그널 같은 이벤트를 기다린다.

running

Running

현재 CPU에서 실행 중이며, 인터럽트가 오면 상태가 저장된다.

linux check

실제 시스템에서 확인

PCB 단서

/proc/<PID>/status에서 상태, 메모리, 스레드 수를 본다.

파일 연결

/proc/<PID>/fd에서 열린 파일과 소켓을 확인한다.

전환 횟수

자발적 전환과 비자발적 전환을 나누어 CPU 경쟁을 본다.