-
[OS] System Call HandlingComputer Science 2024. 4. 10. 16:39
System Call 이란
- OS에 의해 제공되는 인터페이스
- Program은 System call 인터페이스를 통해 os에 서비스를 요청한다.
- 예를 들어, 하드 디스크를 접근하는 것과, 새로운 프로세스를 생성하는 등의 작업이 있다.
API 란
- Application Program Interface의 약자로 application programmer에게 제공되는 함수의 집합이다.
- 프로그래머는 API를 통해 시스템과 통신하며, OS의 세부 사항은 프로그래머로부터 숨겨진다.
Sytem Call Handling
운영 체제(OS)의 System Call Handling은 운영 체제의 핵심적인 역할 중 하나로, 시스템 콜 처리 과정은 다음과 같다.
- 사용자 프로그램 호출: 사용자 프로그램이 시스템 콜을 호출한다. 이는 일반적으로 C나 C++와 같은 고급 프로그래밍 언어로 작성된 코드에서 특정 함수를 호출하는 형태로 이루어진다.
- 사용자 모드에서 커널 모드로 변경: 사용자 프로그램이 시스템 콜을 호출하면, 프로세스는 사용자 모드에서 커널 모드로 변경된다. 이는 Privileged Instruction이 실행될 수 있도록 CPU의 모드를 변경하는 것이다
- 시스템 콜 번호 확인: 사용자 프로그램이 호출한 함수에 해당하는 시스템 콜 번호를 확인한다. 시스템 콜 번호는 각각의 시스템 콜에 대해 고유하게 할당되어 있다.
- 인자 전달: 사용자 프로그램이 시스템 콜에 필요한 인자를 전달한다. 이는 보통 레지스터나 스택을 통해 이루어진다.
- 커널 내부로 진입: System Call Handler가 호출된다. 이는 커널 내부에서 시스템 콜을 처리하는 함수이다.
- 시스템 콜 실행: 시스템 콜 핸들러가 사용자 프로그램이 요청한 작업을 수행한다. 이는 주로 하드웨어나 다른 커널 서비스에 대한 접근을 포함한다.
- 결과 반환: 시스템 콜 핸들러가 사용자 프로그램으로 결과를 반환한다. 이는 보통 레지스터나 메모리를 통해 이루어진다.
- 커널 모드에서 사용자 모드로 변경: 시스템 콜이 처리되면, 프로세스는 다시 사용자 모드로 변경된다.
이러한 과정을 통해 시스템 콜은 사용자 프로그램과 운영 체제 사이의 인터페이스 역할을 하며, 운영 체제가 하드웨어 및 다양한 시스템 리소스를 관리하고 제어할 수 있게 한다.
Sytem Call Parameter Passing
os에 인자를 전달하는 방법에는 세 가지가 있다.
- 레지스터에 전달
- 메모리 테이블에 저장 후, 테이블 주소를 레지스터에 전달
- 프로그램 스택에 푸쉬 후, 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