Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Extendable hashing
- 개발남노씨
- 인터럽트
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 김영한
- 네트워크
- 프로세스 주소 공간
- 쉬운 코드
- 쉬운코드
- 데이터베이스
- 온디바이스AI
- 운영체제와 정보기술의 원리
- SDK
- 커널 동기화
- 갤럭시 S24
- 코딩테스트 [ ALL IN ONE ]
- 시스템프로그래밍
- CPU 스케줄링
- SQL
- 운영체제
- 시그널 핸들러
- 트랜잭션
- Git
- recoverability
- 백엔드
- vite
- B tree 데이터삽입
- 반효경
- 코딩애플
- concurrency control
Archives
- Today
- Total
티끌모아 태산
Chapter 5 : System Calls 본문
728x90
System Call Principles
- 응용 프로그램(Applications)과 하드웨어(hardware) 사이에 추가적인 계층을 두는 것의 장점은 다음과 같습니다:
- 프로그래밍이 쉬워집니다(easy to program): 사용자가 하드웨어 장치의 저수준(low-level) 프로그래밍 특성을 인지할 필요가 없어집니다.
- 시스템 보안이 증가합니다(Increasing system security): 커널이 인터페이스 수준에서 요청의 정확성을 확인할 수 있습니다.
- 프로그램의 이식성이 증가합니다. (Increase program portability)
- 시스템 호출에 대해:
- UNIX 시스템은 사용자 모드(User Mode) 프로세스와 하드웨어 장치 간의 대부분의 인터페이스를 커널로 발행된 시스템 호출을 통해 구현합니다.
- 사용자 모드 프로세스와 하드웨어 장치 사이의 인터페이스입니다. (interfaces between User Mode processes and hardware devices)
- 커널 서비스를 요청하는 데 사용됩니다.
- System Call
- 소프트웨어 인터럽트를 통해 커널에 명시적으로 요청을 하는 것입니다.
- 커널 설계자의 관점에서 볼 때 커널에 속한 기능입니다.
- 일부 시스템 호출은 하나 이상의 인자를 필요로 합니다.
- 성공적인 종료를 의미하는 양수나 0 값을 반환합니다.
- 실패할 경우: -1을 반환하고 오류 코드를 errno에 설정합니다 (예: include/asm-i386/errno.h를 보세요).
- 시스템 호출은 사용자 공간의 libc에 있는 래퍼 루틴(예: _syscall3())으로 구현됩니다.
- 소프트웨어 인터럽트를 통해 커널에 명시적으로 요청을 하는 것입니다.
시스템 호출이 사용자 공간의 응용 프로그램과 커널 사이의 인터페이스 역할을 하며, 이를 통해 커널 서비스를 요청하고 결과를 반환하는 과정을 나타냅니다. 오류 발생 시 시스템 호출은 특정 오류 코드를 errno 변수에 설정하여, 호출한 프로그램이 오류를 처리할 수 있도록 정보를 제공합니다.
System Call Handling In x86/Linux
전반적인 시스템 콜 처리과정은 다음과 같습니다.
- Saves the contents of most registers in the Kernel Mode stack
- Handles the system call by invoking the system call service routine.
- Exits from the handler: restore the register and swtiches back to User Mode
728x90
'CS 지식 > 시스템프로그래밍' 카테고리의 다른 글
Chapter 6 : Signals (0) | 2023.12.25 |
---|---|
Chapter 4 : Timing Measurements (0) | 2023.12.25 |
Chapter 3: Interrupt and Exception (0) | 2023.12.23 |