목차
Part 1 개관(Overview)
CHAPTER 01. 서론 = 3
1.1. 운영체제가 할 일(What Operating Systems Do) = 4
1.2. 컴퓨터 시스템의 구성 = 7
1.3. 컴퓨터 시스템 구조(Computer-System Architecture) = 14
1.4. 운영체제의 구조 = 20
1.5. 운영체제 동작(Operating System Operations) = 23
1.6. 프로세스 관리 = 27
1.7. 메모리 관리 = 28
CHAPTER 02. 시스템 구조 = 53
2.1. 운영체제 서비스 = 54
2.2. 사용자 운영체제 인터페이스(User Operating-system Interface) = 56
2.3. 시스템 호출(System Calls) = 59
2.4. 시스템 호출의 유형 = 64
2.5. 시스템 프로그램(System Programs) = 73
2.6. 운영체제 설계 및 구현(Operating-System Design and Implementation) = 74
2.7. 운영체제 구조(Operating-System Structures) = 77
2.8. 가상 기계(Virtual Machines) = 83
2.9. 운영체제 디버깅(Operating-System Debugging) = 92
2.10. 운영체제 생성(Operating-System Generation) = 97
2.11. 시스템 부트 = 99
2.12. 요약 = 100
Part 2 프로세스관리(Process Management)
CHAPTER 03. 프로세스 = 111
3.1. 프로세스 개념(Process Concept) = 111
3.2. 프로세스 스케줄링(Process Scheduling) = 117
3.3. 프로세스에 대한 연산(Operation on Processes) = 121
3.4. 프로세스간 통신(Interprocess Communication) = 127
3.5. IPC 시스템의 사례 = 135
3.6. 클라이언트 서버 환경에서 통신(CommunicationClient-ServerSystems) = 141
3.7. 요약 = 155
CHAPTER 04. 다중 스레드 프로그래밍 = 169
4.1. 개요(Overview) = 169
4.2. 다중 스레드 모델(Multithreading Models) = 173
4.3. 스레드 라이브러리(Threads Library) = 176
4.4. 스레드와 관련된 문제들(Threading Issues) = 183
4.5. 운영체제 사례(Operating-System Examples) = 189
4.6. 요약 = 192
CHAPTER 05. CPU 스케줄링 = 203
5.1. 기본 개념(Basic Concepts) = 203
5.2. 스케줄링 기준(Scheduling Criteria) = 207
5.3. 스케줄링 알고리즘(Scheduling Algorithms) = 209
5.4. 스레드 스케줄링(Thread Scheduling) = 221
5.5. 다중 처리기 스케줄링(Multiple-Processor Scheduling) = 224
5.6. 운영체제 사례들 = 229
5.7. 알고리즘의 평가(Algorithm Evaluation) = 236
5.8. 요약 = 242
CHAPTER 06. 프로세스 동기화 = 249
6.1. 배경(Background) = 249
6.2. 임계 구역 문제(The Critical-Section Problem) = 251
6.3. 피터슨의 해결안(Peterson's Solution) = 253
6.4. 동기화 하드웨어(Synchronization Hardware) = 255
6.5. 세마포(Semaphores) = 259
6.6. 고전적인 동기화 문제들(Classic Problems of Synchronization) = 266
6.7. 모니터(Monitors) = 271
6.8. 동기화 사례(Synchronization Examples) = 280
6.9. 원자적 트랜잭션(Atomic Transactions) = 286
6.10. 요약 = 297
CHAPTER 07. 교착상태 = 315
7.1. 시스템 모델(System Model) = 316
7.2. 교착상태의 특징(Deadlock Characterization) = 317
7.3. 교착상태 처리 방법(Methods for Handling Deadlocks) = 322
7.4. 교착상태 예방(Deadlock Prevention) = 324
7.5. 교착상태 회피(Deadlock Avoidance) = 328
7.6. 교착상태 탐지(Deadlock Detection) = 335
7.7. 교착상태로부터 회복(Recovery from Deadlock) = 339
7.8. 요약 = 341
Part 3 메모리 관리(Memory Management)
CHAPTER 08. 메모리 관리 전략 = 351
8.1. 배경(Background) = 351
8.2. 스와핑(Swapping) = 359
8.3. 연속 메모리 할당(Contiguous Memory Allocation) = 362
8.4. 페이징(Paging) = 366
8.5. 페이지 테이블의 구조(Structure of the Page Table) = 376
8.6. 세그먼테이션(Segmentation) = 381
8.7. 사례: Intel Pentium = 385
8.8. 요약 = 389
CHAPTER 09. 가상 메모리
9.1. 배경(Background) = 399
9.2. 요구 페이징(Demand Paging) = 401
9.3. 쓰기-시-복사(Copy-on-write) = 409
9.4. 페이지 교체(Page Replacement) = 411
9.5. 프레임의 할당(Allocation of Frames) = 425
9.6. 쓰레싱(Thrashing) = 429
9.7. 메모리 사상 파일(Memory-Mapped Files) = 436
9.8. 커널 메모리의 할당 = 441
9.9. 기타 고려 사항(Other Considerations) = 444
9.10. 운영체제의 예(Operating-System Examples) = 451
9.11. 요약 = 454
Part 4 저장 장치 관리(Storage Management)
CHAPTER 10. 파일 시스템 = 467
10.1. 파일 개념(File Concept) = 467
10.2. 접근 방법(Access Methods) = 478
10.3. 디렉터리와 디스크 구조(Directory and Disk Structure) = 481
10.4. 파일 시스템 마운팅(File-System Mounting) = 493
10.5. 파일 공유(File Sharing) = 495
10.6. 보호(Protection) = 502
10.7. 요약 = 507
CHAPTER 11. 파일 시스템 구현 = 511
11.1. 파일 시스템 구조(File-System Structure) = 511
11.2. 파일 시스템 구현(File-System Implementation) = 514
11.3. 디렉터리 구현(Directory Implementation) = 521
11.4. 할당 방법(Allocation Methods) = 522
11.5. 가용 공간의 과리(Free-Space Management) = 532
11.6. 효율과 성능(Efficiency and Performance) = 535
11.7. 복구(Recovery) = 540
11.8. NFS = 544
11.9. 예: WAFL 파일 시스템 = 551
11.10. 요약 = 554
CHAPTER 12. 2차 저장장치 구조 = 559
12.1. 대용량 저장장치의 개관 = 559
12.2. 디스크 구조(Disk Structure) = 562
12.3. 디스크 부착(Disk Attachment) = 563
12.4. 디스크 스케줄링(Disk Scheduling) = 566
12.5. 디스크 관리(Disk Management) = 571
12.6. 스왑 공간 관리(Swap-Space Management) = 575
12.7. RAID 구조(RAID Structure) = 578
12.8. 안정적인 저장장치 구현(Stable-Storage Implementation) = 590
12.9. 3차의 저장장치 구조(Tertiary-Storage Structure) = 591
12.10. 요약 = 603
CHAPTER 13. 입출력 시스템 = 613
13.1. 개관(Overview) = 613
13.2. 입출력 하드웨어(I/O Hardware) = 614
13.3. 응용 입출력 인터페이스(Application I/O Interface) = 625
13.4. 커널 입출력 서브시스템(Kernel I/O Subsystem) = 632
13.5. 입출력 요구를 하드웨어 연산으로 변환(Transforming I/O Requests to Hardware Operations) = 640
13.6. STREAMS = 643
13.7. 성능(Performance) = 645
13.8. 요약 = 648
Part 5 보호와 보안(Protection and Security)
CHAPTER 14. 보호 = 655
14.1. 보호의 목표(Goals of Protection) = 655
14.2. 보호의 원칙(Principles of Protection) = 656
14.3. 보호의 영역(Domain of Protection) = 658
14.4. 접근 행렬(Access Matrix) = 663
14.5. 접근 행렬의 구현(Implementation of Access Matrix) = 667
14.6. 접근 제어(Access Control) = 670
14.7. 접근 권한의 취소(Revocation of Access Rights) = 671
14.8. 자격 기반 시스템(Capability-Based Systems) = 673
14.9. 언어 기반의 보호(Language-Based Protection) = 676
14.10. 요약 = 682
CHAPTer 15. 보안 = 687
15.1. 보안 문제(The Security Problem) = 687
15.2. 프로그램 위협(Program Threats) = 691
15.3. 시스템과 네트워크의 위협(System and Network threats) = 701
15.4. 보안 도구로서의 암호 작성법(Cryptography as a Security Tool) = 707
15.5. 사용자 인증(User Authentication) = 720
15.6. 보안 방어의 구현(Implementing Security Defenses) = 725
15.7. 방화벽을 이용한 시스템과 네트워크 보호(Firewalling to Protect Systems and Networks) = 733
15.8. 컴퓨터 보안 분류(Computer-Security Classifications) = 735
15.9. 예: Windows XP) = 737
15.10. 요약 = 739
Part 6 분산 시스템(Distributed Systems)
CHAPTER 16. 분산 운영체제 = 745
16.1. 동기(Motivation) = 745
16.2. 네트워크 운영체제의 유형(Types of Network-based Operating Systems) = 747
16.3. 네트워크 구조(Network Structure) = 752
16.4. 네트워크 위상(Network Topology) = 756
16.5. 통신구조(Communication Structure) = 757
16.6. 통신 프로토콜(Communication Protocol) = 765
16.7. 견고성(Robustness) = 769
16.8. 설계 시 고려 사항(Design Issues) = 772
16.9. 예: 네트워킹(Networking) = 774
16.10. 요약 = 776
CHAPTER 17. 분산 파일 시스템 = 781
17.1. 배경(Background) = 781
17.2. 지명과 투명성(Naming and Transparency) = 783
17.3. 원격 파일 접근(Remote File Access) = 787
17.4. 상태형 대 무상태형 서비스(Stateful Versus Stateless Service) = 793
17.5. 파일 중복(File Replication) = 794
17.6. 사례: AFS = 796
17.7. 요약 = 802
CHAPTER 18. 분산 동기화 = 805
18.1. 사건 순서화(Event Ordering) = 805
18.2. 상호 배제(Mutual Exclusion) = 808
18.3. 원자성(Atomicity) = 811
18.4. 병행성 제어(Concurrency Control) = 815
18.5. 교착상태 처리(Deadlock Handling) = 820
18.6. 선출 알고리즘(Election Algorithms) = 828
18.7. 의견의 일치(Reaching Agreement) = 831
18.8. 요약 = 833
Part 7 전용시스템(Special-Purpose System
CHAPTER 19. 실시간 시스템 = 839
19.1. 개요(Overview) = 839
19.2. 시스템 특징(System Characteristics) = 840
19.3. 실시간 커널의 특성(Features of Real-Time Kernels) = 842
19.4. 실시간 운영체제의 구현(Implementing Real-Time Operating Systems) = 844
19.5. 실시간 CPU 스케줄링(Real-Time CPU Scheduling) = 848
19.6. VxWorks 5.x = 853
19.7. 요약 = 856
CHAPTER 20. 멀티미디어 시스템 = 859
20.1. 멀티미어란 무엇인가?(What is Multimedia?) = 859
20.2. 압축 = 863
20.3. 멀티미디어 커널의 요구사항 = 864
20.4. CPU 스케줄링 = 867
20.5. 디스크 스케줄링 = 868
20.6. 네트워크 관리 = 870
20.7. 사례연구: CineBlitz = 874
20.8. 요약 = 877
Part 8 사례연구(Case Studies)
CHAPTER 21. Linux 시스템 = 883
21.1. Linux 역사(Linux History) = 883
21.2. 설계 원칙(Design Principles) = 889
21.3. 커널 모듈(Kernel Modules) = 892
21.4. 프로세스 관리(Process Management) = 896
21.5. 스케줄링(Scheduling) = 900
21.6. 메모리 관리(Memory Management) = 905
21.7. 파일 시스템(File Systmes) = 915
21.8. 입출력(Input and Output) = 922
21.9. 프로세스 간 통신(Interprocess Communication) = 925
21.10. 네트워크 구조(Network Structure) = 927
21.11. 보안(Security) = 930
21.12. 요약) = 932
CHAPTER 22. 윈도우즈 XP = 937
22.1. 역사(History) = 937
22.2. 설계 원칙(Design Principles) = 939
22.3. 시스템 구성요소(System Components) = 942
22.4. 환경 서브시스템(Environmental Subsystems) = 970
22.5. 파일 시스템(File System) = 975
22.6. 네트워킹(Networking) = 985
22.7. 프로그래머 인터페이스(Programmer Interface) = 994
22.8. 요약 = 1003
CHAPTER 23. 영향력 있는 운영체제 = 1007
23.1. 기능 전이(Feature Migration) = 1007
23.2. 초기 시스템(Early Systems) = 1008
23.3. Atlas = 1016
23.4. XDS-940 = 1017
23.5. THE = 1018
23.6. RC 4000 = 1019
23.7. CTSS = 1020
23.8. MULTICS = 1020
23.9. IBM OS/360 = 1021
23.10. TOPS-20 = 1023
23.11. CP/M과 MS/DOS = 1024
23.12. Macintosh 운영체제와 Windows = 1024
23.13. Mach = 1025
23.14. 기타 시스템들(Other System) = 1027
찾아보기 = 1029