목차
제1장 운영체제의 개요(Introduction)
1.1 운영체제의 개요 = 17
1.1.1 컴퓨터 시스템의 구조 = 17
1.1.2 운영체제의 개념 = 18
1.1.3 운영체제의 발전 과정 = 18
1.1.4 세대별 특징 요약 = 19
1.1.5 운영체제 개념과 특징의 변천 과정 = 20
1.2 운영체제의 분류 = 20
1.3 운영체제의 기능 = 21
1.4 운영체제의 필요성 = 23
1.5 운영체제의 목적 = 24
1.6 시스템의 구조 = 24
1.6.1 시스템의 계층화 = 24
1.6.2 5가지 계층에 대한 각각의 기능(OS의 계층화) : 5개의 계층 = 26
1.6.3 계층화의 예 = 27
1.7 시스테 설계 및 구현 = 28
1.7.1 설계 목표 = 28
1.7.2 기법과 정책 = 28
1.7.3 구현 = 29
1.8 초기 운영체제 형태와 관련 기법 = 30
1.8.1 상주 모니터 = 30
1.8.2 오버레이(overlay) = 30
1.8.3 스와핑(swapping) = 30
1.9 시스템 생성(System Generation) = 31
1.10 운영체제의 종류 = 33
1.10.1 일괄 처리 체제(batch processing system) = 33
1.10.2 다중 프로그래밍 체제(multiprogramming system) = 33
1.10.3 시분할 체제(time sharing system) = 34
1.10.4 실시간 체제(real time system) = 35
1.10.5 분산 처리 체제(distributed processing system) = 36
1.10.6 병렬 처리 체제(parallel processing system) = 36
1.10.7 멀티미디어 체제(multimedia system) = 37
1.10.8 버퍼링과 스풀링에 대한 정리 = 37
1.11 컴퓨터 시스템 구조(Computer-system Structures) = 39
1.11.1 현대 컴퓨터 시스템(Modern computer system) = 39
1.11.2 입·출력 구조(I/O Structure) = 40
1.11.3 기억 장치 구조(storage structure) = 41
1.11.4 기억 장치 계층 구조(storage-device hierarchy) = 41
1.11.5 H/W 보호(H/W Protection) = 42
1.12 운영체제 구조(Operating-System Structures) = 44
1.12.1 시스템 구성 = 44
1.12.2 운영체제 서비스 = 47
1.12.3 컴퓨터 소프트웨어 = 49
연습문제 = 51
제2장 프로세스(Process) 관리
2.1 프로세스 개념(Process concept) = 103
2.1.1 OS의 한가지 고민 = 103
2.1.2 일반적인 프로세스의 개념(정의) = 103
2.1.3 process : program code 실행 + current activitiesl = 103
2.1.4 순차 프로세스 = 104
2.2 프로세스 상태(Process States) = 104
2.3 병행(동시 처리) 프로세스(Concurrent Processes) = 119
2.3.1 개념 = 119
2.3.2 병행 프로세스들의 고려사항 = 119
2.3.3 프로세스 상의 연산 = 119
2.4 스케줄링의 기법 = 124
2.4.1 스케줄링 목적 = 124
2.4.2 스케줄링 개념 = 125
2.4.3 스케줄링의 조건 : 스케줄링 알고리즘의 효율성을 판단하는 기준 = 125
2.4.4 스케줄링 정책에서의 성능의 기준 = 126
2.4.5 스케줄링시 고려해야 할 사항(스케줄링의 기준) = 127
2.4.6 일반적으로 스케줄링 정책을 수립하는데 고려되어야 할 요소 = 127
2.4.7 스케줄링 큐 = 128
2.4.8 Intrerval timer와 interrupting clock = 129
2.4.9 프로세서(CPU)와 작업(Job) 스케줄링의 차이점 = 131
2.4.10 스케줄링 구조 = 134
2.4.11 프로세서(CPU) 스케줄링 = 136
2.4.12 스케줄링 알고리즘 = 137
2.4.13 각종 스케줄링 기법 비교 = 138
2.5 알고리즘 평가 = 157
2.5.1 분석적 평가 = 160
2.5.2 모의 실험(simulation) = 164
2.5.3 구현 = 165
2.6 프로세스 동기화(Process Synchronization) = 166
2.6.1 개요 = 166
2.6.2 동기화, 임계 영역 및 상호 배제 = 172
2.6.3 임계영역(Critical Section(CS) 또는 critical region) 문제 = 177
2.6.4 동기화 하드웨어(Synchronization H/W) = 184
2.6.5 병행 처리 프로세스들의 문제점 = 186
2.6.6 동시(병행) 처리를 서술(표현)하는 방법 = 191
2.6.7 공유변수를 이용한 동기화 문제 해결 = 194
2.6.8 메세지 전달을 이용한 동기화 문제 해결 = 204
2.6.9 동시처리가 필요한 문제의 예 = 205
2.6.10 동시처리가 가능한 프로그래밍 언어 = 207
2.6.11 프로세스 간 통신 = 209
2.7 교착 상태(DEADLOCKS) = 213
2.7.1 교착 상태 개념 = 213
2.7.2 교착상태(DEADLOCK)의 특성 = 214
2.7.3 교착상태의 발견(Deadlock detection) = 214
2.7.4 자원 할당 그래프 = 215
연습문제 = 237
제3장 기억 장치 관리
3.1 주기억 장치 관리 = 339
3.1.1 비어 있는 기계(Bare Machine) = 339
3.1.2 배경 = 340
3.1.3 사용자 프로그램의 처리 기준 = 340
3.1.4 기억 장치의 특징 = 341
3.1.5 캐시(cache)기억 장치 = 341
3.1.6 주기억 장치 관리 기법 = 342
3.1.7 상주 모니터(resident monitor) = 346
3.1.8 재배치(Relocation)문제 = 347
3.1.9 교체(Swapping)기법 = 349
3.1.10 연속 기억 장소 할당과 비연속 기억 장소 할당 = 352
3.1.11 할당방법(allocation method) = 352
3.1.12 주기억 장치 관리 기법 = 354
3.1.13 다중 분할 할당(Multiple Partition Allocation) = 368
3.1.14 주기억 장치의 관리상의 문제점 및 해결책 = 374
3.2 가상 기억 장치(VIRTUAL STORAGE) = 375
3.2.1 가상 기억 장치의 정의 = 375
3.2.2 다단계(multilevel)의 기억 장치 구성 = 380
3.2.3 주소 지정(Addressing) 기구 = 382
3.2.4 블록 사상(Block mapping)기법 = 388
3.2.5 페이징(paging)기법 = 390
3.2.6 세그먼테이션(segmentation)기법 = 405
3.2.7 페이징/세그먼테이션(page/segmentation) 혼용 기법 = 418
3.2.8 요구 페이징(Demand-Paging) 기억 장치 할당 = 434
3.2.9 구역성(지역성 : Locality)과 워킹 세트(working set) = 458
3.2.10 기억 장치 할당 기법의 비교 = 463
3.3 보조 기억 장치 관리 = 472
3.3.1 자기 디스크 구조 = 474
3.3.2 자기 테이프 구조 = 482
3.3.3 디스크 스케줄링의 특징 = 488
3.3.4 디스크 스케줄링 기법 = 489
3.3.5 디스크 스케줄링 방법 및 특징 요약 = 496
연습문제 = 497
제4장 정보 관리
4.1 파일 개념 = 625
4.2 접근 방법(Access Methods) = 633
4.2.1 파일 조작 = 633
4.2.2 파일 접근 방식 = 633
4.2.3 각 파일의 비교 = 638
4.2.4 접근 방식 = 639
4.3 디렉토리 구조(Directory Structure) = 639
4.3.1 디렉토리의 정의 및 역할 = 639
4.3.2 디렉토리의 내용 = 640
4.3.3 디렉토리의 구조 = 640
4.3.4 파일의 보호 = 644
4.4. 보호 = 646
4.4.1 보호(Protection) = 646
4.4.2 자원 보호 기법 = 650
연습문제 = 651
제5장 분산 운영체제
5.1 네트워크(network) 시스템과 분산(distributed) 시스템 = 691
5.2 프로세서에게 분배하여 처리하는 방식에 따른 분산 시스템의 구분 = 697
5.3 병렬 처리 시스템의 종류 = 698
5.4 운영체제를 네트워크 운영체제와 분산 운영체제로 구분 = 700
5.5 연결(connection) 기법 = 701
5.6 위상(Topology) = 702
5.7 경쟁(contention) = 706
5.8 고장 허용 시스템(fault-tolerant system) = 707
5.9 병렬 처리(Parallel processing) 시스템 = 708
5.10 커널과 커널 서버 = 720
5.11 분산 파일 시스템 = 721
5.12 분산 시스템의 가시성 = 725
5.13 프로세스간 통신 = 727
5.13.1 개관 = 727
5.13.2 기본 구성요소(building blocks) = 727
5.13.3 고객-서버 통신(client-server communication) = 730
5.13.4 그룹 통신(group communication) = 733
5.13.5 사례연구 : UNIX에서의 프로세스간 통신 = 735
5.14 원격 프로시저 호출(RPC) = 739
5.14.1 개관 = 739
5.14.2 설계상의 이슈 = 742
5.14.3 구현 = 743
5.14.4 Sun RPC의 사례 = 744
5.15 병행 제어(Concurrency Control) = 746
5.15.1 개관 = 746
5.15.2 자물쇠(Locks) = 746
5.15.3 낙관적인 병행 제어(optimistic concurrency control) = 748
5.15.4 타임스탬프 순서화(Timestamp ordering) = 750
5.15.5 병행 제어 방법들간의 비교 = 751
5.16 공류 데이터와 트랜잭션 = 752
5.16.1 개관 = 752
5.16.2 고객과 서버 사이의 대화 = 753
5.16.3 결함 허용 및 복구 = 754
5.16.4 트랜잭션 = 754
5.16.5 내포된 트랜잭션 = 758
5.17 파일 서비스 모델 = 758
5.17.1 개관 = 758
5.17.2 파일 서비스의 구성요소 = 760
5.17.3 설계 이슈 = 760
5.17.4 인터페이스 = 761
5.17.5 구현 기술 = 763
5.17.6 요약 = 766
5.17.7 파일 서비스의 사례 연구 = 767
5.18 분산 운영체제의 사례 연구 = 776
5.18.1 Mach = 776
5.18.2 Chorus = 780
5.18.3 Mach와 Chorus에서의 UNIX 에뮬레이션 = 782
5.18.4 Amoeba = 783
5.18.5 Mach, Amoeba, Chorus의 비교 = 785
5.18.6 Clouds = 786
연습문제 = 787
제6장 운영체제의 실제
6.1 UNIX 시스템 = 867
6.1.1 개요 = 867
6.1.2 UNIX의 특징 = 867
6.1.3 UNIX의 형성 = 868
6.1.4 UNIX의 구조 = 869
6.1.5 UNIX 시스템 프로그램 = 872
6.1.6 UNIX 파일 시스템 = 874
6.1.7 UNIX 시스템의 관리 = 879
6.1.8 프로세스 관리 = 884
6.1.9 기억 장치(memory) 관리 = 892
6.1.10 입출력 시스템 = 895
6.2 DOS(Disk Operating System) = 897
6.3 Windows = 898
6.3.1 개요 = 898
6.3.2 윈도우즈 95 = 899
연습문제 = 903
부록 = 931
찾아보기 = 963