[운영체제 2-3장. 시스템 호출]
[시스템 호출(System Calls)]
: 운영체제에 의해 사용 가능한 서비스에 대한 인터페이스를 제공
#시스템 호출이 사용되는 예
: 위 그림에서 보이듯 간단한 프로그램이라도 운영체제의 기능을 많이 사용한다.
- API(응용 프로그래밍 인터페이스) : 어떤것의 기능을 사용하기 위한 함수, 프로토타입등을 모아둔것.
- 응용 프로그래머가 사용 가능한 가장 흔한 세가지 API : 1. Windows API / 2. POSIX API : Linux, Unix, Mac OS 포함 / 3. Java API
#표준 API의 예
: C,C++형태
[시스템 호출 구현(Implementation)]
<실행순서>
1. Application에서 운영체제 시스템 호출(ex. open())을 부른다 = Trap을 사용
2. 각 시스템 호출에서 번호가 할당(ex. i)된다. (Trap 처리 함수보면 시스템 호출 확인 장치 존재)
3. 시스템 호출 인터페이스는 이 번호에 따라 색인되는 테이블로 가서 실행한다. (커널 모드로 전환 = OS로 제어권 전환)
4. 실행하고 나온 return값을 다시 시스템 호출 인터페이스가 application에 돌려준다.
(+)프로그램 시행시, 특정 시점에 OS로 넘어가게 하려면, 1.Interrupt(외부적) 발생 2. Trap(내부적) 발생
[시스템 호출과 함수 호출의 차이점]
: 시스템 호출은 User Mode에서 호출을 해 kernel Mode(OS의 기능 수행하기위한 모드)로 가서 return값 받아 User Mode로 돌려주는 형태
: 함수 호출은 User Mode내에 있는 기능을 호출에서 반환하기때문에, Kernel 모드로 전환되지 않는다.
'기타 > [운영체제]' 카테고리의 다른 글
2-5장. 시스템 프로그램 (0) | 2019.03.18 |
---|---|
2-4장. 시스템 호출의 유형 (0) | 2019.03.15 |
2-2장. 사용자 운영체제 인터페이스 (0) | 2019.03.15 |
2-1장. 운영체제 서비스 (0) | 2019.03.15 |
[운영체제 1장 요약] (2) | 2019.03.14 |