목차
제1장 운영체제의 개요 = 11
1. 운영체제의 개요 = 13
1.1. 컴퓨터 시스템의 구조 = 13
1.2. 운영체제의 개념 = 13
1.3. 운영체제의 발전 과정 = 14
1.4. 세대별 특징 요약 = 15
1.5. 운영체제 개념과 특징의 변천 과정 = 16
2. 운영체제의 분류(두 부분) = 16
2.1. 제어 프로그램(Control program) = 16
2.2. 처리 프로그램(Processing Program) = 17
3. 운영체제의 기능 = 17
3.1. 개요 = 17
3.2. 운영체제의 일차적인 기능 = 18
3.3. 운영체제와 다른 프로그램들 간의 관계 = 18
3.4. 운영체제가 수행하는 기능 = 18
3.5. 운영체제가 관리하는 컴퓨터 자원(resource) = 19
3.6. 운영체제의 자원 관리자 관점 = 19
3.7. 운영체제 관리 자원의 상관관계 = 19
3.8. 운영체제의 3대 기능 = 20
4. 운영체제의 필요성 = 21
5. 운영체제의 목적 = 22
6. 운영체제의 구성 = 22
7. 시스템의 구조 = 23
7.1. 단일 구조(Monolithic structure) = 24
7.2. 계층 구조(Layered structure) = 24
7.3. 계층 구조의 관점 = 26
7.4. 시스템의 계층화 = 27
7.5. 5가지 계층에 대한 각각의 기능(OS의 계층화) = 28
7.6. 계층화의 예 = 30
8. 시스템 설계 및 구현 = 31
8.1. 설계 목표 = 31
8.2. 기법과 정책 = 32
8.3. 구현 = 32
9. 초기 운영체제 형태와 관련 기법 = 33
9.1. 상주 모니터 = 33
9.2. 중첩(오버레이 : overlay) = 33
9.3. 교체(스와핑 : swapping) = 34
10. 시스템 생성(System Generation) = 34
11. 운영체제의 종류 = 35
11.1. 일괄 처리 체제(Batch processing system) = 36
11.2. 다중 프로그래밍 체제(Multiprogramming system) = 36
11.3. 시분할 체제(Time sharing system) = 37
11.4. 실시간 체제(Real time system) = 37
11.5. 분산 처리 체제(Distributed processing system) = 38
11.6. 병렬 처리 체제(Parallel processing system) = 39
11.7. 멀티미디어 시스템(Multimedia system) = 39
11.8. 버퍼링과 스풀링에 대한 정리 = 40
12. 컴퓨터 시스템 구조(Computer-System Structures) = 41
12.1. 현대 컴퓨터 시스템(Modern computer system) = 41
12.2. 입ㆍ출력 구조(I/O Structure) = 42
12.3. 기억 장치 종류 = 43
12.4. 기억 장치 계층 구조(storage-device hierarchy) = 43
12.5. H/W 보호(H/W Protection) = 44
13. 운영체제 구조(Operating-System Structures) = 48
13.1. 시스템 구성 = 48
13.2. 운영체제 서비스 = 53
13.3. 컴퓨터 소프트웨어 = 56
제2장 프로세스 관리(Process Management) = 59
1. 프로세스(Process) = 61
1.1. 개요 = 61
1.2. 일반적인 프로세스의 개념(정의) = 61
1.3. 프로세스의 의미 = 62
1.4. 프로세스 모델 = 62
2. 프로세스 상태(Process States) = 66
2.1. 프로세스 상태 = 67
2.2. 프로세스 상태 리스트(process status list) = 68
2.3. 프로세스 상태 전이(Process Status Transition) = 70
2.4. 프로세스에 관한 연산(operation on process) = 78
2.5. 프로세스 계층 = 80
2.6. 활동 상태(active state)와 연기 상태(suspended state) = 81
2.7. 프로세스 구현 = 87
2.8. 프로세스 관점에서 본 운영체제 = 88
3. 병행 프로세스(Concurrent Processes) = 99
3.1. 개념 = 99
3.2. 병행 프로세스들의 고려사항 = 100
3.3. 프로세스 상의 연산 = 100
3.4. 프로세스들 간의 관계 = 107
3.5. 스레드 = 108
3.6. 프로세스 협조(Cooperating) = 115
4. 스케줄링의 기법 = 119
4.1. 스케줄링 목적 = 119
4.2. 스케줄링 개념 = 121
4.3. 스케줄링의 조건 = 122
4.4. 스케줄링 정책에서의 성능의 기준 = 123
4.5. 스케줄링 시 고려해야 할 사항(스케줄링의 기준) = 125
4.6. 일반적으로 스케줄링 정책을 수립하는데 고려되어야 할 요소 = 126
4.7. 스케줄링 큐 = 127
4.8. 인터벌 타이머(Interval timer)와 인터럽트 클럭(interrupting clock) = 130
4.9. 스케줄링 분류 = 131
4.10. 스케줄링 구조 = 136
4.11. 각종 스케줄링 기법 비교 = 140
4.12. 스케줄링 알고리즘 = 143
4.13. 정책과 메카니즘 = 165
4.14. 스케줄링 알고리즘의 분류 = 166
5. 알고리즘 평가 = 177
5.1. 개요 = 177
5.2. 성능 평가의 목적 = 178
5.3. 성능 평가를 하는 기본 요소 = 179
5.4. 성능 평가의 방법 = 180
5.5. 분석적 평가 = 180
5.6. 시뮬레이션(모의 실험 : simulation) = 185
5.7. 구현 = 186
6. 프로세스 동기화(Process Synchronization) = 187
6.1. 개요 = 187
6.2. 동기화, 임계 영역 및 상호 배제 = 198
6.3. 임계영역(Critical Section(CS) 또는 critical region) 문제 = 212
6.4. 상호 배제 문제를 구현하기위한 해결 방법 = 218
6.5. 동기화 하드웨어(Synchronization H/W) : 하드웨어적 상호 배제 해결법 = 230
6.6. 병행 처리 프로세스들의 문제점 = 236
6.7. 동시(병행) 처리를 서술(표현)하는 방법 = 242
6.8. 공유변수를 이용한 동기화 문제 해결 = 248
6.9. 메세지 전달을 이용한 동기화 문제 해결 = 264
6.10. 동기화 프로그래밍 문제(병행수행이 필요한 문제)의 예 = 265
6.11. 동시처리가 가능한 프로그래밍 언어 = 270
6.12. 프로세스 간 통신 = 273
7. 교착 상태(Deadlocks) = 280
7.1. 교착 상태 개념 = 280
7.2. 교착상태의 모델 = 283
7.3. 교착상태의 발견(Deadlock detection) = 287
7.4. 자원 할당 그래프 = 288
7.5. 교착상태 조건 = 299
7.6. 교착 상태의 예(짚어보기) = 300
제3장 기억장치 관리(Storage Management) = 335
1. 주기억장치 관리 = 337
1.1. 비어 있는 기계(Bare Machine) = 337
1.2. 배경 = 338
1.3. 사용자 프로그램의 처리 기준 = 338
1.4. 기억 장치의 구성 = 339
1.5. 캐시(cache)기억 장치 = 340
1.6. 주기억장치 구성 및 관리 정책 = 340
1.7. 상주 모니터(resident monitor) = 347
1.8. 재배치(Relocation)문제 = 349
1.9. 연속 기억 장소 할당과 비연속 기억 장소 할당 = 351
1.10. 할당방법(allocation method) = 352
1.11. 주기억장치 관리 기법 = 353
1.12. 다중 분할 할당(Multiple Partition Allocation) = 378
1.13. 주기억장치의 관리상의 문제점 및 해결책 = 385
2. 가상 기억 장치(Virtual Storage) = 386
2.1. 가상 기억 장치의 정의 = 387
2.2. 하드웨어 및 소프트웨어 요소 = 395
2.3. 다단계(multilevel)의 기억 장치 구성 = 402
2.4. 주소 지정(Addressing) 기구 = 404
2.5. 블록 사상(Block mapping)기법 = 409
2.6. 페이징(paging)기법 = 415
2.7. 세그먼테이션(segmentation) 기법 = 439
2.8. 페이징/세그먼테이션(page/segmentation) 혼합 기법 = 457
2.9. 요구 페이징(Demand-Paging) 기억 장치 할당 = 475
2.10. 페이지 교체 및 할당 알고리즘 = 485
2.11. 구역성(지역성 : locality)과 스래싱(thrashing) = 525
2.12. 기억 장치 할당 기법의 비교 = 530
3. 보조 기억 장치 관리 = 539
3.1. 개요 = 539
3.2. 자기 디스크 구조 = 541
3.3. 자기 테이프 구조 = 550
3.4. 디스크 스케줄링의 특징 = 555
3.5. 디스크 스케줄링의 기법 = 556
3.6. 디스크 스케줄링 방법 및 특징 요약〔표 3-11〕 = 562
제4장 정보 관리(Information Management) = 567
1. 파일 시스템 = 569
1.1. 파일 시스템 개념 = 569
1.2. 파일의 작업 = 575
1.3. 디렉토리(directory) = 575
2. 접근 방법(Access Methods) = 578
2.1. 파일 조작 = 578
2.2. 파일 접근 방식 = 578
2.3. 각 파일의 비교 = 583
2.4. 접근 방식 = 584
3. 디렉토리 구조(Directory Structure) = 585
3.1. 디렉토리의 정의 및 역할 = 585
3.2. 디렉토리의 내용 = 585
3.3. 디렉토리의 구조 = 585
3.4. 파일의 보호 = 589
4. 파일 서버 = 595
4.1. 인터페이스 레벨 = 595
4.2. 병행성 조정 = 595
4.3. 파일 복사 = 596
4.4. 네트워크 파일 시스템 = 596
5. 파일 시스템의 신뢰도와 효율 = 597
5.1. 백업(backup) = 597
5.2. 일관성(consistency) = 598
5.3. 효율성(efficiency) = 598
6. 보호 = 599
6.1. 보호(Protection) = 599
6.2. 자원 보호 정책 = 606
6.3. 자원 보호 기법 = 606
6.4. 운영 체제 보호 = 609
6.5. 암호화 시스템 = 621
제5장 분산 운영체제(Distributed Operating System) = 643
1. 네트워크(network) 시스템과 분산(distributed) 시스템 = 645
1.1. 네트워크 시스템 = 645
1.2. 분산 시스템 = 650
2. 프로세서에게 분배하여 처리하는 방식에 따른 분산 시스템의 구분 = 656
2.1. 강결합(tightly-coupled) 시스템 = 656
2.2. 약결합(loosely-coupled) 시스템 = 657
3. 다중 처리 시스템 = 657
3.1. 다중 처리기의 운영체제가 갖는 기능 = 657
3.2. 다중 처리기 운영체제의 구성 = 658
3.3. 다중 처리 시스템의 목적 = 661
4. 운영체제에 따른 분산 처리 시스템 = 661
4.1. 네트워크 운영체제(NOS : network operating system) = 661
4.2. 분산 운영체제(DOS : distributed operating system) = 665
4.3. 위상(Topology) = 670
5. 소프트웨어 설계 문제 = 674
5.1. 주소 협약 = 674
5.2. 라우팅(routing) 전략 = 675
5.3. 연결(connection) 모델 = 677
5.4. 경쟁(contention) 해소 = 683
6. 전송 프로토콜 표준화 = 688
6.1. OSI 참조모델 = 689
6.2. TCP/IP모델 = 692
6.3. OSI 모델과 TCP/IP 모델과의 차이점 = 697
7. 네트워크 관리 = 700
7.1. 개요 = 700
7.2. 5대 관리기능 = 701
7.3. 네트워크 관리구조 = 705
8. 고장(장애) 허용 시스템(fault-tolerant system) = 709
9. 병렬 처리(Parallel processing) 시스템 = 710
10. 커널과 커널 서버 = 725
11. 분산 파일 시스템 = 726
12. 분산 시스템의 가시성 = 729
13. 프로세스간 통신 = 731
13.1. 개요 = 731
13.2. 기본 구성요소(Building blocks) = 732
13.3. 클라이언트 - 서버 통신(Client - server communication) = 734
13.4. 그룹 통신(Group communication) = 737
13.5. 사례연구 : UNIX에서의 프로세스간 통신 = 739
14. 원격 프로시저 호출(RPC) = 743
14.1. 개요 = 743
14.2. 설계상의 이슈 = 746
14.3. 구현 = 747
14.4. SUN RPC의 사례 = 748
15. 병행 제어(Concurrency Control) = 749
15.1. SUN RPC의 사례 = 749
15.2. 자물쇠(Locks) = 750
15.3. 낙관적인 병행 제어(optimistic concurrency control) = 752
15.4. 타임스탬프 순서화(Timestamp ordering) = 754
15.5. 병행 제어 방법들간의 비교 = 755
16. 공유 데이터와 트랜잭션 = 755
16.1. 개요 = 755
16.2. 고객과 서버 사이의 대화 = 756
16.3. 결함(장애) 허용 및 복구 = 757
16.4. 트랜잭션(Transaction) = 757
16.5. 내포된 트랜잭션 = 761
17. 파일 서비스 모델 = 762
17.1. 개요 = 762
17.2. 파일 서비스의 구성요소 = 764
17.3. 설계 이슈 = 764
17.4. 인터페이스 = 765
17.5. 구현 기술 = 767
17.6. 요약 = 770
17.7. 파일 서비스의 사례 연구 = 771
18. 분산 운영체제의 사례 연구 = 780
18.1. Mach = 780
18.2. Chorus = 783
18.3. Mach와 Chorus에서의 UNIX 에뮬레이션 = 785
18.4. Amoeba = 786
18.5. Mach, Amoeba, Chrous의 비교 = 787
18.6. Clouds = 788
제6장 운영체제의 실제(Case Study) = 793
1. UNIX 시스템 = 795
1.1. 개요 = 795
1.2. UNIX의 특징 = 795
1.3. UNIX의 형성 = 796
1.4. UNIX의 구조 = 797
1.5. UNIX 시스템 프로그램 = 800
1.6. UNIX 파일 시스템 = 801
1.7. UNIX 시스템의 관리 = 807
1.8. 프로세스 관리 = 810
1.9. 기억 장치(memory) 관리 = 817
1.10. 입출력 시스템 = 821
2. DOS(Disk Operating System) = 822
3. 윈도우즈(Windows) = 823
3.1. 개요 = 823
3.2. 윈도우즈 98/2000 = 829
4. Linux = 832
4.1. 개요 = 832
4.2. 리눅스의 장점 = 833
4.3. 리눅스의 변천사 = 834
4.4. 리눅스의 구조 = 837