본문 바로가기
Computer Science/운영체제

문맥교환(context switching)과 오버헤드(overhead)

by 양찬우 2021. 5. 30.
728x90

1. 문맥교환 Context Switching 

Diagram showing context switch from process to process

하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업

프로세스의 문맥(context)은 PCB에 저장된다. 인터럽트(interrupt)가 발생하면 시스템은 현재 수행 중인 프로세스의 문맥을 저장하고, 이후 해당 프로세스가 재개될 때 복원한다.

 

즉, 문맥교환이란

1.CPU 코어를 다른 프로세스로 교환

2. 현재 프로세스의 상태를 저장

3. 다른 프로세스의 상태를 복원하는 작업(task)를 말한다.

 

문맥교환시점 

  • 멀티태스킹
  • 인터럽트 핸들링
  • 사용자 모드와 커널 모드 간의 전환 

2. 오버헤드 (Overhead) 

어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.

예를 들어 A라는 처리를 단순하게 실행한다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면, 오버헤드는 5초가 된다. 또한 이 처리 B를 개선해 B'라는 처리를 한 결과, 처리시간이 12초가 되었다면, 이 경우 오버헤드가 3초 단축되었다고 말한다

 

 

3. 문맥교환과 오버헤드 

문맥을 교환하는 동안에는 유용한 작업을 수행할 수 없기 때문에, 문맥 교환 시간은 일종의 오버헤드라고 할 수 있다.

복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer, CISC)축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer, RISC, 리스크)는 각각 장단점이 있는데, 문맥교환 측면에 보면 RISC의 경우 레지스터의 용량이 CISC보다 상대적으로 크기 때문에 좀 더 큰 오버헤드가 발생한다.

 

 

참고문헌

Operating System Concepts, 10th Ed. feat. by silberschatz et al.

문맥교환의 정의 - 리눅스 정보 프로젝트 (LINFO)

문맥교환 - 마이크로소프트 개발자 네트워크 (MSDN)

위키백과 문맥교환

위키백과 오버헤드

728x90

댓글