📌 면접 답변
프로세스 컨텍스트 스위칭 같은 경우 새로운 프로세스의 가상 메모리 주소를 설정 해야한다.
따라서 MMU에 새로운 주소 체계 설정, TLB와 메모리 저장된 캐시를 비우는 등의 메모리 작업을 해야한다.
하지만 스레드 컨텍스트 스위칭 같은 경우 위의 과정들이 한 프로세스 내에서 공유되기 때문에, CPU의 상태와 메모리 상태만 변경해주면 된다.
컨텍스트 스위칭
- CPU가 실행 중이던 프로세스나 스레드가 다른 프로세 스나 스레드로 교체되는 과정을 말한다.
- 멀티태스킹 시스템에서 여러 작업을 효율적으로 관리하기 위해 필수적인 매커니즘이다.
Context
- 프로세스나 스레드의 현재 상태를 의미하고, CPU의 레지스터 상태(PC, SP 등)와 메모리 상태가 포함된다.
- 즉, Context는 프로세스나 스레드가 실행을 중단하고 나중에 다시 시작할 때 필요한 모든 정보를 담고 있다.
컨텍스트 스위칭을 수행하는 주체는 운영체제의 커널에 의해 수행되고,
커널은 시스템 자원을 관리한다.
컨텍스트 스위칭이 발생하는 시점
- Time Slice를 다 사용 했을 때 (각 프로세스나 스레드에 할당된 시간)
- 이게 가장 일반적인 경우
- I/O 작업이 필요할 때
- 우선순위 변경
프로세스 컨텍스트 스위칭 발생 과정
- 현재 프로세스의 상태 저장
- 다음 프로세스의 상태 로드
- 프로세스 전환
- 새로운 프로세스 가상 메모리 주소 설정 (MMU, TLB 업데이트)
스레드 컨텍스트 스위칭 발생 과정
- 현재 스레드 상태 저장
- 다음 스레드 상태 로드
- 스레드 전환
- 동일한 프로세스 내 스레드 간 전환이므로 메모리 관련 추가 처리 필요 없음
📌 내 답변
프로세스의 컨텍스트 스위칭은 다른 프로세스에 하나의 독립적인 가상 메모리 전체를 다 가져와야 한다.
하지만 스레드 컨텍스트 스위칭은 각각의 스레드 별로 독립적으로 가지고 있는 스택 영역의 정보만 가져오면 된다.
이렇기 때문에 PCB보다 상대적으로 더 가벼운 TCB는 스레드의 컨텍스트 스위칭에 사용되고, 프로세스보다 더 빠르게 컨텍스트 스위칭이 된다 .
Self Feedback
- 컨텍스트 스위칭을 생각하면 그냥 메모리 상태만 바꾼다고 생각했는데, CPU 상태 변경도 같이 고려해야 한다.
- 가상 메모리 개념을 이용해서 설명하면 더 좋을 것 같다.
- 프로세스 컨텍스트 스위칭에서 저장된 캐시를 비우는 것을 생각하지 못했다 .
[출처 및 참고 자료]
https://www.maeil-mail.kr/question/129
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] [매일메일] HTTP/1.1과 HTTP/2.0에 대해서 설명 (0) | 2025.04.03 |
---|---|
[1분 면접] Redis가 싱글 스레드로 만들어진 이유 (0) | 2025.04.01 |
[1분 면접] 스케일 아웃과 스케일 업의 차이점 (0) | 2025.03.31 |
[1분 면접] 캐시 스탬피드 현상에 대하여 설명해주세요. (0) | 2025.03.26 |
[1분 면접] ACID에 대해 설명해주세요. (0) | 2025.03.25 |