context switch

이재하·2023년 7월 6일

  1. PCB(Process Control Block 프로세스 제어블록))
  • PCB(Process Control Block) or TCB(Task Control Block).

    • Each Process is represented in the operating system by the PCB.
  • A PCB contains many pieces of information associated with a specific process:

    • Process state
    • Program counter
    • CPU register
    • CPU-scheduling information
    • Memory-management information
    • Accounting information
    • I/O status information

Process ID - 프로세스 고유 번호
Process State 에는 생성, 준비, 실행, 대기, 완료의 상태 정보를 담고 잇습니다.
Program Counter(Pointer)
CPU Register
CPU Scheduling information CPU 스케줄링에서 어떤 우선순위를 가지고 있는 지에 대한 정보.
Memory management information 에는 메모리가 할당된 자원의 정보.
Account information에는 최종실행 시각, CPU를 점유하고 있는 시간 등의 데이터를 가지고 있습니다.
I/O status information 에는 프로세스에 할당된 입출력 장치 목록, 열린 파일 목록등의 정보를 가지고 있습니다.

  1. Context Switching

그렇다면 프로세스가 작동되는 과정을 자세히 한번 살펴 보겠습니다.

실행 중인 running 상태의 프로세스 정보( 여기서 말하는 정보는 PID나 어떤 동작을 하는 프로세스 인지 등등입니다.)는 CPU 내부의 레지스터에 저장하고 있습니다.
-> 아마도 CPSR

지금까지는 레지스터에 정보를 담고 있기 때문에 필요없다.

현재 process P0가 실행 되고 있고, 그렇다면 CPU 내부 레지스터에 P0 정보 저장

인터럽트나 시스템 콜 걸리면

Process P0 를 먼저 저장한다.

running 중이던 Process P0를 Waiting 상태로 변경하고
CPU는 process P1을 running 중으로 변경한다.

이 과정과 동시에, 레지스터 안에 있는 저장값도 process P1과 관련된 정보로 교체.

그럼 process P0에 있던 정보들은 어딘가에 저장.

P0가 어디까지 실행이 되었는지, Stack Pointer 의 위치가 어디인지

위 사진을 보면 P0가 executing 되다가 실행 시키기 위해서 PCB0에 Process P0 정보를 저장한다. 그리고 레지스터에 PCB1에 저장되 있던 Process P1 정보를 가져와서 Process P1을 실행시킨다.

0개의 댓글