• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

시스템 콜, 커널,인터럽트 질문

22.09.18 21:45 작성 조회수 242

0

안녕하세요? 강의 잘 듣구 있습니다

헷갈리는 부분이 있어서 질문드립니당

 

1.프로세스나 스레드에서 운영체제로 어떤 요청을 할 경우 혹은 유저 프로그램이 유저모드인 상태에서 운영체제의 서비스를 받으려고 할 때,시스템콜을 통해 커널에 접근해야 한다고 말씀해주셨는데요,

커널에 접근한다는 게 결국 modebit을 변환시켜서 커널모드에 접속한다는 뜻으로 봐도 될까요?

 

2.커널의 역할에 살짝 헷갈립니다

  • 커널 : 운영체제의 핵심 부분이자, 시스템 콜 인터페이스를 제공

    • 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 함

라고 영상(+책)에 쓰여져있는데, 커널이 그러면 여러가지 기능을 실질적으로 수행하는 주체(?)에 해당하는 것인가요?

근데 한편으로는 운영체제에 요청이나 명령을 제대로 전달하기 거쳐야하는 통로인 것처럼 말씀을 해주셔서, 커널의 역할이 정확하게 무엇인지 살짝 헷갈리네요

 

3.마지막으로 인터럽트입니다

인터럽트가 발생하는 이유로는 에러인 경우도 있고, 에러에 의한 게 아니라 디바이스연결처럼 자연스럽게 발생하는 경우도 있다고 말씀해주셧는데요

그러면 인터럽트의 존재자체가 하나의 에러인가요? 아니면 설계 의도에 따른 자연스러운 절차인건가요?

비슷한 맥락인데, 그러면 인터럽트를 핸들링하는 인터럽트 핸들러 함수들은 결과적으로 에러를 처리하는 건가요? 아니면 역시 설계에 따라 자연스러운 절차로써 수행되는 부분인가요??

감사합니다!!!

답변 1

답변을 작성해보세요.

0

안녕하세요. ㅎㅎ

modebit을 변환시켜서 커널모드에 접속한다는 뜻으로 봐도 될까요?

>> 넵

커널이 그러면 여러가지 기능을 실질적으로 수행하는 주체(?)에 해당하는 것인가요?

>> 넵. 음.. 관리자를 생각하면 쉽습니다. 저희가 어떤 일을 하고 그 일에 대해 보고를 관리자를 "통해서" 하죠. 그러면 그 관리자 해당 일에 대해 중추적으로 오더를 내리는 등의 역할을 하는 것이죠.

인터럽트의 존재자체가 하나의 에러인가요? 아니면 설계 의도에 따른 자연스러운 절차인건가요?

>> 설계된 것입니다. 에러가 발생이 되면 인터럽트를 발생시켜 해당 프로세스 등을 종료할 수 있습니다. 또한 디바이스 연결을 하면 그 때 디바이스 연결"처리"를 해야 하기 때문에 일을 수행하고 있던 CPU에게 해당 처리를 위임하기 위해 인터럽트가 발생하는 것입니다. 음... 뭐랄까? 알림창을 생각하면 쉽습니다. 저희가 어떤 일을 하고 있다가 알림창이 뜬 걸 확인하고 해당 알림창에 대한 일로 전환을 하기도 하죠? 그러한 알림창역할을 인터럽트가 수행합니다.

 

감사합니다.

김영빈님의 프로필

김영빈

질문자

2022.09.25

감사합니다~