목차
제1장 운영체제 개념
1.1 운영체제의 개요 = 15
1.2 운영체제의 종류 = 17
1.2.1 단일-사용자 시스템과 다중-사용자 시스템 = 18
1.2.2 단일-작업용 시스템과 다중-작업용 시스템 = 19
1.2.3 사용 환경에 따른 구분 = 20
1.2.4 실시간 시스템 = 26
1.3 운영체제의 발달 과정 = 26
1.4 운영체제의 구성 = 27
1.5 운영체제의 기능 = 29
1.5.1 프로세스 관리 = 29
1.5.2 프로세서 관리 = 30
1.5.3 기억장치 관리 = 30
1.5.4 화일 관리 = 32
1.5.5 입출력 관리 = 33
1.6 운영체제의 미래 = 34
1.7 결론 = 35
연습문제 = 37
제2장 프로세스 개념 및 관리
2.1 프로세스의 정의 = 42
2.2 자원의 개념 = 44
2.3 프로세스 관리 블럭 = 44
2.4 프로세스 상태 = 47
2.4.1 활동 상태 = 48
2.4.2 지연 상태 = 50
2.5 프로세스 상태 관리 자료구조 = 52
2.6 인터럽트 처리 및 문맥 교환 = 54
2.6.1 인터럽트 처리 과정 = 55
2.6.2 문맥 보존(context saving) 및 문맥 교환(context switching) = 57
2.7 결론 = 58
연습문제 = 59
제3장 프로세스 스테줄링
3.1 개요 = 61
3.2 스케줄링의 목적 = 62
3.3 스케줄링 기준 = 63
3.4 스케줄링의 단계 = 65
3.5 스케줄링 기법 = 67
3.5.1 FIFO(First In First Out) 스케줄링 = 68
3.5.2 RR(Round-Robin) 스케줄링 = 71
3.5.3 SPN(Shortes-Process-Next) 스케줄링 = 73
3.5.4 SRTN(Shortest-Remaining-Time-Next) 스케줄링 = 77
3.5.5 HRN(High-Response-Ratio-Next) 스케줄링 = 77
3.5.6 다단계 피드백 큐(Multi-Ievel Feedback Queue) = 78
3.7 유닉스 운영체제에서의 스케줄링 기법 = 83
3.7.1 개요 = 83
3.7.2 우선 순의 = 83
3.7.3 스케줄링 기법 = 84
3.7.4 스케줄링의 예 = 85
3.8 결론 = 87
연습문제 = 88
제4장 프로세스 동기화
4.1 자원 관리 블럭 = 91
4.2 비동기 병행 프로세스 = 93
4.2.1 상호 배제(mutual exclusion) = 93
4.2.2 상호배제 기법 = 97
4.3 세머퍼 = 107
4.3.1 상호 배제 문제 = 109
4.3.2 프로세스 동기화 문제 = 110
4.3.3 생산자-소비자 문제 = 111
4.3.4 Reader-writer 문제 = 114
4.4 Eventcount와 Sequencer = 116
4.4.1 상호 배제 문제 = 118
4.4.2 생산자-소비자 문제 = 119
4.5 결론 = 120
연습문제 = 121
제5장 병행 프로그래밍
5.1 개요 = 125
5.2 모니터 = 126
5.2.1 간단한 자원 할당 문제 = 129
5.2.2 생산자- 소비자 문제 = 133
5.2.3 Reader-writer 문제 = 134
5.2.4 Dining-philosopher 문제 = 137
5.3 결론 = 140
연습문제 = 142
제6장 교착상태
6.1 자원의 분류 = 147
6.1.1 선점 가능성에 의한 분류 = 148
6.1.2 할당 방식에 따른 분류 = 148
6.1.3 할당 형태에 따른 분류 = 149
6.1.4 자원의 속성에 따른 분류 = 149
6.2 교착상태의 예 = 150
6.3 시스템 상태 전이 모델 = 151
6.4 교착상태 발생원인 및 해결기법 = 153
6.4.1 교착상태 발생 원인 = 153
6.4.2 교착상태 햐경 기법 = 154
6.5 교착상태 예방 기법 = 156
6.6 교착상태 회피 기법 = 160
6.6.1 Dijkstra의 알고리즘 = 161
6.6.2 Habermann의 알고리즘 = 165
6.7 교착상태 검출 기법 = 169
6.8 교착상태 복구 기법 = 176
6.8.1 프로세스 종료 기법 = 176
6.8.2 자원 선점 기법 = 178
6.9 결론 = 179
연습문제 = 181
제7장 주기억 장치 관리
7.1 기억장치 계층구조 = 187
7.2 주기억장치 구성 및 관리 정책 = 189
7.2.1 주기억장치 구성 정책 = 189
7.2.2 주기억장치 관리 기법 = 191
7.3 단일프로그리밍 시스템 = 192
7.4 고정 분할 다중프로그래밍 = 194
7.5 가변 분할 다중프로그래밍 = 198
7.6 기억장소 교체를 이용한 다중프로그래밍 = 206
7.7 결론 = 207
연습문제 = 208
제8장 가상기억장치 구성
8.1 주소 사상 기법 = 212
8.1.1 불럭 사상(block mapping) 개념 = 215
8.1.2 블록 사상 기법 = 216
8.2 페이징 시스템 = 219
8.2.1 페이징 시스템 개요 = 219
8.2.2 주소 사상 기법 = 220
8.2.3 페이징 시스템에서의 주기억장치 관리 = 226
8.2.4 페이지 공유 = 227
8.3 세그먼테이션 시스템 = 231
8.3.1 세그먼테이션 시스템 개요 = 231
8.3.2 주소 사상 기법 = 232
8.3.3 접근 제어 기법 = 235
8.3.4 세그먼테이션 시스템에서의 주기억장치 관리 = 237
8.4 페이징 기법과 세그먼테이션 기법의 혼합 = 238
8.5 결론 = 244
연습문제 = 246
제9장 가상기억장치 관리
9.1 비용 모델 = 249
9.2 하드웨어 및 소프트웨어 요소 = 251
9.2.1 하드웨어 요소 = 251
9.2.2 소프트웨어 요소 = 254
9.3 지역성 = 260
9.4 고정 할당 기반의 교체 기법 = 262
9.4.1 MIN 알고리즘 = 263
9.4.2 무작위(random) 알고리즘 = 265
9.4.3 FIFO 알고리즘 = 266
9.4.4 LRU(Least Recently Used) 알고리즘 = 270
9.4.5 LFU(Least Frequently Used) 알고리즘 = 273
9.4.6 NUR(Not Used Recently) 알고리즘 = 275
9.4.7 클럭(clock) 알고리즘 = 277
9.4.8 Second chance 알고리즘 = 279
9.4.9 페이지 교체 알고리즘의 구현 = 282
9.5 가변 할당 기반의 교체 기법 = 286
9.5.1 Working set 기법 = 286
9.5.2 PFF 기법 = 293
9.5.3 VMIN 알고리즘 = 295
9.6 기타 고려 사항 = 298
9.6.1 페이지 크기 = 298
9.6.2 프로그램 구조 재구성 = 299
9.7 결론 = 302
연습문제 = 303
제10장 화일 시스템
10.1 디스크의 구조 = 309
10.1.1 디스크 팩 = 310
10.1.2 디스크 드라이브 = 311
10.1.3 디스크 시스템에서의 물리적 주소 = 312
10.1.4 디스크 시스템에서의 데이터 접근 과정 = 313
10.1.5 디스크 주소 지정 기법 = 314
10.2 화일의 개념 = 314
10.3 화일 시스템 구조 = 316
10.3.1 논리적 구조 = 316
10.3.2 물리적 구조 = 321
10.4 화일 보호 기법 = 326
10.4.1 패스워드 = 327
10.4.2 접근 행렬 = 327
10.5 결론 = 332
연습문제 = 333
제11장 디스크 스케줄링
11.1 스케줄링 기준 = 337
11.2 탐구 시간 최적화 = 339
11.2.1 FCFS 스케줄링 = 339
11.2.2 SSTF 스케줄링 = 341
11.2.3 SCAN 스케줄링 = 342
11.2.4 LOOK 스케줄링 = 344
11.2.5 N-step SCAN 스케줄링 = 345
11.2.6 C-SCAN 스케줄링 = 346
11.2.7 C-LOOK 스케줄링 = 348
11.2.8 Eschenbach 스케줄링 = 348
11.3 회전 지연 시간 최적화 = 349
11.4 기타 고려사항 = 350
11.4.1 버퍼링 = 350
11.4.2 디스크 스트라이핑 = 351
11.4.3 RAID 구조 = 353
11.5 결론 = 354
연습문제 = 356
제12장 시스템 보안
12.1 보안의 정의 = 361
12.2 보안의 필요성 및 목적 = 362
12.3 보안 위협의 유형 = 363
12.4 보안 메카니즘 = 364
12.4.1 보안 정책과 보안 메카니즘 = 364
12.4.2 인증(authentication) = 365
12.4.3 접근제어(access control) = 367
12.4.4 암호화(Cryptography) = 371
12.4.5 암호 알고리즘 = 372
12.5 침입차단 시스템 = 378
12.6 침입탐지 시스템 = 380
12.7 기타 보안 위협 = 381
12.7.1 컴퓨터웜(worm)과 바이러스(virus) = 381
12.7.2 컴퓨터 해킹(Hacking) = 382
12.8 결론 = 384
연습문제 = 386
제13장 병렬처리 시스템 운영 체제
13.1 병렬처리 시스템 개요 = 389
13.1.1 Flynn의 분류 = 391
13.1.2 병렬처리 시스템 종류 = 392
13.2 프로세서 상호 연결 구조 = 397
13.2.1 공유 버스 구조 = 397
13.2.2 크로스바-스위치 행렬 구조 = 398
13.2.3 트리 구조 = 400
13.2.4 하이퍼 큐브 = 401
13.2.5 다단계 상호 연결 네트워크 = 401
13.3 병렬성 개념 = 402
13.4 병렬성 자동 검출 기법 = 404
13.4.1 루프 분배 = 404
13.4.2 트리 높이 축소 = 406
13.4.3 “Never wait”규칙 = 407
13.5 병렬 프로그래밍을 위한 언어 구조 = 408
13.5.1 「parbegin/parend」구조 = 408
13.5.2 「and」구조 = 409
13.5.3 「fork/join/quit」구조 = 413
13.6 Fetch-and-add 명령 = 416
13.7 멀티프로세서 운영체제 구조 = 416
13.7.1 매스터-슬레이브 구조 = 418
13.7.2 독립 운영체제 구조 = 418
13.7.3 대칭적 운영체제 구조 = 419
13.8 결론 = 420
연습문제 = 421
제14장 분산 시스템 운영체제
14.1 분산 시스템 개요 = 427
14.2 운영체제 = 429
14.2.1 Monolithic 커널 = 430
14.2.2 마이크로 커널 = 431
14.3 분산 시스템의 탄생 배경 = 433
14.4 분산 시스템 구조 = 434
14.5 분산 운영체제의 설계사항 = 437
14.5.1 통신 메커니즘 = 438
14.5.2 은페성 = 441
14.5.3 전역 상태 유지 = 442
14.5.4 네이밍 = 443
14.5.5 확장 적응성 = 443
14.5.6 호환성 = 444
14.5.7 프로세스 동기화 = 445
14.5.8 자원 관리 = 445
14.6 클라이언트-서버 시스템 및 미들웨어 = 451
연습문제 = 452
제15장 실시간 시스템 운영체제
15.1 실시간 시스템의 개요 = 445
15.1.1 실시간 시스템 = 445
15.1.2 실시간 운영체제 = 457
15.1.3 실시간 스케줄링 알고리즘 = 458
15.2 실시간 스케줄링 알고리즘 = 459
15.2.1 RM(Rate Monotonic) 알고리즘 = 460
15.2.2 EDF(Earliest-Deadlinc First) = 463
15.3 실시간 시스템 운영체제 = 464
15.3.1 Maruti 시스템 = 464
15.3.2 Spring 시스템 = 466
15.3.3 상용 실시간 운영체제 = 469
15.4 결론 = 470
연습문제 = 471