안녕하세요.


이번에 책을 보면서 의문점이 들어 문의글을 올리게 되었습니다.


첫 번째 문의는 인터럽트 관련 내용을 보는 중에 424pg. 13.3.2 [콘텍스트 저장과 복원] 챕터에서


그림 [13-2]를 보면 IST 스택의 시작 주소가 0x7FFFF8이라고 적혀있는데


IST는 12장에서 시작 주소를 0x800000로 주어 7~8MB 영역을 쓰기로 했습니다.


오탈자 리스트를 봤는데 그 부분에는 등록되어 있지 않았습니다.


갑자기 8byte만큼의 offset이 생겨 특정 정보를 더 push하는지.. 아니면 오탈자 리스트에 등록 되지 않은 단순 오탈자인지 문의 드립니다.




두 번째 문의는 User Process가 실행 중 일 때 Interrupt가 만약 발생하면 ss 의 설정에 관한 부분에 대한 문의 입니다.


ISR을 보면 스택과 관련하여 rsp(IST에 저장된 값), rbp는 설정이 되는데 ss는 설정하는 부분이 없는 것으로 보입니다. <-- 이 설정 전에 ss가 먼저 설정 되어야 한다고 판단하고는 있습니다...


User Process는 stack segment selector의 RPL이 3이라 변경하지 않으면 IST 영역에 접근할 때 예외가 발생하지 않을까하는 문의 입니다.


혹시 인터럽트가 발생하면 ss는 커널의 segment로 아키텍처 레벨에서 설정이 되는 것인가요?


아직 부족한 것이 많습니다 ㅠㅠ


도와주시면 정말 감사하겠습니다 ㅠ.