← 질문 목록
#221깊이 0
컨텍스트 스위칭 시 CPU는 무엇을 저장하고 복원하는가?
현재 실행 중인 프로세스의 상태 정보인 PCB로 상태를 저장하고, 다음으로 실행할 프로세스의 PCB에서 상태를 복원한다.
CPU 레지스터→현재 PCB
프로그램 카운터와 레지스터 값을 옮겨 적는다
다음 PCB→CPU 레지스터
저장해 둔 값을 덮어쓴다
상태 저장 시 CPU의 프로그램 카운터(PC)과 레지스터 값들이 PCB에 옮겨진다. 그래야 나중에 다시 돌아왔을 때 중단된 지점부터 정확히 연산으로 돌아갈 수 있다.
이후 스케줄러가 선택한 다음 프로세스의 PCB를 읽어 CPU 레지스터에 값을 덮어쓴다. 이 과정에서 CPU는 어떤 실제 연산을 수행하지 않는 것을 오버헤드로 본다.
전환 뒤 캐시 미스가 늘어나는 비용이 중요하다. CPU 캐시가 지워지는 것이 아니라 새 작업의 데이터에 밀리는 것이고, TLB도 꼬리표를 달 수 있으면 통째로 비우지 않는다. 단순한 레지스터 복원보다 이 캐시 초기화 비용이 더 크다.
추천 꼬리질문
관련 질문
- 컨텍스트 스위칭 비용은 구체적으로 어디서 발생하는가?운영체제컨텍스트 스위칭 비용이 발생하는 구체적인 원인 중 하나인 레지스터 및 PCB 저장·복원 과정을 다룬다.
- 스레드를 늘려도 CPU 병렬성이 없는 이유는?언어 · 런타임CPU 병렬성 부족의 원인인 컨텍스트 스위칭 오버헤드와 직접적으로 연관된다.
- 프로세스 스케줄링 방식은 무엇으로 결정하는가?운영체제프로세스 스케줄링의 결과로 발생하는 컨텍스트 스위칭 과정과 밀접하게 연관되어 있다.
- CPU와 메모리 중 무엇이 데이터 처리 속도를 결정하는가?운영체제CPU의 상태 저장 및 복원 과정은 데이터 처리 속도와 성능에 직접적인 영향을 주는 핵심 메커니즘이다.
- CPU 스케줄러의 단계별 역할은 무엇인가?운영체제