운영체제는 컴퓨터를 제대로 실행 및 사용하게 해주는 프로그램입니다.
마우스를 움직이는 것부터 프로그램 실행과 종료까지 운영체제가 하는 역할은 매우 많고 없으면 컴퓨터를 사용할 수 없습니다.
이러한 운영체제와 시스템 콜은 어떤 관계가 있을까요?
시스템 콜(System Call)이란 프로세스가 운영체제(system)에게 운영체제 기능을 요청(call)하는 것입니다.
즉, 프로세스가 컴퓨터를 관리하는 시스템인 운영체제에게 어떤 기능(서비스)를 사용하게 해달라고 요청할 때 사용하는 방법입니다.
컴퓨터의 대부분의 활동은 운영체제를 통해 실행 및 관리됩니다.
실행중인 프로그램인 프로세스도 운영체제를 통해 실행되고 관리됩니다.
운영체제가 회사 관리자면, 프로세스는 말단 직원입니다.
예를 들어, 프로세스 A라는 직원이 자신의 프로그램 외 특정 파일의 데이터를 필요로 한다고 해봅시다.
이럴 때, 프로세스 A가 독자적으로 파일 데이터를 읽어들일 수 있을까요? 그럴 수 없습니다.
기본적으로 파일을 읽고, 메모리에 데이터를 올리는 것은 운영체제의 역할입니다.
프로세스 A는 관리자인 운영체제에게 허락을 요청(call)해야 합니다.
파일 뿐 아니라 운영체제가 관리하는 모든 자원(네트워크, 디스크, 메모리 등)이 필요할 때, 프로세스는 system call을 사용해야 합니다.
파일을 여는 것(open), 기존 프로세스를 다른 프로그램으로 바꾸는 것(exec), 똑같은 프로세스를 하나 더 만드는 것(fork), 다른 프로세스에 어떤 행위를 지시하는 시그널을 보낼 때(kill) 등 운영체제가 관리하고 있는 자원이라면 system call을 사용해야 합니다.
아래는 실제 리눅스, 유닉스에서 사용하는 System Call입니다.
참고한 글의 링크입니다.
'CS > 운영체제' 카테고리의 다른 글
교착 상태(dead lock)이란? (0) | 2021.08.01 |
---|---|
동시성(Concurrency) vs 병렬성(Parallelism) (0) | 2021.08.01 |