0. 개요
운영체제는 쉽게 표현하면 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어라고 할 수 있다. 이를 위해 운영체제는 CPU, 메모리, 디스크와 같은 물리 자원을 가상화 하고, 병행성과 관련된 복잡한 문제를 처리하며, 파일을 영속적으로 저장하여 안전한 상태에 있게 한다. 이하에서 가상화부터 살펴보자.
1. 가상화
가상화(virtualization) 기법은 시스템의 물리적 자원을 활용하여 사용이 편리한 가상 형태의 자원을 생성하는 것을 의미한다. 가상화를 공부하면서 캐치해야 할 핵심적인 질문은 '운영체제가 어떻게 자원을 가상화하는가'이다.
(1) CPU 가상화
CPU 가상화란 하나 또는 소규모 CPU 집합을 무한개의 CPU가 존재하는 것처럼 변환하는 것을 말한다. 이를 통해 동시에 많은 수의 프로그램을 실행시킬 수 있게 하는 것이다. CPU 가상화에서 파생되는 논의들은 다음과 같다.
- 운영체제와 사용자의 상호작용 방법 : 운영체제에 사용자가 원하는 바(어떤 프로그램을 실행시킬 것인가 등)를 전달할 수 있는 인터페이스 (API)가 필요하다.
- 운영체제의 정책 : 특정 순간에 두 개의 프로그램이 실행되기 원하는 경우에는 어떤 것을 실행시킬 것인가의 문제이다.
(2) 메모리 가상화
메모리 가상화는 각 프로세스가 독립적으로 메모리를 사용할 수 있도록 하여 물리적 메모리의 사용을 효율적으로 관리하는 기술이다. 운영체제가 메모리 가상화를 하면 각 프로세스는 자신만의 가상 주소 공간을 갖게 되고, 이를 운영체제가 공유 자원인 컴퓨터의 물리적 메모리로 매핑해주는 것이다. 이로 인해 하나의 프로그램이 수행하는 메모리 연산들이 다른 프로그램의 주소 공간에 영향을 미치지 않게 된다.
2. 병행성
운영체제에서 병행성(concurrency)문제는 여러 프로세스나 쓰레드가 동시에 실행될 때 발생하는 다양한 문제를 말한다. 병행성 문제는 쉽게 말하면 여러 작업이 동시에 공유 자원에 접근할 때 충돌이 발생하기 때문에 발생한다고 할 수 있다. 병행성 문제에서 캐치해야 할 핵심적인 질문은 '올바르게 동작하는 병행 프로그램은 어떻게 작성해야 하는가'이다.
3. 영속성
컴퓨터 시스템에서는 데이터를 영속적으로 저장할 수 있는 하드웨어와 소프트웨어가 필요하다. 데이터를 영속적으로 저장하는 하드웨어로 SSD, HDD가 사용되는데, 이러한 디스크를 관리하는 운영체제 소프트웨어를 파일 시스템이라고 한다. 영속성에서 캐치해야 할 핵심적인 질문은 '데이터를 영속적으로 저장하는 방법은 무엇인가'이다.
'독서 > 운영체제 아주 쉬운 세 가지 이야기' 카테고리의 다른 글
[OSTEP] CPU 가상화 : MLFQ 스케줄러 (0) | 2025.03.06 |
---|---|
[OSTEP] CPU 가상화 : 스케줄링 개요 (0) | 2025.03.04 |
[OSTEP] CPU 가상화 : 제한적 직접 실행 원리 (0) | 2025.03.02 |
[OSTEP] CPU 가상화 : 프로세스 (0) | 2025.02.28 |
책 소개 : 운영체제 아주 쉬운 세 가지 이야기 (0) | 2025.02.16 |