• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

선생님 질문이 있습니다

22.07.18 19:48 작성 조회수 102

0

다음은 책 148 페이지에 시스템 콜에 대한 설명입니다

시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기

위해 커널 함수를 호출할 때 씁니다 유저 프로그램이 I/O 요청으로 트랩을 발동하면 올바른 I/O 요청인지

확인한 후 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행됩니다

 

다음은 책 149 페이지에 modebit에 대한 설명입니다

modebit의 0은 커널 모드, 1은 유저 모드라고 설정되며, 유저 모드일 경우에는 시스템콜을 못하게 막아서

한정된 일만 가능하게 합니다

 

두번째 지문에서 유저 모드일 경우 시스템콜을 못하게 막는다고 했는데 첫번째 지문에서는 유저 프로그램이

시스템콜을 요청한다고 써있내요 유저 프로그램이 실행되고 있는 모드를 커널 모드로 바꾸고 난뒤 시스템콜을

요청해야 된다는 건가요?? 만약 그렇다면 이 모드는 누가 바꿔주는 거에요??

 

답변 1

답변을 작성해보세요.

1

안녕하세요. ㅎㅎ

 해당부분 이미 설명을 변경해놓은 부분인데요.

https://github.com/wnghdcjfe/csnote

위 링크 타고가시면 책의 내용이 수정된 것을 볼 수 있는데요.(강의에서는 수정된 것으로 강의하고 있습니다.)

 

before

1은 유저모드라고 설정되며, 유저모드일 경우에는 시스템콜을 못하게 막아서 한정된 일만 가능하게 합니다.

 

after

1은 유저모드라고 설정됩니다.

 

이렇게 바뀌었습니다. 

 

감사합니다. 

강사 큰돌 올림.

InMyeong님의 프로필

InMyeong

질문자

2022.07.18

감사합니다!