목차
제1장 운영체제 개요 = 9
1.1 운영체제란? = 11
1.1.1 운영체제의 목적 = 13
1.1.2 운영체제의 구성요소 = 14
1.2 운영체제의 필요성 = 15
1.2.1 컴퓨터 시스템의 동작원리 = 15
1.2.2 운영체제의 기능 = 19
1.2.3 다중 프로그래밍(Multiprogramming) = 20
1.3 운영체제 진입점 = 22
1.3.1 시스템 호출(system call) = 22
1.3.2 인터럽트(interrupt) = 24
1.3.3 예외현상(exception) = 25
1.4 리눅스 커널 = 25
1.4.1 파일 관리 서브 시스템 = 26
1.4.2 프로세스 관리 서브 시스템 = 27
1.4.3 시스템 호출 인터페이스 = 27
1.4.4 입출력 장치 인터페이스 = 27
제2장 프로세스 관리 = 31
2.1 프로세스 개념 = 33
2.1.1 프로세스 상태 = 35
2.1.2 프로세스 제어 블록(PCB: Process Control Block) = 37
2.1.3 프로세스 생성 = 39
2.2 스래드(thread) 개념 = 41
2.2.1 태스크와 스래드 = 41
2.2.2 다중 스래딩(Multi-threading) = 43
2.3 프로세스 스케줄링(Process Scheduling) = 45
2.3.1 기본 개념 = 46
2.3.2 선점/비선점(preemptive/non-preemptive) 스케줄링 = 49
2.3.3 스케줄링 정책 = 51
2.4 리눅스에서 프로세스 = 63
2.4.1 프로세스 상태 = 64
2.4.2 프로세스 제어 블록 = 66
2.4.3 프로세스 및 스래드 생성 = 70
2.4.4 프로세스 스케줄링 = 73
제3장 병행성(Concurrency) = 79
3.1 개요 = 81
3.2 임계 영역(Critical Section) = 85
3.2.1 소프트웨어에 의한 방법 = 87
3.2.2 하드웨어에 의한 방법 = 94
3.2.3 세마포어(semaphore)에 의한 방법 = 99
3.3 프로세스간 통신 = 103
3.3.1 메시지 전송(message passing) 방식 = 104
3.3.2 공유 메모리(shared memory) 방식 = 105
3.4 리눅스에서 병행성 = 106
3.4.1 스래드 동기화 = 108
3.4.2 프로세스 통신 및 동기화 = 111
제4장 교착상태(Deadlock) = 127
4.1 교착상태 개요 = 129
4.1.1 자원 할당 그래프(Resource Allocation Graph) = 130
4.2 교착상태 원인 = 133
4.3 교착상태 해결책 = 134
4.3.1 교착상태 예방(Deadlock Prevention) = 134
4.3.2 교착상태 회피(Deadlock Avoidance) = 137
4.3.3 교착상태 탐지 및 회복(Deadlock Detection & Recovery) = 146
제5장 기억장치 관리 = 155
5.1 개요 = 157
5.1.1 다중 프로그래밍 정도 = 157
5.1.2 메모리 공간의 분할 방법 = 158
5.1.3 메모리 할당의 연속성 = 158
5.1.4 메모리 공간의 교체 가능성 = 158
5.2 단일 프로그래밍 시스템 = 159
5.3 다중 프로그래밍 시스템 = 160
5.3.1 연속 할당 = 161
5.3.2 불연속 할당 = 168
5.4 가상 메모리(Virtual Memory) = 182
5.4.1 반입 정책(Fetch Policy) = 186
5.4.2 교체 정책(Replacement Policy) = 189
5.4.3 할당 정책(Allocation Policy) = 200
5.4.4 기타 고려사항 = 205
제6장 파일 시스템 = 215
6.1 개요 = 217
6.1.1 파일 개념 = 217
6.1.2 디렉토리 구조(Directory Structure) = 220
6.1.3 파일 보호 = 223
6.2 파일 공간 관리 = 225
6.2.1 빈 공간 관리 = 225
6.2.2 빈 공간 할당 = 228
6.3 디스크 관리 = 232
6.3.1 디스크 구조 및 접근 시간(access time) = 233
6.3.2 디스크 스케줄링 = 237
6.3.3 디스크 캐쉬(Disk Cache) = 243
6.4 리눅스 파일 시스템 = 245
6.4.1 가상 파일 시스템 = 245
6.4.2 MS-DOS 파일 시스템 = 246
6.4.3 Ext2 파일 시스템 = 251
부록 1 Vi 편집기 = 261
1.1 기본 개념 = 261
1.2 기본 명령어 = 263
부록2 프로세스의 메모리 구조 = 265