PCB와 Context-Switch

2024. 1. 11. 12:04CS/운영체제

프로세스란?

  • 프로세스 = 실행중인 프로그램
  • 프로세스들은 번갈아가며 한정된 시간만큼 CPU를 이용한다.
  • 타이머 인터럽트가 발생하면 차례를 양보한다.
  • 프로세스 종류
    • 포그라운드 프로세스
      • 사용자가 볼 수 있는 공간에서 실행되는 프로세스(ex:메모장)
    • 백그라운드 프로세스
      • 사용자가 볼 수 없는 공간에서 실행되는 프로세스
        • 사용자와 직접 상호작용이 가능한 백그라운드 프로세스
        • 데몬, 서비스
          • 사용자와 상호작용하지 않고 그저 묵묵히 일만 수행하는 프로세스

PCB란?

  • 프로세스 관련 정보를 저장하는 자료구조로, 마치 옷에 달려있는 태그라고 생각하면 된다.
  • 프로세스 생성 시 PCB는 커널 영역에 생성이 되며, 종료시 폐기된다.
  • 운영체제는 커널영역에 적재된 PCB를 보고 프로세스를 관리한다.
  • PCB에 담기는 정보
    • 프로세스 ID(PID)
      • 특정 프로세스를 식별하기 위해 부여하는 고유번호(마치 학번과 같다.)
    • 레지스터 값
      • 레지스터 값이 PCB에 담기는 이유
        • 프로세스는 자신의 실행 차례가 오면, 이전까지 사용한 레지스터 값을 모두 복원하여 다시 실행을 재게한다.
        • 즉, 자신의 실행차례가 오면, 이전까지 실행한 내용을 이용하여 실행을 재게하기 위해서!
        • 연산 도중, 타이머 인터럽트에 의해 CPU를 더 이상 쓰지못하고 대기하다가, 다시 자기차례가 오면, 이전 연산값을 알아야하는데
        • 이러한 연산값을 레지스터값에 의해 복원할 수 있는 것임!
    • 프로세스 상태
    • CPU스케줄링 정보
      • 프로세스가 언제, 어떤 순서로 cpu를 할당받을 것인지에 대한 정보
    • 메모리 정보
      • 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
      • 페이지 테이블 정보
    • 사용한 파일과 입출력장치 정보
      • 사용중인 파일 정보

Context Switch (문맥 교환)

  • 한 프로세스(A)에서 다른 프로세스(B)로 실행순서가 넘어갔다고 가정해보자.
    1. 프로세스A는 지금까지의 중간정보인 문맥를 백업하게 되고
    2. 뒤이어 실행할 프로세스B의 문맥을 복구하게 된다.
  • 이처럼, 기존의 실행중인 프로세스 문맥을 백업하고, 새로운 프로세스 실행을 위해 문맥을 복구하는 과정을 Context Switch(문맥교환)이라고 한다.