시스템콜
시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스로
유저 프로그램이 운영체제의 서비스를 받기 위해
커널 함수를 호출할 때 이를 거쳐 호출하도록 설계되어 있다.
프로세스 관리(생성/삭제 등), 파일 관리, 디바이스 관리,
시간 및 날짜 관련 시스템, 프로세스 간 통신 때
시스템콜을 통해 커널 함수를 호출한다.
예를 들어, 프로세스를 종료하는 kill() 함수가 있는데,
이 함수를 발동시키면 시스템콜을 거쳐 커널 함수가 호출되게 된다.
과정
만약 유저프로그램이 I/O 요청을 위한 트랩을 발동했다고 하면,
다음과 같은 과정이 발생된다.
- 유저 프로그램이 I/O 요청 트랩을 발동한다.
- 올바른 I/O 요청인지 확인한다.
- 유저 모드가 시스템콜을 통해 커널모드로 변환한다.
- 이후 커널 함수를 실행한다.
커널함수
커널 안에 있는 여러 개의 함수를 뜻한다. native function이라고도 한다.
커널
운영체제의 핵심 부분이자, 시스템콜을 제공하몀
보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등
운영체제의 중추적인 역할을 한다.
유저 모드
유저가 접근할 수 있는 영역을 제한적으로 두며,
컴퓨터 자원에 함부로 침범할 수 없다.
커널 모드
모든 컴퓨터 자원에 접근할 수 있는 모드이다.
modebit
시스템콜이 작동될 때 modebit을 기반으로 유저 모드와 커널 모드를 구분한다.
modebit은 0 또는 1의 값을 가지는 플래그 변수로,
유저 모드가 1, 커널 모드가 0이다.
시스템콜의 장점
유저 프로그램은 시스템콜을 기바능로 커널과 분리된다.
유저 프로그램은 복잡한 파일 시스템과 프로세스 생성 등에 대한
내부 동작을 신경 쓸 필요가 없어진다.
또한, 운영체제의 관리 하에 프로그램이 운영되므로
시스템의 안정성과 보안이 강화된다.
예를 들어, 공격자가 만든 카메라 앱 프로그램이 아무 제약 없이
커널에 접근할 수 있다면,
카메라에 관련한 메모리 등이 오염될 수 있고,
그로 인해 카메라가 내 의도와 관계없이 켜져 사생활이 노출될 수 있다.
이러한 것을 방지하기 위해
유저 모드에서 시스템콜만으로 커널 모드에 진입할 수 있도록 단 하나의 통로를 만든 것이다.
참고: inflearn 강의 'CS 지식의 정석 - 큰돌'
'컴퓨터 공학 & 통신' 카테고리의 다른 글
[개념 정리/운영체제] 가상메모리와 관련 개념들 (0) | 2023.07.25 |
---|---|
[개념 정리/운영체제] 메모리 계층 (0) | 2023.07.25 |
[개념정리/운영체제] CPU와 인터럽트 (0) | 2023.07.21 |
[개념 정리/운영체제] 운영체제와 컴퓨터 시스템 구조 (0) | 2023.07.21 |
[키워드 정리/네트워크] 이더넷 프레임이란 (0) | 2023.07.20 |