목차
part 1 개관(Overview)
Chapter 1 서론(Introduction)
1.1 운영체제가 할 일(What Operating Systems Do) = 3
1.2 컴퓨터 시스템의 구성 = 7
1.3 컴퓨터 시스템 구조(Computer-System Architecture) = 13
1.4 운영체제의 구조 = 17
1.5 운영체제 연산 = 20
1.6 프로세스 관리 = 23
1.7 메모리 관리 = 24
1.8 저장 장치 관리 = 25
1.9 보호와 보안(Protection and Security) = 30
1.10 분산 시스템(Distributed System) = 31
1.11 전용 시스템(Special-Purpose System) = 32
1.12 계산 환경 = 35
1.13 요약(Summary) = 38
연습문제(Exercises) = 40
인용문헌 노트 = 42
Chapter 2 운영체제 구조(Operating-System Structure)
2.1 운영체제 서비스 = 45
2.2 사용자 운영체제 인터페이스(User Operating-System Interface) = 47
2.3 시스템 호출(System Call) = 50
2.4 시스템 호출의 유형 = 54
2.5 시스템 프로그램(System Program) = 62
2.6 운영체제 설계 및 구현(Operating-System Design and Implementation) = 64
2.7 운영체제 구조(Operating-System Structure) = 67
2.8 가상 기계(Virtual Machin) = 73
2.9 운영체제 생성(Operating-System Generation) = 80
2.10 시스템 부트 = 81
2.11 요약(Summary) = 82
연습문제(Exercises) = 83
인용문헌 노트 = 88
part 2 프로세스 관리(Process Management)
Chapter 3 프로세스(Process)
3.1 프로세스 개념(Process Concept) = 93
3.2 프로세스 스케줄링(Process Scheduling) = 99
3.3 프로세스에 대한 연산(Operation on Process) = 103
3.4 프로세스간 통신(Interprocess Communication) = 109
3.5 IPC 시스템의 사례 = 117
3.6 클라이언트 서버 환경에서 통신(Communication in Client-Server System) = 123
3.7 요약(Summary) = 132
연습문제(Exercises) = 133
인용문헌 노트 = 142
Chapter 쓰레드(Thread)
4.1 개요(Overview) = 143
4.2 다중 쓰레드 모델(Multithreading Model) = 146
4.3 쓰레드 라이브러리(Threads Library) = 149
4.4 쓰레드와 관련된 문제들(Threading Issues) = 156
4.5 운영체제 사례(Operating-System Example) = 162
4.6 요약(Summary) = 164
연습문제(Exercises) = 165
인용문헌 노트 = 170
Chapter 5 CPU 스케줄링(CPU Scheduling)
5.1 기본 개념(Basic Concept) = 173
5.2 스케줄링 기준(Scheduling Criteria) = 177
5.3 스케줄링 알고리즘(Scheduling Algorithm) = 179
5.4 다중 처리기 스케줄링(Multiple-Processor Scheduling) = 191
5.5 쓰레드 스케줄링(Thread Scheduling) = 194
5.6 운영체제 사례들 = 197
5.7 알고리즘의 평가(Algorithm Evaluation) = 204
5.8 요약(Summary) = 209
연습문제(Exercises) = 211
인용문헌 노트 = 213
Chapter 6 프로세스 동기(Process Synchronization)
6.1 배경(Background) = 215
6.2 임계 구역 문제(The Critical-Section Problem) = 218
6.3 피터슨의 해결안(Peterson's Solution) = 220
6.4 동기화 하드웨어(Synchronization Hardware) = 222
6.5 세마포(Semaphore) = 225
6.6 고전적인 동기화 문제들(Classic Problems of Synchronization) = 231
6.7 모니터(Monitor) = 230
6.8 동기화 사례(Synchronization Example) = 245
6.9 원자적 트랜잭션(Atomic Transaction) = 250
6.10 요약(Summary) = 260
연습문제(Exercises) = 261
인용문헌 노트 = 272
Chapter 7 교착 상태(Deadlock)
7.1 시스템 모델(System Model) = 275
7.2 교착 상태의 특징(Deadlock Characterization) = 277
7.3 교착 상태 처리 방법(Method for Handling Deadlock) = 282
7.4 교착 상태 예방(Deadlock Prevention) = 284
7.5 교착 상태 회피(Deadlock Avoidance) = 287
7.6 교착 상태 탐지(Deadlock Detection) = 294
7.7 교착 상태로부터 회복(Recovery from Deadlock) = 298
7.8 요약(Summary) = 300
연습문제(Exercises) = 301
인용문헌 노트 = 304
part 3 메모리 관리(Memory Management)
Chapter 8 주 메모리(Main Memory)
8.1 배경(Background) = 307
8.2 스와핑(Swapping) = 315
8.3 연속 메모리 할당(Contiguous Memory Allocation) = 318
8.4 페이징(Paging) = 322
8.5 페이지 테이블의 구조(Structure of the Page Table) = 332
8.6 세그먼테이션(Segmentation) = 338
8.7 사례(InteI Pentium) = 341
8.8 요약(Summary) = 345
연습문제(Exercises) = 341
인용문헌 노트 = 349
Chapter 9 가상 메모리(Virtual Memory)
9.1 배경(Background) = 351
9.2 요구 페이징(Demand Paging) = 355
9.3 쓰기 시 복사(Copy-on-write) = 363
9.4 페이지 교체(Page Replacement) = 365
9.5 프레임의 할당(Allocation of Frame) = 379
9.6 쓰레싱(Thrashing) = 382
9.7 메모리 사상 파일(Memory-Mapped File) = 389
9.8 저널 메모리의 할당 = 394
9.9 기타 고려 사항(Other Consideration) = 397
9.10 운영체제의 예(Operating-System Example) = 405
9.11 요약(Summary) = 407
연습문제(Exercises) = 408
인용문헌 노트 = 412
part 4 저장 장치 관리(Storage Management)
Chapter 10 파일 시스템 인터페이스(File-System Interface)
10.1 파일 개념(File Concept) = 417
10.2 접근 방법(Access Method) = 427
10.3 디렉토리 구조(Directory Structure) = 431
10.4 파일 시스템 마운팅(File-System Mounting) = 442
10.5 파일 공유(File Sharing) = 444
10.6 보호(Protection) = 450
10.7 요약(Summary) = 455
연습문제(Exercises) = 456
인용문헌 노트 = 457
Chapter 11 파일 시스템 구현(File-System Implementation)
11.1 파일 시스템 구조(File-System Structure) = 459
11.2 파일 시스템 구현(File-System Implementation) = 462
11.3 디렉토리 구현(Directory Implementation) = 469
11.4 할당 방법(Allocation Method) = 470
11.5 자유 공간의 관리(Free-Space Management) = 479
11.6 효율과 성능(Efficiency and Performance) = 481
11.7 복구(Recovery) = 486
11.8 로그 구조 파일 시스템(Log-Structured File System) = 487
11.9 NFS = 489
11.10 예: WAFL 파일 시스템 = 496
11.11 요약(Summary) = 499
연습문제(Exercises) = 500
인용문헌 노트 = 501
Chapter 12 대용량 저장 장치 구조(Mass-Storage Structure)
12.1 대용량 저장 장치의 개관 = 503
12.2 디스크 구조(Disk Structure) = 506
12.3 디스크 부착(Disk Attachment) = 507
12.4 디스크 스케줄링(Disk Scheduling) = 510
12.5 디스크 관리(Disk Management) = 516
12.6 스왑 공간 관리(Swap-Space Management) = 519
12.7 RAID 구조(RAID Structure) = 522
12.8 안정적인 저장 장치 구현(Stable-Storage Implementation) = 533
12.9 3차 저장 장치 구조(Tertiary-Storage Structure) = 534
12.10 요약(Summary) = 545
연습문제(Exercises) = 546
인용문헌 노트 = 550
Chapter 13 입/출력 시스템(I/O System)
13.1 개관(Overview) = 553
13.2 입/출력 하드웨어(I/O Hardware) = 554
13.3 응용 입/출력 인터페이스(Application I/O Interface) = 565
13.4 커널 입/출력 서브시스템(Kernel I/O Subsystem) = 572
13.5 입/출력 요청을 하드웨어 연산으로 변환(Transforming I/O Requests to Hardware Operation) = 579
13.6 스트림(STREAM) = 582
13.7 성능(Performance) = 584
13.8 요약(Summary) = 587
연습문제(Exercises) = 588
인용문헌 노트 = 589
part 5 보호와 보안(Protection and Security)
Chapter 14 보호(Protection)
14.1 보호의 목표(Goal of Protection) = 593
14.2 보호의 원칙(Principle of Protection) = 594
14.3 보호의 영역(Domain of Protection) = 596
14.4 접근 행렬(Access Matrix) = 601
14.5 접근 행렬의 구현(Implementation of Access Matrix) = 605
14.6 접근 제어(Access Control) = 608
14.7 접근 권한의 취소(Revocation of Access Right) = 608
14.8 자격 기반 시스템(Capability-Based System) = 610
14.9 언어 기반의 보호(Language-Based Protection) = 614
14.10 요약(Summary) = 620
연습문제(Exercises) = 620
인용문헌 노트 = 622
Chapter 15 보안(Security)
15.1 보안 문제(Security Problem) = 623
15.2 프로그램 위협(Program Threat) = 627
15.3 시스템과 네트워크의 위협(system and network threat) = 637
15.4 보안 도구로서의 암호 기법(Cryptography as a Security Tool) = 643
15.5 사용자 인증(User Authentication) = 655
15.6 보안 방어의 구현(Implementing Security Defense) = 661
15.7 방화벽을 이용한 시스템과 네트워크 보호(Firewalling to Protect System and Network) = 668
15.8 컴퓨터 보안 분류(Computer-Security Classification) = 670
15.9 예: Windows XP(An Example: Windows XP) = 672
15.10 요약(Summary) = 674
연습문제(Exercises) = 675
인용문헌 노트 = 676
part 6 분산 시스템(Distributed System)
Chapter 16 분산 시스템 구조(Distributed System Structure)
16.1 동기(Motivation) = 681
16.2 분산 운영체제의 유형(Type of Distributed Operating System) = 684
16.3 네트워크 구조(Network Structure) = 688
16.4 네트워크 위상(Network Topology) = 691
15.5 통신구조(Communication Structure) = 693
16.6 통신 프로토콜(Communication Protocol) = 700
16.7 견고성(Robustness) = 703
16.8 설계 시 고려 사항(Design Issue) = 706
16.9 예: 네트워킹(An Example: Networking) = 709
16.10 요약(Summary) = 711
연습문제(Exercises) = 711
인용문헌 노트 = 713
Chapter 17 분산 파일 시스템(Distributed File System)
17.1 배경(Background) = 715
17.2 명명과 투명성(Naming and Transparency) = 717
17.3 원격 파일 접근(Remote File Access) = 721
17.4 상태형 대 무상태형 서비스(Stateful Versus Stateless Service) = 727
17.5 파일 중복(File Replication) = 728
17.6 사례: AFS = 730
17.7 요약(Summary) = 736
연습문제(Exercises) = 737
인용문헌 노트 = 738
Chapter 18 분산 조정(Distributed Coordination)
18.1 사건 순서화(Event Ordering) = 739
18.2 상호 배제(Mutual Exclusion) = 742
18.3 원자성(Atomicity) = 745
18.4 동시성 제어(Concurrency Control) = 749
18.5 교착 상태 처리(Deadlock Handling) = 754
18.6 선출 알고리즘(Election Algorithm) = 761
18.7 의견의 일치(Reaching Agreement) = 764
18.8 요약(Summary) = 766
연습문제(Exercises) = 767
인용문헌 노트 = 769
part 7 전용 시스템(Special-Purpose System)
Chapter 19 실시간 시스템(Real-Time System)
19.1 개관(Overview) = 773
19.2 시스템 특징(System Characteristic) = 774
19.3 실시간 커널의 특성(Feature of Real-Time Kernel) = 776
19.4 실시간 운영체제의 구현(Implementing Real-Time Operating System) = 778
19.5 실시간 CPU 스케줄링(Real-Time CPU Scheduling) = 783
19.6 VxWorks 5.x = 789
19.7 요약(Summary) = 791
연습문제(Exercises) = 792
인용문헌 노트 = 793
Chapter 20 멀티미디어 시스템(Multimedia System)
20.1 멀티미디어란 무엇인가? = 795
20.2 압축 = 799
20.3 멀티미디어 커널의 요구 사항 = 800
20.4 CPU 스케줄링 = 803
20.5 디스크 스케줄링 = 804
20.6 네트워크 관리 = 806
20.7 사례연구:CineBlitz = 810
20.8 요약(Summary) = 813
연습문제(Exercises) = 814
인용문헌 노트 = 815
part 8 사례 연구(Case Study)
Chapter 21 Linux 시스템(The Linux System)
21.1 Linux 역사(Linux History) = 819
21.2 설계 원칙(Design Principle) = 825
21.3 커널 모듈(Kernel Module) = 828
21.4 프로세스 관리(Process Management) = 832
21.5 스케줄링(Scheduling) = 836
21.6 메모리 관리(Memory Management) = 841
21.7 파일 시스템(File System) = 851
21.8 입/출력(Input and Output) = 858
21.9 프로세스간 통신(Interprocess Communication) = 860
21.10 네트워크 구조(Network Structure) = 862
21.11 보안(Security) = 865
21.12 요약(Summary) = 868
연습문제(Exercises) = 869
인용문헌 노트 = 870
Chapter 22 윈도우즈 XP(Windows XP)
22.1 역사(History) = 871
22.2 설계 원칙(Design Principle) = 873
22.3 시스템 구성 요소(System Component) = 876
22.4 환경 서브시스템(Environmental Subsystem) = 904
22.5 파일 시스템(File System) = 909
22.6 네트워킹(Networking) = 918
22.7 프로그래머 인터페이스(Programmer Interface) = 927
22.8 요약(Summary) = 936
연습문제(Exercises) = 937
인용문헌 노트 = 938
Chapter 23 영향력 있는 운영체제들(Influential Operating Systems)
23.1 초기 시스템(Early System) = 939
23.2 Atlas = 946
23.3 XDS-940 = 947
23.4 THE = 948
23.5 RC 4000 = 949
23.6 CTSS = 950
23.7 MULTICS = 950
23.8 IBM OS/360 = 951
23.9 Mach = 953
23.10 기타 시스템(Other System) = 955
연습문제(Exercises) = 955
찾아보기 = 957
Index = 957