2-3장. 시스템 호출

기타/[운영체제]

2019. 3. 15. 20:56

[운영체제 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