학습 목표
운영체제(OS) 가 컴퓨터에서 맡는 역할을 설명할 수 있다.
하드웨어·OS·응용 프로그램·사용자의 관계를 설명할 수 있다.
저장 프로그램 방식과 fetch-execute 사이클을 설명할 수 있다.
이 시리즈에서 다룰 주제 흐름을 파악할 수 있다.
문제 상황
- node app.js 한 줄이면 서버가 뜬다
- 그 안에서 CPU·메모리·디스크·네트워크를 누가 나눠 쓰는지는 잘 모른다
- 프로세스가 500개인데 CPU 코어는 8개
- 동시에 도는 것처럼 보이는 이유를 설명 못 한다
- kill -9 하면 앱이 죽는다
- OS가 없으면 그 명령 자체가 성립하지 않는다
- 컨테이너·K8s·클라우드를 쓰지만 커널·시스템 콜은 블랙박스
백엔드·인프라를 다루려면 "앱 위의 런타임"만이 아니라 OS가 제공하는 추상화를 알아야 한다. 이 시리즈는 그 내부를 OSC 10/E 기준으로 쌓는다.

1. 운영체제란?
- 컴퓨터 하드웨어 위에서 항상 동작하는 프로그램
- 응용 프로그램과 하드웨어 사이 매개자
- Silberschatz et al. 정의: 사용자에게 편리하고 효율적인 컴퓨팅 환경을 제공하고, 하드웨어를 관리하는 시스템 소프트웨어

| 구성요소 | 역할 |
| 하드웨어 | CPU, 메모리, 디스크, NIC, … |
| 운영체제 | 자원 할당·보호·추상화 |
| 응용 프로그램 | 사용자 업무 (브라우저, DB, API 서버) |
| 사용자 | 사람, 또는 다른 시스템 |
- OS 없이 응용이 하드웨어를 직접 제어하면
- 프로그램마다 프린터·디스크 제어 코드를 중복 작성
- 한 버그가 전체 메모리를 덮어쓸 수 있음
- OS는 가상 머신처럼 동작한다
- 프로세스마다 독립된 메모리 공간
- 파일은 "바이트 스트림", CPU는 "무한히 빠른 프로세서"처럼 보이게
2. OS의 두 가지 관점
자원 관리자 (Resource Manager)
- CPU 시간, 메모리, 파일, I/O 장치를 공정·효율적으로 배분
- 여러 프로세스가 동시에 자원을 쓰도록 스케줄링·동기화
확장 머신 (Extended Machine)
- 디스크 섹터·네트워크 프레임 대신 파일·소켓 같은 추상화 제공
- 개발자는 하드웨어 세부를 몰라도 open(), read(), write() 로 작업
| 관점 | 개발자가 보는 것 | OS가 숨기는 것 |
| 자원 관리 | 프로세스·스레드·우선순위 | 레지스터·TLB·인터럽트 |
| 확장 머신 | 파일, 프로세스, 소켓 | 섹터, DMA, IRQ |
3. 프로그램과 폰 노이만 구조
현대 컴퓨터는 저장 프로그램(stored-program) 방식이다.
- 프로그램(명령어)과 데이터를 같은 메모리에 둔다
- CPU는 메모리에서 명령을 가져와(fetch) 실행(execute) 반복

- 튜링 머신 관점: 헤드·테이프·상태 전이 — "계산 가능"의 수학적 모델
- 폰 노이만 관점: CPU + RAM + 버스 — 실제로 만든 구조
- OS도 결국 메모리에 올라간 프로그램
- 부팅 시 부트스트랩이 커널을 로드하고, 이후 커널이 응용을 실행
4. OS가 관리하는 것 (미리보기)
이 시리즈 전반에서 반복하는 축이다.
| 주제 | OS가 하는 일 | 예 |
| 프로세스 | 실행 단위 생성·스케줄·종료 | fork, exec, PCB |
| 메모리 | 할당·가상 주소·보호 | 페이징, page fault |
| 파일 | 영속 데이터·이름 공간 | VFS, inode |
| I/O | 장치 추상화·버퍼링 | 드라이버, DMA |
| 동기화 | 경쟁·교착 방지 | mutex, semaphore |
| 보안 | 인증·권한·격리 | uid, capability |
- 네트워크·DB·K8s도 결국 OS 위에서 돈다
- 소켓 = OS API
- 컨테이너 = 프로세스·namespace·cgroup
- strace, ps, top으로 관측 가능
5. 시리즈 로드맵
- Part 1. OS 개념과 구조 — 컴포넌트, 부트, 인터럽트, 시스템 콜, 커널 구조
- Part 2. 프로세스 — PCB, fork/exec, 스레드, CPU 스케줄링
- Part 3. 동기화와 교착 — mutex, semaphore, 데드락
- Part 4. 메모리 — 페이징, 가상 메모리, 세그먼트
- Part 5. 저장장치와 파일 — 파일 시스템, 디스크 스케줄링, I/O, 캐시
- Part 6. 확장 주제 — 보안, 가상화, 다중처리, 분산, OS 종류
해당 내용은 Operating System Concepts, 10/E (Avraham Silberschatz, Peter Baer Galvin, Greg Gagne) 의 내용을 기반으로 합니다.
'운영체제 따라잡기' 카테고리의 다른 글
| 스레드 (0) | 2026.06.23 |
|---|---|
| 프로세스 생성과 종료 (0) | 2026.06.22 |
| 프로세스란 무엇인가 (0) | 2026.06.21 |
| 운영체제 구조와 시스템 콜 (0) | 2026.06.20 |
| 운영체제의 개념과 구조 (0) | 2026.06.19 |