기본 개념부터 동작 원리까지
컴퓨터를 효과적으로 활용하는 핵심, 운영체제!
운영체제는 모든 디지털 기기에서 핵심적인 역할을 합니다. 이 책에서는 초보자가 쉽게 이해할 수 있도록 운영체제의 원리와 작동 방식을 체계적으로 설명합니다. 운영체제를 깊이 이해하면, 시스템 활용과 소프트웨어 최적화의 강력한 기반을 마련할 수 있으며, 소프트웨어 개발 및 시스템 설계에서 보다 효과적으로 해결할 수 있을 것입니다.
- step 1 -
컴퓨터를 효율적으로 활용하기 위한
필수 개념의 이해
- step 2 -
실생활 예시와 쉬운 언어로
핵심 요약을 통한 복습
- step 3 -
핵심 개념을 되새기기 위한
연습 문제
1장 | 컴퓨터 시스템 개요
1.1 컴퓨터 시스템 개요
1.2 프로세서(processor)
1.3 메모리(memory)
주기억 장치(main memory)
캐시(cache)
1.4 시스템 버스(system bus)
1.5 주변 장치
1.6 연습 문제
2장 | 운영체제 개요
2.1 운영체제의 역할
사용자 편리성 제공
시스템 효율성 향상
시스템 보호
2.2 운영체제의 구분
동시 사용자 수에 따른 분류
동시 실행 프로세스 수에 따른 분류
작업 수행 방식에 따른 분류
2.3 운영체제의 구조
운영체제 구성 요소
운영체제 구조
2.4 운영체제의 기능
프로세스 관리(process management)
프로세서 관리(processor management)
메모리 관리(memory management)
파일 관리(file management)
입출력 관리(I/O management)
보조기억 장치 및 주변 장치 관리
2.5 연습 문제
3장 | 프로세스 관리
3.1 프로세스 개요
3.2 프로세스 상태
생성 상태(created state)
준비 상태(ready state)
실행 상태(running state)
차단된/대기 상태(blocked/asleep state)
중지된 상태(suspended state)
종료/좀비 상태(terminated/zombie state)
3.3 문맥 교환(context switch)
3.4 인터럽트(interrupt)
3.5 연습 문제
4장 | 스레드
4.1 스레드의 개념
4.2 스레드의 구현
사용자 수준 스레드
커널 수준 스레드
혼합형 스레드
4.3 연습 문제
5장 | 프로세스 스케줄링
5.1 스케줄링의 목적
5.2 스케줄링 기준 및 정책
스케줄링 기준
스케줄링 단계
스케줄링 정책
5.3 프로세스 스케줄링 알고리즘
FCFS(선입 선출) 스케줄링
라운드 로빈(RR) 스케줄링
SPN 스케줄링
SRTN 스케줄링
HRRN 스케줄링
MLQ 스케줄링
MFQ 스케줄링
5.4 연습 문제
6장 | 동기화와 상호 배제
6.1 병행 프로세스와 임계 영역
병행 프로세스
공유 자원과 임계 영역
경쟁 상태
6.2 동기화와 상호 배제
동기화
상호 배제 구현
6.3 소프트웨어적 해결 방법
데커(Dekker) 알고리즘
피터슨(Peterson) 알고리즘
다익스트라(Dijkstra) 알고리즘
소프트웨어적 해결 방법의 단점
6.4 하드웨어적 해결 방법 - TAS 명령어
6.5 운영체제 지원 소프트웨어적 해결 방법
스핀락(spinlock)
세마포어(semaphore)
이벤트 카운트와 시퀀서(event-count & sequencer)
6.6 언어 레벨 해결 방법–모니터(monitor)
자원 할당 문제
생산자-소비자(producer-consumer) 문제 - 버퍼 크기가 N인 경우
식사하는 철학자(dining philosopher) 문제
6.7 연습 문제
7장 | 교착 상태
7.1 교착 상태와 자원
자원의 종류
교착 상태와 자원의 종류
7.2 교착 상태 모델
교착 상태 발생의 예
그래프 모델(graph model)
상태 전이 모델(state transition model)
교착 상태 발생 필요 조건
7.3 교착 상태 예방
독점 할당 자원 조건 제거
선점 불가 자원 조건 제거
보유 및 대기 조건 제거
순환 대기 조건 제거
7.4 교착 상태 회피
안전 상태(safe state)와 불안전 상태(unsafe state)
은행원 알고리즘(banker’s algorithm)
하버만 알고리즘(Harbermann’s algorithm)
7.5 교착 상태 탐지 및 복구
교착 상태 탐지(deadlock detection)
교착 상태 복구(deadlock recovery)
7.6 연습 문제
8장 | 메모리 관리
8.1 배경지식
메모리 계층 구조
물리 주소와 논리 주소
주소 바인딩
스와핑(swapping)
8.2 메모리 할당 방법
8.3 단일 프로그래밍 환경의 메모리 할당
경계 레지스터
메모리 오버레이
8.4 다중 프로그래밍 환경에서의 메모리 할당
고정 분할 다중 프로그래밍(FPM)
가변 분할 다중 프로그래밍(VPM)
8.5 연습 문제
9장 | 가상 메모리
9.1 가상 메모리와 주소 매핑
9.2 페이징 시스템
페이징 시스템의 특징
페이징 시스템의 주소 매핑
페이징 시스템의 메모리 관리
페이지 공유 및 보호
9.3 세그먼테이션 시스템
세그먼테이션 시스템의 특징
세그먼테이션 시스템의 주소 매핑
세그먼테이션 시스템의 메모리 관리
세그먼트 공유 및 보호
9.4 하이브리드 페이징/세그먼테이션 시스템
페이징 시스템 vs 세그먼테이션 시스템
하이브리드 페이징/세그먼테이션 시스템
하이브리드 페이징/세그먼테이션 시스템의
주소 매핑
9.5 연습 문제
10장 | 가상 메모리 관리
10.1 가상 메모리 관리 기본 요소
비용 모델
하드웨어 컴포넌트
소프트웨어 컴포넌트
10.2 교체 전략
지역성과 페이지 참조
고정 할당에서의 페이지 교체 전략
가변 할당에서의 페이지 교체 전략
10.3 기타 고려 사항
페이지 크기
프로그램 재구성
TLB 도달 범위
10.4 연습 문제
11장 | 파일 시스템
11.1 디스크 시스템
디스크 시스템의 물리적 구조
디스크 주소
11.2 파일 시스템
파일(file)
파티션과 디렉터리
마운팅(mounting)
11.3 디렉터리 구조
단일 디렉터리 구조(flat directory structure)
2단계 디렉터리 구조(2-level directory structure)
계층적 디렉터리 구조(hierarchical directory structure)
비순환 그래프 디렉터리 구조(acyclic graph directory structure)
일반 그래프 디렉터리 구조(general graph directory structure)
11.4 파일 보호
파일 보호 개요
접근 행렬 기법
11.5 디스크 공간 관리
디스크 공간 할당 방법
디스크 빈 공간 관리
11.6 연습 문제
12장 | 입출력 시스템과 디스크 관리
12.1 입출력 시스템
입출력 메커니즘
운영체제의 입출력 서비스
12.2 디스크 스케줄링
디스크 스케줄링 개요
탐색 시간 최적화 스케줄링
회전 지연 시간 최적화 스케줄링
최소 위치 지정 시간 우선 스케줄링
12.3 RAID 구조
RAID 개요
RAID 레벨
12.4 연습 문제
찾아보기
ㆍ지은이 김덕수
독자의견 남기기