목차
제1장 컴퓨터 시스템의 개요
1.1 기본개념 = 1
1.1.1 프로세스 = 1
1.1.2 기억 장치 = 5
1.1.3 입출력과 인터럽트 = 9
1.1.4 UNIX = 11
1.2 운영 체제의 분류 = 15
1.2.1 범용 운영 체제 = 15
1.2.2 특수 목적용 운영 체제 = 25
연습문제 = 28
제2장 운영 체제의 개요
2.1 운영 체제의 요소 = 30
2.2 운영체제의 목적 = 31
2.3 운영 체제의 기능 = 32
2.3.1 초기 설정 기능(또는 부트스트래핑 기능) = 32
2.3.2 효율적인 자원 관리 기능 = 33
2.3.3 편리한 인터페이스 기능 = 33
2.3.4 신뢰성(reliability) 기능 = 35
2.3.5 이식성(portability) 기능 = 35
2.4 자원 관리자 관점의 운영 체제 = 36
2.5 운영 체제의 계층 구조 = 39
연습문제 = 42
제3장 프로세스 개요
3.1 프로세스 개념 = 43
3.1.1 프로세스란? = 43
3.1.2 프로그램과 프로세스 = 43
3.1.3 운영 체제 프로세스와 사용자 프로세스 = 44
3.1.4 CPU와 프로세스들 = 45
3.1.5 병행(concurrent) 프로세스 = 45
3.2 프로세스의 상태 = 47
3.2.1 프로세스의 상태 = 47
3.2.2 프로세스 관리를 위한 자료 구조(PCB) = 49
3.2.3 PCB의 관리 = 51
3.3 프로세스의 상태 변환 = 52
3.3.1 작업 스케줄러에 의한 상태 변환 = 53
3.3.2 프로세스 스케줄러에 의한 상태 변환 = 53
3.3.3 대기 상태의 세분화 = 56
3.3.4 준비 상태의 세분화 = 58
3.4 문맥 교환(context switching) = 59
3.5 프로세스의 생성 = 62
3.6 프로세스 종료 = 65
연습문제 = 67
제4장 프로세스 스케줄링
4.1 스케줄링 목적 = 69
4.2 스케줄링의 원리 = 70
4.2.1 비선점(non-preemption) = 70
4.2.2 선점(preemption) 방식 = 73
4.3 작업 스케줄링(Job scheduling) = 77
4.3.1 개요 = 77
4.3.2 작업 스케줄링 = 79
4.3.3 FCFS 스케줄링의 예 = 81
4.3.4 SJF 스케줄링의 예 = 82
4.4 프로세스 스케줄링 = 83
4.4.1 중간 단계 스케줄링 = 84
4.4.2 프로세스 스케줄링 = 85
4.4.3 라운드 로빈 스케줄링의 예 = 86
연습문제 = 91
제5장 교착 상태(deadlock)
5.1 교착 상태 개념 = 94
5.1.1 자원의 요구와 할당에 따른 교착 상태 = 94
5.1.2 자원 유형에 따른 교착 상태 = 96
5.1.3 자원 할당 그래프 = 98
5.1.4 교착상태 해결 방안 = 102
5.2 교착 상태 예방(deadlock prevention) = 103
5.2.1 교착 상태의 발생 4가지 필요조건 = 103
5.2.2 교착 상태 예방책 = 104
5.3 교착 상태의 회피 = 107
5.3.1 안전 상태와 불안전 상태 = 107
5.3.2 은행원 알고리즘(banker's algorithm) = 110
5.3.3 교착 상태 회피의 장단점 = 115
5.4 교착 상태의 탐지와 회복 = 115
5.4.1 교착 상태 탐지(deadlock detection) = 115
5.4.2 교착 상태의 회복(deadlock recovery) = 119
5.4.3 교착 상태 탐지 및 회복의 장단점 = 122
연습문제 = 123
제6장 기억 장치 관리
6.1 기억 장치 개요 = 125
6.2 기억 장소 배당 방법 = 126
6.2.1 산재 배당 방식(scatter allocation) = 127
6.2.2 연속 배당 방식(contiguous allocation) = 127
6.3 단일 사용자 기억 장소 배당 방식 = 128
6.4 다중 사용자 기억 장소 배당 방식 = 129
6.5 고정 분할 기억 장소 배당 방식 = 131
6.5.1 고정 분할 기억 장소의 운영 방식 = 133
6.6 동적 분할 기억 장소 배당 방식 = 138
6.6.1 동적 분할의 자료구조 = 138
6.6.2 동적 분할의 기억 장소 배당 기법 = 140
6.6.3 동적 분할의 기억 장소 회수 = 142
6.7 기억 장소 단편화의 해결 방안 = 142
6.7.1 기억 장소의 압축(compaction) = 142
6.7.2 가상기억 장치 = 144
6.8 연속 배당 방식의 문제점 = 144
연습문제 = 146
제7장 가상 기억 장치(Virtual Memory)
7.1 가상 기억 장치 개요 = 147
7.1.1 가상 개념 = 147
7.1.2 가상 기억 장치 개념 = 148
7.2 동적 재배치(dynamic relocation) = 150
7.3 가상 기억 장치의 필요성 = 152
7.3.1 프로세스를 기억 장소에 산재 배당시키기 위해 = 153
7.3.2 오버레이(overlay) 문제를 자동 해결하기 위해 = 154
7.3.3 요구 페이지 기법에 의한 주기억 장소 이용률을 높이기 위하여 = 156
7.3.4 기억 장소 단편화를 제거하기 위하여 = 156
7.3.5 페이지를 공유할 수 있기 때문에 = 157
7.4 페이징 기법의 동적 주소 변환 = 159
7.4.1 가상 주소 형식과 페이지 맵 테이블 = 159
7.4.2 동적 주소 변환 과정 = 161
7.4.3 고속의 동적 주소 변환 = 164
7.5 페이지 프레임 맵 테이블에 의한 주기억 장소의 효율적인 관리 = 167
7.5.1 PMT와 PFMT 그리고 FMT 간의 관계 = 169
7.5.2 페이지 부재(page fault) 처리 = 171
7.6 페이징 기법의 장단점 = 172
7.7 세그먼테이션(segmentation) 기법 = 173
7.7.1 세그먼테이션 기법의 개요 = 174
7.7.2 동적 주소 변환 = 174
7.8 페이징/세그먼테이션 혼합 기법 = 179
연습문제 = 181
제8장 가상 기억 장치 관리
8.1 가상 기억 장치 관리 개요 = 183
8.2 프로그램의 참조 국부성 = 185
8.3 교체 정책 = 187
8.3.1 페이지 교체 알고리즘 = 188
8.3.2 전역 대 지역 교체 = 194
8.4 할당 정책 = 195
8.4.1 스래싱(thrashing) = 195
8.4.2 페이지 부재 빈도(Page Fault Frequency) = 198
8.4.3 작업 세트(working set) = 199
8.5 그 외 고려 사항 = 201
8.5.1 프리페이징(prepaging) = 201
8.5.2 페이지 고정(Page Fix) = 202
8.5.3 페이지 크기 = 202
연습문제 = 204
제9장 디스크 관리
9.1 디스크 관리 개요 = 205
9.2 디스크의 구조 = 206
9.2.1 디스크의 종류 = 207
9.2.2 장치 디렉토리 = 209
9.3 디스크 제어기와 구동기 = 209
9.3.1 디스크 제어기의 기능 = 211
9.3.2 디스크 구동기의 기능 = 211
9.4 디스크 입출력 = 212
9.4.1 디스크 인터러빙(interleaving) = 213
9.4.2 디스크 캐시 = 214
9.4.3 RAM 디스크 = 215
9.5 디스크 공간 관리 = 217
9.5.1 디스크의 사용 가능한 공간 관리 = 217
9.5.2 디스크 공간의 할당 방식 = 220
9.6 디스크 스케줄링 기법 = 229
9.6.1 FCFS 스케줄링 = 230
9.6.2 최소 탐색 우선(SSTF) 스케줄링 = 232
9.6.3 SCAN 스케줄링 = 233
9.6.4 C-SCAN(circular-scan) 스케줄링 = 235
연습문제 = 237
제10장 파일 시스템
10.1 파일 시스템의 개요 = 239
10.2 파일의 특성 = 241
10.2.1 자료나 프로그램을 파일로 구성하는 이유 = 241
10.2.2 파일 형식 = 241
10.2.3 파일 속성 = 242
10.2.4 디렉토리 파일 = 244
10.2.5 특수 파일(special file) = 246
10.3 파일의 접근 방법(Access Methods) = 247
10.3.1 순차 접근에 적합한 순차 파일 = 247
10.3.2 직접 접근에 적합한 직접 파일 = 248
10.3.3 색인 접근을 사용하는 색인 순차 파일 = 250
10.4 파일 조작 = 251
10.4.1 UNIX에서의 파일 처리 과정 = 251
10.4.2 UNIX에서의 파일 공유처리 = 253
10.4.3 파일 조작에 관련된 시스템 호출 = 255
10.4.4 파일 조작 과정 = 258
10.5 UNIX 파일 시스템의 구조 = 259
10.5.1 트리 구조(tree structure) = 259
10.5.2 파일 시스템의 구조 = 262
10.5.3 수퍼 블록 = 263
10.6 파일 보호 = 266
10.6.1 접근 제어 정렬(access control matrix) = 266
10.6.2 파일 이름 부여(file naming) = 267
10.6.3 암호(password) = 267
10.6.4 암호화/해독화 = 268
10.7 입출력 시스템 = 268
10.7.1 입출력 제어기(input/output controller) = 268
10.7.2 장치 구동기(device driver) = 269
10.7.3 입출력 요청의 처리 과정 = 270
연습문제 = 272
제11장 병행 프로세스
11.1 평행 프로세스의 기본 개념 = 274
11.1.1 병행성(concurrency) = 274
11.1.2 병행 처리가 필요한 이유 = 275
11.1.3 결정적(determinate) 프로세스 = 276
11.1.4 공유 자원의 유형에 따른 병행 처리 방법 = 277
11.2 프로세스 간의 동기화 = 278
11.2.1 경쟁자 관계에서의 동기화 : 상호 배제 = 278
11.2.2 생산자(producer)/소비자(consumer) 관계의 동기화 = 280
11.3 임계 영역(critical section) = 283
11.3.1 임계 영역이 필요한 이유 = 284
11.3.2 임계영역 문제의 고려사항들 = 284
11.4 상호 배제 = 286
11.5 Test-and-Set 명령에 의한 상호 배제 = 288
11.6 세마포어(semaphore) = 290
11.7 식사하는 철학자 문제 = 291
11.8 메시지 전송(message passing) = 294
11.9 모니터(monitor) = 295
연습문제 = 298
기출문제 = 299
찾아보기 = 396