ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] System Call Handling
    Computer Science 2024. 4. 10. 16:39

    System Call 이란

    • OS에 의해 제공되는 인터페이스
    • Program은 System call 인터페이스를 통해 os에 서비스를 요청한다.
    • 예를 들어, 하드 디스크를 접근하는 것과, 새로운 프로세스를 생성하는 등의 작업이 있다.

    https://data-flair.training/blogs/system-call-in-os/

     

    API 란

    • Application Program Interface의 약자로 application programmer에게 제공되는 함수의 집합이다.
    • 프로그래머는 API를 통해 시스템과 통신하며, OS의 세부 사항은 프로그래머로부터 숨겨진다.

     

     

    Sytem Call Handling

    운영 체제(OS)의 System Call Handling은 운영 체제의 핵심적인 역할 중 하나로, 시스템 콜 처리 과정은 다음과 같다.

     

    1. 사용자 프로그램 호출: 사용자 프로그램이 시스템 콜을 호출한다. 이는 일반적으로 C나 C++와 같은 고급 프로그래밍 언어로 작성된 코드에서 특정 함수를 호출하는 형태로 이루어진다.
    2. 사용자 모드에서 커널 모드로 변경: 사용자 프로그램이 시스템 콜을 호출하면, 프로세스는 사용자 모드에서 커널 모드로 변경된다. 이는 Privileged Instruction이 실행될 수 있도록 CPU의 모드를 변경하는 것이다
    3. 시스템 콜 번호 확인: 사용자 프로그램이 호출한 함수에 해당하는 시스템 콜 번호를 확인한다. 시스템 콜 번호는 각각의 시스템 콜에 대해 고유하게 할당되어 있다.
    4. 인자 전달: 사용자 프로그램이 시스템 콜에 필요한 인자를 전달한다. 이는 보통 레지스터나 스택을 통해 이루어진다.
    5. 커널 내부로 진입: System Call Handler가 호출된다. 이는 커널 내부에서 시스템 콜을 처리하는 함수이다.
    6. 시스템 콜 실행: 시스템 콜 핸들러가 사용자 프로그램이 요청한 작업을 수행한다. 이는 주로 하드웨어나 다른 커널 서비스에 대한 접근을 포함한다.
    7. 결과 반환: 시스템 콜 핸들러가 사용자 프로그램으로 결과를 반환한다. 이는 보통 레지스터나 메모리를 통해 이루어진다.
    8. 커널 모드에서 사용자 모드로 변경: 시스템 콜이 처리되면, 프로세스는 다시 사용자 모드로 변경된다.

    이러한 과정을 통해 시스템 콜은 사용자 프로그램과 운영 체제 사이의 인터페이스 역할을 하며, 운영 체제가 하드웨어 및 다양한 시스템 리소스를 관리하고 제어할 수 있게 한다.

     

    https://www.naukri.com/code360/library/introduction-to-system-calls

     

     

    Sytem Call Parameter Passing

    os에 인자를 전달하는 방법에는 세 가지가 있다.

    1. 레지스터에 전달
    2. 메모리 테이블에 저장 후, 테이블 주소를 레지스터에 전달
    3. 프로그램 스택에 푸쉬 후, os에 의해 팝

     

    System Call 종류

    • Process control
    • File management
    • Memory management
    • Information maintenance
    • Communications

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

    [자료구조] Binary Tree  (0) 2022.05.24
    [자료구조] Circular Lists  (0) 2022.05.23
    [자료구조] 체인  (0) 2022.05.17

    댓글

Designed by Tistory.