[운영체제] 시스템 콜(system call)

함민혁·2023년 7월 26일
0

cs면접준비

목록 보기
4/43

시스템 콜이란?

정의 : 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스

사용자 모드 : 사용자, 프로그램이 접근할 수 있는 범위를 두고 범위 내에서 동작함
커널 모드 : 컴퓨터의 자원들이 운영체제의 제어 하에 동작하며 모든 종류의 명령을 사용할 수 있게 됨

  1. 사용자 모드에 있는 응용 프로그램이 커널에 접근하여 그 안의 기능을 사용할 수 있도록함
  2. 시스템 호출을 하면 사용자모드 -> 커널모드
  3. 커널에서 시스템 호출 작업 끝나면 사용자모드로 다시 돌아감

비트 0 커널 모드
비트 1 사용자 모드

버그를 방지하고 CPU의 부담을 줄이기 위해 시스템 콜 동작은 인터럽트를 발생시켜서 동작함

시스템 호출과 인터럽트의 차이

시스템 호출은 인터럽트의 한 종류이다. 시스템 호출은 유저가 발생시키는 것임으로 동기식이지만, 인터럽트 중 하드웨어에 의한 것은 그렇지 않은 경우도 있다. 사용자가 키보드를 누르는 것고 같이 예기치 않은 이벤트로 인해 비동기적으로 언제든지 인터럽트 발생 가능하다.

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

시스템 콜(System Call)은 운영 체제의 서비스를 사용자 프로그램이 호출하는 인터페이스
사용자 프로그램은 유저모드(User Mode)에서 실행되며, 시스템 콜을 호출하면 운영 체제의 기능을 필요로 하는 작업을 커널모드(Kernel Mode)에서 실행함. 이러한 유저모드와 커널모드의 구분은 보안, 안정성, 리소스 관리 등 다양한 이유로 필요함.
유저모드와 커널모드를 구분함으로써, 운영 체제는 안정성과 보안을 유지하면서 사용자 프로그램들이 효율적으로 시스템 리소스를 활용할 수 있도록 함

profile
Born to be FE developer 🧑🏻‍💻

0개의 댓글