목차
Chapter 1 운영 체제의 개념
1.1 운영 체제의 개요 = 16
1.1.1 운영 체제의 목적 = 16
1.1.2 운영 체제의 두 가지 관점 = 19
1.2 운영 체제의 발달 = 25
1.2.1 운영 체제가 없었던 초기의 시스템 = 25
1.2.2 상주 모니터 개념의 출현 = 26
1.2.3 버퍼링과 스풀링 개념의 도입 = 29
1.2.4 다중 프로그래밍 개념의 도입 = 32
1.2.5 시분할 시스템과 실시간 처리 시스템의 개념 = 47
1.2.6 다중 CPU를 가진 시스템 = 49
1.3 대표적인 운영 체제의 종류 = 50
1.3.1 MVS = 50
1.3.2 VM = 52
1.3.3 MS-DOS와 OS/2 = 54
1.3.4 Windows 2000 = 55
1.3.5 UNIX = 56
1.3.6 Linux = 61
연습 문제 = 63
Chapter 2 프로세스 관리와 CPU 스케줄링
2.1 프로세스의 개념 = 66
2.1.1 프로세스의 정의와 상태 = 66
2.1.2 연기/재동작이 있는 프로세스의 상태 전이 = 73
2.1.3 프로세스의 표현과 제어 = 77
2.2 CPU 스케줄링의 목적과 유형 = 82
2.2.1 스케줄링의 목적 = 82
2.2.2 CPU 스케줄링의 3가지 유형 = 83
2.3 비선점형 스케줄링 알고리즘 = 86
2.3.1 선점과 비선점의 개념 = 86
2.3.2 FCFS 알고리즘 = 87
2.3.3 SJF 알고리즘 : SPN, SJN = 91
2.3.4 HRRN 알고리즘 : HRN = 94
2.3.5 우선 순위 알고리즘 = 96
2.3.6 기한부 알고리즘 = 96
2.4 선점형 스케줄링 알고리즘 = 97
2.4.1 SRT 알고리즘 : 선점 SJF = 97
2.4.2 라운드 로빈(RR) 알고리즘 = 99
2.5 응용 알고리즘 = 102
2.5.1 MLQ 스케줄링 알고리즘 : 다단계 큐 = 102
2.5.2 MFQ 스케줄링 알고리즘 : 다단계 피드백 큐 = 104
2.6 스케줄링 기법의 비교 = 107
2.7 경량 프로세스인 스레드(Thread)의 개념 = 109
연습 문제 = 115
Chapter 3 주기억 장치 관리와 프로그램의 연속 적재
3.1 기억 장치의 계층과 주기억 장치의 역할 = 122
3.1.1 기억 장치의 계층 = 122
3.1.2 주기억 장치의 역할 = 123
3.2 주기억 장치 관리 기법의 개요 125
3.3 단일 사용자를 위한 주기억 장치 관리 = 126
3.3.1 운영 체제가 없는 상태 = 126
3.3.2 상주 모니터 개념 = 127
3.3.3 오버레이와 교체 기법 = 130
3.4 주기억 장치의 다중 분할 관리 기법 개념 = 135
3.5 주기억 장치의 정적 분할 기법(MFT) = 139
3.5.1 주기억 장치 보호의 또 다른 문제 = 139
3.5.2 주기억 공간의 단편화(fragmentation) 문제 = 140
3.5.3 작업 할당을 위한 큐(queue)의 운영 방법 = 142
3.5.4 MFT를 위한 주기억 장치 스케줄링의 예 = 144
3.6 주기억 장치의 동적 분할 기법(MVT) = 148
3.6.1 MVT에 의한 주기억 장치 스케줄링의 예 = 148
3.6.2 MVT에 의한 주기억 장치 보호 = 152
3.6.3 작업 할당을 위한 큐 운영과 기억장치 할당 방법 = 152
3.6.4 기억장치 할당 및 회수 알고리즘 = 156
3.6.5 MVT에서의 외부 단편화와 해결 방안 = 159
3.6.6 MVT의 장점과 단점 = 166
연습 문제 = 168
Chapter 4 프로그램의 분산 적재와 가상 기억 장치 관리
4.1 페이징 = 174
4.1.1 페이징 기법의 개요 = 174
4.1.2 페이징을 위한 페이지 테이블 모형 = 178
4.1.3 페이징을 위한 하드웨어 = 179
4.1.4 페이징을 위한 작업 스케줄링 = 181
4.1.5 페이지 테이블(PMT)의 구현 = 183
4.1.6 페이지의 공유와 보호 개념 = 186
4.2 세그먼테이션 기법 = 189
4.2.1 세그먼테이션의 개념 = 189
4.2.2 세그먼트 테이블(SMT) = 191
4.2.3 세그먼테이션 기법에서의 주소 변환 = 192
4.2.4 세그먼트 테이블의 구현 = 194
4.2.5 세그먼트 테이블의 공유 및 보호 개념 = 195
4.3 페이징/세그먼테이션의 혼합 기법 = 198
4.4 가상 기억 장치 = 202
4.4.1 가상 기억 장치의 도입 = 203
4.4.2 가상 기억 장치를 위한 운영 체제의 정책 = 205
4.5 페이지 대치 알고리즘 = 208
4.5.1 요구 페이징의 성능과 페이지 대치의 개념 = 208
4.5.2 페이지 대치 알고리즘의 평가 요소 = 213
4.5.3 FIFO 알고리즘 = 216
4.5.4 LRU 알고리즘 = 218
4.5.5 OPT 알고리즘 = 221
4.5.6 기타의 페이지 대치 알고리즘 = 222
4.6 페이지 프레임의 할당 방법 = 228
4.6.1 하나의 프로세스가 갖는 최소 프레임의 수 = 229
4.6.2 페이지 프레임의 고정 할당과 가변 할당 = 230
4.6.3 페이지 프레임의 전역 교환과 지역 교환 = 232
4.7 빈번한 페이지 대치의 문제 = 234
4.7.1 스래싱의 개념 = 234
4.7.2 지역성의 개념 = 236
4.7.3 작업 세트 이론 = 237
4.7.4 페이지 부재 빈도(PFF)에 의한 스래싱 조절 = 240
4.7.5 가변적 채취 간격을 갖는 작업 세트(VSWS) = 242
4.8 요구 페이징의 기타 고려 사항 = 244
4.8.1 페이지 크기에 대한 고려 = 244
4.8.2 프로그램 구조에 대한 고려 = 247
4.8.3 기타의 고려 사항 = 248
연습 문제 = 251
Chapter 5 보조 기억 장치 관리와 디스크 스케줄링
5.1 개요 = 258
5.2 순차 접근 저장 장치 : 자기 테이프 = 259
5.2.1 자기 테이프의 특성과 구조 = 259
5.2.2 자기 테이프의 자료 저장 = 263
5.3 직접 접근 저장 장치 = 266
5.3.1 자기 디스크 = 266
5.3.2 광 디스크 기억장치 = 275
5.4 자기 디스크 관리 = 279
5.4.1 자유 공간 관리 = 279
5.4.2 공간 할당 기법 = 281
5.4.3 불량 블럭의 관리 = 286
5.5 디스크 스케줄링 = 286
5.5.1 FIFO 스케줄링 = 289
5.5.2 SSTF 스케줄링 = 290
5.5.3 SCAN과 LOOK 스케줄링 = 292
5.5.4 C-SCAN과 C-LOOK 스케줄링 = 293
5.5.5 N-단계 SCAN 스케줄링 = 295
5.5.6 에션바흐 스캔 기법 = 296
5.5.7 SLTF 스케줄링 : 고정 헤드 디스크의 스케줄링 = 297
5.5.8 실시간 처리를 위한 디스크 스케줄링 = 298
연습 문제 = 302
Chapter 6 교착 상태의 개념
6.1 교착 상태의 개념과 발생 조건 = 306
6.1.1 교착 상태의 개념 = 306
6.1.2 교착 상태의 발생 조건 = 309
6.2 교착 상태의 예방 = 310
6.2.1 상호배제 조건의 제거 = 310
6.2.2 점유와 대기 조건의 제거 = 310
6.2.3 비선점 조건의 제거 = 311
6.2.4 환형 대기 조건의 제거 = 312
6.3 교착 상태의 회피 = 313
6.3.1 안정 상태와 불안정 상태의 개념 = 313
6.3.2 은행가 알고리즘을 위한 자료 구조 = 315
6.3.3 은행가 알고리즘 = 317
6.3.4 회피 알고리즘의 예 = 318
6.4 교착 상태의 탐지(발견) = 321
6.4.1 개념 = 321
6.4.2 자원 종류에 따라 한 개의 자원만 있는 경우 = 322
6.4.3 자원 종류에 따라 여러 개의 자원만 있는 경우 = 325
6.4.4 탐지 알고리즘의 예 = 326
6.5 교착 상태의 회복 = 327
6.5.1 개념 = 327
6.5.2 교착 상태에 놓인 프로세스를 중지시키는 방법 = 327
6.5.3 교착 상태에 놓인 프로세스에게 할당된 자원을 선점시키는 방법 = 328
연습 문제 = 330
Chapter 7 병행 프로세스의 개념
7.1 병행성의 개념 = 334
7.1.1 프로세스의 상호 관계 = 334
7.1.2 선행 그래프와 병행조건 = 338
7.1.3 선행 관계(병행성)의 표현 = 343
7.2 상호 배제의 문제 = 348
7.2.1 상호 배제와 임계 구역 = 349
7.2.2 2개 프로세스를 위한 상호 배제 구현 = 352
7.2.3 N개 프로세스를 위한 상호 배제 구현 = 359
7.2.4 Lamport의 제과점 알고리즘 = 361
7.2.5 하드웨어 명령어를 이용한 상호 배제 = 364
7.2.6 세마포어를 이용한 상호 배제 = 369
7.3 프로세스 간의 메시지 전달 = 374
7.3.1 동기화의 고려사항 = 375
7.3.2 주소화의 고려사항 = 376
7.3.3 기타 고려사항 : 메시지 유형, 큐잉 정책, 고장 = 380
연습 문제 = 383
Chapter 8 화일 관리
8.1 화일의 개념 = 386
8.1.1 화일의 속성 = 387
8.1.2 화일의 조작 = 387
8.1.3 화일의 성능 평가 요소 = 389
8.2 화일 관리 시스템의 개념 = 390
8.3 화일 구조에 대한 이해 = 394
8.3.1 파일 화일 = 397
8.3.2 순차 화일 = 399
8.3.3 색인 순차 화일 400
8.3.4 색인 화일 = 403
8.3.5 직접 화일 = 405
8.4 화일 디렉토리 = 409
8.4.1 1 단계 디렉토리 = 410
8.4.2 2 단계 화일 디렉토리 = 412
8.4.3 트리 구조를 갖는 디렉토리 = 413
8.4.4 비순환 및 순환 그래프 디렉토리 = 415
8.5 화일 보호의 이해 = 418
8.5.1 화일의 백업 = 419
8.5.2 화일 보호와 보안 = 419
연습 문제 = 423
Chapter 9 보호와 보안
9.1 보호 = 426
9.1.1 개념 = 426
9.1.2 보호 영역 = 426
9.2 보호 구조 = 428
9.2.1 접근 행렬의 개념 = 428
9.2.2 접근 행렬의 구현 = 429
9.3 보안 = 434
9.3.1 보안의 목표와 분류 = 434
9.3.2 보안성에 대한 위협 = 435
9.4 암호화(encryption) = 442
9.4.1 암호화 시스템의 개념 및 용어 = 442
9.4.2 암호화 시스템의 분류 = 443
연습 문제 = 450
Chapter 10 운영 체제 학습을 위한 고려 사항
10.1 운영 체제 이해를 위한 하드웨어 요소 = 454
10.1.1 컴퓨터의 기본 요소 = 454
10.1.2 컴퓨터 요소의 상호 연결 구조 = 457
10.1.3 컴퓨터의 입출력 통신 방식 = 459
10.1.4 타이머와 클럭의 기능 이해 = 464
10.2 컴퓨터 시스템 구성의 이해 = 465
10.3 심플렉스, 듀얼, 듀플렉스 시스템 = 467
10.3.1 심플렉스 시스템 = 467
10.3.2 듀얼 시스템과 듀플렉스 시스템 = 467
10.4 병렬 처리 시스템 - 파이프라인, 어레이 - = 469
10.4.1 파이프라인 컴퓨터 = 469
10.4.2 어레이 컴퓨터 = 475
10.5 다중 처리기 시스템 = 476
10.5.1 시분할 또는 공유 버스 구조 = 477
10.5.2 크로스바 교환 행렬 구조 = 478
10.5.3 다중 입출구 기억장치 구조 = 479
10.6 분산 처리 시스템 = 482
10.6.1 분산 처리의 개념과 결합성 = 482
10.6.2 분산 처리 시스템의 분류 = 485
10.6.3 분산 처리 시스템을 위한 계층적 운영 체제 = 493
10.6.4 네트워크 설계시 고려 사항 = 495
10.7 시스템의 신뢰성과 성능 평가 요소 = 500
10.7.1 신뢰성 평가 요소 = 500
10.7.2 시스템의 성능 평가 = 502
연습 문제 = 510
찾아보기 = 513