시스템 콜 vs 라이브러리 함수

이후띵·2021년 12월 16일
0

컴퓨터시스템

목록 보기
7/8

운영체제에는 커널모드와 사용자모드가 있다.

(1) 시스템 콜

시스템 콜이란 커널의 자원을 사용자가 사용할 수 있도록 만들어 놓은 함수들을 말한다. 시스템 콜을 호출하면, 사용자 모드에서 커널 모드로 전환하여 실행된다.

(2) 라이브러리 함수

라이브러리 함수란 사용자들이 많이 사용할 것 같은 기능들을 미리 함수로 만들어 놓은 것이다. 라이브러리 함수를 호출하면, 사용자 프로그램은 사용자 모드에서 실행된다.

(3) 시스템 콜 vs 라이브러리 함수

시스템 콜을 통해 커널 모드로 전환하여 사용자 프로그램에 필요한 값들을 전달해 줄 수 있는데, 사용자 프로그램에서 커널의 메모리 공간을 직접 이용할 수 없으므로, 메모리 공간을 할당해야한다.
-> 메모리 할당을 안할 시 Segmentation fault 발생.

반면, 라이브러리 함수는 특별한 할당이 없이도 라이브러리 함수에서 할당된 메모리를 이용할 수 있다.

시스템 콜                  라이브러리 함수                       
     수행공간                         커널모드                 사용자모드(유저모드)
메모리 할당 여부별도로 사용자 모드에서 메모리 할당 필요라이브러리 함수에서 할당된 메모리 이용 가능
profile
이후띵's 개발일지

0개의 댓글