커널, 이중 모드, 그리고 시스템 호출
커널을 통한 자원관리에 대해 설명합니다.
요약
운영체제는 컴퓨터 시스템의 핵심 기능을 담당하는 중요한 소프트웨어입니다.
커널을 통해 자원을 관리하고, 프로그램이 안전하게 실행되도록 돕습니다.
이중 모드와 시스템 호출을 통해 자원 접근을 제어하며, 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리 등 다양한 서비스를 제공합니다.
커널이란 무엇인가?
운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나입니다.
운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 합니다.
커널은 운영체제의 핵심 기능을 담당합니다.
이는 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능을 포함합니다.
사용자 인터페이스
운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있는데, 대표적으로 사용자 인터페이스가 있습니다.
사용자 인터페이스는 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용할 수 있는 통로입니다.
운영체제가 제공하는 사용자 인터페이스의 종류에는
그래픽 유저 인터페이스(GUI)와 커맨드 라인 인터페이스(CLI)가 있습니다.
전자는 윈도우 바탕화면이나 스마트폰의 화면처럼 그래픽을 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스이고,
후자는 명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스입니다.
이중 모드와 시스템 호출
운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호합니다.
운영체제는 응용 프로그램들이 자원에 접근하려고 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호합니다.
비유하자면 운영체제는 응용 프로그램의 자원 접근을 대행하는 일종의 문지기 역할을 하는 셈입니다.
응용 프로그램이 자원에 접근하기 위해서는 운영체제에 도움을 요청해야 합니다.
이때 ‘운영체제에 도움을 요청한다’는 말은 ‘운영체제 코드를 실행하려고 한다’는 말과 같습니다.
응용 프로그램의 요청을 받은 운영체제는 응용 프로그램 대신 자원에 접근하여 요청한 작업을 수행합니다.
이러한 운영체제의 문지기 역할은 이중 모드로써 구현됩니다.
이중 모드(dual mode)란 CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식입니다.
CPU는 명령어를 사용자 모드로써 실행할 수 있고, 커널 모드로써 실행할 수 있습니다.
- 사용자 모드(user mode): 운영체제 서비스를 제공받을 수 없는 실행 모드입니다.
즉, 커널 영역의 코드를 실행할 수 없는 모드입니다. 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행됩니다. - 커널 모드(kernel mode): 운영체제 서비스를 제공받을 수 있는 실행 모드입니다.
즉, 커널 영역의 코드를 실행할 수 있는 모드입니다.
CPU가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있습니다.
운영체제는 커널 모드로 실행되기 때문에 자원에 접근할 수 있습니다.
운영체제의 핵심 서비스
프로세스 관리
실행 중인 프로그램을 프로세스(process)라고 합니다.
운영체제는 여러 프로세스를 효율적으로 관리하여 CPU 자원을 공정하게 분배합니다.
자원 접근 및 할당
모든 프로세스는 실행을 위해 자원을 필요로 합니다.
운영체제는 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스에 필요한 자원을 할당해줍니다.
파일 시스템 관리
운영체제는 파일과 디렉터리를 체계적으로 관리하여 데이터 접근과 저장을 용이하게 합니다.
결론
운영체제는 컴퓨터 시스템의 핵심 기능을 담당하는 중요한 소프트웨어입니다.
커널을 통해 자원을 관리하고, 프로그램이 안전하게 실행되도록 돕습니다.
이중 모드와 시스템 호출을 통해 자원 접근을 제어하며, 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리 등 다양한 서비스를 제공합니다.
확인 문제
- 빈칸에 알맞은 단어를 작성하세요.
- [ ] 은 운영체제의 핵심 기능을 담당하는 부분을 의미합니다.
- 이중 모드와 시스템 호출에 대해 옳지 않은 것을 고르세요.
- 운영체제의 핵심 서비스는 커널 모드로 실행됩니다.
- 일반적인 응용 프로그램은 사용자 모드로 실행됩니다.
- 시스템 호출을 통해 사용자 모드에서 커널 모드로 전환할 수 있습니다.
- 시스템 호출은 인터럽트와 아무런 연관이 없습니다.
- 운영체제의 핵심 서비스가 아닌 것을 고르세요.
- 프로세스 관리
- 자원 접근 및 할당
- 사용자 인터페이스 제공
- 파일 시스템 관리