728x90
반응형
시스템 콜이란?
시스템 콜(System Call)은 운영체제 커널의 서비스를 사용하기 위한 인터페이스로, 응용 프로그램이 하드웨어나 운영체제 자원에 접근하기 위해 사용됩니다.
fork( ), exec( ), wait( )와 같은 것들은 Process 생성과 제어를 위한 System Call
- fork, exec는 새로운 Process 생성과 관련이 되어 있다.
- wait는 Process (Parent)가 만든 다른 Process(child) 가 끝날 때까지 기다리는 명령어.
시스템 콜의 목적
- 추상화된 하드웨어 인터페이스를 유저 프로세스에게 제공한다.
- 시스템의 보안과 안정성을 보장한다.
- 가상화된 유저 프로세스와 시스템이 소통할 수 있는 유일하고 공통적인 소통수단
시스템 콜의 이해
- 예를 들어 printf 함수를 사용 시에 우리는 입출력 장치를 이용해야 한다.
- Program들은 user mode에서만 동작할 수 없다. 결국 OS의 service(kernel mode)가 필요하다.
- printf 함수를 사용하면 내부적으로 시스템콜(write())를 이용해서 kernel에 도움받아서 리턴 받은 후 terminal에 출력한다.
시스템 콜의 동작
- 운영체제가 제공하는 시스템 콜에 대한 연결고리 역할을 하는 시스템 콜 인터페이스를 제공한다.
- 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이 번호에 따라 색인되는 테이블을 유지한다.
- 시스템 콜 인터페이스는 의도하는 시스템 콜을 부르고 시스템 콜의 상태와 반환 값을 돌려준다.
- 사용자는 시스템 콜이 어떻게 구현되고 실행 중 무슨 작업을 하는지 알 필요가 없다.
References
728x90
반응형
'CS' 카테고리의 다른 글
객체 지향 프로그래밍(Object-Oriented Programming, OOP) (0) | 2023.04.07 |
---|---|
클린코드 & 리팩토링 & 시큐어코딩 (0) | 2023.04.07 |
인터럽트(Interrupt) (0) | 2023.04.06 |
프로세스 주소 공간 (0) | 2023.04.06 |
프로세스(process)와 스레드(thread) (0) | 2023.04.06 |