본문 바로가기
Study

#9. [CS] Context switching

by Joshuuakeem 2023. 3. 9.

1. Context switching이란?

Context switching은 하나의 작업에서 다른 작업으로 전환할 때 컴퓨터 시스템이 상태를 저장하고 복원하는 과정을 뜻한다.

멀티태스킹 운영 체제에서 여러 프로그램을 동시에 실행시 CPU는 각 프로그램 간에 빠르게 전환되어 실행된다. 이 때, 이전 프로그램의 Context는 저장되고 새로운 프로그램의 Context가 Load된다. 이 과정이 Context switching이다!

'Context'는 현재 실행 중인 작업에 대한 정보를 의미하며, 이 정보에는 CPU 레지스터 값, 프로세스 상태, 메모리 할당 등이 포함된다.

 

 

 

2. Context swtiching의 특징

  • Overhead : Context switching은 CPU의 작업 전환 시간을 추가로 소비하므로 시스템 성능에 부담을 준다. 작업 전환과 관련된 부하는 작업 전환의 빈도, 시스템 자원의 가용성, 프로세스의 우선순위 등에 따라 다르다.

 

  • Multi tasking process : Context switching은 멀티태스킹 운영 체제에서 Multi tasking process를 가능하게 한다. 하나의 CPU가 여러 프로세스를 번갈아가며 실행함으로써 여러 작업을 동시에 처리할 수 있게 된다.

 

  • 시스템 안정성 : Context switching은 운영 체제가 시스템 안정성을 유지하는 데 중요한 역할을 한다. 예를 들어 여러 프로세스가 동시에 실행될 때, 각각의 프로세스가 다른 프로세스의 메모리 공간에 접근하면 시스템이 불안정해질 수 있다. 이를 방지하기 위해, 각 프로세스는 운영 체제가 할당한 자신만의 메모리 공간을 사용하게 된다.

 

  • Context 저장 및 복원 : Context switching은 현재 실행 중인 프로세스의 컨텍스트를 저장하고, 다음에 실행될 프로세스의 Context를 복원하는 과정이다. 이를 통해 CPU는 빠르게 작업을 전환할 수 있다.

 

  • 우선순위 결정 : Context switching은 운영 체제가 각 프로세스의 우선순위를 결정하는 데 중요한 역할을 한다. 높은 우선순위를 가진 프로세스가 실행 중인 경우, 낮은 우선순위를 가진 프로세스는 Context switching으로 인해 중단된다. 이를 통해 시스템은 중요한 작업에 대한 우선순위를 부여할 수 있다.

 

  • Context switching시 thread는 stack을 제외한 모든 메모리를 공유하기 때문에 process보다 비용이 많이 든다.

 

 

 

3. Context switching의 과정

(1) 현재 실행 중인 프로세스의 상태 정보를 저장

  • 현재 실행 중인 프로세스의 레지스터 값, 스택 포인터, 프로그램 카운터 등의 정보를 PCB(Process Control Block)에 저장

 

(2) 다음 실행할 프로세스의 상태 정보를 불러온다.

  • 스케줄링 알고리즘에 따라 다음에 실행할 프로세스를 선택
  • 선택된 프로세스의 PCB에서 저장된 정보를 불러와 CPU 레지스터 등에 적용

 

(3) CPU 제어권을 전환

  • CPU의 제어권을 선택된 프로세스로 전환
  • 선택된 프로세스는 다시 실행되며, 이전에 저장된 상태 정보를 바탕으로 실행을 계속하게 된다.

이러한 과정을 통해, 여러 개의 프로세스가 동시에 실행될 때 CPU가 각각의 프로세스를 번갈아가며 실행할 수 있다. Context Switching은 CPU가 프로세스를 전환하는 과정에서 추가적인 오버헤드가 발생할 수 있지만, 운영 체제가 프로세스를 효율적으로 스케줄링하여 시스템의 성능을 최적화할 수 있도록 도와준다.

 

 

출처 : https://www.scaler.com/topics/operating-system/context-switching-in-os/

 

Reference:)

https://www.scaler.com/topics/operating-system/context-switching-in-os/

반응형

'Study' 카테고리의 다른 글

#11. [DB] Transaction의 Isolation level  (0) 2023.03.15
#10. [DB] Transaction과 ACID  (2) 2023.03.14
#8. [AI] 모델의 성능 평가 지표  (0) 2023.03.07
#7. [AI] Cross validation  (0) 2023.03.06
#6. RDMBS와 NOSQL  (0) 2023.03.03