본문 바로가기
CS 전공지식 정리/운영체제

[운영체제] 시스템콜(System Call)

by code_killer 2023. 10. 28.
728x90
반응형

1. 시스템콜이란?

  • 운영체제가 커널에 접근하기 위한 인터페이스
  • 주로 하드웨어 접근, 시스템 리소스를 관리, 입출력 작업 수행, 프로세스간 통신 등을 목적으로 사용

출처 : 면접을 위한 CS 전공지식 노트(길벗)

 1) 유저 모드
 - 유저가 접근할 수 있는 영역을 제한해둔 모드
 - 컴퓨터 자원에 함부로 침범하지 못하는 모드

 2) 커널 모드
 - 모든 컴퓨터 자원에 접근할 수 있는 모드

 3) 커널
 - 운영 체제의 핵심 부분
 - 시스템 콜 인터페이스를 제공
 - 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할

 

2. 동작 과정

  1. 유저 프로그램이 I/O 요청
  2. 트랩(Trap)이 발동
  3. 올바른 I/O 요청인지 확인
  4. 유저 모드가 시스템 콜을 통해 커널 모드로 변환
  5. 해당 I/O 요청 실행

 

3. 시스템콜의 목적

  • 사용자 프로그램이 직접적으로 하드웨어를 조작하거나, 시스템의 안정성과 보안을 위협하는 작업을 수행하는 것을 방지하면서 필요한 서비스를 제공

출처 : 면접을 위한 CS 전공지식 노트(길벗)

 

4. modebit

  • 운영체제가 현재 CPU가 어떤 모드(유저/커널 모드)에서 동작하고 있는지를 관리하기 위해 사용하는 플래그
  • 0 : 커널 모드
  • 1 : 유저 모드

출처 : 면접을 위한 CS 전공지식 노트(길벗)

 예시) 유저 프로그램이 카메라 사용

  1. 시스템 콜 호출
  2. modebit을 1에서 0으로 변경(커널 모드로 변경)
  3. 카메라 자원을 이용한 로직 수행
  4. modebit을 0에서 1로 변경(유저 모드로 변경)
  5. 이후 로직 실행
728x90