제1장 소프트웨어와 운영체제
1.1 소프트웨어의 종류 = 4
1.1.1 광의의 운영체제 = 4
(1) 이용 분야의 확대와 시스템 소프트웨어 = 5
(2) 독자성을 갖고 있는 미들웨어(middleware) = 6
(3) 광의의 운영체제의 역할 = 7
1.1.2 운영체제 = 8
(1) 운영체제의 기능 = 8
(2) 운영체제를 구성하고 있는 기능과 프로그램 구조 = 11
1.1.3 OS의 목적 = 14
(1) 처리 형태 = 14
(2) 뱃치 처리 방식(Batch Processing System) = 16
(3) 시분할 처리 방식(time sharing processing system) = 17
(4) 실시간 처리 방식(real time processing system) = 17
(5) PC 처리 방식(personal computer processing system) = 18
(6) 분산 처리 방식(Distributed Processing System) = 20
(7) 처리 형태 공동의 OS의 목적 = 22
1.2 OS의 변천 = 24
1.2.1 OS의 발전 역사 = 24
(1) 범용 컴퓨터(메인프레임)계열의 OS = 25
(2) 웍스테이션 계열의 OS = 32
(3) PC 계열의 OS = 34
1.2.2 OS의 기본 기능의 변화 = 35
(1) 처리 형태의 변화 = 36
(2) 태스크 관리 방식의 변화 = 36
(3) 주기억 관리의 방식 = 36
(4) 가상 기억 방식 = 40
(5) 데이터 관리 방식 = 40
(6) 기밀 보호의 방식 = 42
(7) 통신 관리 방식 = 42
(8) 운용성의 향상 = 43
1.2.3 UNIX의 변화 = 43
(1) 기능 = 44
(2) 네트워킹 = 45
(3) 성능 = 46
(4) 하드웨어의 변화 = 46
(5) 품질의 개선 = 47
(6) 사용 형태의 변화 = 48
(7) 애플리케이션 영역의 변화 = 49
(8) 모듈성의 요구 = 50
(9) 융통성 = 50
1.3 OS의 구성과 기능 = 54
1.3.1 다중프로그래밍 = 54
(1) 다중프로그램의 실행 방법 = 54
(2) 처리의 단위 = 57
1.3.2 OS의 기능 구조 = 61
(1) 커널 = 61
(2) 장치 드라이버 = 63
(3) 파일 시스템 = 64
(4) 프로그램 모듈 = 65
(5) 통신 제어/네트워크 관리 = 66
(6) 기능의 요약과 처리의 흐름 = 67
1.4 연습 문제 = 70
제2장 운영체제의 기능
2.1 태스크(프로세스) 제어 = 75
2.1.1 태스크 = 76
(1) 태스크의 개념(MVS의 경우) = 76
(2) 프로세스 = 100
(3) 스레드 = 101
(4) 기타 = 115
2.1.2 태스크의 관리 방법과 수명 주기 = 116
(1) 태스크 번호와 우선 순위 = 116
(2) 태스크의 수명 주기(lifecycle) = 118
2.1.3 태스크의 관리 방식 = 122
2.1.4 스케줄링 = 125
(1) 스케줄링의 계기와 우선 순위 = 126
(2) 도착순(논프리엠션 : nonpreemption)방식 = 128
(3) 이벤트 구동 프리엠션 방식 = 130
(4) 라운드로빈(roundrobin) 스케줄링 방식 = 131
(5) 동적 우선 순위 방식 = 132
2.1.5 동기 배타 제어 = 134
(1) 임계 영역(Cirtical Section) = 134
(2) 배타 제어 = 135
(3) 데드로크 = 141
(4) 동기 제어 = 142
2.1.6 태스크간 통신(IPC) = 143
(1) 공유 라이브러리 = 144
(2) 커널이 데이터 교환 수단 제공 = 146
(3) 파이프 파일 = 147
(4) 윈도우를 이용한 데이터 교환 = 149
(5) 루틴 호출 수단 제공 = 150
2.1.7 UNIX 커널과 태스크의 예 = 151
(1) 개요 = 151
(2) 모드, 어드레스 공간과 컨텍스트 = 154
(3) 태스크의 개념 = 157
(4) 커널 모드에서의 실행 = 164
(5) 동기화 = 168
(6) 태스크 스케줄링 = 174
(7) 시그널 (Signal) = 175
(8) 새로운 태스크와 프로그램 = 176
2.1.8 연습문제 = 185
2.2 커널과 인터랖트 제어 = 187
2.2.1 인터랖트의 요인과 용도 = 187
(1) 외부 인터랖트 = 188
(2) 명령에 의한 인터랖트 = 191
(3) 예외 인터랖트 = 192
(4) 기타 = 193
2.2.2 인터랖트의 메커니즘 = 194
(1) 벡터 테이블(vector table) = 194
(2) 스택(stack) = 196
(3) 인터랖트 처리의 흐름 = 196
(4) 인터랖트 매스크(mask) = 197
2.2.3 인터랖트 처리의 관리 = 201
(1) 커널 설계의 요점 = 201
(2) 시스템 호출(트랩)의 처리 = 202
(3) 외부 인터랖트의 처리 = 203
(4) 예외 처리 = 206
(5) 커널의 전체 처리 구조 = 206
(6) 커널의 루틴간의 인터페이스 = 206
2.3 주기억 관리 = 208
2.3.1 주기억 관리 = 208
2.3.2 어드레스 공간 = 210
(1) 실어드레스(real address) 방식 = 212
(2) 베이스 어드레스(base address) 방식 = 214
(3) 세그먼트(segment) 방식 = 216
(4) 페이징 방식 = 220
(5) 페이징 방식과 세그먼트 방식의 공용 = 222
(6) 동적 어드레스 변환 = 224
2.3.3 주기억의 관리 방식 = 224
(1) 실어드레스 방식의 프로그램 배치 = 224
(2) 오버레이(Overlay) = 225
(3) 고정 구획(partition) 방식 = 226
(4) 스워핑(Swapping) = 227
(5) 가변 구획 방식 = 228
2.3.4 가상 기억 영역 = 232
(1) 기본 알고리즘 = 232
(2) 페이지인의 타이밍 = 233
(3) 페이지 교체 방식 = 233
(4) 스래싱 = 235
(5) 시스템 성능의 향상 = 235
2.4 프로그램 제어와 라이브러리 관리 = 236
2.4.1 프로그램의 작성과 실행 = 237
(1) 목적 모듈(Object Module) = 237
(2) 링커의 기능 = 238
(3) 로드 모듈의 형식 = 242
(4) 로드와 실행 = 243
2.4.2 프로그램의 성격 = 245
(1) 재입 가능성 (reentrant) = 246
(2) 재귀성 (recursive) = 247
(3) 순차 재사용성 = 248
2.4.3 OS의 실행 = 248
(1) 부트 스트래핑 방식 = 249
(2) OS의 초기화 처리 = 250
2.4.4 모듈과 라이브러리 관리 = 250
(1) 원시 모듈(source module) 관리 = 251
(2) 목적 모듈 관리 = 251
(3) 소프트웨어 구성 관리 = 253
2.5 입출력 제어 = 254
2.5.1 입출력 하드웨어의 원리 = 255
(1) 입출력 장치 = 255
(2) 제어 장치(device controller) = 257
(3) DMA (Direct Memory Access) = 260
2.5.2 입출력 소프트웨어의 원리 = 262
(1) 입출력 소프트웨어의 목표 = 262
(2) 인터랖트 처리 루틴 = 264
(3) 장치 드라이버 (Device Drivers) = 265
(4) 입출력 서브시스템 = 267
(5) 사용자 공간의 입출력 소프트웨어 = 269
(6) BIOS(Basic Input Output System) = 270
2.5.3 채널 서브시스템(channel subsystem) = 272
(1) 채널 경로 = 272
(2) 시렉터 채널(Selector Channel) = 273
(3) 멀티플렉서 채널(Multiplexer Channel) = 273
(4) 채널 프로그램(Chammel Program) = 273
(5) 인터랖트 = 273
2.5.4 입출력 관리 = 274
(1) MS-DOS의 기능 = 275
(2) UNIX의 기능 = 275
(3) MVS의 기능 = 292
2.5.5 장치 드라이버(device driver) = 293
(1) 마이크로나 미니컴퓨터의 장치 드라이버 구조 = 294
(2) 마이크로나 미니컴퓨터의 장치 드라이버의 처리 흐름 = 297
(3) MS-DOS의 경우 = 299
(4) UNIX 장치 드라이버의 구조 = 300
(5) 서브채널 시스템을 이용한 장치 드라이버 = 307
2.5.6 입출력의 고속화 = 310
(1) 스트래트지 루틴 (strategy routime) = 310
(2) 캐슁(caching) = 310
(3) RAM 디스크 = 311
2.6 통신 제어/네트워크 관리 = 312
2.6.1 제어 대상 하드웨어 구성 요소 = 312
2.6.2 회선 제어 = 313
(1) 회선 접속 방식 = 313
(2) 회선 제어 방식 = 314
2.6.3 전송 제어 수순의 개요 = 315
2.6.4 전송 제어 수순의 상세 = 316
(1) 전송 제어의 페이즈(phase) = 316
(2) 비동기 = 316
(3) 기본형 데이터 전송 수순(BBC, Binary Synchronous Communication) = 316
(4) HDLC = 319
(5) 동작 모드 = 321
2.6.5 단말 제어 = 321
2.6.6 통신 액세스 방식 = 322
2.6.7 네트워크 관리 = 322
(1) 네트워크 구성 관리 = 322
(2) 네트워크 장애 관리 = 323
(3) 네트워크 성능 관리 = 323
(4) 네트워크 시큐리티 관리 = 323
(5) 네트워크 회계 관리 = 324
(6) 네트워크 디렉토리 관리 = 324
2.6.8 네트워크 아키텍처 = 324
2.7 데이터 관리/파일 관리 = 325
(1) 커널이 입출력 관리 기능 = 325
(2) 파일 관리 = 325
(3) 장치 드라이버 = 326
2.7.1 매체의 특성과 제어 방식 = 326
(1) 파일의 형식 = 326
(2) 파일 액세스와 매체 액세스 = 328
(3) 매체의 분류 = 329
(4) 문자 장치 = 329
(5) 블록 장치 = 331
2.7.2 물리적인 파일 관리 = 335
(1) MS-DOS의 방식(FAT) = 335
(2) UNIX의 방식 = 339
(3) 디스크 관리 방식 = 343
2.7.3 논리적 파일 관리 = 344
(1) 디렉토리 = 344
(2) 파일 지시 방법 = 345
(3) 문자열의 집합을 이용한 파일 액세스 방법 = 346
(4) 레코드의 집합을 이용한 파이리 액세스 방식 = 347
2.7.4 블록킹 = 349
(1) 테이프의 블록킹 = 349
(2) 블록킹 데이터의 전송 방식 = 351
2.7.5 공유 파일 = 353
2.7.6 기밀 보호 = 353
2.8 Job 관리 = 354
2.8.1 Job = 354
(1) Job과 태스크 = 354
(2) Job 스트림과 클래스 = 355
(3) JCL의 입력 방법 = 356
2.8.2 JOB의 처리 형태 = 356
(1) 일반 뱃치 처리 = 356
(2) 원격 뱃치 처리 = 356
(3) TSS 처리 = 357
(4) 실시간 처리(Real-Time Processing) = 357
2.8.3 스풀링(spooling) = 357
2.8.4 스케줄링 = 358
(1) 오래 기다리고 있는 job을 우선 = 359
(2) 시간 제한을 둠 = 359
(3) Job간의 동기 = 359
2.8.5 Job의 실행 제어 = 359
(1) Job의 실행 공간 = 360
(2) JES(Job Entry Subsystem0 = 361
Job Initiator = 363
2.9 TSS 관리 = 365
2.9.1 세션 = 366
2.9.2 TSS의 처리 방식 = 367
2.10 시큐리티 제어 = 370
2.10.1 시큐리티의 개념 = 370
2.10.2 외부 시큐리티 제어와 내부 시큐리티 제어 = 371
2.10.3 내부 시큐리티 제어 = 372
(1) 액세스 제어 = 372
(2) 흐름 제어 = 373
(3) 추론 제어 = 373
(4) 암호화 제어 = 374
2.10.4 액세스 제어 = 374
2.10.5 액세스 제어 기구 = 375
(1) 액세스 제어 리스트 = 375
(2) 케이퍼빌리티(capability) = 376
(3) 액세스 제어의 실제 = 376
2.10.6 흐름 제어 = 378
2.10.7 격리 = 380
2.10.8 사용자 인증(authentication) = 380
(1) 패스워드 등의 기억 정보를 기초로 하는 인증 = 382
(2) 자기 카드나 IC 카드와 같은 사용자의 소유물에 의한 인증 = 382
(3) 성문(聲紋)이나 지문, 눈의 망막 패턴과 같은 사용자 속성에 의한 인증 = 382
2.10.9 시큐리티 감시 = 383
2.10.10 미국 국방부의 TCSEC = 384
2.11 장애 관리 = 386
2.11.1 장애의 발견 = 386
(1) 하드웨어 장애의 검출 = 386
(2) 소프트웨어 장애의 검출 = 386
2.11.2 장애의 회복 = 387
(1) 하드웨어 장애 = 387
(2) 소프트웨어 장애 = 391
2.11.3 리스타트(restart) 기능 = 391
(1) 자동 IPL 재시행 기능 = 391
(2) 고속 리스타트 기능 = 392
(3) 체크 포인트 리스타트 기능 = 392
2.12 운용 관리 = 393
2.12.1 운용 관리의 주요 내용 = 393
(1) 사용자와 자원의 관리 = 393
(2) 사용료 관리와 상한치 관리 = 393
2.12.2 자동화 = 395
2.12.3 윅스테이션의 시스템 관리 = 396
(1) 장치의 관 = 396
(2) 소프트웨어의 관리 = 396
2.13 API/시스템 호출 인터페이스 = 398
2.13.1 API/시스템 호출 인터페이스 = 398
2.13.2 API시스템 호출 인터페이스의 예 = 400
(1) 태스크의 생성 = 400
(2) 프로그램의 실행 = 401
2.13.3 라이브러리에 의한 API의 제공 = 403
2.14 커맨드 인터프리터/쉘 = 404
2.14.1 커맨드 인터프리터(쉘) = 404
(1) 커맨드의 기동 = 404
(2) 입출력 리다이렉트 기능 = 405
(3) 동작 환경의 정의 = 405
(4) 와일드 카드에 의한 파일의 지정 = 405
2.14.2 커맨드와 쉘 스크립트 = 406
2.14.3 커맨드 실행 방법 = 407
2.15 윈도우 시스템/GUI = 409
2.15.1 휴면 인터페이스의 발전 과정 = 409
(1) 콘솔 시대 = 409
(2) 오프라인 매체(천공 카드 종이 테이프) 시대 = 409
(3) 텔레타이프 시대(커맨드 라인 인터페이스) = 409
(4) CRT 단말과 CUI(Character User Interface) 시대(커맨드 라인 인터페이스) = 409
(5) 윈도우 시스템/GUI(Graphical User Interface) = 409
2.15.2 GUI = 410
2.15.3 윈도우 시스템 = 410
2.15.4 윈도우 시스템/GUI의 기능 = 410
2.15.5 윈도우 시스템/GUI의 요소 = 411
(1) 윈도우의 형상 = 412
(2) 아이콘의 형상 = 412
(3) 버튼(button)의 형상 = 413
(4) 메뉴의 표시 방법 = 413
(5) 마우스(포인팅 장치)의 조작 방법 = 413
(6) 다이알로그(dialogue) 박스의 선택 제시 = 414
2.15.6 윈도우 시스템/GUI의 구조 = 414
2.16 연습 문제 = 416
제3장 분산 시스템
3.1 통신 네트워크의 이용 = 424
3.1.1 중앙 처리 시스템 = 425
(1) 정보 처리 시스템 = 425
(2) 중앙 처리 시스템과 트래픽 특성 = 427
(3) 대표적인 전기 통신 서비스 = 431
(4) 중앙 처리 시스템과 통신 네트워크 = 437
3.1.2 분산 처리 시스템 = 441
(1) 분산의 대상이 되는 자원 = 441
(2) 분산 처리 시스템의 처리 형태 = 443
(3) 분산 처리 시스템과 통신 네트워크 = 446
(4) 분산 처리 시스템과 전기 통신 서비스 = 450
3.1.3 LAN = 453
(1) 구내 네트워크와 LAN = 453
(2) LAN의 위치 = 455
(3) LAN의 처리 형태 = 457
(4) LAN의 구축시의 고려점 = 458
(5) LAN들의 접속 = 463
(6) 클라이언트 서버 시스템 = 466
3.2 NOS 아키텍처와 OSI 모델 = 470
3.2.1 XNS(Xerox Network System) = 472
(1) XNS 프로토콜 = 473
(2) XNS 애플리케이션 = 476
3.2.2 NOVELL NetWare = 476
(1) NetWare 클라이언트 = 477
(2) NetWare 서버 = 480
(3) NetWare 제품들 = 481
(4) NetWare 프로토콜들 = 484
3.2.3 BANYAN VINES = 487
(1) 호스트 통신 기능 = 489
(2) 여러 플랫폼의 지원 = 490
3.2.4 UNIX = 490
3.2.5 LANTASTIC = 492
3.2.6 IBM PC LAN = 494
3.2.7 APPLETALK = 497
3.2.8 Windows NT = 499
(1) 멀티태스킹 운영체제(Multitasking Operating System) = 503
(2) 여러 하드웨어 플랫폼의 지원 = 504
(3) 네트워크 지원 = 504
(4) 시큐리티 = 505
(5) 여러 파일 시스템의 지원 = 506
(6) 디스크 관리와 내결함성 = 506
(7) Windows NT 아키텍처 = 507
3.3 분산 파일 시스템 = 515
3.3.1 개요 = 515
3.3.2 분산 파일 시스템의 일반적인 특성 = 515
3.3.3 NFS(Network File System) = 518
(1) 사용자 측면 = 519
(2) 설계 목표 = 520
(3) NFS의 구성 요소들 = 521
(4) 정보 비계승(Statelessness) = 523
3.3.4 프로토콜들 = 524
(1)XDR(eXtended Data Representation) = 524
(2)RPC(Remote Procedure Call) = 527
3.3.5 NFS의 구현 모습 = 529
(1) 제어 흐름 = 529
(2) 파일 핸들(file handles) = 531
(3) 마운트 조작 = 531
(4) 경로명 검색 = 532
3.3.6 UNIX 규칙(문법) = 533
(1) 오픈 파일의 액세스 변환 = 533
(2) 오픈한 파일의 삭제 = 534
(3) Read와 Write = 535
3.3.7 NFS의 성능 = 535
(1) 성능의 병목 지점 = 536
(2) 클라이언트 쪽의 보관 = 536
(3) Write의 지연 = 537
(4) 재전송 캐쉬 = 538
3.3.8 전용 NFS 서버 = 541
(1) Auspex의 FMP(Functional Multiprocessor Architecture) = 541
(2) IBM의 HA-NFS 서버 = 543
3.3.9 NFS 시큐리티 = 545
(1) NFS의 액세스 제어 = 545
(2) UID 재맵핑 = 546
(3) 루트 재맵링(root remapping) = 547
3.3.10 NFS 버전 3 = 547
3.3.11 RFS(Remote File Sharing) = 549
3.3.12 RFS 아키텍처 = 550
(1) 원격 메시지 프로토콜 = 551
(2) 정보 계승 조작 = 552
3.3.13 RFS의 구현 = 553
(1) 원격 마운트(remote mount) = 553
(2) RFS 클라이언트와 서버 = 555
(3) 장애 회복 = 556
(4) 그 밖의 문제들 = 557
3.3.14 클라이언트 쪽의 캐슁(caching) = 558
3.3.15 AFS(Andrew File System) = 561
(1) 확장성 있는 아키텍처 = 561
(2) 스토리지와 이름 공간의 구성 = 563
(3) 세션 규칙(session semantics) = 564
3.3.16 AFS의 구현 모습 = 565
(1) 캐슁과 일관성 = 565
(2) 경로명 검색 = 567
(3) 시큐리티 = 567
3.3.17 AFS의 결점들 = 568
3.3.18 DCE DFS = 569
(1) DFS 아키텍처 = 570
(2) 캐쉬 일관성 = 572
(3) 토큰 관리 프로그램(token manager) = 573
(4) 그 밖의 DFS 서비스들 = 574
(5) 결론 = 575
3.4 고급 파일 시스템들 = 577
3.4.1 개요 = 577
3.4.2 종래 파일 시스템들의 한계 = 578
(1) FFS 디스크 레이아웃 = 579
(2) 디스크 write가 read보다 많음 = 581
(3) 메타데이터의 갱신 = 582
(4) 장애 회복(crash recovery) = 583
3.4.3 파일 시스템 클러스터링(Sun FFS) = 584
3.4.4 저널링 방식(journaling approach) = 585
3.4.5 로그 구조 파일 시스템(Log-Structured File Systems) = 587
3.4.6 4.4BSD LFS(Log-Structured File System) = 588
(1) 로그의 기록 = 590
(2) 데이터 추출 = 591
(3) 장애 회복 = 592
(4) Cleaner 태스크 = 592
(5) 결론 = 594
3.4.7 메타데이터 로깅 = 595
(1) 정상적인 조작 = 596
(2) 로그의 일관성 = 598
(3) 회복 = 599
(4) 결론 = 601
3.4.8 Episode 파일 시스템 = 602
(1) 기본 개념 = 602
(2) 구조 = 604
(3) 로깅 = 605
(4) 그 밖의 기능들 = 606
3.4.9 워치독(Watchdogs) = 607
(1) 디렉토리 워치독 = 609
(2) 메시지 채널(message chammels) = 609
(3) 애플리케이션들 = 610
3.4.10 4.4BSD 포트 파일 시스템(Portal File System) = 611
3.4.11 퇴적 파일 시스템 계층(Stackable File System Layers) = 614
(1) 구조와 인터페이스 = 615
(2) SunSoft의 프로토타입 = 616
3.4.12 SGI XFS 저널링 파일 시스템(Journaling File System) = 618
(1) 뛰어난 신뢰성의 저널링 기법 = 619
(2) 볼륨 관리자 XLV = 619
(3) GRIO(Guarnteed Rate I/O) = 619
(4) 뛰어난 성능 및 확장성 = 619
(5) 데이터의 연속성 = 620
(6) 확장된 Dump 처리 능력 = 621
3.5 방화벽(Firewalls) = 622
3.5.1 방화벽의 개요 = 622
(1) 디폴트의 허가와 디폴트의 거부 = 623
(2) 방화벽의 사용 = 624
(3) 방화벽의 구성 = 624
(4) 2중 포트의 호스트(첫 번째 방화벽) = 626
(5) 패킷 필터링(단 하나의 초크를 가진 단순한 방화벽) = 627
(6) 한 초크와 한 게이트를 이용(호스트 아키텍처 보호) = 629
(7) 두 개의 초크와 한 게이트 사용(서브네트 아키텍처 보호) = 631
(8) 여러 게이트 사용 = 633
(9) 내부 방화벽 = 633
3.5.2 방화벽의 구축 = 635
(1) 구성 계획 = 636
(2) 부품의 조립 = 637
(3) 초크의 준비 = 637
(4) 초크의 프로토콜 선택 = 638
3.5.3 초크로 cisco 라우터를 사용하는 예 = 639
(1) Access-List 커맨드(Access List를 만듦) = 639
(2) Show Access-Lists 커맨드(현 액세스 리스트들을 본다) = 643
(3) Access-Class 커맨드(가상 단말 보호) = 643
(4) IP Access-Group 커맨드(IP 인터페이스 보호) = 644
(5) Accounting Access-Violations 커맨드(IP 회계 정보의 이용) = 646
3.5.4 게이트의 준비 = 646
(1) 이름 서비스(name service) = 647
(2) 전자 우편(electronic mail) = 647
(3) Netnews = 648
(4) FTP = 649
(5) Finger = 651
(6) 원격 사이트에서 네트워크로의 telnet과 rlogin = 652
3.6 연습 문제 = 653
제4장 대표적인 운영체제의 특징과 평가
4.1 메인프레임의 OS = 660
4.1.1 MVS의 특징 = 660
(1) 가상 기억 관리 = 660
(2) 처리의 관리 = 660
(3) 처리 형태와 스케줄링 방식 = 660
(4) 동기·배타 제어 방식 = 661
(5) 프로그램 관리 = 661
(6) 입출력 관리 = 661
(7) 기타 = 661
4.1.2 가상 기억 관리 = 661
(1) 논리 어드레스와 물리 어드레스의 대응 = 661
(2) 논리 공간과 job = 662
4.1.3 처리의 관리 = 664
4.1.4 동기·배타 제어 = 664
(1) 배타 제어 = 664
(2) 동기 = 665
4.1.5 프로그램 관리 = 666
(1) 재입 가능 = 666
(2) 순차 재사용 가능 = 666
(3) 재사용 불가 = 666
4.1.6 입출력 관리 = 666
(1) 액세스 방식 루틴 = 667
(2) EXCP = 667
(3) IOS = 667
(4) 채널 서브시스템 = 667
4.1.7 그 밖의 기능 = 667
(1)자원 관리 기능 = 667
(2)장애 회복 종료 = 668
다중처리(multiprocessing) = 668
4.1.8 MVS/ESA = 669
(1) 하드웨어를 이용하여 액세스할 수 있는 거대한 데이터 공간과 페이징 장치를 제공하고 있다 = 669
(2) DFSMS = 670
(3) loosely coupled multiprocessor 기능 = 670
(4) 확장 프로그램간 통신 기능 = 671
4.1.9 결론 = 671
4.2 웍스테이션 계열의 OS = 672
4.2.1 UNIX의 특징 = 672
(1) TSS용 OS에서 분산 시스템 OS로 = 673
(2) 태스크 제어 = 674
(3) 파일 시스템 = 676
(4) C언어 지원 = 676
4.2.2 UNIX의 구조와 태스크 = 677
4.2.3 태스크 제어 = 679
(1) 태스크의 수명 주기 = 679
(2) 태스크 스케줄링 = 680
(3) 태스크의 동기 제어와 배타 제어 = 704
(4) 태스크의 관리 = 706
4.2.4 가상 기억 아키텍처 = 707
(1) 개요 = 707
(2) 메모리 맵 파일 = 708
(3) VM 설계의 원칙 = 711
(4) 기본적인 개념 = 713
(5) 세그먼트 드라이버 = 722
(6) 스? 계층(swap layer) = 726
(7) VM 조작 = 728
(8) vnode 서브시스템과의 협력 = 738
4.2.5 파일 시스템 = 744
(1) 개요 = 744
(2) 파일에의 사용자 인터페이스 = 745
(3) 논리 디스크 = 757
(4) 특수 파일들 = 758
(5) 파일 시스템의 기본 구조의 변화 = 762
(6) vnode/vfs 아키텍처 = 763
(7) 구현 개요 = 768
(8) 파일 시스템마다 다른 객체들 = 774
(9) 한 파일 시스템의 마운트 = 778
(10) kv일에 대한 조작 = 780
(11) 결론 = 786
4.2.6 파일 시스템의 구현 = 787
(1) 개요 = 787
(2) s5fs = 789
4.2.7 동기화와 다중프로세서 = 822
(1) 개요 = 822
(2) 종래 UNIX 커널에서의 동기화 = 824
(3) 다중프로세서 시스템 = 829
(4) 그 밖의 기능 = 857
4.2.8 스트림 = 860
(1) 배경 = 860
(2) 개요 = 861
(3) 메시지와 큐 = 865
(4) 스트림 입출력 = 873
(5) 구성과 준비 = 880
(6) STREAMS의 ioctl = 886
(7) 메모리 할당 = 889
(8) 멀티플렉싱(multiplexing) = 892
(9) FIFO와 파이프 = 899
(10) 네트워크 인터페이스 = 902
(11) 결론 = 908
4.2.9 네트워크와 UNIX = 909
4.2.10 UNIX의 과제와 동향 = 912
(1) 표준화 = 912
(2) 분산화 = 912
4.3 PC 계열의 OS = 914
4.3.1 OS/2 = 914
(1) OS/2가 탄생한 배경 = 914
(2) OS/2의 기능과 특징 = 915
4.3.2 Windows NT = 917
(1) Windows NT의 탄생 배경 = 917
(2) Windows NT의 특징 = 918
(3) Windows NT의 기능 = 920
4.4 멀티미디어 OS = 929
4.4.1 멀티미디어 OS = 929
4.4.2 멀티미디어 OS의 기능 = 929
4.4.3 대표적인 멀티미디어 OS = 930
(1) Quick Time(Apple Macintosh System 7.0) = 930
(2) MME(MeultiMedia Extensions) = 931
(3) MMPM/2(MultiMedia extensions for Presentation Manager)(OS/2) = 932
4.4.4 저작 시스템(authoring system) = 933
4.4.5 멀티미디어 데이터의 압축·복원 기술의 표준화 동향 = 933
(1) 영상 데이터의 압축·복원 원리 = 933
(2) H261 : 비디오 통신의 데이터 압축, 복원 = 934
(3) MPEG(Moving Picture Expert Group) : 동화상의 데이터 압축·복원 = 935
(4) JPEG(Joint Photographic Expert Group) : 정지 화상의 데이터 압축·복원 = 936
(5) 프랙털 화상 압축 방식(FIT) = 936
4.5 네트워크 OS = 937
4.5.1 기본 OS와 네트워크 OS = 937
4.5.2 NetWare = 937
(1) NetWare 3.12 = 938
(2) NetWare 4.0 = 942
4.5.3 Windows NT = 943
(1) NETBIOS(NETwork Basic I/O System)와 SMB = 943
(2) Windows Sockets = 944
(3) TDI(Transport Driver Interface) = 944
(4) NDIS(Network Driver Interface Specification) = 945
4.5.4 UnixWare = 946
(1) UnixWare의 재생 = 946
(2) UnixWare의 특징 = 946
4.6 실시간 OS = 949
4.6.1 실시간 처리(Realtime Processing) = 949
(1) 처리 모델 = 949
(2) 프리엠션(Preemption) = 949
(3) 이벤트 구동(event driven) = 952
(4) 실시간 처리 방식 = 952
(5) 실시간 시스템으로서의 I/O 시스템 = 953
4.6.2 실시간 처리용 OS의 기능 = 954
(1) 커널 기능 = 955
(2) IPC = 955
(3) 태스크와 프로그램 = 955
(4) OS와 응용 프로그램 = 956
4.6.3 실시간용 OS = 957
(1) 메인프레임(MVS) = 957
(2) 웍스테이션용 = 957
(3) PC용 = 957
(4) 마이크로컴퓨터용 = 958
4.7 연습 문제 = 959
제5장 OS의 평가
5.1 OS를 검토·평가할 때의 주요 사항과 대상 = 964
5.1.1 OS 제공 기능의 검토·평가 = 964
(1) 처리 목적 기능 제공 = 964
(2) 커맨드/쉘 관련 = 964
(3) 파일 관련 = 965
(4) GUI 관련 = 966
(5) 프로그램 라이브러리 관련 = 968
(6) 장애 대책 관련 = 968
(7) 시큐리티 관련 = 968
(8) 시판중인 패키지 소프트웨어 관련 = 969
5.1.2 하드웨어와 OS를 포함하여 검토·평가 = 969
(1) CPU 관련 = 970
(2) 주기억 관련 = 974
(3) 디스크 장치 관련 = 975
5.2 성능 평가 척도 = 977
5.2.1 오버헤드(OS의 실행 시간) = 977
5.2.2 응답 시간(response time) = 977
5.2.3 스루풋(throughput) = 977
5.2.4 턴 어라운드 시간(turnaround time) = 978
5.2.5 시스템 자원 가동률 = 978
(1) CPU 가동률 = 978
(2) 주기억 가동률 = 978
(3) 디스크 가동률 = 978
5.2.6 조작성 = 979
5.2.7 호환성 = 979
(1) API 호환성 = 979
(2) ABI 호환성 = 979
(3) 파일의 호환성 = 979
(4) 데이터의 호환성 = 981
(5) 호환성 테스트들 = 981
5.3 시큐리티 관리 = 982
5.3.1 스탠드 얼론 시스템에서 시큐리티가 필요한 업무 및 운용 환경 = 982
(1) 시큐리티 기능의 적용 환경 = 982
(2) 시큐리티 기능 = 982
5.3.2 스탠드 얼론 시큐리티 시큐리티 시스템 구축 접근법 = 984
(1) 보호 방침의 결정 = 984
(2) 리스크 분석/관리 = 987
(3) 시큐리티 교육과 지속적인 관리 = 988
5.3.3 스탠드 얼론 시스템에서의 시큐리티 기능의 개요 = 988
(1) 사용자의 식별 및 인증 기능 = 988
(2) 시스템 액세스 제어 기능 = 989
(3) 자원 액세스 제어 기능 = 989
(4) 자원 재이용 관리 기능 = 990
(5) 암호화 기능 = 990
(6) 감사 관리 = 990
(7) 라벨 관리 = 991
5.3.4 네트워크 환경상의 시큐리티가 필요한 업무 및 운용 환경 = 991
(1) 네트워크 시스템에서의 새로운 요건 = 992
(2) 네트워크 시스템에 필요한 시큐리티 = 993
(3) 필요한 기능을 모두 갖고 있는 Kerberos = 995
5.3.5 네트워크 환경에서의 시큐리티 = 996
(1) 보호 방침의 결정 = 997
(2) 리스크 분석/관리 = 997
5.3.6 네트워크 시큐리티 기능의 개요 = 997
(1) 사용자 식별과 인증의 일원 관리 = 997
(2) 인증과 기밀성 유지를 위한 암호 열쇠 관리 = 999
(3) 전송 정보의 시큐리티 보존 = 1000
5.3.7 멀티벤더 환경에서의 네트워크 관리 = 1001
5.3.8 멀티벤더 관리의 기본 SNMP = 1001
(1) UNIX 환경을 주도하는 SNMP = 1001
(2) 선택의 폭이 넓은 SNMP Manager = 1002
(3) SNMP의 기본은 "조회"와 "응답" = 1003
5.3.9 SNMP의 관리 정보 집단 MIB = 1004
(1) 관리 정보는 독자적인 확장 기능 = 1004
(2) 케이블을 모니터하기 위한 RMON-MIB = 1006
(3) IEEE가 규정한 Hub용 MIB = 1006
(4) 확장 MIB의 등록 기능을 가진 SNMP Manager = 1008
(5) 단순한 툴에 불과한 SNMP = 1009
5.4 대표적인 벤치 마크 = 1010
5.4.1 벤치 마크란 = 1010
(1) 벤치 마크의 정의 = 1011
(2) 벤치 마크의 요건 = 1011
(3) 벤치 마크의 종류 = 1012
(4) 벤치 마크 선정상의 포인트 = 1013
5.4.2 대표적인 벤치 마크 = 1015
(1) 기본 연산 성능 평가용 벤치 마크 = 1015
(2) 플랫폼 성능 평가용 벤치 마크 = 1019
(3) 특정 처리 능력을 평가하는 벤치 마크 = 1022
(4) 그래픽처리 능력을 평가하는 벤치 마크 = 1025
5.4.3 올바른 벤치 마크 사용법 = 1026
(1) 벤치 마크의 결정 = 1026
(2) 벤치 마킹(측정) = 1030
(3) 구입 머신의 선택 = 1030
5.5 연습 문제 = 1033
제6장 언어 프로세서와 유틸리티 프로그램
6.1 언어 프로세서 = 1040
6.1.1 언어 프로세서의 종류와 특징 = 1042
(1) 언어 프로세서의 종류 = 1042
(2) 컴파일러 = 1044
(3) 인터프리터 = 1047
(4) 언어 프로세서의 실행 환경 = 1049
6.1.2 언어 프로세서의 내부 구조 = 1050
(1) 문자열을 읽어들임 = 1052
(2) 형태소 분석 = 1052
(3) 구문 해석 = 1056
(4) 의미 해석과 중간어 생성 = 1064
(5) 최적화 = 1067
(6) 목적 코드의 생성 = 1068
(7) 패스(pass) = 1069
(8) 제네레이터 = 1070
6.1.3 구문의 표현법 = 1070
6.1.4 목적 코드(Object Code) = 1073
(1) ESD(External Symbol Dictionary) = 1074
(2) 텍스트 = 1074
(3) RLD (Relocation and Linkage Directory) = 1074
6.1.5 매크로의 처리 = 1082
(1)매크로 기능 = 1082
(2)매크로 정의 = 1085
(3)매크로 전개 = 1086
(4)내성 기호(內成記號, Created Symbol) = 1086
6.1.6 프로그램 언어의 종류 = 1087
(1) 절차형 프로그램 언어 = 1088
(2) 함수형 프로그램 언어 = 1089
(3) 논리형 프로그램 언어 = 1090
(4) 객체 지향형 프로그램 언어 = 1091
6.2 링커 = 1094
6.2.1 링커의 기능 = 1094
6.2.2 미해결 어드레스의 처리 = 1094
6.2.3 프로그램 구조의 처리 = 1096
6.3 서비스 프로그램(유틸리티 프로그램) = 1099
6.3.1 텍스트 편집 프로그램(Editor) = 1099
6.3.2 SORT 프로그램 = 1100
(1) 내부 소트 = 1102
(2) 외부 소트 = 1106
(3) 파일용 유틸리티 = 1107
(4) 기타 = 1108
6.4 연습 문제 = 1110
제7장 운영체제의 최신 과제와 기술 동향
7.1 운영체제의 최신 과제 = 1114
7.1.1 소프트웨어 공학 측면에서의 과제 = 1114
7.1.2 다운사이징(downsizing)의 파급 효과 = 1114
7.1.3 제5세대 컴퓨터의 운영체제 = 1115
7.1.4 멀티미디어 대응과 객체 지향 = 1116
7.1.5 소프트웨어의 지적 소유권 = 1117
7.2 운영체제의 기술 동향 = 1119
7.2.1 운영체제의 처리 방식의 기술 동향 = 1119
(1) 유니프로그래밍 방식 = 1119
(2) 다중프로그래밍 방식 = 1119
(3) 다중처리 방식 = 1119
(4) 병렬 처리 방식 = 1120
7.2.2 운영체제의 실현 구성법에서 본 기술 동향 = 1120
(1) 모듈화 = 1120
(2) 계층 구조화 = 1120
(3) 프로세스화 = 1122
(4) 객체 지향 = 1122
7.2.3 OS의 처리 형태에서 본 기술 동향 = 1123
(1) 뱃치(batch) 처리 방식에서 TSS 방식, 실시간 처리 방식으로 발전 = 1123
(2) 집중 처리에서 분산 처리 방식으로 변화 = 1125
(3) 통합 처리 방식과 멀티미디어 처리 방식으로 발전 = 1126
7.2.4 휴먼 인터페이스와 가상 현실 = 1128
7.2.5 시큐리티 = 1128
7.3 운영체제의 표준화 동향 = 1130
7.3.1 OSE 관련 = 1131
(1) API(SC22의 POSIX) = 1131
(2) OSE의 구조와 분류 = 1132
7.3.2 O에(SC21/WG7) 관련 = 1134
7.3.3 멀티미디어 관련 = 1136
(1) 데이터 기록 매체와 관련된 규격 = 1138
(2) 데이터 형식에 관한 규격 = 1138
(3) 데이터 압축·신장과 관련된 규격 = 1138
(4) 데이터 통신에 관한 규격 = 1139
7.4 연습문제 = 1140