[OS] Context Switching

공덕이형·2023년 12월 7일
0

CS

목록 보기
2/17

저번 포스팅에서 프로세스와 스레드의 차이에 대해서 알아보았다.
프로세스는 PCB가 있는 프로그램이라 설명했고, PCB는 프로세스의 중요 내용이 들어있으며 Context Switching에 필요하다 설명했다.


Context Switching

Context란

특정 순간의 레지스터 및 프로그램 카운터에 있는 데이터를 나타낸다.

  • 프로그램 카운터 : 명령어 주소 레지스터

Context Switching

레지스터 및 프로그램 카운터에 있는 데이터를 교환해 주는 것

쉽게 말해 CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정을 말한다.
CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음의 과정을 수행한다.

  • CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
  • CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴

Context Switching 왜 하는걸까?

현대의 컴퓨터는 멀티태스킹 time sharing이 이뤄지기 때문에 CPU를 번갈아가면서 사용을 하게 되는데, 만약 CPU를 번갈아 가면서 사용할 때 프로세스의 문맥을 저장해두지 않는다면 프로세스를 처음부터 다시 실행해야 하는 문제가 생기기 때문이다.

그렇다면 여기서 의문점, SystemCall이나 Interrupt 발생시 반드시 Context Switching이 발생할까?

이를 이해하기 위해선 System Call과 Interrupt에 대해서 알아봐야 한다.

References

https://www.techtarget.com/whatis/definition/context-switch

profile
형이 먹여살릴게

0개의 댓글