2024.02.08 - [Computer Science/Operating System] - 운영체제란 ?
시스템 콜을 설명하기 앞서, 운영체제와 커널에 대한 사전지식이 필요합니다.
운영체제는 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종입니다. 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 주는 역할을 하는 것이죠. 자세한 내용은 위 글에서 확인할 수 있습니다.
그렇다면 커널은 무엇일까요?
커널(Kernel)
컴퓨터와 전원을 켜면 운영체제는 이와 동시에 수행됩니다. 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야하는 것 처럼, 운영체제도 마찬가지입니다. 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라가있으면 메모리 낭비를 초래하게 됩니다. 따라서, 필요한 부분만 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 마다 메모리에 올려서 사용하게 됩니다. 이때 메모리에 상주하는 운영체제의 부분을 커널이라고 하며, 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로 시스템의 모든 것을 완전히 제어하는 역할을 합니다.
대부분 운영체제는 커널 모드와 사용자 모드가 구분되어 있습니다. 이렇게 나뉘어 동작하는 것을 이중 동작 모드(Dual Mode Operation)라고 합니다. 이중 동작 모드로 나뉜 이유는 다중 프로그래밍 환경에서 운영체제를 보호하는 보안 기법입니다. 응용 프로그램이 운영체제의 자원에 직접적으로 접근하는 것을 방지하기 위해 두 가지 모드로 분리하는 것입니다.
사용자모드
접근할 수 있는 메모리 영역이 사용자에게 허용된 정도로 제한되어 있고, 하드웨어에 직접적으로 접근할 수 없습니다.
커널모드
운영체제가 CPU를 사용하는 모드입니다. 모든 시스템 메모리와 CPU Instruction에 접근 가능하고, 하드웨어에 직접적으로 접근이 가능합니다. 한마디로 커널 모드가 사용자 모드보다 높은 권한을 가집니다. 사용자 모드에서 필요에 따라 커널 모드로 변환하여 시스템 영역에 접근하게 됩니다. 이렇게 사용자 모드에서 커널 모드로 전환하기 위해 필요한 인터페이스를 시스템 콜이라고 합니다.
시스템 콜
시스템콜은 이러한 커널 영역의 기능을 사용자 모드가 가능하게, 즉, 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 할 수 있게 도와줍니다. 보통 직접적으로 사용하기보다는 API를 통해 사용하게 됩니다.
시스템 콜의 6가지 유형
- 프로세스 제어 (Process Control)
- 파일 조작 (File Manipulation)
- 장치 관리 (Device Manipulation)
- 정보 유지 (Information Maintenance)
- 통신 (Communication)
- 보호 (Protection)
참고 자료