운영체제
핵심 구조 한 번에 이해하기
하드웨어와 프로그램 사이에서 자원을 관리하고, 프로세스·메모리·입출력을 조율하는 OS의 핵심 개념을 강의 흐름으로 정리합니다.
Definition & Purpose
운영체제는 무엇을 하는가?
하드웨어와 소프트웨어를 연결
운영체제는 하드웨어 위에 설치되어 CPU, 메모리, 저장장치 같은 자원을 관리하고 사용자가 프로그램을 실행할 수 있는 환경을 제공합니다.
처리 능력
단위 시간 내 처리량 향상
반환 시간
요청 완료까지 시간 단축
사용 가능도
필요한 자원을 빠르게 제공
신뢰도
정확하고 안정적인 결과
CPU & Memory Hierarchy
빠른 장치일수록 작고 비싸다
CPU
프로그램 실행에 필요한 연산을 수행하는 중앙 처리 장치입니다. OS는 CPU를 어떤 프로세스에 언제 배정할지 결정합니다.
레지스터
CPU 내부, 가장 빠른 임시 저장 공간
캐시 메모리
CPU와 RAM 사이 속도 차이를 완화
RAM
실행 중인 프로그램 정보를 저장하는 휘발성 메모리
SSD / HDD
데이터와 프로그램을 오래 보관하는 보조기억장치
Kernel & System Call
커널은 OS의 핵심 엔진
커널의 역할
- CPU 스케줄링
- 메모리 관리
- 입출력 관리
- 파일 시스템 관리
- 보안과 하드웨어 추상화
사용자 모드
일반 프로그램이 실행되는 제한된 영역입니다. 하드웨어와 핵심 자원에 직접 접근하지 못합니다.
시스템 콜
사용자 모드 프로세스가 파일, 장치, 프로세스 제어 같은 기능을 커널에 요청하는 공식 통로입니다.
fork(), wait(), read(), write()Process & Thread
프로세스는 실행 중인 프로그램, 스레드는 실행 흐름
프로세스
OS로부터 독립적인 메모리 공간을 할당받아 실행되는 프로그램 단위입니다.
스레드
프로세스 내부에서 실제로 실행되는 흐름의 단위입니다. 여러 스레드는 코드·데이터·힙을 공유하고 각자 스택을 가집니다.
공유 영역
개별 Stack
PCB & Lifecycle
OS는 PCB로 프로세스를 기억한다
PCB에 저장되는 정보
- 프로세스 상태
- PID / 부모 PID / 자식 PID
- Program Counter
- 스택 포인터
- 우선순위와 메모리 제한
문맥 교환 후에도 이어서 실행할 수 있는 이유는 실행 위치와 레지스터 정보가 PCB에 저장되기 때문입니다.
프로세스 상태 흐름
생성
준비
실행
종료
Multiprocess vs Multithread
여러 작업을 처리하는 두 가지 방식
멀티 프로세스
- 장점: 한 프로세스 장애가 다른 프로세스에 덜 영향
- 단점: 메모리 사용량과 문맥 교환 비용 증가
- 공유: IPC가 필요해 상대적으로 복잡
멀티 스레드
- 장점: 자원 효율적이고 전환 오버헤드가 작음
- 단점: 한 스레드 문제가 프로세스 전체에 영향 가능
- 공유: 힙·데이터 공유로 동기화 필수
Context Switching
CPU가 작업을 바꿔도 이어서 실행되는 이유
Process A
Process B
인터럽트나 스케줄러 판단으로 CPU가 실행 대상을 바꿀 때, 현재 프로세스의 문맥을 PCB에 저장하고 다음 프로세스의 문맥을 복원합니다.
저장해야 할 핵심 문맥
Program Counter
다음에 실행할 명령어 주소
Stack Pointer
스택에서 현재 위치 정보
Registers
CPU 내부 계산 상태
Synchronization
공유 자원에는 규칙이 필요하다
경쟁 상태
여러 실행 흐름이 공유 자원에 동시에 접근해 결과가 접근 순서에 따라 달라지는 상태입니다.
임계 영역
공유 자원을 읽거나 수정하므로 한 번에 하나의 흐름만 안전하게 들어가야 하는 코드 구간입니다.
동기화 도구
뮤텍스는 락을 가진 흐름만 접근하게 하고, 세마포어는 허용 가능한 접근 수를 제어합니다.
Memory, Virtual Memory & Cache
메모리는 공간을 나누고, 필요한 것만 가져온다
가상 메모리와 페이징
프로그램은 연속된 큰 메모리를 쓰는 것처럼 보지만, OS는 가상 주소를 물리 주소로 매핑하고 페이지 단위로 관리합니다.
페이지 부재가 발생하면 보조기억장치에서 필요한 페이지를 가져옵니다.
교체와 지역성
- FIFO: 먼저 들어온 페이지를 먼저 제거
- LRU: 가장 오래 사용하지 않은 페이지 제거
- LFU: 사용 빈도가 낮은 페이지 제거
- 지역성: 최근 접근한 데이터나 가까운 주소를 다시 쓸 가능성
Wrap-up
운영체제 핵심 체크리스트
반드시 설명할 수 있어야 할 것
- 커널 모드와 사용자 모드가 필요한 이유
- 프로세스와 스레드의 차이
- PCB와 문맥 교환의 관계
- 동기화가 필요한 상황
- 가상 메모리와 캐시의 목적
한 문장 요약
운영체제는 제한된 하드웨어 자원을 안전하고 효율적으로 나누어, 여러 프로그램이 동시에 실행되는 것처럼 보이게 만드는 핵심 소프트웨어입니다.