728x90

 

운영체제는 컴퓨터를 제대로 실행 및 사용하게 해주는 프로그램입니다. 

 

마우스를 움직이는 것부터 프로그램 실행과 종료까지 운영체제가 하는 역할은 매우 많고 없으면 컴퓨터를 사용할 수 없습니다. 

 

이러한 운영체제와 시스템 콜은 어떤 관계가 있을까요? 

 

시스템 콜(System Call)이란 프로세스가 운영체제(system)에게 운영체제 기능을 요청(call)하는 것입니다. 

 

즉, 프로세스가 컴퓨터를 관리하는 시스템인 운영체제에게 어떤 기능(서비스)를 사용하게 해달라고 요청할 때 사용하는 방법입니다. 

 

컴퓨터의 대부분의 활동은 운영체제를 통해 실행 및 관리됩니다. 

 

실행중인 프로그램인 프로세스도 운영체제를 통해 실행되고 관리됩니다.  

 

 

운영체제가 회사 관리자면, 프로세스는 말단 직원입니다. 

 

예를 들어, 프로세스 A라는 직원이 자신의 프로그램 외 특정 파일의 데이터를 필요로 한다고 해봅시다.

 

이럴 때, 프로세스 A가 독자적으로 파일 데이터를 읽어들일 수 있을까요? 그럴 수 없습니다. 

 

기본적으로 파일을 읽고, 메모리에 데이터를 올리는 것운영체제의 역할입니다. 

 

프로세스 A는 관리자인 운영체제에게 허락을 요청(call)해야 합니다. 

 

파일 뿐 아니라 운영체제가 관리하는 모든 자원(네트워크, 디스크, 메모리 등)이 필요할 때, 프로세스는 system call을 사용해야 합니다. 

 

파일을 여는 것(open), 기존 프로세스를 다른 프로그램으로 바꾸는 것(exec), 똑같은 프로세스를 하나 더 만드는 것(fork), 다른 프로세스에 어떤 행위를 지시하는 시그널을 보낼 때(kill) 등 운영체제가 관리하고 있는 자원이라면 system call을 사용해야 합니다. 

 

 

아래는 실제 리눅스, 유닉스에서 사용하는 System Call입니다. 

 

리눅스 system call
유닉스 system call ⬅️ 출처: Operating System Concepts 10th - SILBERSCHARTZ 68page 

 

 

 

참고한 글의 링크입니다. 

https://mamu2830.blogspot.com/2021/01/whatIsSystemCall.html

728x90

'CS > 운영체제' 카테고리의 다른 글

교착 상태(dead lock)이란?  (0) 2021.08.01
동시성(Concurrency) vs 병렬성(Parallelism)  (0) 2021.08.01

+ Recent posts