Hi there!

I am a student studying computer science.

시스템 프로그래밍

시스템 프로그래밍 2장 - Library call

만능성구 2020. 5. 5. 01:55
728x90

System call / Library call 차이

System call :

- OS안에

- 그들이 구현되어있는 것이 kernel내에 있어서 user가 진입하는 entry point

Library call :

- OS밖에

- 커널밖에 존재하기 때문에 user의 call을 라이브러리가 변경시켜서 kernel에 전달을 하는 기능을 하는 프로그램

 

System call은 다양한 측면에서 사용할 수 있다.

System call을 직접 사용할 수 있고 Libray call을 통해서 사용할 수 있다.

System Calls & Library Calls for File I/O

Library call

- Library는 자체도 하나의 프로그램

- System call을 통해서 System kernel에 있는 System utility를 사용하도록 만들어진 Program

 

1. user가 프로그래밍을 할 때 API제공을 목적으로 한다.

2. 자주 사용되는 기능을 프로그램화, 함수화 시킨 Obj

   z.B) graphic, mat 등. obj형태로 존재

3. Linux에서 “/lib” or in “/usr/lib” 에 있다.

 

 

 

- user가 어떤 API함수들을 호출해서 Library call 실행한다.

- Source Code file을 컴파일하면 Executable File 생성된다.

- 프로그램을 실행할 때 linker라는 도구가 Library file안에 있는 function들을 linking 해준다

- user프로그램이 link되어서 실행된다.

 

 

 

Library 종류 (만드는 방식)

  • 1. shared

- 공유된다.

- 다수의 user가 program이 동일한 기능을 수행하는 라이브러리를 이용한다면 하나의 프로그램만 만들고 공유해서 사용한다.

- 이 기능이 구현되어 있는 code가 Memory에 하나가 존재하고 Address가 user에게 제공된다.

- 실행파일은 link로 가져온다. Dynamic linking시스템이다.

- 프로그램 Memory 효율성

- 서버같은데서 돌아간다

  • 2. static

- 각각의 프로그램에 static하게 실행파일에 들어간다.

- 프로그램마다 중복되어서 들어간다.

장 : 직접 code를 가지고 있어서 빠르게 실행된다.

단 : Memory 공간이 중복되어서 Memory overhead.

- 프로그램이 많이 들어가지 않는 embeded system에서 사용된다.

728x90