이번 시간에는 운영체제에서 중요한 Context Switch 컨텍스트 스위치에 관해 알아보도록 하자.
🤔 Context switch가 뭐야?
컨텍스트 스위치는 한 프로세스로 부터 CPU를 다른 프로세스로 넘겨주는 행동이다!
Context는 CPU가 해당 프로세스를 실행하면서 가지는 정보등을 뜻 하는데, 이를 다른 프로세스로 바꾸겠다는 뜻이다.
초당 100번에서 1000번까지 일어나는 매우 빈번한 동작이기 때문에 성능에 매우 민감하다!
💡 Context는?
Context는 앞서 말했듯이 CPU가 해당 프로세스를 실행하기 위한 정보들이다. 이러한 정보들은 프로세스의 PCB (process control block)에 저장된다. 그래서 switching이 발생하였을 때 이전에 하던 일을 이어서 할 수 있게 된다.
💰 Overheads
이러한 과정에서 아래와 같은 오버헤드가 발생한다.
- CPU의 레지스터와 메모리맵의 정보를 PCB에 모두 저장하고, 불러온다
- 메모리 캐시를 flusing하고 reloading한다
- 다양한 테이블과 리스트를 갱신한다
💡 Context Switching의 과정
- Interrupt에 의해 요청이 발생한다
- 프로세스P0 실행 상태의 context을 PCB0에 저장
- 다음 프로세스 p0 의 context를 PCB1에서 가져와 CPU에 할당
위 일련의 과정을 반복적으로 수행함으로 Context switch 가 발생한다.
다음 프로세스는?
context switch로 넘어가는 다음 프로세스는 어떻게 결정할까? 이는 유저 프로세스가 결정하지 않고 운영체제의 스케줄러가 어떠한 알고리즘으로 결정하게 된다.
'Computer Science > Operating System' 카테고리의 다른 글
[운영체제] 프로세스(Process)란? (0) | 2022.04.09 |
---|---|
운영체제(Operating System) - 운영체제란 무엇인가? (0) | 2022.03.03 |