본문 바로가기

C.E/OS

Operating System Service - System Call

System Call, 시스템 호출

 

시스템 호출이란 Process 와 운영체제간의 인터페이스를 말한다. 언어에 따라서 C언어나 C++로 대체시키기도 하지만

 

보통 일반적으로는 어셈블리 언어로 수행된다. C,C++같은 경우에는 Subroutine형태로 수행된다.

 

예를 들어 File을 Open한다고 하면

 

만일 입력 file 없거나 protect되어 있으면, error 메시지를 출력(system call)하고

 

abnormally terminate(system call) 입력 file 있으면 file open(system call)한다

 

또 파일을 생성한다고 하면

 

만일 출력 file 이름과 동일한 file 이미 존재하면,  프로그램 종료처리(system call) 하거나

 

기존 file 삭제(system call)하고 새로운 출력 file 생성(system call)한다.

 

System Call을 사용할 때는 운영체제에게 정보(Parameter)를 전달해야하는데 대표적으로 아래 3가지 방법이 있다.

 

1. Parameter를 Register로 전달

 

2. Parameter를 Memory에 저장하고 그 메모리의 주소를 Register로 전달

 

3. Parameter를 Stack에 Push하고 운영체제가 Pop

 

System Call은 여러 분류로 나눌 수 있는데 자세한건 아래 그림을 참고하자.

 

 

 

 당연한 것들 제외하고 몇가지 것들만 확인해 보면

 

get process(or file or device) attribute : process(or file or device)의 정보를 요청하는 System Call

  

set process(or file or device) attribute : process(or file or device)의 정보를 reset하는 System Call

 

get system data : 현재 연결된 사용자 수, OS버전등에 대한 System Call

 

request : Device의 할당의 요청

 

release : Device의 사용 완료를 통보

 

map memory : 통신에서 Shared Memory방식에서 다른 Process가 사용하는 Memory에 접근 하는 System Call

 

 

'C.E > OS' 카테고리의 다른 글

System Structure - Microkernel  (0) 2013.12.09
System Structure - System Structure  (0) 2013.12.09
Operating System Service - O.S Service  (0) 2013.12.09
System Components - Command Interpreter System  (0) 2013.12.09
System Components - Protection System  (0) 2013.12.09