[09-1] 운영체제를 알아야 하는 이유
운영체제란
프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제입니다. 즉, 인터넷 브라우저, 게임과 같은 프로그램으로 이해하면 됩니다. 운영체제는 매우 특별한 프로그램이기 때문에 커널 영역이라는 공간에 따로 적재되어 실행되고, 사용자가 이용하는 응용 프로그램은 사용자 영역이라는 곳에서 실행됩니다.
운영체제를 알아야 하는 이유
운영체제가 없다면, 간단한 프로그램이라도 하드웨어를 조작하는 코드를 개발자가 모두 직접 작성해야합니다. 개발자들이 운영체제를 알아야하는 이유는 바로 "문제 해결 능력"과 관련이 있습니다. 운영체제를 깊이 이해하면, 운영체제가 여러분에게 건네는 말을 제대로 이해할 수 있고, 운영체제에 제대로 명령을 전달할 수 있게 됩니다. 대표적으로 운영체제 오류 메시지를 이해할 수 있게 되면, 프로그래밍 문법만 학습한 사람들에 비하여 문제 해결 능력이 좋아진다고 볼 수 있습니다.
[09-2] 운영체제의 큰 그림
운영체제의 심장, 커널
운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나입니다. 대표적인 운영체제인 리눅스만 하여도 소스 코드가 천만 줄이 넘습니다. 프로그램이 올바르고 안전하게 실행되게하는 기능이 운영체제의 핵심 서비스에 속합니다. 이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 합니다. 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있는데, 대표적으로 사용자 인터페이스가 있습니다. 사용자 인터페이스란 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용할 수 있는 통로입니다.
이중 모드와 시스템 호출
운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호합니다. 일종의 문지기 역할을 한다고 이해하면 됩니다. 이중 모드로써 구현이 됩니다. 이중 모드란 CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식입니다. CPU는 명령어를 사용자 모드로써 실행할 수 있고, 커널 모드로써 실행할 수 있습니다. 사용자 모드는 운영체제 서비스를 제공받을 수 없는 실행 모드입니다. 반면 커널 모드는 운영체제 서비스를 제공받을 수 있는 실행모드입니다. 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면 운영 체제에 요청을 보내 커널 모드로 전환되어야 합니다. 이때 운영체제 서비스를 제공받기 위해 요청을 시스템 호출이라고 합니다.
가상 머신과 이중모드의 발전
가상 머신이란 이름 그대로 소프트웨어적으로 만들어낸 가상 컴퓨터입니다. 운영 체제에서 가상 머신을 설치 및 실행한다면, 그 가상 머신 또한 응용 프로그램입니다. 그래서 사용자 모드로 작동합니다. 마찬가지로 가상 머신상에 설치된 운영체제 또한 사용자 모드로 작동합니다. 가상화를 지원하는 CPU는 사용자 모드 이외에 가상 머신을 위한 모드인 하이퍼바이저 모드를 따로 둡니다. 이로써 가상 머신 상에서 작동하는 응용 프로그램들은 하이퍼바이저 모드로써 가상 머신에 설치된 운영체제로부터 운영체제 서비스를 받을 수 있습니다.
'computer science' 카테고리의 다른 글
[#혼공] 혼자 공부하는 컴퓨터 구조+운영체제 [Chapter.10] (0) | 2023.08.05 |
---|---|
동시성과 병렬성 (0) | 2023.08.04 |
코루틴 (0) | 2023.08.03 |
동기와 비동기 (0) | 2023.08.02 |
CPU 바운드, I/O bound, 블로킹 (0) | 2023.08.02 |