Operation System - 4. 시스템콜 편

Perdy·2023년 7월 26일
0

CS

목록 보기
4/20

시스템콜

운영체제가 커널에 접근하기 위한 인터페이스이자 유저 프로그램이 운영 체제의 서비스를 받기 위해 커널함수를 호출할 때 사용합니다.

시스템콜을 사용하는 이유
사용자가 함부로 사용하면 문제가 될 만한 명령어를 막아놓았기 때문에, 사용자들이 이런 기능을 사용하려면 시스템 콜을 사용해야 합니다.

시스템 콜 수행 과정

프로세스가 시스템콜을 요청하면 trap이 발생하여, 올바른 요청인지 확인한 후에 커널모드로 변한되어 실행됩니다. 이후 return-from-trap을 발생시켜 유저모드로 돌아갑니다.

유저 모드와 커널 모드

유저 모드
개발자가 작성한 프로세스 코드만을 실행하기 위한 모드로, 유저 모드에서는 커널 영역에 있는 자원에 접근할 수 없습니다

커널 모드
유저 영역과 커널 영역, 양 쪽에 모두 접근할 수 있는 상태로, 시스템 콜을 할 경우 커널 모드로 전환됩니다.

유저 모드와 커널 모드를 구분하는 이유

프로세스가 커널에 직접적으로 접근이 가능해서 문제가 발생할 경우, 해당 OS에서 작동중인 모든 프로세스에 악영향을 줄 수 있습니다. 그렇기 때문에 커널 모드와 유저 모드를 구분하여, 개발자가 작성한 프로세스가 커널 영역에 직접 접근하는 것을 막고 시스템 콜을 통한 간접적인 접근을 허용하는 방식을 이용하여 OS의 안정성을 높일 수 있습니다.

profile
영원한 뉴비. 꾸준히 한다면 언젠가는 높은 곳에 도달할지도?

0개의 댓글