시스템 콜

고장난 고양이·2022년 7월 21일
0

운영체제

목록 보기
14/21

시스템 콜(시스템 호출)란?

시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다.

일반적으로 유저들이 사용하는 프로그램인 응용프로그램은 유저레벨의 함수들로는 많은 기능을 구현하기 힘듭니다. 커널(Kernel)의 도움이 필요하기에 중간에 커널모드로 전환해서 작업을 수행해야합니다. 이 과정중 수행활 권한이 있어야하기에 반드시 시스템 콜을 통해 수행해야만 합니다.

권한은 아무렇게 함수를 호출했을 경우 시스템 전체를 망가뜨릴 수 있기때문에 꼭 필요합니다. 따라서 이러한 명령어들은 특별하게 커널 모드에서만 실행할 수 있도록 설계되었고, 만약 유저 모드에서 시스템 콜을 호출할 경우에는 운영체제에서 불법적인 접근이라 여기고 trap을 발생시킵니다.

시스템 콜의 종류

프로세스 컨트롤

  • 프로세스 생성 및 종료
  • 메모리에 로드, 실행
  • 프로세스 속성 값 확인, 지정
  • wait 이벤트, signal 이벤트
  • 메모리 할당

파일 메니지먼트

  • 파일 생성, 파일 삭제
  • 열기, 닫기
  • 읽기, 쓰기, Reposition
  • 파일 속성 값 확인, 지정

디바이스 매니지먼트

  • 디바이스 요청 및 해제
  • 읽기, 쓰기, Reposition
  • 디바이스 속성 확인, 지정
  • 비 물리적인 디바이스 해제 및 장착

정보 관리

  • 시간 확인, 시간 지정
  • 시스템 데이터 확인, 지정
  • 프로세스, 파일, 디바이스 속성 가져오기
  • 프로세스, 파일, 디바이스 속성 설정하기

커뮤니케이션

  • 커뮤니케이션 연결 생성 및 삭제
  • 메시지 송신, 수신
  • 상태 정보 전달
  • remote 디바이스 해제 및 장착

보안

  • Permission 획득
  • Permission 설정

시스템 콜 과정

출처
https://fjvbn2003.tistory.com/306 [Chaos and Order:티스토리]

profile
개발새발X발일지

0개의 댓글