특정 프로세스에 대한 정보를 담고 있는 자료구조
운영체제는 PCB에 담긴 프로세스 정보를 이용하여 프로세스를 관리하고 제어한다. 프로세스가 생성될 때마다 고유의 PCB가 생성되어 메인 메모리에 유지되고, 프로세스가 완료되면 제거된다. PCB는 프로세스의 중요한 정보를 포함하고 있으므로 일반 사용자는 접근하지 못하는 보호된 메모리 영역에 존재한다.
CPU는 프로세스의 상태에 따라서 교체 작업이 이루어진다.이 때 교체되는 프로세스의 상태 값을 PCB에 저장해두었다가 앞으로 다시 수행할 때 사용하는 것이다.
연결 리스트 방식으로 관리된다.따라서 삽입 삭제가 용이하며 프로세스가 생성 되면 해당 PCB가 생성되고, 프로세스가 완료되면 제거된다.
CPU가 현재 작업 중인 프로세스에서 다른 프로세스로 넘어갈 때 지금까지의 프로세스 상태를 저장하고, 새 프로세스의 저장된 상태를 다시 적재하는 작업
- 멀티태스킹 : 실행 가능한 프로세스들이 운영체제의 스케줄러에 의해 조금씩 번갈아가며 수행되는 것을 말한다.번갈아 가며 프로세스가 CPU를 할당받는데, 이 때 문맥교환이 이루어진다.
- 인터럽트 핸들링 : 인터럽트가 발생하면 문맥교환이 이루어진다.
- 사용자와 커널모드 전환 : 필수는 아니지만 운영체제에 따라서 발생할 수 있다.
문맥 교환에 소요되는 시간과 메모리를 의미한다.
문맥 교환이 발생하면 시간과 메모리가 소요되므로 잦은 문맥교환은 성능 저하를 가져온다.
I/O 이벤트가 발생했을 때, 해당 이벤트가 끝날 때 까지 기다리면 CPU를 점유하고 있어도 아무런 작업도 할 수 없기 때문에 CPU가 낭비된다.때문에 오버헤드를 감수하면서 기존 프로세스를 새 프로세스로 바꾸는 것이 더 효율적이다.
또 멀티태스킹에서 시간 할당량이 적어지면 문맥 교환의 수와 오버헤드가 증가하지만 동시에 더 많은 프로세스를 수행할 수 있고, 시간 할당량이 커지면 문맥 교환의 수와 오버헤드는 감소하지만 더 적은 프로세스를 동시에 수행할 수 있다.
P0
프로세스가 인터럽트를 받으면서 PCB0
에 P0
프로세스의 상태 정보를 저장한다.P1
프로세스의 PCB1
에서 P1
프로세스의 상태 정보가 CPU에 재로딩 된다.P1
프로세스를 일정시간 수행한다.P1
프로세스가 인터럽트를 받으면서 PCB1
에 P1
프로세스의 상태 정보를 저장한다.PO
프로세스의 PCB0
에서 P1
프로세스의 상태 정보가 CPU에 재로딩 된다.P0
프로세스를 일정시간 수행한다.Reference