들어가며
이번 글에서는 OS 공룡책을 바탕으로 OS가 무엇인지, 컴퓨터 시스템이 어떻게 동작하는지, 그리고 OS가 어떤 구성 요소로 이루어져 있는지를 전반적으로 다루어 보겠습니다. 이후 각 파트를 자세히 다룰 예정입니다.
1. OS의 정의 (Operating System Definition)
컴퓨터 시스템의 4계층 구조

컴퓨터 시스템은 Hardware, Operating System, Applications, Users 네 가지 구성 요소로 이루어진다. Hardware는 CPU, 메모리, I/O 장치를 포함하는 물리적 자원이고, OS는 그 위에서 애플리케이션과 하드웨어를 연결하는 중개자 역할을 한다.
OS란 무엇인가?
OS는 애플리케이션과 하드웨어 사이의 중개자(intermediary)다. OS의 역할은 보는 관점에 따라 두 가지로 나뉜다.
사용자 관점(User View)에서 OS는 애플리케이션을 실행시켜 주고, 컴퓨터를 편리하게 사용할 수 있게 해주는 존재다. 시스템 관점(System View)에서는 CPU, 메모리, I/O 장치 같은 H/W 자원과 파일, 소켓, 세마포어 같은 S/W 자원을 관리하고 배분하는 Resource Allocator(자원 할당자) 이자, 애플리케이션 실행과 I/O 장치 동작을 제어하는 Control Program(제어 프로그램) 이다.
Kernel이란?
OS의 정의는 사실 모호하다. 가장 실용적인 정의는 "컴퓨터에서 항상 실행 중인 프로그램"이고, 이것이 바로 Kernel(커널) 이다. 커널을 제외한 나머지는 System Program 또는 Application Program으로 분류한다. 이 자료에서는 이 정의를 사용한다.
2. 컴퓨터 시스템 동작 (Computer System Operation)
I/O 장치와 컨트롤러
각 I/O 장치(디스크, USB, 그래픽 등)는 Device Controller를 통해 버스(bus)에 연결된다. 각 컨트롤러는 자신만의 Local Buffer를 가지고 있어, Disk Controller는 디스크와 자신의 버퍼 사이에서, CPU는 메인 메모리와 각 장치의 버퍼 사이에서 데이터를 이동시킨다. CPU와 I/O 장치는 서로 독립적으로 병렬 동작할 수 있으며, I/O 작업이 완료되면 Device Controller가 CPU에 인터럽트(Interrupt) 로 알린다.
인터럽트 (Interrupt)

인터럽트는 I/O 장치가 CPU에게 "작업 완료!"를 알리는 신호다. 인터럽트가 발생하면 CPU는 하던 일을 멈추고 ISR(Interrupt Service Routine) 을 실행한다. CPU는 Interrupt Vector Table을 참조해 해당 인터럽트 종류에 맞는 ISR 주소를 찾고, 처리가 끝나면 원래 작업으로 복귀한다. 이 방식 덕분에 CPU가 I/O 완료를 직접 기다리지 않아도 된다.
3. 스토리지 구조 (Storage Structure)

메모리 계층
Main Memory(주 메모리) 는 CPU가 직접 접근할 수 있는 저장 매체로, DRAM으로 구현되며 volatile(휘발성)이다. Secondary Memory(보조 메모리) 는 HDD, NAND Flash, SSD 등으로 대용량 nonvolatile(비휘발성) 저장소를 제공한다.
스토리지는 레지스터 → CPU Cache(SRAM) → Main Memory(DRAM) → Secondary Memory(HDD/SSD) → Optical Disk → Magnetic Tape 순으로 계층을 이룬다. 위로 갈수록 속도가 빠르고 비싸며 용량이 작다. CPU에 가까울수록 빠른 메모리를 배치함으로써 성능을 극대화한다.
캐싱 (Caching)
캐싱은 더 빠른 저장 매체에 데이터를 미리 복사해두는 것이다. 요청된 데이터가 캐시에 있으면(Cache Hit) 바로 사용하고, 없으면(Cache Miss) 하위 저장소에서 읽어 캐시에 복사한 뒤 사용한다. 캐싱은 CPU Cache, OS 버퍼 캐시, 디스크 캐시, 웹 캐시 등 시스템 전반에 걸쳐 다양한 레벨에서 이루어진다.
캐시 크기는 제한적이므로 꽉 찼을 때 어떤 데이터를 교체할지 결정하는 교체 정책(Replacement Policy) 이 필요하다(LRU, LFU, Clock 등). 또한 같은 데이터가 여러 캐시에 복사될 수 있어 데이터 불일치(Data Inconsistency) 문제가 발생할 수 있다. 멀티프로세서 환경에서는 모든 CPU의 캐시가 최신 값을 유지해야 하는 Cache Coherency(캐시 일관성) 보장이 중요해진다.
4. OS 구조 (Operating System Structure)
Multiprogramming (다중 프로그래밍)

하나의 프로그램만 실행하면 CPU가 I/O를 기다리는 동안 놀게 된다. Multiprogramming은 여러 프로그램을 메인 메모리에 동시에 올려두고 CPU를 번갈아 사용하게 하여 CPU Utilization(CPU 사용률)을 극대화하는 방식이다. 한 프로그램이 I/O 요청으로 기다려야 할 때 OS는 Ready Queue에서 다른 프로그램을 선택해 실행한다.
Timesharing (시분할)
Timesharing은 Multiprogramming의 논리적 확장이다. UNIX가 대표적인 예다. CPU를 매우 빠른 속도로 여러 프로그램 사이에서 전환함으로써 사용자 입장에서는 자신의 프로그램이 동시에 실행되는 것처럼 느껴지게 한다. 목표는 Response Time 최소화(보통 1초 이내)다. Multiprogramming이 CPU 효율을 위한 개념이라면, Timesharing은 사용자 반응성을 위한 개념이다.
| 구분 | 목적 | 핵심 지표 |
|---|---|---|
| Multiprogramming | CPU 낭비 방지 | CPU Utilization ↑ |
| Timesharing | 사용자 반응성 확보 | Response Time ↓ |
5. OS 운영 방식 (Operating System Operations)
이벤트 기반 OS
OS는 이벤트가 발생할 때만 반응하는 이벤트 기반(Event-Driven) 구조다. 아무 일도 없으면 조용히 대기한다. 이벤트의 종류는 Hardware Interrupt(디스크, 키보드, 마우스), Software Trap/Exception(0으로 나누기, 잘못된 메모리 접근, System Call), 그리고 무한 루프 같은 오류 상황으로 나뉜다.
Dual Mode (이중 모드)

OS와 일반 프로그램이 같은 권한으로 실행된다면, 악성 프로그램이 하드웨어를 직접 제어하거나 다른 프로세스의 메모리를 침범할 수 있다. 이를 막기 위해 CPU는 두 가지 동작 모드를 제공한다.
- User Mode(mode bit = 1) 는 일반 애플리케이션이 실행되는 모드로, Privileged Instructions(특권 명령어) 실행이 불가능하다.
- Kernel Mode(mode bit = 0) 는 OS 코드가 실행되는 모드로, 하드웨어 제어 등 모든 명령어를 실행할 수 있다.
System Call이 호출되면 Trap이 발생하고, CPU의 mode bit가 0으로 전환되어 커널 코드를 실행한 뒤 반환 시 다시 1로 복귀한다. mode bit는 하드웨어(PSW, Program Status Word)가 제공한다.
6. OS의 구성 요소 (OS Components)
Process Management
Process(프로세스) 는 실행 중인 프로그램이다. 프로그램이 수동적(passive)인 파일이라면 프로세스는 능동적(active)인 실행 단위다. 프로세스는 작업을 수행하기 위해 CPU, 메모리, I/O 장치, 파일 등의 자원을 필요로 한다. OS는 CPU 스케줄링, 프로세스 생성·삭제, 동기화 메커니즘 제공, 프로세스 간 통신(IPC), Deadlock 처리 등을 담당한다.
Memory Management
OS는 어떤 프로세스가 메모리의 어느 영역을 사용하는지 추적하고, 어떤 프로세스와 데이터를 메모리에 올리고 내릴지 결정하며, 필요에 따라 메모리 공간을 할당하고 해제한다. Virtual Memory(가상 메모리) 는 DRAM과 디스크를 합쳐 하나의 큰 "가상 메모리"처럼 보이게 하여, 프로그램이 실제 물리 메모리 크기를 신경 쓰지 않아도 되게 한다.
Storage Management
파일 시스템 관점에서 File은 논리적 저장 단위이며 디렉토리로 조직화된다. OS는 파일·디렉토리 생성·삭제, 파일 조작 원시 연산 지원, 파일과 보조 저장소 간의 매핑을 담당한다. 대용량 저장소 관리 측면에서는 디스크의 빈 공간 관리(Free-space Management), 저장소 할당(Storage Allocation), 디스크 스케줄링(Disk Scheduling)을 수행한다.
I/O Subsystem
OS의 목적 중 하나는 하드웨어 장치의 특수성을 사용자로부터 숨기는 것이다. I/O 서브시스템은 장치 종류에 관계없이 통일된 인터페이스를 제공하는 General Device-Driver Interface, 특정 하드웨어를 위한 드라이버, 그리고 Buffering(임시 저장), Caching(자주 접근하는 데이터 보관), Spooling(장치가 준비될 때까지 출력 데이터 임시 저장) 등의 메모리 관리로 구성된다.
7. 특수 목적 시스템 & 가상 머신
특수 목적 시스템
Real-Time System은 미사일 제어, 의료 장비처럼 엄격한 응답 시간 Deadline이 있는 시스템이다. Deadline을 절대 어겨선 안 되는 Hard Real-Time(미사일)과 다소 허용되는 Soft Real-Time(MP3 플레이어)으로 나뉜다. Mobile System은 느린 CPU, 제한된 메모리, 작은 화면, 배터리 제약이라는 특수한 환경에서 동작한다.
가상 머신 (Virtual Machines)

가상 머신은 하나의 물리적 컴퓨터를 여러 개의 독립적인 실행 환경으로 추상화한다. 각 VM은 자신만의 컴퓨터를 가진 것처럼 동작한다. VMware 방식은 Host OS(Linux) 위에 가상화 계층을 두고, 각 Guest OS가 가상 CPU·메모리·장치를 사용한다. VM 간 직접 자원 공유가 없어 완전한 보호가 가능하고, 하나의 PC에서 여러 OS를 동시에 테스트할 수 있어 개발·테스트에 편리하다. 단점은 성능 오버헤드다.
전체 정리
OS는 애플리케이션과 하드웨어 사이의 중개자로, 커널(Kernel)이 그 핵심이다. I/O 장치는 Device Controller와 Local Buffer를 통해 동작하며, 작업 완료 시 인터럽트로 CPU에 알린다. CPU와 I/O는 독립적으로 병렬 동작하여 효율을 높인다.
스토리지는 레지스터에서 HDD까지 계층 구조를 이루며, 캐싱은 더 빠른 저장소에 데이터를 미리 복사하여 접근 속도를 높인다. 다만 Cache Coherency와 교체 정책 관리가 중요하다.
OS는 Multiprogramming으로 CPU 낭비를 막고, Timesharing으로 사용자 반응성을 확보한다. 보안을 위해 User Mode / Kernel Mode 이중 모드를 사용하며, System Call이 유일한 전환 창구다. OS의 핵심 구성 요소는 Process Management, Memory Management, Storage Management, I/O Subsystem이며, 이후 강의에서 각각 깊이 다루게 된다.
'Computer Science > OS(운영 체제)' 카테고리의 다른 글
| [OS] 4. Thread(쓰레드)란? (0) | 2026.05.03 |
|---|---|
| [OS] 3. 프로세스(Process)란? (0) | 2026.04.29 |
| [OS] 2. Operating System Structures (0) | 2026.04.29 |
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
도움이 되었다면 "❤️" 또는 "👍🏻" 해주세요! 문의는 아래 이메일로 보내주세요.