system-callkernel-modeprivilege

시스템 콜과 유저 모드, 커널 모드를 설명해 주세요

면접 출제
예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

라이브러리 함수와 시스템 콜은 같은 건가요?

부가 설명

프로그램이 마음대로 디스크나 메모리 관리 구조를 건드릴 수 있다면 한 애플리케이션의 버그가 시스템 전체를 망가뜨릴 수 있습니다. 그래서 CPU와 OS는 권한 수준을 나누고, 일반 코드는 유저 모드에서 제한된 명령만 실행하게 둡니다.

시스템 콜은 이 경계를 안전하게 넘는 공식 입구입니다. 다만 경계를 넘는 데에는 비용이 있습니다. 커널로 들어가 인자를 검증하고, 필요한 작업을 수행하고, 다시 사용자 공간으로 돌아와야 합니다. 그래서 작은 read/write를 지나치게 많이 호출하는 코드는 buffering으로 시스템 콜 횟수를 줄이기도 합니다.

한 줄 정리

시스템 콜은 사용자 프로그램이 보호된 OS 기능을 쓰기 위해 커널에 들어가는 안전한 관문입니다.