kakaotech-25 / cs-plant-interview

cs 의 씨앗을 심기 위한 레포지토리 🌱
2 stars 0 forks source link

[OS] PCB와 Context Switching #8

Closed rimeir closed 3 months ago

rimeir commented 3 months ago

예상 면접 질문

LEE-DA-EUN commented 3 months ago

1. PCB와 Context Switching은 무엇인가?

[PCB]

[Context Switching]

2. Context Switching 동작 과정을 설명하시오.

1013115 commented 3 months ago
  1. PCB와 Context Switching은 무엇인가?

    • PCB : 운영체제가 각 프로세스를 관리하기 위해 사용하는 데이터 구조로 process meta data를 저장하는 공간이다. 운영체제는 PCB를 통해 프로세스를 추적하고 적절한 자원 할당과 스케줄링을 수행하고 관리한다. 또한 context switching을 수행할 때 필요한 정보를 제공한다.
    • Context Switching : CPU가 현재 실행 중인 프로세스의 Context 저장하고, 다음에 실행할 프로세스의 상태를 로드하는 과정을 말한다. CPU가 여러 프로세스를 관리하고 실행하는데 필수적인 역할을 한다. 겉보기에는 여러 프로세스가 동시에 실행되는 것처럼 보이지만 여러 프로세스를 번갈아가면 실행하는 멀티스태킹 환경이며 context switching은 멀티스태킹 환경의 핵심이다. CPU 사이클을 소비하므로 자원의 OverHead가 발생한다
  2. Context Switching 동작 과정을 설명하시오 인터럽트가 발생하면 CPU에서 현재 실행 중인 프로세스의 작업을 일시 중지한다. 실행 중인 프로세스의 contex를 현재 프로세스의 PCB에 저장한다. 새로운 프로세스를 선택하고 다음 실행할 프로세스의 PCB에서 저장된 context를 로드한다. 새로운 프로세스의 Context를 CPU 레지스터에 복원하고 새로운 프로세스가 이전에 중단된 시점에서부터 다시 실행한다.

JaeJunday commented 3 months ago
  1. PCB는 프로세스의 메타데이터를 저장하는 데이터 구조입니다. 운영체제가 프로세스를 관리할 때 사용합니다.
  2. context switching 프로세스를 fork할때 발생합니다. 기본적으로 프로세스는 격리된 메모리공간을 사용하기 때문에 기존의 메모리상태를 복제하고 CPU의 실행흐름을 바꿔야하는데, 이때 오버헤드가 발생합니다.
  3. 인터럽트, 현재 프로세스 PCB블록에 저장, 실행할 프로세스 레지스터에 로드, 실행
msung99 commented 3 months ago
  1. PCB 란 현재 프로세스의 중요한 상태값(일명 메타정보) 를 저장하는 공간이다. 문맥 교환이란 여러 프로세스간에 공평하게 작업을 수행할 수 있도록 일정 시간을 두고 타임아웃이 발생하면 다른 프로세스가 CPU 를 점유할 수 있도록 보장하는 기법이다.

  2. 문맥 교환의 과정은 다음과 같다.