1강
📌 운영체제란?
운영체제(Operating System, OS)는 하드웨어를 효율적으로 사용하게 해주는 소프트웨어이며, 사용자와 하드웨어 간의 인터페이스 역할을 한다.
- 컴퓨팅 자원의 추상화를 제공
- 자원 관리 정책의 결정, 운용, 강제 수행
🧩 운영체제의 주요 기능
- 하드웨어 장치 관리
장치 초기화, 입출력 처리, 장치 제어
- 프로그램 관리
프로그램의 적재, 실행, 오류 처리
다중 프로그램 실행 지원
- 사용자 관리
사용자 인증 및 권한 제어, 데이터 접근 제어
- 서비스 관리
네트워크, 파일 시스템, 시스템 서비스 관리
🧭 운영체제와 일반 애플리케이션의 차이점
- OS는 항상 동작 중이며 자원을 감시하고 통제
- 하드웨어 제어 권한을 가짐
⚙️ 운영체제의 구성 요소
- 커널(Kernel) : OS의 핵심. 하드웨어와 직접 상호작용
- OS 서비스 : 보안 모니터, 윈도우 매니저 등 시스템 제공 기능
- 라이브러리 : 자주 사용하는 함수 및 서브루틴 집합
Kernel 중심으로 OS를 정의하는 관점도 존재
2강
💡 OS 설계 시 고려 사항
| 구분 | 옵션 A | 옵션 B |
|---|
| 용도 | 범용 시스템 (General Purpose) | 특수 목적 시스템 (Specific Purpose) |
| 설계 | 유연성 (Flexibility) | 견고함 (Robustness) |
| 목표 | 고성능 (High Performance) | 보안성 / 저비용 (Security / Low Cost) |
🖥 전형적인 컴퓨터 시스템 구조
- Hardware: CPU, Memory, Chipset, I/O Bus, 주변장치 등
- System Software: OS, DBMS, 하이퍼바이저, 컴파일러, 링커 등
- Application: 사용자가 실행하는 응용 프로그램들
🧱 전형적인 OS 구조
User Level
└── Application
└── Libraries (공용 함수 모음)
Kernel Level
└── Portal OS Layer (시스템 호출 담당)
└── Machine-Dependent Layer (부트로더, 디바이스 드라이버 등)

🔄 멀티태스킹과 OS 구성 요소
멀티태스킹: 하나 이상의 프로그램이 동시에 실행되는 것
1. 프로세스 관리
- 목표: I/O와 계산 동시 처리, 시간 공유, 다중 CPU 지원
- 유의점: 자원 낭비 방지, 동기화, 상호 배제, 공정성, 교착 상태 방지
2. 메모리 관리
- 목표: 편리한 프로그래밍, 메모리 효율성, 보조 저장소 전송
- 유의점: 보호 및 공정한 분배
3. I/O 장치 관리
- 목표: 장치-애플리케이션 간 상호작용, 새 장치 대응
- 유의점: 효율성, 보호, 공유
4. 파일 시스템
- 목표: 디스크 블록 관리, 파일-디스크 매핑
- 유의점: 신뢰성, 안정성, 효율성, 관리 용이성
- 일반 동작: 파일 열기 → 읽기/쓰기 → 닫기
🧾 컴퓨터 프로그램이란?
- 명령어(Instructions): CPU가 처리하는 기계어 코드
- 데이터(Data): 명령어가 읽고 쓰는 자료
- 코딩(Coding): 프로그래밍 언어로 명령어를 기술하는 행위
- 프로그램 이미지: 실행 가능한 형태의 데이터 묶음
(Object File, Executable File 등)
📦 응용프로그램의 메모리 구성
응용 프로그램은 4개의 세그먼트로 구성된다.
| 세그먼트 | 설명 | 메모리 할당 |
|---|
| Code | 명령어 저장 | 낮은 주소 |
| Data | 전역/정적 변수 | 낮은 주소 |
| Heap | 동적 할당 영역 | 높은 주소 → 낮은 방향으로 확장 |
| Stack | 함수 호출, 지역변수 | 낮은 주소 ← 높은 방향으로 확장 |
힙과 스택은 서로 반대 방향으로 확장하여 충돌을 방지함
🔍 프로그램 실행 순서

🚀 부트스트랩 과정
부트스트랩(Bootstrap) 과정
컴퓨터 전원 On → OS 실행까지의 순서:
- 전원 On
- BIOS (ROM에 저장된 펌웨어)가 실행
- BIOS가 부트로더를 메모리에 적재
- 부트로더가 OS 커널을 메모리에 적재
- 커널이 메모리에 올라오면 운영체제 시작
❗ BIOS는 디스크에 존재할 수 있는가?
아니다.
BIOS는 디스크 초기화 전에 실행되어야 하므로 ROM에 존재한다.