Operating System - 4. System Call

Operating System - 4. System Call

2020, Oct 07    

1. 들어가며

운영체제에는 2가지 모드인 커널모드(Kernal Mode)와 유저모드(User Mode)가 존재한다고 배웠다. 프로세스를 운영체제가 직접적으로 관리 및 사용하는 방식을 이 글을 통해 알아보자.


2. 시스템 호출(System Call)이란?

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

  • 운영체제는 프로세스의 실행, 종료나 I/O 작업 등의 사용자가 함부로 사용하면 문제가 될 만한 명령들을 Privileged Instruction으로 분류하여 막아놓았다. 따라서 사용자들이 이와 같은 기능을 사용하기 위해서는 OS가 제공하는 System Call을 사용하여야 한다.

Operating-System-Example-of-System-Call

3. 시스템 호출(System Call)의 종류

3.1 프로세서 제어(process Control)

  • 끝내기(end), 중지(abort)
  • 적재(load), 실행(execute)
  • 프로세스 생성(create process)
  • 프로세스 속성 획득과 설정(get process attribute and set process attribute)
  • 시간 대기(wait time)
  • 사건 대기(wait event)
  • 사건을 알림(signal event)
  • 메모리 할당 및 해제 : malloc, free

3.2 파일 조작(file manipulation)

  • 파일 생성(create file), 파일 삭제(delete file)
  • 열기(open), 닫기(close)
  • 읽기(read), 쓰기(write), 위치 변경(reposition)
  • 파일 속성 획득 및 설정(get file attribute and set file attribute)

3.3 장치 관리(Device Management)

  • 장치를 요구(request devices), 장치를 방출release device)
  • 읽기, 쓰기, 위치 변경
  • 장치 속성 획득, 장치 속성 설정
  • 장치의 논리적 부착(attach) 또는 분리(detach)

3.4 정보 유지(Information maintenance)

  • 시간과 날짜의 설정과 획득(time)
  • 시스템 데이터의 설정과 획득(date)
  • 프로세스 파일, 장치 속성의 획득 및 설정

3.4 통신(Communication)

  • 통신 연결의 생성, 제거
  • 메시지의 송신, 수신
  • 상태 정보 전달
  • 원격 장치의 부착 및 분리


4. 시스템콜 예시(Window ans Unix)

Algorithms-Quick-Sort-Example


reference

[Image-of-Operating-System-Main/Komando]
[Image-of-System-Call-Example/guru99]
[Image-of-System-Call-Window-Unix-Example/Geeksforgeeks]
[General-Definition-of-System-Call/wiki]
[Operating-System-System-Call-Classification/tistory/luckyouwu]