Context Switch (컨텍스트 스위치)
- 수행중인 프로세스를 변경할 때, CPU의 레지스터 정보가 변경되는 것.
- 프로세스의 상태 정보를 저장(Context Saving)하고 복원(Context Restoring)하는 과정
- 동작 중인 프로세서가 대기하면서 해당 프로세스의 상태를 보관하고, 대기하고 있던 다음 순번의 프로세스가 동작하면서 이전에 보관했던 프로세스 상태를 복구하는 과정
Context
프로세스와 관련된 정보들의 집합
1. Code
2. Data
3. Stack
4. Heap
Context Saving
현재 프로세스의 등록된 Context를 저장하는 작업
Context Restoring
등록된 Context를 프로세스로 복구하는 작업
Context Switch 발생이유
- 인터럽트가 발생할 때
- 실행중인 CPU 사용시간이 모두 소모하는 경우
- 입/출력을 위해 대기하는 경우
* 프로세스 상태에서 상태가 변경될 때 (Ready --------> Running, Running --------> Ready, Running ------> Asleep)
Context Switch Overhead
- Context Switch의 소요되는 비용 -> OS 성능에 큰 영향을 줌
- 스레드를 이용하여 불필요한 Context Switch를 줄이는 것이 중요함
<참고자료>
https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
<Computer structures> chapter 9, Context Switch end>
'CS(Computer science) > 컴퓨터 구조&운영체제' 카테고리의 다른 글
폰 노이만 구조 vs 하버드 구조 (0) | 2020.01.11 |
---|---|
인터럽트 (0) | 2020.01.06 |
스레드 (0) | 2020.01.06 |
프로세스 스케줄링 (0) | 2020.01.06 |
프로세스 관리 (0) | 2020.01.05 |