컴퓨터 공학 & 통신

[개념 정리/운영체제] 시스템콜

왈왈디 2023. 7. 21. 12:48
728x90

시스템콜

시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스

유저 프로그램운영체제의 서비스를 받기 위해

커널 함수를 호출할 때 이를 거쳐 호출하도록 설계되어 있다.

 

프로세스 관리(생성/삭제 등), 파일 관리, 디바이스 관리,

시간 및 날짜 관련 시스템, 프로세스 간 통신 때

시스템콜을 통해 커널 함수를 호출한다.

 

예를 들어, 프로세스를 종료하는 kill() 함수가 있는데,

이 함수를 발동시키면 시스템콜을 거쳐 커널 함수가 호출되게 된다.

 

과정

만약 유저프로그램이 I/O 요청을 위한 트랩을 발동했다고 하면,

다음과 같은 과정이 발생된다.

  1. 유저 프로그램이 I/O 요청 트랩을 발동한다.
  2. 올바른 I/O 요청인지 확인한다.
  3. 유저 모드가 시스템콜을 통해 커널모드로 변환한다.
  4. 이후 커널 함수를 실행한다.

 

커널함수

커널 안에 있는 여러 개의 함수를 뜻한다. native function이라고도 한다.

 

커널

운영체제의 핵심 부분이자, 시스템콜을 제공하몀

보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등

운영체제의 중추적인 역할을 한다.

 

유저 모드

유저가 접근할 수 있는 영역을 제한적으로 두며,

컴퓨터 자원에 함부로 침범할 수 없다.

 

커널 모드

모든 컴퓨터 자원에 접근할 수 있는 모드이다.

 

modebit

시스템콜이 작동될 때 modebit을 기반으로 유저 모드와 커널 모드를 구분한다.

modebit은 0 또는 1의 값을 가지는 플래그 변수로,

유저 모드가 1, 커널 모드가 0이다.

 

시스템콜의 장점

유저 프로그램은 시스템콜을 기바능로 커널과 분리된다.

 

유저 프로그램은 복잡한 파일 시스템과 프로세스 생성 등에 대한

내부 동작을 신경 쓸 필요가 없어진다.

 

또한, 운영체제의 관리 하에 프로그램이 운영되므로

시스템의 안정성과 보안이 강화된다.

 

예를 들어, 공격자가 만든 카메라 앱 프로그램이 아무 제약 없이

커널에 접근할 수 있다면,

카메라에 관련한 메모리 등이 오염될 수 있고,

그로 인해 카메라가 내 의도와 관계없이 켜져 사생활이 노출될 수 있다.

 

이러한 것을 방지하기 위해

유저 모드에서 시스템콜만으로 커널 모드에 진입할 수 있도록 단 하나의 통로를 만든 것이다.

 

참고: inflearn 강의 'CS 지식의 정석 - 큰돌'

728x90