티스토리 뷰

프로세스와 스레드 차이에 대해 간단히 알아보고 나서 프로세스의 컨텍스트 스위치에 대해서 깊게 알아봐야겠다고 느꼈습니다.

 

Process와 Thread의 차이는 무엇일까?

Process 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미합니다. 메모리에 올라와 실행되고 있는 프로그램의 독립적인 개체인 셈입니다. 운영체제로부터 시스템 자원을 할당받는

kkoon9.tistory.com

컨텍스트 스위치

컨텍스트 스위치는 하나의 프로세스로부터 다른 프로세스로 CPU의 제어권이 이양되는 과정을 뜻합니다.

프로세스 실행 중에 타이머 인터럽트가 발생하면 현재 프로세스의 상태를 PCB에 저장하고 새로운 프로세스의 상태를 레지스터에 저장하는 방식으로 동작합니다.

🤔 컨텍스트는 뭐야?

프로세스의 컨텍스트는 프로세스가 현재 어떤 상태에서 수행되고 있는지를 정확히 규명하기 위해 필요한 정보를 의미합니다.

컨텍스트 스위치가 이루어질 때 지난 번 CPU 보유 시기의 정확한 상태를 재현할 필요가 있습니다.

이 때, 정확한 재현을 위해 필요한 정보가 바로 프로세스의 컨텍스트입니다.

프로세스 컨텍스트는 그 프로세스의 주소 공간(코드, 데이터, 스택 상태)을 비롯해 레지스터에 어떤 값을 가지고 있었는지와 시스템 콜 등을 통해 커널에서 수행한 일의 상태, 그 프로세스에 관해 커널이 관리하고 있는 각종 정보(PCB) 등을 포함하게 됩니다.

프로세스의 컨텍스트는 하드웨어 컨텍스트, 프로세스의 주소 공간, 커널 상의 컨텍스트로 나누어 볼 수 있습니다.

하드웨어 컨텍스트는 CPU의 수행 상태를 나타내는 것으로 PC 값과 각종 레지스터에 저장하고 있는 값들을 의미합니다.

프로세스는 코드, 데이터, 스택으로 구성되는 자기 자신만의 독자적인 주소 공간을 가지고 있습니다.

OS는 프로세스를 관리하기 위한 자료 구조를 유지하는데, PCB와 커널 스택이 이에 해당합니다.

🤔 PCB가 뭐야?

Process Control Block의 약자로, OS가 시스템 내의 프로세스들을 관리하기 위해 프로세스 당 유지하는 정보들을 담는 커널 내의 자료 구조를 뜻합니다.

PCB의 구성요소는 다음과 같습니다.

  • 프로세스의 상태 : CPU를 할당해도 되는지 여부를 결정하기 위해 필요합니다.
  • 프로그램 카운터 : 다음에 수행할 명령의 위치를 가리킵니다.
  • CPU 레지스터 : CPU 연산을 위해 현 시점에 레지스터에 어떤 값을 저장하고 있는지를 나타냅니다.
  • CPU 스케줄링 정보, 메모리 관리 정보 : 그 프로세스의 CPU 스케줄링과 메모리 할당을 위해 필요한 정보입니다.

🤔 타이머 인터럽트가 뭐야?

인터럽트에 대한 자세한 내용은 다른 포스팅에서 다루고 타이머 인터럽트에 대해서 간단하게 설명하고 넘어가겠습니다.

특정 프로세스가 CPU를 독점하는 것을 막기 위해 OS가 사용하는 인터럽트입니다.

OS는 CPU를 프로세스에게 이양하기 직전에 타이머에 일정 시간을 세팅하고, 그 시간만큼 CPU를 사용한 후에 타이머 인터럽트를 발생시켜 CPU를 회수합니다.

🤔 컨텍스트 스위치는 타이머 인터럽트로만 발생하나?

타이머 인터럽트 외에도 실행중이던 프로세스가 입출력 요청이나 다른 조건을 충족하지 못해 CPU를 회수당하고 블로킹 상태가 되는 경우에도 발생할 수 있습니다.

🤔 컨텍스트 스위치는 많이 하면 할수록 노는 프로세스가 없으니 좋은거네?

컨텍스트 스위치에는 많은 오버헤드가 뒤따릅니다.

그렇기 때문에 타이머를 아주 작게 세팅한 잦은 컨텍스트 스위칭은 성능저하를 일으킬 수 있습니다.

반대로 타이머를 너무 크게 설정하면 시분할 시스템의 의미가 퇴색하게 되므로 적절한 CPU 할당 시간을 정하는 것이 중요합니다.

이러한 적절한 CPU 할당 시간을 정해주는 알고리즘이 필요한데, 이것이 바로 운영체제 스케줄러입니다.

스케줄러는 다른 포스팅에서 자세히 다뤄보겠습니다.

출처

 

운영 체제와 정보 기술의 원리 - YES24

『운영체제와 정보 기술의 원리』는 컴퓨터의 역사 및 운영체제 전반을 살펴본 책으로, 컴퓨터 하드웨어와 소프트웨어를 총체적으로 관리하는 핵심 소프트웨어인 운영 체제의 의사 결정 및 동

www.yes24.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함