인터럽트 처리와 문맥교환의 차이
하드웨어 인터럽트 발생시 인터럽트를 처리하기 위해 레지스터에 저장된 데이터는 스택에 저장되는 것으로 알고 있습니다.
프로세스 문맥교환시 레지스터 값은 PCB에 백업되는 것으로 알고 있습니다.
PCB 는 커널영역에서 생성되고 관리되는 것으로 알고 있습니다.
저는 하드웨어 인터럽트 발생시 레지스터값을 임시보관하는 위치인 스택이 사용자 영역의 스택으로 생각했었습니다.
그런데 커널 스택이라는 내용을 보아서요. 커널 스택이 맞나요?
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
Pong Pong님께서 질문하신 인터럽트 처리와 문맥 교환에서 레지스터 데이터의 임시 보관 위치에 대한 궁금증은 운영체제의 기본적인 메커니즘과 깊게 관련되어 있습니다.
인터럽트 처리와 프로세스 문맥 교환(process context switch)은 실제로 다른 메커니즘에 따라 작동합니다. 하드웨어 인터럽트 발생 시, 인터럽트를 처리하기 위해 현재 CPU의 상태 정보(레지스터 상태 등)는 보통 커널 스택에 저장됩니다. 이러한 커널 스택은 각 프로세스당 별도로 관리되며, 커널 영역에서 접근할 수 있는 스택 공간입니다.
반면, 프로세스 문맥 교환 시 발생하는 활동은 프로세스의 실행 상태 정보(레지스터 포함)를 해당 프로세스의 프로세스 제어 블록(PCB)에 저장함으로써, 다른 프로세스로의 전환을 가능하게 합니다. PCB 또한 커널 영역에 위치합니다.
따라서, 하드웨어 인터럽트 처리 과정에서 이용되는 스택은 “커널 스택”이 맞습니다. 사용자 영역의 스택과는 구분되며, 인터럽트 처리결과 및 컨텍스트(문맥) 정보는 시스템 호출이나 인터럽트 처리 중에 커널 스택을 통해 관리됩니다.
이와 관련하여 보다 자세한 설명을 제공하는 질문과 답변을 링크로 첨부하겠습니다. 하드웨어 인터럽트에 대한 처리 과정과 문맥 교환에서 커널 스택의 역할을 설명한 메모리와 프로세스 질문에서는 스택 영역 및 프로세스의 커널 스택에 대한 조금 더 상세한 설명이 제공됩니다. 이 설명은 인터럽트 처리에서 커널 스택의 사용과 문맥 교환 시 PCB와의 관계를 이해하는 데 도움을 줄 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
17:00 부분에 ddr4 sdram은 길이 16개인듯한 ram이라고 설명했는데
0
78
1
유니코드 문자 집합
0
65
0
컴퓨터 구조의 기본 흐름
0
80
1
메모리로부터 주소버스를 통해 받아들이는 주소번지를 CPU로 가져오는 경우
0
73
1
리눅스, 윈도우, IOS 등등 대부분의 운영체제는 같은 구조로 이루어져 있나여?
0
64
1
강의에 나오는 pdf
0
150
2
슈퍼스칼라 프로세서
0
99
1
컴퓨터가 이해하는 두 가지 정보 : 데이터 쪽 질문
0
94
1
캐시 메모리
0
84
1
메모리맵 / 고립형 차이
0
190
1
마무리 - 확인 문제에 대해 질문있습니다.
0
112
1
뮤텍스 락
0
161
2
가상메모리의 필요성
0
191
1
섹션12. 입출력장치의 대기상태
0
96
1
P.301 질문
0
70
1
메모리맵 IO와 고립형 IO 차이 질문
0
133
1
강의하실 때, 보여주시는 ppt 파일 혹시 어디서 받을 수 있는건가요?
0
200
1
파일 시스템 관련 질문 있습니다.
0
111
1
페이징 관련 질문드립니다.
0
135
1
DMA 컨트롤러
0
179
1
보수랑 플래그 관련해서 질문드립니다
0
171
2
페이지
1
182
2
책에 있는 내용이 다 들어가 있나요?
0
188
1
페이지의 수
0
97
1





