목차
제1장 서론
   1.1 기본 개념 ... 1
   1.2 운영체제의 예제 ... 3
      1.2.1 개인용 컴퓨터 ... 3
      1.2.2 생산과정의 통제 ... 5
      1.2.3 시분할 시스템 ... 7
   1.3 운영체제의 역사 ... 7
      1.3.1 수작업(hands-on) 시스템 ... 9
      1.3.2 일괄처리 시스템 ... 10
      1.3.3 복잡한 일괄처리 시스템 ... 18
      1.3.4 시분할 시스템(Time-sharing system) ... 25
      1.3.5 실시간 시스템 ... 27
      1.3.6 네트워크(Networks), 분산시스템(distribted system), 개인용 컴퓨터(personal computers) ... 27
      1.3.7 개념적 발전과정 ... 28
      1.3.8 다중 프로세서 시스템 ... 31
      1.3.9 컴퓨터의 여러가지 계층 ... 32
   1.4 요약 ... 33
   연습문제 ... 34
제2장 기억장치 관리(Memory Management)
   2.1 상주 모니터 ... 38
   2.2 단일 연속 기억장치 관리 ... 39
      2.2.1 하드웨어와 소프트웨어 ... 40
      2.2.2 장 / 단점 ... 42
   2.3 분할 기억장치 관리 ... 42
      2.3.1 하드웨어 ... 44
      2.3.2 스프트웨어 알고리즘 ... 45
      2.3.3 장 / 단점 ... 54
   2.4 재배치 분할 기억장치 관리 ... 55
      2.4.1 하드웨어 ... 56
      2.4.2 소프트웨어 알고리즘 ... 58
   2.5 페이지 기억장치 관리 ... 61
      2.5.1 하드웨어 ... 63
      2.5.2 소프트웨어 알고리즘 ... 66
      2.5.3 장 / 단점 ... 69
   2.6 요구 페이지 기억장치 관리 ... 70
      2.6.1 하드웨어 ... 74
      2.6.2 소프트웨어 ... 75
      2.6.3 활용도와 Program behavior 고려사항 ... 87
      2.6.4 장점 ... 91
      2.6.5 단점 ... 91
   2.7 세그멘트(Segment) 기억장치 관리 ... 91
      2.7.1 하드웨어 ... 94
      2.7.2 소프트웨어 알고리즘 ... 97
      2.7.3 장점 ... 103
      2.7.4 단점 ... 103
   2.8 혼합 시스템(Segmented and Demand - Paged Memory Management) ... 104
      2.8.1 하드웨어 ... 104
      2.8.2 소프트웨어 ... 106
      2.8.3 장점 ... 107
      2.8.4 단점 ... 107
   2.9 기타 방법 ... 108
      2.9.1 교환(Swapping) ... 108
      2.9.2 오버레이(overlay) ... 108
   2.10 기억장치 관리에서의 미래경향 ... 110
   2.11 요약 ... 110
   연습문제 ... 112
제3장 프로세서 관리(Processor Management)
   3.1 상태 모형 ... 119
      3.1.1 프로세스 관리의 구조 ... 120
   3.2 작업 스케듈링 ... 122
      3.2.1 기능 ... 122
      3.2.2 정책 ... 123
      3.2.3 비다중 프로그래밍하에서의 작업 스케듈링 ... 124
      3.2.4 다중 프로그래밍하의 작업 스케듈링 ... 133
      3.2.5 요약 ... 143
   3.3 프로세스 스케듈링 ... 143
      3.3.1 기능 ... 144
      3.3.2 정책 ... 146
      3.3.3 스케듈링에 대한 프로세스 상태표 ... 147
      3.3.4 스케듈러 ... 148
   3.4 혼합된 작업의 프로세서 스케듈링 ... 151
   3.5 다중 프로세서(multiprocessor) 시스템 ... 152
   3.6 프로세스 동기화 ... 152
      3.6.1 레이스 조건 ... 154
      3.6.2 동기화 방법 ... 155
      3.6.3 교착상태(deadlock) ... 160
   3.7 요약 ... 171
   연습문제 ... 173
제4장 병행 프로세스(Concurrent process)
   4.1 병행 프로세스(concurrent process) 개념 ... 183
      4.1.1 병행조건 ... 184
      4.1.2 상술 ... 185
   4.2 임계구역(critical section) 문제 ... 193
      4.2.1 임계구역 문제에 대한 접근방법 ... 196
      4.2.2 Dekker 알고리즘의 확장 ... 202
      4.2.3 하드웨어 해결책 ... 205
   4.3 세마포아(semaphore) ... 206
      4.3.1 용법 ... 207
      4.3.2 구현 ... 208
   4.4 고전적 프로세스 조정문제 ... 210
      4.4.1 Bounded - buffer 문제 ... 210
      4.4.2 Readers / Writers 문제 ... 211
      4.4.3 식사하는 철학자 문제 ... 214
   연습문제 ... 216
제5장 주변장치 관리
   5.1 주변장치 관리에 대한 기법 ... 219
      5.1.1 전용장치 ... 219
      5.1.2 공유장치 ... 220
      5.1.3 가상장치 ... 220
      5.1.4 일반적인 방법 ... 221
   5.2 주변장치 응용 ... 221
      5.2.1 입력 혹은 주변장치 ... 221
      5.2.2 기억장치 ... 221
   5.3 seck 시간의 최적화 ... 234
      5.3.1 FCFS(First-Come First Service) 스케듈링 ... 234
      5.3.2 SSTF(Shortest seek Time First) 스케듈링 ... 235
      5.3.3 SCAN ... 236
      5.3.4 디스크 스케듈링 알고리즘 선택 ... 238
   5.4 채널과 제어장치 ... 239
      5.4.1 독립적인 주변장치 연산 ... 240
      5.4.2 버퍼링(buffering) ... 240
      5.4.3 다중 경로(multiple paths) ... 241
      5.4.4 블럭 멀티플렉싱(block multiplexing) ... 242
   5.5 입 / 출력 traffic controller, 입 ... 242
      5.5.1 입 / 출력 traffic controller ... 242
      5.5.2 입 / 출력 스케듈러 ... 244
      5.5.3 입 / 출력 장치 처리기 ... 244
   5.6 가상 기억장치 ... 248
      5.6.1 동기 ... 248
      5.6.2 역사적 해결 ... 249
   5.7 요약 ... 253
   연습문제 ... 255
제6장 정보관리
   6.1 개요 ... 259
   6.2 간단한 화일 시스템 ... 261
      6.2.1 화일 디렉토리 데이타 베이스 ... 262
      6.2.2 수행되는 단계 ... 263
   6.3 화일 시스템의 일반적인 모델 ... 264
      6.3.1 화일 디렉토리 유지 ... 265
      6.3.2 심볼릭 화일 시스템(Symbolic File system) ... 265
      6.3.3 기본화일 시스템(Basic File system) ... 265
      6.3.4 ACV ... 268
      6.3.5 LFS ... 268
      6.3.6 PFS ... 269
      6.3.7 ASM ... 270
      6.3.8 Device Strategy Module ... 270
      6.3.9 입 / 출력 스케듈러와 장치 처리기 ... 270
      6.3.10 화일 시스템 모듈사이의 부름과 되돌림 ... 271
   6.4 심볼릭 화일 시스템 ... 271
      6.4.1 디렉토리 화일 ... 272
      6.4.2 계층적 화일구조 ... 273
   6.5 기본 화일 시스템 ... 275
   6.6 접근 제어 검증(Access Control Verication) ... 275
      6.6.1 접근제어 행렬(Access control matrix) ... 275
      6.6.2 패스워드(Passwords) ... 276
      6.6.3 암호명(cryptography) ... 276
   6.7 논리 화일시스템 ... 277
      6.7.1 순차적으로 된 고정장 레코드 ... 277
      6.7.2 순차적인 가변장 레코드 ... 278
      6.7.3 순차적으로 키화된 레코드 ... 280
      6.7.4 다중 키 레코드(inverted 화일구조) ... 282
      6.7.5 Chained 구조화된 레코드 ... 282
      6.7.6 관계 혹은 Triple 구조 레코드 ... 283
   6.8 물리적 화일 시스템(Physical File system : PFS) ... 283
      6.8.1 입 / 출력 처리 최소화 ... 284
      6.8.2 블럭 크기와는 별개로 논리 레코드 크기를 허용 ... 284
      6.8.3 화일영역의 연속이 아닌 할당을 허용 ... 286
   6.9 ASM(Allocation Strategy Module) ... 287
      6.9.1 자동할당 ... 288
      6.9.2 동적할당 ... 289
   연습문제 ... 290
제7장 네트워크 운영체제와 분산시스템
   7.1 네크워크 운영체제(Network O.S) ... 291
      7.1.1 컴퓨터 네트워크의 구성요소 ... 291
      7.1.2 네트워크 범주 ... 293
      7.1.3 패캣 스위치(Packet Switching) ... 295
      7.1.4 네트워크 운영체제 ... 297
      7.1.5 네트워크 운영체제 프리미티브 ... 298
      7.1.6 네트워크 위상(topology) ... 299
      7.1.7 안전성 ... 301
   7.2 분산 시스템 ... 303
      7.2.1 동기 ... 304
      7.2.2 시스템 형태 ... 306
      7.2.3 화일 시스템 ... 307
      7.2.4 사건순서(Event ordering) ... 309
      7.2.5 동기화(Synchronization) ... 312
      7.2.6 교착상태 탐지 ... 315
      7.2.7 견고성(Robustness) ... 319
   7.3 네트워크 운영체제와 분산 운영체제 ... 319
   연습문제 ... 321
제8장 사례연구
   8.1 MULTICS ... 323
      8.1.1 개념 및 발달사 ... 323
      8.1.2 하드웨어 ... 324
      8.1.3 기억장치 관리 ... 326
      8.1.4 프로세스 관리 ... 331
      8.1.5 장치관리 ... 335
      8.1.6 정보관리 ... 336
   8.2 UNIX ... 337
      8.2.1 발달사 ... 337
      8.2.2 UNIX 시스템의 버전 ... 338
      8.2.3 설계목적 ... 340
      8.2.4 프로세스 제어(Process control) ... 341
      8.2.5 입 / 출력 시스템 ... 347
      8.2.6 화일 시스템 ... 348
      8.2.7 Shell ... 350
      8.2.8 이행성(Performance)에 사용성(usability) ... 355
      8.2.9 요약 ... 355
   8.3 VM(Virtual Machine) ... 357
      8.3.1 소개 ... 357
      8.3.2 발달사 ... 362
      8.3.3 CP(Control Program) ... 363
      8.3.4 VM 디렉토리 ... 368
      8.3.5 CMS(Conversational Monitor System) ... 369
      8.3.6 VM / 370 발전 ... 371
      8.3.7 이행성의 고려사항 ... 371
      8.3.8 신뢰성, 이용성과 서비스성 ... 372
      8.3.9 VM : 1980년대의 IBM의 대규모 운영체제 ... 372
참고문헌 ... 375
색인 ... 377
제1장 서론
   1.1 기본 개념 ... 1
   1.2 운영체제의 예제 ... 3
      1.2.1 개인용 컴퓨터 ... 3
      1.2.2 생산과정의 통제 ... 5
      1.2.3 시분할 시스템 ... 7
   1.3 운영체제의 역사 ... 7
      1.3.1 수작업(hands-on) 시스템 ... 9
      1.3.2 일괄처리 시스템 ... 10
      1.3.3 복잡한 일괄처리 시스템 ... 18
      1.3.4 시분할 시스템(Time-sharing system) ... 25
      1.3.5 실시간 시스템 ... 27
      1.3.6 네트워크(Networks), 분산시스템(distribted system), 개인용 컴퓨터(personal computers) ... 27
      1.3.7 개념적 발전과정 ... 28
      1.3.8 다중 프로세서 시스템 ... 31
      1.3.9 컴퓨터의 여러가지 계층 ... 32
   1.4 요약 ... 33
   연습문제 ... 34
제2장 기억장치 관리(Memory Management)
   2.1 상주 모니터 ... 38
   2.2 단일 연속 기억장치 관리 ... 39
      2.2.1 하드웨어와 소프트웨어 ... 40
      2.2.2 장 / 단점 ... 42
   2.3 분할 기억장치 관리 ... 42
      2.3.1 하드웨어 ... 44
      2.3.2 스프트웨어 알고리즘 ... 45
      2.3.3 장 / 단점 ... 54
   2.4 재배치 분할 기억장치 관리 ... 55
      2.4.1 하드웨어 ... 56
      2.4.2 소프트웨어 알고리즘 ... 58
   2.5 페이지 기억장치 관리 ... 61
      2.5.1 하드웨어 ... 63
      2.5.2 소프트웨어 알고리즘 ... 66
      2.5.3 장 / 단점 ... 69
   2.6 요구 페이지 기억장치 관리 ... 70
      2.6.1 하드웨어 ... 74
      2.6.2 소프트웨어 ... 75
      2.6.3 활용도와 Program behavior 고려사항 ... 87
      2.6.4 장점 ... 91
      2.6.5 단점 ... 91
   2.7 세그멘트(Segment) 기억장치 관리 ... 91
      2.7.1 하드웨어 ... 94
      2.7.2 소프트웨어 알고리즘 ... 97
      2.7.3 장점 ... 103
      2.7.4 단점 ... 103
   2.8 혼합 시스템(Segmented and Demand - Paged Memory Management) ... 104
      2.8.1 하드웨어 ... 104
      2.8.2 소프트웨어 ... 106
      2.8.3 장점 ... 107
      2.8.4 단점 ... 107
   2.9 기타 방법 ... 108
      2.9.1 교환(Swapping) ... 108
      2.9.2 오버레이(overlay) ... 108
   2.10 기억장치 관리에서의 미래경향 ... 110
   2.11 요약 ... 110
   연습문제 ... 112
제3장 프로세서 관리(Processor Management)
   3.1 상태 모형 ... 119
      3.1.1 프로세스 관리의 구조 ... 120
   3.2 작업 스케듈링 ... 122
      3.2.1 기능 ... 122
      3.2.2 정책 ... 123
      3.2.3 비다중 프로그래밍하에서의 작업 스케듈링 ... 124
      3.2.4 다중 프로그래밍하의 작업 스케듈링 ... 133
      3.2.5 요약 ... 143
   3.3 프로세스 스케듈링 ... 143
      3.3.1 기능 ... 144
      3.3.2 정책 ... 146
      3.3.3 스케듈링에 대한 프로세스 상태표 ... 147
      3.3.4 스케듈러 ... 148
   3.4 혼합된 작업의 프로세서 스케듈링 ... 151
   3.5 다중 프로세서(multiprocessor) 시스템 ... 152
   3.6 프로세스 동기화 ... 152
      3.6.1 레이스 조건 ... 154
      3.6.2 동기화 방법 ... 155
      3.6.3 교착상태(deadlock) ... 160
   3.7 요약 ... 171
   연습문제 ... 173
제4장 병행 프로세스(Concurrent process)
   4.1 병행 프로세스(concurrent process) 개념 ... 183
      4.1.1 병행조건 ... 184
      4.1.2 상술 ... 185
   4.2 임계구역(critical section) 문제 ... 193
      4.2.1 임계구역 문제에 대한 접근방법 ... 196
      4.2.2 Dekker 알고리즘의 확장 ... 202
      4.2.3 하드웨어 해결책 ... 205
   4.3 세마포아(semaphore) ... 206
      4.3.1 용법 ... 207
      4.3.2 구현 ... 208
   4.4 고전적 프로세스 조정문제 ... 210
      4.4.1 Bounded - buffer 문제 ... 210
      4.4.2 Readers / Writers 문제 ... 211
      4.4.3 식사하는 철학자 문제 ... 214
   연습문제 ... 216
제5장 주변장치 관리
   5.1 주변장치 관리에 대한 기법 ... 219
      5.1.1 전용장치 ... 219
      5.1.2 공유장치 ... 220
      5.1.3 가상장치 ... 220
      5.1.4 일반적인 방법 ... 221
   5.2 주변장치 응용 ... 221
      5.2.1 입력 혹은 주변장치 ... 221
      5.2.2 기억장치 ... 221
   5.3 seck 시간의 최적화 ... 234
      5.3.1 FCFS(First-Come First Service) 스케듈링 ... 234
      5.3.2 SSTF(Shortest seek Time First) 스케듈링 ... 235
      5.3.3 SCAN ... 236
      5.3.4 디스크 스케듈링 알고리즘 선택 ... 238
   5.4 채널과 제어장치 ... 239
      5.4.1 독립적인 주변장치 연산 ... 240
      5.4.2 버퍼링(buffering) ... 240
      5.4.3 다중 경로(multiple paths) ... 241
      5.4.4 블럭 멀티플렉싱(block multiplexing) ... 242
   5.5 입 / 출력 traffic controller, 입 ... 242
      5.5.1 입 / 출력 traffic controller ... 242
      5.5.2 입 / 출력 스케듈러 ... 244
      5.5.3 입 / 출력 장치 처리기 ... 244
   5.6 가상 기억장치 ... 248
      5.6.1 동기 ... 248
      5.6.2 역사적 해결 ... 249
   5.7 요약 ... 253
   연습문제 ... 255
제6장 정보관리
   6.1 개요 ... 259
   6.2 간단한 화일 시스템 ... 261
      6.2.1 화일 디렉토리 데이타 베이스 ... 262
      6.2.2 수행되는 단계 ... 263
   6.3 화일 시스템의 일반적인 모델 ... 264
      6.3.1 화일 디렉토리 유지 ... 265
      6.3.2 심볼릭 화일 시스템(Symbolic File system) ... 265
      6.3.3 기본화일 시스템(Basic File system) ... 265
      6.3.4 ACV ... 268
      6.3.5 LFS ... 268
      6.3.6 PFS ... 269
      6.3.7 ASM ... 270
      6.3.8 Device Strategy Module ... 270
      6.3.9 입 / 출력 스케듈러와 장치 처리기 ... 270
      6.3.10 화일 시스템 모듈사이의 부름과 되돌림 ... 271
   6.4 심볼릭 화일 시스템 ... 271
      6.4.1 디렉토리 화일 ... 272
      6.4.2 계층적 화일구조 ... 273
   6.5 기본 화일 시스템 ... 275
   6.6 접근 제어 검증(Access Control Verication) ... 275
      6.6.1 접근제어 행렬(Access control matrix) ... 275
      6.6.2 패스워드(Passwords) ... 276
      6.6.3 암호명(cryptography) ... 276
   6.7 논리 화일시스템 ... 277
      6.7.1 순차적으로 된 고정장 레코드 ... 277
      6.7.2 순차적인 가변장 레코드 ... 278
      6.7.3 순차적으로 키화된 레코드 ... 280
      6.7.4 다중 키 레코드(inverted 화일구조) ... 282
      6.7.5 Chained 구조화된 레코드 ... 282
      6.7.6 관계 혹은 Triple 구조 레코드 ... 283
   6.8 물리적 화일 시스템(Physical File system : PFS) ... 283
      6.8.1 입 / 출력 처리 최소화 ... 284
      6.8.2 블럭 크기와는 별개로 논리 레코드 크기를 허용 ... 284
      6.8.3 화일영역의 연속이 아닌 할당을 허용 ... 286
   6.9 ASM(Allocation Strategy Module) ... 287
      6.9.1 자동할당 ... 288
      6.9.2 동적할당 ... 289
   연습문제 ... 290
제7장 네트워크 운영체제와 분산시스템
   7.1 네크워크 운영체제(Network O.S) ... 291
      7.1.1 컴퓨터 네트워크의 구성요소 ... 291
      7.1.2 네트워크 범주 ... 293
      7.1.3 패캣 스위치(Packet Switching) ... 295
      7.1.4 네트워크 운영체제 ... 297
      7.1.5 네트워크 운영체제 프리미티브 ... 298
      7.1.6 네트워크 위상(topology) ... 299
      7.1.7 안전성 ... 301
   7.2 분산 시스템 ... 303
      7.2.1 동기 ... 304
      7.2.2 시스템 형태 ... 306
      7.2.3 화일 시스템 ... 307
      7.2.4 사건순서(Event ordering) ... 309
      7.2.5 동기화(Synchronization) ... 312
      7.2.6 교착상태 탐지 ... 315
      7.2.7 견고성(Robustness) ... 319
   7.3 네트워크 운영체제와 분산 운영체제 ... 319
   연습문제 ... 321
제8장 사례연구
   8.1 MULTICS ... 323
      8.1.1 개념 및 발달사 ... 323
      8.1.2 하드웨어 ... 324
      8.1.3 기억장치 관리 ... 326
      8.1.4 프로세스 관리 ... 331
      8.1.5 장치관리 ... 335
      8.1.6 정보관리 ... 336
   8.2 UNIX ... 337
      8.2.1 발달사 ... 337
      8.2.2 UNIX 시스템의 버전 ... 338
      8.2.3 설계목적 ... 340
      8.2.4 프로세스 제어(Process control) ... 341
      8.2.5 입 / 출력 시스템 ... 347
      8.2.6 화일 시스템 ... 348
      8.2.7 Shell ... 350
      8.2.8 이행성(Performance)에 사용성(usability) ... 355
      8.2.9 요약 ... 355
   8.3 VM(Virtual Machine) ... 357
      8.3.1 소개 ... 357
      8.3.2 발달사 ... 362
      8.3.3 CP(Control Program) ... 363
      8.3.4 VM 디렉토리 ... 368
      8.3.5 CMS(Conversational Monitor System) ... 369
      8.3.6 VM / 370 발전 ... 371
      8.3.7 이행성의 고려사항 ... 371
      8.3.8 신뢰성, 이용성과 서비스성 ... 372
      8.3.9 VM : 1980년대의 IBM의 대규모 운영체제 ... 372
참고문헌 ... 375
색인 ... 377
닫기