⭐reference
https://edurev.in/t/186932/Process-Control-Block--PCB-
한 Process 에서 다른 Process 로 전환 하는 것을 말한다.
CPU 는 한가지 일밖에 하지 못하는데,
한번에 여러가지 일을 수행하기 위해 ( 동시성 ) 여러가지 일을 번갈아 가며 수행하고 있으며
이 과정에서 Process 에서 다른 Process 로 전환 과정이 발생하고, 이를 Context Switching 이라 한다.
CPU 가 실행하려는 Process 를 실행하기 위한 데이터
왜 많고 많은 것 중에 문맥일까?
내 생각에는 Context Switching 의 목적 때문이다.
애초에 이게 일어나는 건 여러가지 프로그램을 번갈아 가며 동작시키기 위함이다.
CPU 가 2가지 ‘A’, ‘B’ 일을 하고 있다고 하고, 번갈아 가면서 실행시키고 있다.
‘A’ 가 일을 하다 ‘B’ 일을 하려고 할때, 이전에 ‘B’ 가 어디까지 일했는지 알아야한다.
즉CPU 가 코드 영역을 어디까지 읽었는지 파악해야하고, 이를 문맥 파악이라고 표현한게 아닐까 싶다.
OS 가 프로세스를 관리하기 위해 프로세스 정보를 저장하는 자료 구조
I/O 호출이 되거나, CPU 스케줄러에서 할당한 시간 자원을 모두 다 사용했을 때 주로 발생한다.
여기서
idle
상태 중 PCB0 에서 PCB1 로 Context Switching 이 발생하는 경우
오버헤드가 발생하며 이 시간에는 CPU 가 일을 하지 않고 메모리만 할당 된다.
( CPU 의 가용성이 떨어짐 )
시스템이나 프로세스에 부가적으로 발생하는 비용이나 부담을 말한다.
컨텍스트 스위치가 발생하면 실행할 데이터들을 담는데 시간이 걸려
비용이 발생한다.
한 Thread 에서 다른 Thread 로 변경 되는 것을 말한다.
PCB 와 마찬가지로, Thread 동시성을 위해 Thread 상태 정보를 저장하는 자료구조