[OS] System call

Hongjun·2022년 12월 28일
0

지금까지 OS 가 무엇인지 그리고 OS가 하는일과 CPU 와 쓰레드에 관하여 알아보는 시간을 가졌었습니다.

그렇다면 OS를 통해 CPU를 제어하거나 시스템 소프트웨어를 활용하고 싶을때는 어떻게 해야할까요?

System call

Systemcall 이란 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 운영프로그램에서 커널에 접근하기 위한 인터페이스를 의미합니다.
우리는 이러한 Systemcall 을 통해 프로세스와 같은 커널 모드에서만 사용가능한 명령들을 수행할 수 있습니다.

일반적으로 우리가 사용하는 C,C++과 같은 언어는 응용프로그램으로 User Mode 층에 해당합니다. 아래와 같이 유저 모드에서는 컴퓨터의 자원에 접근을 하지 못하는데 특별한 이유로 자원에 접근하여 제어를 해야할 때 System call을 통해 Kernel Mode에 들어가 프로그램 자원을 제어하고 컨트롤 하는 것입니다.

위의 사진 처럼
User Mode-> (System call)-> Kernel Mode-> return-> UserMode
의 흐름으로 흘러 가는 것 입니다.

시스템 콜의 종류

프로세스 컨트롤

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

메모리 할당

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

디바이스 매니지먼트

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

정보 관리

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

커뮤니케이션

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

보안

  • Permission 획득
  • Permission 설정
profile
실패가 과정인 개발자가 되자

0개의 댓글