목차
1. 운영체제의 개요
1.1 운영체제의 목적 = 16
1.1.1 사용자와 컴퓨터 자원 사이의 인터페이스 = 16
1.1.2 자원 관리자로서의 운영체제 = 19
1.1.3 운영체제의 발전성 = 20
1.2 운영체제의 발전 과정 = 21
1.2.1 순차처리 시스템 = 21
1.2.2 단순 일괄처리 시스템 = 22
1.2.3 다중 프로그래밍 = 27
1.2.4 시분할 시스템 = 31
1.2.5 분산 처리 시스템 = 32
1.2.6 다중 처리 시스템 = 34
연습문제 = 36
2. 컴퓨터 시스템 구조
2.1 컴퓨터 시스템의 기본 사항 = 38
2.2 프로세서 레지스터 = 40
2.2.1 사용자가 볼 수 있는 레지스터 = 40
2.2.2 제어와 상태 레지스터 = 42
2.3 명령어 실행 = 43
2.3.1 명령문 인출과 실행 = 44
2.3.2 입출력 기능 = 47
2.4 인터럽트 = 47
2.4.1 인터럽트와 인터럽트 사이클 = 49
2.4.2 인터럽트 처리 = 53
2.4.3 다중 인터럽트 = 57
연습문제 = 60
3. 주기억장치 구성 및 관리
3.1 기억장치 구성의 기본개념 = 62
3.2 기억장치 계층 구조 = 62
3.3 기억장치 관리 기법 = 63
3.4 단일 사용자 연속 기억장치의 할당 = 64
3.4.1 오버레이 = 65
3.4.2 단일 사용자 시스템에서의 보호 = 66
3.5 고정 분할 = 67
3.5.1 절대 번역과 적재 = 68
3.5.2 재배치 가능 번역과 적재 = 69
3.5.3 다중 프로그래밍 시스템에서의 보호와 단편화 = 70
3.6 가변 분할 = 71
3.6.1 기억장치의 통합 = 73
3.6.2 기억장치의 집약 = 73
3.6.3 기억장치의 배치 기법 = 74
3.7 교체 = 76
연습문제 = 78
4. 가상 기억장치 구성
4.1 가상 기억장치 구성의 기본 개념 = 80
4.2 계층 기억장치 구성 = 81
4.3 블록 사상 = 83
4.4 페이징의 기본 개념 = 86
4.4.1 직접 사상에 의한 페이징 주소 변환 = 89
4.4.2 연관 사상에 의한 페이징 주소 변환 = 90
4.4.3 연관/직접 사상에 의한 페이징 주소 변환 = 91
4.4.4 페이징 시스템에서의 공유 = 93
4.4.5 페이징 시스템의 예 = 94
4.5 세그먼테이션 = 96
4.5.1 세그먼테이션 시스템에서의 액세스 제어 = 99
4.5.2 직접 사상에 의한 세그먼트 주소 변환 = 101
4.5.3 세그먼테이션 시스템에서의 공유 = 102
4.5.4 세그먼테이션의 예 = 104
4.6 페이징/세그먼테이션 시스템 = 106
4.6.1 페이징/세그먼테이션 시스템에서의 동적 주소 변환 = 106
4.6.2 페이징/세그먼테이션 시스템에서의 공유 = 110
4.6.2 페이징/세그먼테이션 시스템 혼용의 예 = 111
연습문제 = 113
5. 가상 기억장치 관리
5.1 가상 기억장치 관리 전략 = 116
5.1.1 반입 전략 = 116
5.1.2 배치 전략 = 116
5.1.3 교체 전략 = 116
5.2 페이지 교체 전략 = 117
5.2.1 최적화 원칙 = 117
5.2.2 랜덤 페이지 교체 = 117
5.2.3 선입선출(FIFO) 페이지 교체 = 117
5.2.4 LRU 페이지 교체 전략 = 119
5.2.5 LFU 교체 전략 = 119
5.2.6 NUR 교체 전략 = 120
5.2.7 2차 기회 교체 = 122
5.2.8 작업 집합 = 122
5.2.9 페이지 부재빈도 교체 = 125
5.3 지역성 = 126
5.4 요구 페이징 = 129
5.5 예상 반입 = 130
5.6 페이지 회수 = 131
5.7 페이지 크기 = 132
5.8 페이징에서의 프로그래밍 행동 = 134
연습문제 = 126
6. 프로세스
6.1 프로세스 개념 = 138
6.1.1 프로세스 정의 = 138
6.1.2 프로세스 상태 = 139
6.1.3 프로세스 제어 블록 = 143
6.2 프로세스 스케줄링 = 144
6.2.1 스케줄링 큐 = 144
6.2.2 스케줄러 = 147
6.2.3 문맥교환 = 148
6.3 프로세스에 대한 연산 = 149
6.3.1 프로세스 생성 = 149
6.3.2 프로세스 종료 = 151
6.4 프로세스 기술 = 152
6.4.1 운영체제 제어구조 = 152
6.5 스레드 = 155
6.5.1 스레드 구조 = 155
6.5.2 솔라리스의 예 = 159
연습문제 = 162
7. 병행 프로세스
7.1 프로세스 동기화의 배경 = 164
7.1.1 임계 영역 = 167
7.1.2 두 프로세스 해법 = 169
7.1.3 n개의 프로세스간의 해법 = 173
7.2 동기화 하드웨어 = 174
7.2.1 Test_and_Set 명령문 = 175
7.2.2 Swap 명령문 = 176
7.3 세마포어 = 178
7.3.1 세마포어 이용 = 178
7.3.2 세마포어 구현 = 179
7.3.3 교착 상태와 기아 상태 = 182
7.3.4 이진 세마포어 = 183
7.4 세마포어를 이용한 동기화 = 184
7.4.1 유한 버퍼 문제 = 184
7.4.2 세마포어를 이용한 읽기와 쓰기 문제 = 185
7.4.3 세마포어를 이용한 식사하는 철학자 = 187
7.5 모니터 = 190
7.5.1 모니터를 이용한 식사하는 철학자 = 193
연습문제 = 195
8. 교착상태
8.1 교착 상태의 기본 개념 = 198
8.1.1 교착 상태 문제 = 198
8.1.2 단순 자원 교착 상태 = 202
8.2 관련된 문제 : 무한 연기 = 203
8.3 자원 개념 = 203
8.4 교착 상태 발생의 필요 조건 = 205
8.5 교착 상태 연구 분야 = 205
8.6 교착 상태 예방 = 207
8.6.1 상호 배제 = 207
8.6.2 점유와 대기 조건 = 207
8.6.3 비선점 조건 = 208
8.6.4 환형 대기 조건 = 209
8.7 교착 상태 회피와 은행가 알고리즘 = 211
8.7.1 은행가 알고리즘 = 211
8.7.2 안전한 상태의 예 = 212
8.7.3 불안전한 상태의 예 = 213
8.7.4 안전한 상태에서 불안전한 상태의 전이 예 = 214
8.8 교착 상태 탐지 = 215
8.8.1 자원 할당 그래프 = 215
8.8.2 자원 할당 그래프의 소거 = 216
8.9 교착 상태로부터의 회복 = 218
8.9.1 프로세스 중지 = 219
8.9.2 자원 선점 = 220
연습문제 = 222
9. 중앙처리 장치 스케줄링
9.1 스케줄링의 기본 개념 = 224
9.1.1 CPU 입출력 버스트 = 224
9.1.2 CPU 스케줄러 = 225
9.1.3 선점식 스케줄링 = 226
9.1.4 디스패처 = 227
9.2 스케줄링 기준 = 227
9.3 스케줄링 알고리즘 = 229
9.3.1 선입선출(FCFS) 스케줄링 - 비선점 - = 229
9.3.2 최단 작업 우선(SJF) 스케줄링 - 비선점 - = 231
9.3.3 우선 순위 스케줄링 - 비선점 또는 선점 - = 232
9.3.4 라운드 로빈 스케줄링 - 선점 - = 235
9.3.5 HRN 스케줄링 - 비선점 - = 238
9.3.6 다단계 큐 스케줄링 - 선점 - = 235
9.3.7 다단계 피드백 큐 스케줄링 - 선점 - = 240
연습문제 = 243
10. 입출력 시스템과 디스크 관리
10.1 입출력 시스템의 기본 사항 = 246
10.2 입출력 하드웨어 = 246
10.2.1 폴링 = 249
10.2.2 인터럽트 = 251
10.2.3 직접 메모리 액세스 = 254
10.3 응용 입출력 인터페이스 = 256
10.3.1 블록과 문자 주변장치 = 259
10.3.2 네트워크 주변장치 = 260
10.3.3 클럭과 타이머 = 261
10.3.4 블록킹과 비블록킹 입출력 = 262
10.4 커널 입출력 서브 시스템 = 263
10.4.1 입출력 스케줄링 = 263
10.4.2 버퍼링 = 264
10.4.3 캐싱 = 266
10.4.4 스풀링과 주변장치 예약 = 266
10.4.5 에러 처리 = 267
10.4.6 커널 데이터 구조 = 268
10.5 하드웨어 연산에 대한 입출력 요청에 대한 변환 = 270
10.6 디스크 관리 = 273
10.6.1 포매팅 = 274
10.6.2 부트 블록 = 275
10.6.3 불량 블록 = 276
10.7 교체 공간 운영 = 277
10.7.1 교체 공간 용도 = 277
10.7.2 교체 공간 위치 = 277
10.7.3 교체 공간 관리 = 278
10.8 디스크 스케줄링 = 280
10.8.1 선입선출(FCFS) 스케줄링 = 281
10.8.2 SSTF 스케줄링 = 282
10.8.3 SCAN 스케줄링 = 283
10.8.4 C-SCAN 스케줄링 = 284
10.8.5 LOOK 스케줄링 = 285
연습문제 = 286
11. 파일관리
11.1 파일 관리의 기본 사항 = 288
11.1.1 파일 관리 시스템 = 290
11.1.2 파일 시스템 구조 = 291
11.1.3 파일 관리 기능 = 292
11.2 액세스 방식 = 294
11.2.1 순차 액세스 = 294
11.2.2 직접 액세스 = 295
11.2.3 인덱스 액세스 = 295
11.3 디렉토리 구조 = 296
11.3.1 1단계 디렉토리 = 298
11.3.2 2단계 디렉토리 = 299
11.3.3 트리 구조 디렉토리 = 301
11.3.4 비순환 그래프 디렉토리 = 303
11.3.5 일반적인 그래프 디렉토리 = 305
연습문제 = 308
12. 네트워크 구조와 분산 처리
12.1 네트워크 구조와 분산 시스템의 배경 = 310
12.2 분산 시스템 구축 동기 = 311
12.2.1 자원 공유 = 311
12.2.2 연산 속도의 향상 = 312
12.2.3 신뢰성 = 312
12.2.4 통신 = 313
12.3 위상 = 313
12.3.1 완전 연결 네트워크 = 314
12.3.2 부분 연결 네트워크 = 315
12.3.3 계층 구조 네트워크 = 316
12.3.4 스타 구조 네트워크 = 317
12.3.5 링 구조 네트워크 = 317
12.3.6 다중액세스 버스 네트워크 = 318
12.3.7 하이브리드 네트위크 = 319
12.4 네트워크 유형 = 319
12.4.1 근거리 네트워크 = 319
12.4.2 광역 네트워크 = 321
12.5 통신 = 322
12.5.1 이름 지정과 이름 해결 = 323
12.5.2 경로 전략 = 325
12.5.3 패킷 전략 = 327
12.5.4 연결 전략 = 328
12.5.5 경쟁 = 329
12.6 분산 처리 = 331
12.6.1 프로토콜 구조에 대한 필요성 = 332
12.6.2 TCP/IP 프로토콜 구조 = 333
12.6.3 OSI 프로토콜 구조 = 341
연습문제 = 344
13. 보안과 보호
13.1 보안 = 346
13.1.1 보안 위협에 대한 유형 = 346
13.1.2 컴퓨터 시스템 자원의 보안 = 349
13.2 보호 = 353
13.2.1 메모리의 방어 = 353
연습문제 = 358
참고문헌 = 359
찾아보기 = 360