← 질문 목록
#234깊이 0

컨텍스트 스위칭은 왜 비용이 발생하는가?

운영체제기초동시성성능

현재 실행 중인 프로세스의 상태를 저장하고 다음 프로세스의 상태를 복원하는 과정에서 CPU 시간이 소모되기 때문이다.

  1. 실행 프로세스PCB 저장

    CPU 레지스터 값을 기록한다

  2. PCB 로드다음 프로세스

    저장된 값을 레지스터에 복구한다

이 동안 CPU는 실제 연산을 하지 않고 상태만 옮긴다. 페이지 테이블을 가리키는 레지스터를 바꾸면 TLB도 손봐야 한다. 다만 CPU가 주소 공간에 꼬리표를 달 수 있으면 통째로 비우지는 않는다.

CPU 캐시는 전환했다고 지워지지 않는다. 다음 작업이 자기 데이터를 올리면서 앞 작업의 것을 밀어낼 뿐이다. 그래서 돌아왔을 때 캐시 미스가 몰리고 제 속도를 되찾는 데 시간이 걸린다.

이 비용이 쌓이면 CPU가 일보다 전환에 더 오래 매달린다. 실제로 돌 준비가 된 스레드가 코어 수보다 훨씬 많고 한 번에 하는 일이 짧을 때 벌어진다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

컨텍스트 스위칭은 왜 비용이 발생하는가?