목차
제1장 컴퓨터 시스템의 개요
   1.1 기본개념 ... 1
      1.1.1 프로세스 ... 1
      1.1.2 기억 장치 ... 5
      1.1.3 입출력과 인터럽트 ... 9
      1.1.4 UNIX ... 11
   1.2 운영 체제의 분류 ... 15
      1.2.1 범용 운영 체제 ... 15
      1.2.2 특수 목적용 운영 체제 ... 25
   연습문제 ... 28
제2장 운영 체제의 개요
   2.1 운영 체제의 요소 ... 30
   2.2 <B><FONT color ... #0000
   2.3 운영 체제의 기능 ... 32
      2.3.1 초기 설정 기능(또는 부트스트래핑 기능) ... 32
      2.3.2 효율적인 자원 관리 기능 ... 33
      2.3.3 편리한 인터페이스 기능 ... 33
      2.3.4 신뢰성(reliability) 기능 ... 35
      2.3.5 이식성(portability) 기능 ... 35
   2.4 자원 관리자 관점의 운영 체제 ... 36
   2.5 운영 체제의 계층 구조 ... 39
   연습문제 ... 42
제3장 프로세스 개요 ... 43
   3.1 프로세스 개념 ... 43
      3.1.1 프로세스란? ... 43
      3.1.2 프로그램과 프로세스 ... 43
      3.1.3 운영 체제 프로세스와 사용자 프로세스 ... 44
      3.1.4 CPU와 프로세스들 ... 45
      3.1.5 병행(concurrent) 프로세스 ... 45
   3.2 프로세스의 상태 ... 47
      3.2.1 프로세스의 상태 ... 47
      3.2.2 프로세스 관리를 위한 자료 구조(PCB) ... 49
      3.2.3 PCB의 관리 ... 51
   3.3 프로세스의 상태 변환 ... 52
      3.3.1 작업 스케줄러에 의한 상태 변환 ... 53
      3.3.2 프로세스 스케줄러에 의한 상태 변환 ... 53
      3.3.3 대기 상태의 세분화 ... 56
      3.3.4 준비 상태의 세분화 ... 58
   3.4 문맥 교환(context switching) ... 59
   3.5 프로세스의 생성 ... 62
   3.6 프로세스 종료 ... 65
   연습문제 ... 67
제4장 프로세스 스케줄링
   4.1 스케줄링 목적 ... 69
   4.2 스케줄링의 원리 ... 70
      4.2.1 비선점(non-preemption) ... 70
      4.2.2 선점(preemption) 방식 ... 73
   4.3 작업 스케줄링(Job scheduling) ... 77
      4.3.1 개요 ... 77
      4.3.2 작업 스케줄링 ... 79
      4.3.3 FCFS 스케줄링의 예 ... 81
      4.3.4 SJF 스케줄링의 예 ... 82
   4.4 프로세스 스케줄링 ... 83
      4.4.1 중간 단계 스케줄러 ... 84
      4.4.2 프로세스 스레줄링 ... 85
      4.4.3 라운드 로빈 스케줄링의 예 ... 86
   연습문제 ... 91
제5장 교착 상태(deadlock)
   5.1 교착 상태 개념 ... 94
      5.1.1 자원의 요구와 할당에 따른 교착 상태 ... 94
      5.1.2 자원 유형에 따른 교착 상태 ... 96
      5.1.3 자원 할당 그래프 ... 98
      5.1.4 교착상태 해결 방안 ... 102
   5.2 교착 상태 예방(deadlock prevention) ... 103
      5.2.1 교착 상태의 발생 4가지 필요조건 ... 103
      5.2.2 교착 상태 예방책 ... 104
   5.3 교착 상태의 회피 ... 107
      5.3.1 안전 상태와 불안전 상태 ... 107
      5.3.2 은행원 알고리즘(banker's algorithm) ... 110
      5.3.3 교착 상태 회피의 장단점 ... 115
   5.4 교착 상태의 탐지와 회복 ... 115
      5.4.1 교착 상태 탐지(deadlock detection) ... 115
      5.4.2 교착 상태의 회복(deadlock recovery) ... 119
      5.4.3 교착 상태 탐지 및 회복의 장단점 ... 122
   연습문제 ... 123
제6장 기억 장치 관리
   6.1 기억 장치 개요 ... 125
   6.2 기억 장소 배당 방법 ... 126
      6.2.1 산재 배당 방식(scatter allocation) ... 127
      6.2.2 연속 배당 방식(contiguous allocation) ... 127
   6.3 단일 사용자 기억 장소 배당 방식 ... 128
   6.4 다중 사용자 기억 장소 배당 방식 ... 129
   6.5 고정 분할 기억 장소 배당 방식 ... 131
      6.5.1 고정 분할 기억 장소의 운영 방식 ... 133
   6.6 동적 분할 기억 장소 배당 방식 ... 138
      6.6.1 동적 분할의 자료구조 ... 138
      6.6.2 동적 분할의 기억 장소 배당 기법 ... 140
      6.6.3 동적 분할의 기억 장소 회수 ... 142
   6.7 기억 장소 단편화의 해결 방안 ... 142
      6.71 기억 장소의 압축(compaction) ... 142
      6.7.2 가상기억 장치 ... 144
   6.8 연속 배당 방식의 문제점 ... 144
   연습문제 ... 146
제7장 가상 기억 장치(Virtual Memory)
   7.1 가상 기억 장치 개요 ... 147
      7.1.1 가상 개념 ... 147
      7.1.2 가상 기억 장치 개념 ... 148
   7.2 동적 재배치(dynamic relocation) ... 150
   7.3 가상 기억 장치의 필요성 ... 152
      7.3.1 프로세스를 기억 장소에 산재 배당시키기 위해 ... 153
      7.3.2 오버레이(overlay) 문제를 자동 해결하기 위해 ... 154
      7.3.3 요구 페이지 기법에 의한 주기억 장소 이용률을 높이기 위하여 ... 156
      7.3.4 기억 장소 단편화를 제거하기 위하여 ... 156
      7.3.5 페이지를 공유할 수 있기 때문에 ... 157
   7.4 페이징 기법의 동적 주소 변환 ... 159
      7.4.1 가상 주소 형식과 페이지 맵 테이블 ... 159
      7.4.2 동적 주소 변환 과정 ... 161
      7.4.3 고속의 동적 주소 변환 ... 164
   7.5 페이지 프레임 맵 테이블에 의한 주기억 장소의 효율적인 관리 ... 167
      7.5.1 PMT와 PFMT 그리고 FMT 간의 관계 ... 169
      7.5.2 페이지 부재(page fault) 처리 ... 171
   7.6 페이징 기법의 장단점 ... 172
   7.7 세그먼테이션(segmentation) 기법 ... 173
      7.7.1 세그먼테이션 기법의 개요 ... 174
      7.7.2 동적 주소 변환 ... 174
   7.8 페이징/세그먼테이션 혼합 기법 ... 179
   연습문제 ... 181
제8장 가상 기억 장치 관리
   8.1 가상 기억 장치 관리 개요 ... 183
   8.2 프로그램의 참조 국부성 ... 185
   8.3 교체 정책 ... 187
      8.3.1 페이지 교체 알고리즘 ... 188
      8.3.2 전역 대 지역 교체 ... 194
   8.4 할당 정책 ... 195
      8.4.1 스래싱(thrashing) ... 195
      8.4.2 페이지 부재 빈도(Page Fault Frequency) ... 198
      8.4.3 작업 세트(working set) ... 199
   8.5 그 외 고려 사항 ... 201
      8.5.1 프리페이징(Prepaging) ... 201
      8.5.2 페이지 고정(Page Fix) ... 202
      8.5.3 페이지 크기 ... 202
   연습문제 ... 204
제9장 디스크 관리
   9.1 디스크 관리 개요 ... 205
   9.2 디스크의 구조 ... 206
      9.2.1 디스크의 종류 ... 207
      9.2.2 장치 디렉토리 ... 209
   9.3 디스크 제어기와 구동기 ... 209
      9.3.1 디스크 제어기의 기능 ... 211
      9.3.2 디스크 구동기의 기능 ... 211
   9.4 디스크 입출력 ... 212
      9.4.1 디스크 인터리빙(interleaving) ... 213
      9.4.2 디스크 캐시 ... 214
      9.4.3 RAM 디스크 ... 215
   9.5 디스크 공간 관리 ... 217
      9.5.1 디스크의 사용 가능한 공간 관리 ... 217
      9.5.2 디스크 공간의 할당 방식 ... 220
   9.6 디스크 스케줄링 기법 ... 229
      9.6.1 FCFS 스케줄링 ... 230
      9.6.2 최소 탐색 우선(SSTF) 스케줄링 ... 232
      9.6.3 SCAN 스케줄링 ... 233
      9.6.4 C-SCAN(circular-scan) 스케줄링 ... 235
   연습문제 ... 237
제10장 파일 시스템
   10.1 파일 시스템의 개요 ... 239
   10.2 파일의 특성 ... 241
      10.2.1 자료나 프로그램을 파일로 구성하는 이유 ... 241
      10.2.2 파일 형식 ... 241
      10.2.3 파일 속성 ... 242
      10.2.4 디렉토리 파일 ... 244
      10.2.5 특수 파일(special file) ... 246
   10.3 파일의 접근 방법(Access Methods) ... 247
      10.3.1 순차 접근에 적합한 순차 파일 ... 247
      10.3.2 직접 접근에 적합한 직접 파일 ... 248
      10.3.3 색인 접근을 사용하는 색인 순차 파일 ... 250
   10.4 파일 조작 ... 251
      10.4.1 UNIX에서의 파일 처리 과정 ... 251
      10.4.2 UNIX에서의 파일 공유 처리 ... 253
      10.4.3 파일 조작에 관련된 시스템 호출 ... 255
      10.4.4 파일 조작 과정 ... 258
   10.5 UNIX 파일 시스템의 구조 ... 259
      10.5.1 트리 구조(tree structure) ... 259
      10.5.2 파일 시스템의 구조 ... 262
      10.5.3 수퍼 블록 ... 263
   10.6 파일 보호 ... 266
      10.6.1 접근 제어 정렬 (access control matrix) ... 266
      10.6.2 파일 이름 부여(file naming) ... 267
      10.6.3 암호(password) ... 267
      10.6.4 암호화/해독화 ... 268
   10.7 입출력 시스템 ... 268
      10.7.1 입출력 제어기(input/output controller) ... 268
      10.7.2 장치 구동기(device driver) ... 269
      10.7.3 입출력 요청의 처리 과정 ... 270
   연습문제 ... 272
제11장 병행 프로세스
   11.1 병행 프로세스의 기본 개념 ... 274
      11.1.1 병행성(concurrency) ... 274
      11.1.2 병행 처리가 필요한 이유 ... 275
      11.1.3 결정적(determinate) 프로세스 ... 276
      11.1.4 공유 자원의 유형에 따른 병행 처리 방법 ... 277
   11.2 프로세스 간의 동기화 ... 278
      11.2.1 경쟁자 관계에서의 동기화 : 상호 배제 ... 278
      11.2.2 생산자(producer)/소비자(consumer) 관계의 동기화 ... 280
   11.3 임계 영역(critical section) ... 283
      11.3.1 임계 영역이 필요한 이유 ... 284
      11.3.2 임계영역 문제의 고려사항들 ... 284
   11.4 상호 배제 ... 286
   11.5 Test-and-Set 명령에 의한 상호 배제 ... 288
   11.6 세마포어(semaphore) ... 290
   11.7 식사하는 철학자 문제 ... 291
   11.8 메시지 전송(message passing) ... 294
   11.9 모니터(monitor) ... 295
   연습문제 ... 298
기출문제 ... 299
찾아보기 ... 363
닫기