스터디 - PCB&Context Switch

정상화·2023년 5월 3일
0

스터디

목록 보기
8/10

PCB(Process Control Block)

  • OS에서 가장 중요한 데이터 구조체 중 하나
  • OS가 프로세스를 제어하기 위한 메타데이터가 담겨있다.
  • 멀티프로세스를 하기 위해 필수적임

PCB가 담고 있는 내용

- 프로세스 식별자
- 프로세스 제어 정보
- 프로세서 상태 정보


프로세스 식별자: 프로세스를 유일하게 식별할 수 있게 함. pid, uid, ...
프로세서 상태 정보: 프로세스가 context switch 되기 직전, 레지스터와 같은 하드웨어 정보
프로세스 제어 정보: 프로세스를 제어하기 위한 메타데이터

  • 프로세스의 관계: p_pptr, p_cptr, next_task, next_run
  • 프로세스 상태: RUN, READY, BLOCK
  • 스케줄링 정보: 정책, 우선순위, reschedule 필요성
  • 메모리 정보: 세그먼트, 페이지
  • 파일 정보: 파일 디스크립터

Context Switch

스케줄링에 의해 처리 중인 task가 바뀌는 것

  • Mode Switch: 유저모드와 커널모드 간의 전환
  • Context Switch(Process Switch): 프로세스 혹은 task(+thread) 간의 전환

Mode Switch

  • 현재 작업중인 유저 프로세스를 중지하고 커널모드에 진입
  • 작업 중이던 프로세스의 상태를 변경하지 않으므로 오버헤드가 적다

Context Switch

  1. 작업 중이던 프로세스의 상태를 저장하고 다른 프로세스를 처리 (오버헤드)
  2. 작업 중이던 프로세스의 PCB를 업데이트 하게 된다.
  3. PCB를 적절한 큐(레디큐, 대기큐, ...)로 옮긴다.
  4. 스케줄러를 호출하여 다음에 실행할 프로세스를 선택 (오버헤드)
  5. 실행할 프로세스의 PCB를 업데이트한다.
  6. 오염된 캐시 때문에 TLB를 업데이트
  7. 실행할 프로세스의 context를 프로세서에 복구한다. (오버헤드)


Context switch도 스케줄러를 호출하기 때문에 mode switch가 일어나게 된다.

profile
백엔드 희망

4개의 댓글

comment-user-thumbnail
2023년 5월 4일

PCB에 대한 중요 개념들을 알 수 있었습니다!!

답글 달기
comment-user-thumbnail
2023년 5월 4일

Mode Switch와 Context Switch의 차이점과 각각의 오버헤드에 대해서 설명이 잘 되있어서 이해하는데 도움이 되었습니다!👍

답글 달기
comment-user-thumbnail
2023년 5월 4일

Context Switch에 대해 설명이 좋아서 이해하는데 좋았습니다!

답글 달기
comment-user-thumbnail
2023년 5월 4일

Context Switch의 과정이 자세하게 설명돼있어서 좋았습니다.

답글 달기