작성
·
227
0
안녕하세요. 강의 감사히 잘 듣고 있습니다.
강의 중에 등장한 user mode, kernel mode 의 차이점에 대해 따로 찾아보던 중 이해가 안 되는 부분이 있어 질문을 남깁니다.
kernel 모드는 OS의 핵심적인 기능들을 수행하는 모드로서 모든 컴퓨팅 자원들에 대한 접근 권한을 갖습니다.
하지만 user mode 는 제한된 권한을 가지면서, i/o 등의 작업이 필요할 경우 system call 을 통해 kernel에 해당 작업을 요청하는 식으로 동작한다는 것을 알게 되었습니다.
이런 구조를 갖는 이유는, user mode에서 수행할 user application에서 (외부의 공격에 의해 심어진) "디스크의 내용을 모두 지워라" 와 같은 악의적인 내용을 수행하려할 경우 이러한 위험에서 리소스들을 보호하기 위함이라는 내용을 보았습니다.
제 의문은 여기서 발생합니다.
user mode 는 어쨌든 i/o 가 필요할 때 kernel 에 해당 작업을 요청할텐데..
kernel은 요청받은 i/o 작업이 필요에 의한 작업인지? 외부 공격 등에 의한 악의적인 동작인지? 를 어떤 식으로 구분하여 리소스를 안전하게 보호할 수 있는 것인가요?
많은 자료를 찾아보았으나 해답을 얻지 못해 실례를 무릅쓰고 질문 드립니다.
답변해주시면 공부하는데 큰 도움이 될 것입니다.
읽어주셔서 감사합니다.
답변 1
0
커널은 프로세스 단위로 컴퓨팅 자원을 분배하기 때문에 어떤 프로세스가 다른 프로세스에 할당된 메모리공간을 침범하려하면 동기화가 잘되어 있는한 운영체제가 막는걸로 알고 있습니다