시스템 콜(System Call)

gang_shik·2022년 3월 19일
0

Operating System

목록 보기
4/14
post-custom-banner

시스템 콜

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

  • 고급 언어로 작성된 프로그램들은 직접 시스템 콜을 사용할 수 없기 때문에 고급 API를 통해 시스템 콜에 접근하게 하는 방법임

  • 일반적으로 사용자는 응용프로그램을 사용함, 이 때 이 응용프로그램은 유저레벨의 함수들만을 사용함 즉, 사용자 모드로써

  • 하지만 그 정도 수준으로는 많은 기능을 구현하기 힘들어서 커널의 도움을 받아야함

  • 커널 영역에서는 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나 혹은 화면에 메시지를 출력하는 등 많은 작업을 할 수 있는데 이를 사용자 모드, 유저레벨에서는 사용할 수 없음

  • 그래서 시스템 콜을 활용해서 이런 커널 영역의 기능을 사용자 모드가 사용 가능하게 그렇게 전환을 한 후 직접적으로 하드웨어에 접근해서 필요한 기능에 대해서 작업을 수행할 권한이 이용가능함

  • 이러한 시스템 콜의 경우 커널 모드에서만 실행할 수 있도록 설계가 됨

  • 통상적으로 시스템 콜은 여러 종류의 기능으로 나뉘어져 있음, 각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지함 예를 들어 open() 시스템 콜을 하는 경우 아래와 같이 이루어짐

  • 여기서 필요한 기능이나 시스템 환경에 따라 시스템 콜이 발생할 때 좀 더 많은 정보가 필요할 수 있음, 그러한 정보가 담긴 매개변수를 운영체제의 전달할 때 CPU 레지스터 내에 보내던가 메모리에 저장해 메모리의 주소를 레지스터에 전달하던가 스택으로 전달될 수 있음

시스템 콜의 유형

  • 시스템 콜을 범주로 나눠서 분류할 수 있음

프로세스 제어(Process Control)

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

파일 조작(File Manipulation)

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

장치 관리(Device Management)

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

정보 유지(Information Maintenance)

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

통신(Communication)

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

보안

  • Permission 획득
  • Permission 설정
profile
측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다
post-custom-banner

0개의 댓글