본문 바로가기
Computer Science

시스템 콜(System Call)

by 융식 2022. 7. 6.

시스템 콜이란

운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나,

혹은 화면에 메시지를 출력하는 등 많으 부분이 커널 모드를 사용한다.

 

시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게,

프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다.

( 프로세스가 운영체제 기능을 사용할 수 있게 요청)

 

 

시스템 콜들은 실제로 운영체제에서 사용하라고 만들어놓은 코드들(함수)로

프로그래밍을 할 때 시스템콜이 들어있는 헤더파일을 불러와서 사용합니다. 

System Call 은 사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 하나의 방법이다.

 

처리방식

  1. 사용자 프로세스가 시스템 콜을 요청하면 제어가 커널로 넘어옴(사용자 모드 -> 커널 모드)
  2. 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고,
    그 번호에 해당하는 제어루틴을 커널 내부에 정의
  3. 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인
  4. 커널은 그 번호에 맞는 서비스 루틴을 호출
  5. 서비스 루틴을 모두 처리하고 나면 커널 모드에서 사용자 모드로 다시 전환

 

System Call 기능

  1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.
  2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.
  3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다.

 

현대 운영체제는 수백개의 시스템 콜을 가지고 있음

 

시스템 콜의 종류

  • 프로세스 컨트롤
    • 프로세스 생성 및 종료
    • 메모리에 로드, 실행
    • 프로세스 속성 값 확인, 지정
    • wait 이벤트, signal 이벤트
    • 메모리 할당
  • 파일 메니지먼트
    • 파일 생성, 파일 삭제
    • 열기, 닫기
    • 읽기, 쓰기, Reposition
    • 파일 속성 값 확인, 지정
  • 디바이스 매니지먼트
    • 디바이스 요청 및 해제
    • 읽기, 쓰기, Reposition
    • 디바이스 속성 확인, 지정
    • 비 물리적인 디바이스 해제 및 장착
  • 정보 관리
    • 시간 확인, 시간 지정
    • 시스템 데이터 확인, 지정
    • 프로세스, 파일, 디바이스 속성 가져오기
    • 프로세스, 파일, 디바이스 속성 설정하기
  • 커뮤니케이션
    • 커뮤니케이션 연결 생성 및 삭제
    • 메시지 송신, 수신
    • 상태 정보 전달
    • remote 디바이스 해제 및 장착
  • 보안
    • Permission 획득
    • Permission 설정

 

 

참고자료 : https://fjvbn2003.tistory.com/306 [Chaos and Order:티스토리],

https://mamu2830.blogspot.com/2021/01/whatIsSystemCall.html [마무],

 

 

'Computer Science' 카테고리의 다른 글

파일 시스템이란?  (0) 2022.07.28
경쟁상태란 무엇일까  (0) 2022.07.06
인터럽트란? (Interrupt)  (0) 2022.06.29
프로세스와 스레드의 차이  (0) 2022.06.14
파이프라인이란?  (0) 2022.06.09