티스토리 뷰

#1.1 Systems Calls and Library Functions


* System Call: 시스템 콜은 응용프로그램에서 운영체제에게 기능(시스템 자원)을 수행 해달라고 하는 하나의 수단이다.


* 효과: 

- 저수준 프로그래밍을 몰라도 되므로 프로그래밍이 쉬워지며 프로그램 호환성이 좋아진다.

- 사용자 요청을 처리하기 전에 인터페이스 수준에서 올바른 요청인지 검사할 수 있다. 


* 이해: 

- 사용자 프로세서가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 방법 


* 처리방식:

- 사용자 프로세서가 시스템 콜을 요청하면 제어가 커널로 넘어간다.

- 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당한다.

- 해당번호는 커널 내부에 제어루틴을 정의한다.

- 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인한다.

- 커널은 그 번호에 맞는 서비스 루틴을 호출하게 된다.

- 서비스 루틴을 모두 처리하고나면 커널모드에서 사용자모드로 다시 넘어온다. 



- System Call의 구조 




* Library Functions


- 일반적으로 System call을 호출한다.

- Library Functions의 예 :

- printf()

- scanf()

- fopen()

- fclose()

- gets()

- puts()

- getw()

- fread()

- fseek()



* System Calls


- 커널 함수를 호출하는 C 함수처럼 보인다.

- 사용자 프로그램으로부터 호출될 수 있다.

- System Calls의 예

- open()

- creat()

- close()

- read()

- write()

- lseek()

- unlink()


- 라이브러리 system calls이 포함이 된다.\

-.o 파일을 검사하기 위해서는 'ar' 명령(% ar -t)을 사용한다.

- nm 명령어(nm -g)를 사용해서 구현된 기능을 확인할 수 있다. 


댓글