컴퓨터과학 챕터 4 약 3분

운영체제 기초 — 하드웨어와 소프트웨어 사이

O
OIYO 편집부 기여자
4/10

운영체제(OS)란

운영체제는 하드웨어와 사용자/응용 프로그램 사이의 중간 계층입니다.

OS의 역할:
→ 프로세스 관리: CPU 시간 분배
→ 메모리 관리: RAM 할당·회수
→ 파일 시스템: 저장 장치 추상화
→ 입출력 관리: 디바이스 드라이버
→ 보안: 접근 제어

주요 OS: Linux, Windows, macOS, Android, iOS

프로세스 vs 스레드

프로세스 (Process):
→ 실행 중인 프로그램의 인스턴스
→ 독립된 메모리 공간 (코드·데이터·스택·힙)
→ 프로세스 간 통신: IPC (파이프, 소켓)

스레드 (Thread):
→ 프로세스 내 실행 단위
→ 같은 프로세스의 메모리 공유
→ 생성·전환 비용 < 프로세스
→ 동기화 문제 발생 가능

멀티 코어 활용:
→ 단일 코어: 프로세스 시분할 (동시 실행처럼 보임)
→ 멀티 코어: 진정한 병렬 실행 가능

프로세스 스케줄링

CPU가 어떤 프로세스에 실행 시간을 줄지 결정:

스케줄링 알고리즘:

FCFS (선입선출):
→ 먼저 온 순서대로 실행
→ 단순하지만 긴 작업이 짧은 작업 블로킹 (호위 효과)

SJF (최단 작업 우선):
→ 실행 시간이 짧은 것 먼저
→ 최적 평균 대기 시간, 하지만 긴 작업 기아 가능

Round Robin:
→ 각 프로세스에 시간 할당량(Time Quantum) 부여
→ 할당량 소진 → 준비 큐로 이동
→ 가장 많이 사용 (Linux, Windows)

우선순위 스케줄링:
→ 높은 우선순위 먼저
→ 기아(Starvation) 방지: 에이징(오래 기다릴수록 우선순위 증가)

동기화 문제 — 경쟁 조건

경쟁 조건 (Race Condition):
두 스레드가 같은 자원을 동시에 접근 → 예측 불가 결과

예:
count = 0
Thread A: count = count + 1  (읽기→계산→쓰기)
Thread B: count = count + 1  (동시 수행)
→ count = 1이 될 수 있음 (2가 되어야 함)

해결책:
뮤텍스(Mutex): 한 번에 하나의 스레드만 접근
세마포어(Semaphore): n개 스레드까지 허용

데드락 (교착 상태)

4가지 필요 조건 (Coffman 조건):
1. 상호 배제: 자원을 독점 사용
2. 점유와 대기: 자원을 가진 채 다른 자원 대기
3. 비선점: 강제로 빼앗을 수 없음
4. 순환 대기: A→B→C→A 순환

해결:
예방: 위 조건 중 하나 제거 (실용적으로 어려움)
회피: 은행가 알고리즘 (안전 상태 유지)
탐지·복구: 데드락 탐지 후 프로세스 종료

메모리 관리

가상 메모리 (Virtual Memory):
→ 물리 RAM보다 큰 주소 공간 제공 환상
→ 실제로 필요한 부분만 RAM에 로드
→ 나머지는 디스크(스왑 공간)에

페이지 교체 알고리즘:
LRU (가장 오랫동안 사용 안 된 것 교체): 현실적으로 많이 사용
FIFO: 가장 오래된 페이지 교체
최적 알고리즘: 미래 참조 알아야 해서 이론적만

캐시 계층:
레지스터 (ps) → L1 캐시 (1ns) → L2 캐시 (5ns) → L3 (20ns) → RAM (100ns) → SSD (100μs) → HDD (10ms)
→ 계층 아래로 갈수록 느리고 용량 큼

파일 시스템

파일 시스템 역할:
→ 파일·디렉터리의 논리적 구조 관리
→ 저장 장치 블록 할당·추적

주요 파일 시스템:
FAT32: 구형 윈도우, USB (파일 4GB 제한)
NTFS: 현대 윈도우 (대용량, 보안, 저널링)
ext4: Linux 기본
APFS: macOS (암호화, 스냅샷)

inode (Linux):
→ 파일 메타데이터 저장 (크기, 권한, 타임스탬프, 데이터 블록 포인터)
→ 파일 이름 ≠ inode (하드링크 가능)

핵심 암기 포인트

프로세스: 독립 메모리 / 스레드: 메모리 공유 (더 가볍지만 동기화 필요) Round Robin: 가장 현실적인 스케줄링 (시간 할당량 기반) 데드락 4조건: 상호배제·점유대기·비선점·순환대기 가상 메모리: 실제 RAM보다 큰 공간 환상 — 페이지 교체로 관리

O

OIYO 편집부

Content Editor

지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.