HOME > 상세정보

상세정보

(한국어판)Unix의 내부 : 새로운 미개척 영역

(한국어판)Unix의 내부 : 새로운 미개척 영역 (80회 대출)

자료유형
단행본
개인저자
Vahalia, Uresh 조유근 , 역
서명 / 저자사항
(한국어판)Unix의 내부 : 새로운 미개척 영역 / Uresh Vahalia 원저 ; 조유근 역.
발행사항
서울 :   홍릉과학출판사 ,   2001.  
형태사항
xxxii, 730 p. : 삽도 ; 26 cm.
원표제
Unix internals : the new frontiers
ISBN
8972832138
서지주기
참고문헌과 색인수록
일반주제명
Operating systems (Computers)
000 00837namccc200277 k 4500
001 000000726289
005 20100807043326
007 ta
008 010921s2001 ulka 001a kor
020 ▼a 8972832138 ▼g 03000: ▼c \28000
035 ▼a KRIC08047338
040 ▼a 241002 ▼c 241002 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.43 ▼2 21
090 ▼a 005.43 ▼b 2001g
100 1 ▼a Vahalia, Uresh
245 2 0 ▼a (한국어판)Unix의 내부 : ▼b 새로운 미개척 영역 / ▼d Uresh Vahalia 원저 ; ▼e 조유근 역.
246 1 9 ▼a Unix internals : the new frontiers
260 ▼a 서울 : ▼b 홍릉과학출판사 , ▼c 2001.
300 ▼a xxxii, 730 p. : ▼b 삽도 ; ▼c 26 cm.
504 ▼a 참고문헌과 색인수록
630 0 0 ▼a UNIX (Computer file)
650 0 ▼a Operating systems (Computers)
700 1 ▼a 조유근 , ▼e
940 ▼a 유닉스의 내부

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.43 2001g 등록번호 111203027 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 중앙도서관/교육보존B/보건 청구기호 005.43 2001g 등록번호 141022559 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 3 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2001g 등록번호 121056731 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 4 소장처 과학도서관/보존서고1(동양서)/ 청구기호 005.43 2001g 등록번호 121056732 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.43 2001g 등록번호 111203027 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 중앙도서관/교육보존B/보건 청구기호 005.43 2001g 등록번호 141022559 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2001g 등록번호 121056731 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/보존서고1(동양서)/ 청구기호 005.43 2001g 등록번호 121056732 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

초보자도 유닉스를 접하고 배울 수 있도록 구성한 교재이다. UNIX의 역사에서부터 프로세스와 커널, 쓰레드와 시스템 인터페이스와 프레임워크, 파일 시스템 구현, 분산 파일 시스템 등의 관련된 모든 내용을 수록했다.



정보제공 : Aladin

저자소개

Uresh Vahalia(지은이)

<UNIX의 내부>

조유근(옮긴이)

서울대학교 건축공학과에서 석사학위를 받았으며, 미국 미네소타 주립대에서 컴퓨터 공학 박사학위를 받았다. 현재 서울대학교 컴퓨터공학과 교수이며, 한국정보과학회 회장이다.

정보제공 : Aladin

목차


목차

1장 서설 = 1

 1.1 서설 = 1

  1.1.1 간략한 역사 = 2

  1.1.2 초창기 = 2

  1.1.3 확산(Proliferation) = 3

  1.1.4 BSD = 4

  1.1.5 System V = 6

  1.1.6 UNIX의 상업화 = 6

  1.1.7 Mach = 7

  1.1.8 표준(Standards) = 7

  1.1.9 OSF와 UI = 9

  1.1.10 SVR 4와 그 이후 = 10

 1.2 필수적인 변화 = 10

  1.2.1 기능 = 11

  1.2.2 네트워킹 = 11

  1.2.3 성능 = 12

  1.2.4 하드웨어의 변화 = 13

  1.2.5 질적 향상 = 13

  1.2.6 패러다임의 전환 = 14

  1.2.7 여타 응용 영역 = 15

  1.2.8 작은 것이 아름답다(Small is Beautiful) = 15

  1.2.9 신축성 = 16

 1.3 과거와 미래 = 17

  1.3.1 UNIX의 장점은 무엇인가? = 17

  1.3.2 UNIX의 단점 = 19

 1.4 이 책의 범위 = 20

 1.5 참고 문헌 = 21

2장 프로세스와 커널 = 23

 2.1 개요 = 23

 2.2 모드, 공간 및 문맥 = 26

 2.3 프로세스 추상 개념(abstraction) = 29

  2.3.1 프로세스 상태 = 29

  2.3.2 프로세스 문맥 = 31

  2.3.3 사용자 신임장(user credentials) = 32

  2.3.4 u 에리어와 proc 구조 = 34

 2.4 커널 모드에서 수행 = 35

  2.4.1 시스템 호출 인터페이스 = 36

  2.4.2 인터럽트 처리 = 37

 2.5 동기화 = 40

  2.5.1 봉쇄 연산 = 41

  2.5.2 인터럽트 = 43

  2.5.3 다중 처리기 = 44

 2.6 프로세스 스케줄링 = 44

 2.7 시그널 = 45

 2.8 새로운 프로세스와 프로그램 = 46

  2.8.1 fork와 exec = 47

  2.8.2 프로세스 생성 = 48

  2.8.3 fork 최적화 = 49

  2.8.4 새로운 프로그램의 호출 = 50

  2.8.5 프로세스 종료 = 52

  2.8.6 프로세스 종료의 대기 = 53

  2.8.7 좀비(zombie) 프로세스 = 54

 2.9 요약 = 54

 2.10 연습 문제 = 54

 2.11 참고 문헌 = 56

3장 쓰레드와 경량 프로세스 = 57

 3.1 개요 = 57

  3.1.1 동기 = 58

  3.1.2 다중 쓰레드들과 처리기들 = 59

  3.1.3 동시성(concurrency)과 병렬성(parallelism) = 61

 3.2 기본 추상 개념 = 62

  3.2.1 커널 쓰레드 = 62

  3.2.2 경량 프로세스 = 63

  3.2.3 사용자 쓰레드 = 65

 3.3 경량 프로세스의 설계 - 고려해야 할 이슈 = 69

  3.3.1 fork의 의미 = 69

  3.3.2 기타 시스템 콜 = 70

  3.3.3 시그널 전달과 처리 = 71

  3.3.4 가시성 = 72

  3.3.5 스택의 성장 = 73

 3.4 사용자 수준 쓰레드 라이브러리 = 73

  3.4.1 프로그래밍 인터페이스 = 73

  3.4.2 쓰레드 라이브러리의 구현 = 74

 3.5 스케줄러 액티베이션 = 76

 3.6 Solaris와 SVR4의 다중 쓰레드 = 77

  3.6.1 커널 쓰레드 = 77

  3.6.2 경량 프로세스의 구현 = 78

  3.6.3 사용자 쓰레드 = 79

  3.6.4 사용자 쓰레드의 구현 = 81

  3.6.5 인터럽트 핸들링 = 81

  3.6.6 시스템 호출의 처리 = 83

 3.7 Mach의 쓰레드 = 84

  3.7.1 Mach의 추상 개념 - 태스크와 쓰레드 = 84

  3.7.2 Mach C-threads = 85

 3.8 Digital UNIX = 86

  3.8.1 UNIX 인터페이스 = 87

  3.8.2 시스템 콜과 시그널 = 89

  3.8.3 pthreads 라이브러리 = 89

 3.9 Mach 3.0의 계속(continuations) = 90

  3.9.1 프로그래밍 모델 = 90

  3.9.2 계속(continuations)의 사용 = 91

  3.9.3 최적화(optimizations) = 93

  3.9.4 분석 = 94

 3.10 요약 = 94

 3.11 연습 문제 = 95

 3.12 참고 문헌 = 96

4장 시그널과 세션 관리 = 99

 4.1 개요 = 99

 4.2 시그널의 생성과 처리 = 100

  4.2.1 시그널의 처리 = 100

  4.2.2 시그널의 생성 = 103

  4.2.3 전형적인 시나리오 = 104

  4.2.4 슬리프(sleep)와 시그널 = 105

 4.3 신뢰할 수 없는 시그널(unreliable signals) = 105

 4.4 신뢰할 수 있는 시그널(reliable signals) = 107

  4.4.1 주요 특성 = 107

  4.4.2 SVR3의 구현 = 108

  4.4.3 BSD 시그널 관리 = 109

 4.5 SVR4의 시그널 = 111

 4.6 시그널의 구현 = 112

  4.6.1 시그널의 발생 = 113

  4.6.2 전달과 처리 = 113

 4.7 예외(exceptions) = 114

 4.8 Mach의 예외 처리 = 115

  4.8.1 예외 포트(exception port) = 116

  4.8.2 오류 처리 = 117

  4.8.3 디버거와의 상호 작용 = 117

  4.8.4 분석(Analysis) = 118

 4.9 프로세스 그룹과 터미널 관리 = 119

  4.9.1 공통 개념 = 119

  4.9.2 SVR3 모델 = 120

  4.9.3 제한점(limitations) = 122

  4.9.4 4.3BSD 그룹과 터미널 = 123

  4.9.5 단점들 = 125

 4.10 SVR4 세션 구조(session architecture) = 125

  4.10.1 동기(motivation) = 126

  4.10.2 세션과 프로세스 그룹 = 126

  4.10.3 자료 구조(data structures) = 128

  4.10.4 제어 터미널(controlling terminals) = 129

  4.10.5 4.4BSD 세션 구현 = 130

 4.11 요약 = 131

 4.12 연습 문제 = 131

 4.13 참고 문헌 = 132

5장 프로세스 스케줄러 = 135

 5.1 개요 = 135

 5.2 클락 인터럽트 처리(clock interrupt handling) = 136

  5.2.1 콜 아웃(callouts) = 137

  5.2.2 얼람(alarms) = 139

 5.3 스케줄러의 목적(scheduler goals) = 140

 5.4 전통적인 UNIX 스케줄링 = 141

  5.4.1 프로세스의 우선 순위 = 142

  5.4.2 스케줄러 구현 = 144

  5.4.3 실행 큐 조작(run queue manipulation) = 145

  5.4.4 분석(Analysis) = 146

 5.5 SVR4 스케줄러 = 146

  5.5.1 클래스 독립 층(class-independent layer) = 147

  5.5.2 스케줄링에 클래스에 대한 인터페이스 = 149

  5.5.3 시분할 클래스 = 151

  5.5.4 실시간 클래스 = 153

  5.5.5 priocntl 시스템 호출 = 154

  5.5.6 분석 = 155

 5.6 Solaris 2.x의 스케줄링 향상 = 157

  5.6.1 선점형 커널 = 157

  5.6.2 다중 처리기 지원 = 157

  5.6.3 숨겨진 스케줄링(hidden scheduling) = 159

  5.6.4 우선 순위 역전(priority inversion) = 160

  5.6.5 우선 순위 상속의 구현 = 162

  5.6.6 우선 순위 상속의 제약점 = 164

  5.6.7 회전 문(turnstiles) = 165

  5.6.8 분석 = 166

 5.7 Mach의 스케줄링 = 166

  5.7.1 다중 처리기 지원 = 167

 5.8 Digital UNIX 실시간 스케줄러 = 169

  5.8.1 다중 처리기 지원 = 171

 5.9 기타 스케줄링 구현 = 171

  5.9.1 공평한 몫(fair-share) 스케줄링 = 172

  5.9.2 마감시간 구동형(deadline-driven) 스케줄링 = 172

  5.9.3 3-수준 스케줄러 = 173

 5.10 요약 = 174

 5.11 연습 문제 = 174

 5.12 참고 문헌 = 176

6장 프로세스간 통신 = 179

 6.1 개요 = 179

 6.2 보편적인 IPC 기능 = 180

  6.2.1 시그널 = 180

  6.2.2 파이프 = 181

  6.2.3 SVR4 파이프 = 183

  6.2.4 프로세스 트레이싱 = 184

 6.3 시스템 V IPC = 186

  6.3.1 공통 요소들 = 186

  6.3.2 세마포 = 188

  6.3.3 메시지 큐 = 192

  6.3.4 공유 메모리 = 194

  6.3.5 토의 = 196

 6.4 Mach IPC = 197

  6.4.1 기본 개념 = 198

 6.5 메시지 = 200

  6.5.1 메시지 자료구조 = 200

  6.5.2 메시지 패싱 인터페이스 = 202

 6.6 포트 = 203

  6.6.1 포트 이름 공간 = 203

  6.6.2 포트 자료구조 = 204

  6.6.3 포트 변환 = 204

 6.7 메시지 패싱 = 206

  6.7.1 포트 권한 전송 = 207

  6.7.2 조화되지 않은(out-of-line) 메모리 = 209

  6.7.3 제어의 흐름 = 211

  6.7.4 통지(notifications) = 211

 6.8 포트 연산(port operations) = 212

  6.8.1 포트의 파괴 = 212

  6.8.2 백업 포트 = 212

  6.8.3 포트 집합 = 213

  6.8.4 포트 개찬(interpolation) = 214

 6.9 확장성 = 216

 6.10 Mach 3.0의 개선 사항 = 217

  6.10.1 일회 보내기 권한 = 218

  6.10.2 Mach 3.0 통지 = 218

  6.10.3 보내기 권한에 대한 사용자 참조 계수 = 219

 6.11 토론 = 219

 6.12 요약 = 220

 6.13 연습 문제 = 220

 6.14 참고 문헌 = 221

7장 동기화와 다중 처리기 = 223

 7.1 개요 = 223

 7.2 전통적인 UNIX 커널 내의 동기화 = 224

  7.2.1 인터럽트 마스킹 = 225

  7.2.2 Sleep와 Wakeup = 225

  7.2.3 전통적 방법의 제한점 = 226

 7.3 다중 처리기 시스템 = 228

  7.3.1 메모리 모델 = 228

  7.3.2 동기화 지원 = 230

  7.3.3 소프트웨어 구조 = 231

 7.4 다중 처리기 동기화 문제 = 232

  7.4.1 Wakeup 유실 문제 = 233

  7.4.2 우레 같은 무리(thundering herd) 문제 = 234

 7.5 세마포(semaphores) = 234

  7.5.1 세마포를 이용한 상호 배제 = 236

  7.5.2 세마포를 이용한 사건-대기 = 236

  7.5.3 셀 수 있는 자원(countable resource)을 제어하는 세마포 = 237

  7.5.4 세마포의 단점 = 237

  7.5.5 호위(convoys) = 238

 7.6 스핀 락(spin locks) = 239

  7.6.1 스핀 락의 사용 = 240

 7.7 조건 변수 = 241

  7.7.1 구현 시 고려 사항 = 243

  7.7.2 사건 = 244

  7.7.3 봉쇄적 락(blocking locks) = 244

 7.8 읽기-쓰기 락(read-write locks) = 245

  7.8.1 설계 시 고려 사항 = 245

  7.8.2 구현 = 246

 7.9 참조 계수(reference counts) = 249

 7.10 그 외의 고려 사항 = 249

  7.10.1 교착 상태 회피 = 250

  7.10.2 재귀적 락(recursive locks) = 251

  7.10.3 봉쇄할 것인가 또는 스핀할 것인가 = 252

  7.10.4 무엇을 락할 것인가 = 253

  7.10.5 입도(granularity)와 지속 시간(duration) = 253

 7.11 사례 연구 = 254

  7.11.1 SVR4.2/MP = 254

  7.11.2 Digital UNIX = 256

  7.11.3 그 밖의 구현들 = 258

 7.12 요약 = 259

 7.13 연습 문제 = 259

 7.14 참고 문헌 = 260

8장 파일 시스템 인터페이스와 프레임워크 = 263

 8.1 개요 = 263

 8.2 파일에 대한 사용자 인터페이스 = 264

  8.2.1 파일과 디렉토리 = 264

  8.2.2 파일 속성 = 266

  8.2.3 파일 디스크립터 = 268

  8.2.4. 파일 I/O = 271

  8.2.5 흩뿌리기-모으기(scatter-gather) I/O = 272

  8.2.6 파일 락킹 = 273

 8.3 파일 시스템 = 274

  8.3.1 논리적 디스크 = 275

 8.4 특수 파일들 = 276

  8.4.1 심블릭 링크 = 276

  8.4.2 파이프와 FIFO = 278

 8.5 파일 시스템 프레임워크 = 279

 8.6 Vnode/Vfs 구조 = 280

  8.6.1 목적 = 280

  8.6.2 디바이스 입출력을 통한 교훈 = 281

  8.6.3 vnode/vfs 인터페이스의 개관 = 284

 8.7 구현의 개관 = 286

  8.7.1 목적 = 286

  8.7.2 Vnode와 열린(open) 파일들 = 287

  8.7.3 Vnode = 289

  8.7.4 vnode 참조 계수 = 289

  8.7.5 vfs 객체 = 291

 8.8 파일 시스템 의존적 객체들 = 292

  8.8.1 파일 별 사유(private) 데이터 = 292

  8.8.2 vnodeops 벡터 = 293

  8.8.3 vfs 층의 파일 시스템 의존적 부분 = 294

 8.9 파일 시스템을 마운트하기 = 295

  8.9.1 가상 파일 시스템 스위치 = 296

  8.9.2 mount의 구현 = 296

  8.9.3 VFS_MOUNT의 처리 = 297

 8.10 파일에 대한 연산들 = 297

  8.10.1 경로이름 순회 = 297

  8.10.2 디렉토리 룩업 캐시(directory lookup cache) = 299

  8.10.3 VOP_LOOKUP 연산 = 300

  8.10.4 파일 열기 = 301

  8.10.5 파일의 I/O = 302

  8.10.6 파일의 속성(attribute) = 302

  8.10.7 사용자 신임장(credentials) = 303

 8.11 분석 = 303

  8.11.1 SVR 4 구현의 단점 = 304

  8.11.2 4.4BSD 모델 = 305

  8.11.3 OSF/1의 접근법 = 306

 8.12 요약 = 307

 8.13 연습 문제 = 308

 8.14 참고 문헌 = 309

9장 파일 시스템 구현 = 311

 9.1 개요 = 311

 9.2 System V 파일 시스템(s5fs) = 312

  9.2.1 디렉토리 = 313

  9.2.2 Inodes = 314

  9.2.3 수퍼블록 = 317

 9.3 S5fs 커널 구성 = 318

  9.3.1 인코어 inode = 318

  9.3.2 inode 찾아보기 = 318

  9.3.3 파일 I/O = 319

  9.3.4 Inode의 할당과 회수 = 321

 9.4 s5fs의 분석 = 322

 9.5 버클리 패스트 파일 시스템(fast file system) = 323

 9.6 하드디스크 구조 = 324

 9.7 디스크 상 구조 = 325

  9.7.1 블록과 단편 = 325

  9.7.2 할당 정책 = 326

 9.8 FFS의 기능 개선 = 328

 9.9 분석 = 329

 9.10 임시 파일 시스템 = 331

  9.10.1 메모리 파일 시스템 = 331

  9.10.2 tempfs 파일 시스템 = 332

 9.11 특수 목적 파일 시스템 = 333

  9.11.1 Specfs 파일 시스템 = 333

  9.11.2 /proc 파일 시스템 = 334

  9.11.3 처리기 파일 시스템 = 336

  9.11.4 반투명(translucent) 파일 시스템 = 337

 9.12 과거의 버퍼 캐시 = 338

  9.12.1 기본 연산 = 339

  9.12.2 버퍼 헤더 = 340

  9.12.3 장점 = 340

  9.12.4 단점 = 341

  9.12.5 파일 시스템의 일관성 유지 = 341

 9.13 요약 = 343

 9.14 연습 문제 = 343

 9.15 참고 문헌 = 344

10장 분산 파일 시스템 = 347

 10.1 개요 = 347

 10.2 분산 파일 시스템의 일반적 특성 = 348

  10.2.1 설계 고려 사항 = 348

 10.3 Network File System(NFS) = 350

  10.3.1 사용자 측면 = 350

  10.3.2 설계 목표 = 352

  10.3.3 NFS의 구성요소 = 352

  10.3.4 무상태성(statelessness) = 354

 10.4. 프로토콜 집합(protocol suite) = 355

  10.4.1 확장 데이터 표현(Extended Data Representation, XDR) = 355

  10.4.2 원거리 프로시저 호출(Remote Procedure Calls, RPC) = 357

 10.5 NFS 구현 = 359

  10.5.1 제어 흐름(control flow) = 359

  10.5.2 파일의 핸들(file handles) = 360

  10.5.3 마운트 연산(mount operation) = 361

  10.5.4 경로이름 찾기(pathname lookup) = 361

 10.6 UNIX의 의미(semantics) = 362

  10.6.1 오픈 파일 허가(open file permissions) = 363

  10.6.2 오픈 파일의 삭제(deletion of open files) = 363

  10.6.3 읽기와 쓰기(reads and writes) = 364

 10.7 NFS 성능(NFS performance) = 364

  10.7.1 성능의 병목(performance bottlenecks) = 365

  10.7.2 클라이언트 측 캐싱(client-side caching) = 365

  10.7.3 쓰기의 연기(deferral of writes) = 366

  10.7.4 재전송 캐시(retransmissions cache) = 367

 10.8 전용(dedicated) NFS 서버 = 369

  10.8.1 Auspex Functional Multiprocessor Architecture = 369

  10.8.2 IBM의 HA-NFS 서버 = 370

 10.9 NFS 보안(security) = 372

  10.9.1 NFS 접근 제어(access control) = 372

  10.9.2 UID 재매핑(remapping) = 373

  10.9.3 루트 재매핑(remapping) = 374

 10.10 NFS 버전 3 = 374

 10.11 원격 파일 공유(Remote File Sharing, RFS) = 376

 10.12 RFS 구조(architecture) = 376

  10.12.1 원격 메시지 프로토콜 = 377

  10.12.2 상태형 연산(stateful operation) = 378

 10.13 RFS 구현 = 379

  10.13.1 원격 마운트 = 379

  10.13.2 RFS 클라이언트와 서버 = 381

  10.13.3 크래시 회복(crash recovery) = 382

  10.13.4 기타 이슈들 = 382

 10.14 클라이언트 측(client-side) 캐싱 = 383

  10.14.1 캐시 일관성 = 384

 10.15 Andrew 파일 시스템 = 385

  10.15.1 규모 가변적(scalable) 아키텍처 = 386

  10.15.2 저장 장치와 이름 공간의 구성(organization) = 387

  10.15.3 세션 의미(semantics) = 388

 10.16 AFS 구현 = 389

  10.16.1 캐싱과 일관성 = 389

  10.16.2 경로이름 룩업 = 390

  10.16.3 보안 = 391

 10.17 AFS의 단점들(shortcomings) = 391

 10.18 DCE 분산 파일 시스템(DCE DFS) = 392

  10.18.1 DFS 아키텍처 = 393

  10.18.2 캐시 일관성 = 394

  10.18.3 토큰 관리자 = 396

  10.18.4 다른 DFS 서비스들 = 397

  10.18.5 분석 = 397

 10.19 요약 = 398

 10.20 연습문제 = 399

 10.21 참고 문헌 = 400

11장 고급 파일 시스템(Advanced File Systems) = 403

 11.1 개요 = 403

 11.2 전통적 파일 시스템의 한계 = 404

  11.2.1 FFS의 디스크 배치 = 405

  11.2.2 쓰기의 우세 = 406

  11.2.3 메타데이터의 갱신 = 407

  11.2.4 크래시 복구 = 408

 11.3 파일 시스템 클러스터링(Sun-FFS) = 409

 11.4 저널링 접근법 = 410

  11.4.1 기본 특성들 = 410

 11.5 로그 구조 파일 시스템 = 411

 11.6 4.4BSD 로그 구조 파일 시스템 = 412

  11.6.1 로그를 쓰기 = 414

  11.6.2 데이터 꺼내오기 = 414

  11.6.3 고정(crash) 복구 = 415

  11.6.4 Cleaner 프로세스 = 416

  11.6.5. 분석 = 416

 11.7 메타데이터 로깅 = 418

  11.7.1 정상 연산(normal operation) = 418

  11.7.2 로그의 일관성 = 420

  11.7.3 회복 = 422

  11.7.4 분석 = 422

 11.8 Episode 파일 시스템 = 423

  11.8.1 기본 추상 개념 = 424

  11.8.2 구조 = 424

  11.8.3 로깅 = 426

  11.8.4 기타 기능 = 426

 11.9 워치독(watchdogs) = 427

  11.9.1 디렉토리 watchdog = 429

  11.9.2 메시지 채널 = 429

  11.9.3 응용 = 430

 11.10 4.4BSD Potal File System = 430

  11.10.1 포탈의 이용 = 432

 11.11 스태커블 파일 시스템 층 = 432

  11.11.1 프레임워크와 인터페이스 = 433

  11.11.2 SunSoft 프로토타입 = 435

 11.12 4.4BSD 파일 시스템 인터페이스 = 436

  11.12.1 Nullfs와 Union Mount 파일 시스템 = 437

 11.13 요약 = 437

 11.14 연습 문제 = 438

 11.15 참고 문헌 = 439

12장 커널 메모리 할당 = 441

 12.1 개요 = 441

 12.2 기능적 요구 사항 = 443

  12.2.1 평가 기준(evaluation criteria) = 444

 12.3 자원 맵 할당기 = 446

  12.3.1 분석 = 447

 12.4 단순한 2의 멱수 자유 리스트 = 449

  12.4.1 분석 = 450

 12.5 McKusick-Karels 할당기 = 452

  12.5.1 분석 = 454

 12.6 동료(buddy) 시스템 = 454

  12.6.1 분석 = 456

 12.7 SVR4의 게으른(lazy) 동료(buddy) 알고리즘 = 457

  12.7.1 게으른(lazy) 합병 = 458

  12.7.2 SVR4 구현 상세 = 459

 12.8 Mach-OSF/1 구역(Zone) 할당기 = 460

  12.8.1 가베지 수집 = 461

  12.8.2 분석 = 462

 12.9 다중 처리기를 위한 계층적 할당기 = 463

  12.9.1 분석 = 464

 12.10 Solaris 2.4 슬랩(slab) 할당기 = 465

  12.10.1 객체 재사용 = 465

  12.10.2 하드웨어 캐시 사용 = 466

  12.10.3 할당기의 발자국(footprint) = 467

  12.10.4 설계와 인터페이스 = 467

  12.10.5 구현 = 469

  12.10.6 분석 = 470

 12.11 요약 = 471

 12.12 연습 문제 = 472

 12.13 참고 문헌 = 473

제13장 가상 메모리(Virtual Memory) = 475

 13.1 개요 = 475

  13.1.1 석기시대의 메모리 관리 = 477

 13.2 요구 페이징 = 480

  13.2.1 기능적 요구 사항 = 480

  13.2.2 가상 주소 공간 = 482

  13.2.3 페이지에 대한 초기 접근 = 482

  13.2.4 스왑 영역 = 483

  13.2.5 변환 맵들 = 484

  13.2.6 페이지 교체(replacement) 정책 = 486

 13.3 하드웨어 요구 사항 = 487

  13.3.1 MMU 캐시 = 489

  13.3.2 인텔 80x86 = 490

  13.3.3 IBM RS/6000 = 493

  13.3.4 MIPS R3000 = 497

 13.4 4.3BSD - 사례연구 = 499

  13.4.1 물리 메모리 = 500

  13.4.2 주소 공간 = 502

  13.4.3 페이지는 어디에 있나? = 503

  13.4.4 스왑 공간 = 505

 13.5 4.3BSD 메모리 관리 연산 = 507

  13.5.1 프로세스 생성 = 507

  13.5.2 페이지 폴트의 취급 = 508

  13.5.3 자유 페이지 리스트 = 511

  13.5.4 스와핑(swapping) = 512

 13.6 분석 = 514

 13.7 연습 문제 = 516

 13.8 참고 문헌 = 517

14장 SVR4 VM 아키텍처 = 519

 14.1 동기 = 519

 14.2 메모리-맵 파일 = 520

  14.2.1 mmap과 관련 시스템 호출 = 522

 14.3 VM의 설계 원칙 = 523

 14.4 기본 추상 개념 = 524

  14.4.1 물리 메모리 = 525

  14.4.2 주소 공간 = 526

  14.4.3 주소 매핑 = 527

  14.4.4 익명 페이지(anonymous page) = 528

  14.4.5 하드웨어 주소 변환(hardware address translation) = 529

 14.5 세그먼트 드라이버(segment drivers) = 531

  14.5.1 seg_vn = 532

  14.5.2 seg_map = 533

  14.5.3 seg_dev = 534

  14.5.4 seg_kmem = 534

  14.5.5 seg_kp = 534

 14.6 스왑(swap) 층 = 534

 14.7 VM 연산 = 537

  14.7.1 새로운 매핑의 생성 = 537

  14.7.2 익명 페이지의 처리 = 539

  14.7.3 프로세스 생성 = 539

  14.7.4 익명 페이지의 공유 = 540

  14.7.5 페이지 폴트 처리 = 541

  14.7.6 공유 메모리 = 543

  14.7.7 기타 요소 = 544

 14.8 Vnode 서브시스템과의 상호 작용 = 545

  14.8.1 Vnode 인터페이스의 변경 = 545

  14.8.2 파일 접근의 통합 = 546

  14.8.3 기타 논의 사항 = 549

 14.9 Solaris의 가상 스왑 공간 = 549

  14.9.1 확장된 스왑 공간 = 550

  14.9.2 가상 스왑 관리 = 550

  14.9.3 토의 = 552

 14.10 분석 = 552

 4.11 성능 향상 = 555

  14.11.1 높은 폴트 율을 일으키는 요인 = 555

  14.11.2 SunOS VM 구현에 대한 SVR4의 개선 사항 = 556

  14.11.3 결과와 토의 = 557

 14.12 요약 = 558

 14.13 연습 문제 = 558

 14.14 참고 문헌 = 559

15장 추가의 메모리 관리 주제들 = 561

 15.1 개요 = 561

 15.2 Mach 메모리 관리의 설계 = 561

  15.2.1 설계 목적 = 561

  15.2.2 프로그래밍 인터페이스 = 563

  15.2.3 기본 추상 개념 = 564

 15.3 메모리 공유 설비들 = 566

  15.4.1 쓰기시-복사 공유 = 566

  15.4.2 읽기-쓰기(read-write) 공유(sharing) = 569

 15.4 메모리 객체(memory objects)와 페이저(pagers) = 570

  15.4.1 메모리 객체의 초기화(initialization) = 570

  15.4.2 커널과 페이저 사이의 인터페이스 = 571

  15.4.3 커널 페이저의 상호 작용 = 573

 15.5 외부(external)와 내부(internal) 페이저 = 573

  15.5.1 네트워크 공유 메모리 서버 = 574

 15.6 페이지 대체(replacement) = 577

 15.7 분석 = 579

 15.8 4.4BSD의 메모리 관리 = 580

 15.9 Translation Lookaside Buffer(TLB)의 일관성(consistency) = 583

  15.9.1 단일 처리기에서 TLB의 일관성(consistency) = 584

  15.9.2 다중 처리기(multiprocessor)의 논의 사항 = 585

 15.10 마크의 TLB 격추(shootdown) = 586

  15.10.1 동기화와 교착 상태(deadlock) 회피 = 587

  15.10.2 토의 = 588

 15.11 SVR4와 SVR4.2 UNIX에서 TLB의 일관성 = 589

  15.11.1 SVR4/MP = 589

  15.11.2 SVR4.2/MP = 590

  15.11.3 게으른 격추(lazy shootdowns) = 592

  15.11.4 즉각적인 격추(immediate shootdowns) = 592

  15.11.5 토의 = 594

 15.12 다른 TLB 일관성 알고리즘 = 595

 15.13 가상 주소(virtually addressed) 캐시 = 596

  15.13.1 매핑 변경 = 597

  15.13.2 주소의 별명(address aliases) = 598

  15.13.3 DMA 연산 = 599

  15.13.4 캐시의 일관성 유지 = 599

  15.13.5 분석 = 601

 15.14 연습 문제 = 602

 15.15 참고 문헌 = 603

16장 디바이스 드라이버와 입출력 = 607

 16.1 개요 = 607

 16.2 개관 = 607

  16.2.1 하드웨어 구성 = 609

  16.2.2 디바이스 인터럽트 = 611

 16.3 디바이스 드라이버 프레임워크 = 612

  16.3.1 디바이스와 드라이버들의 분류 = 613

  16.3.2 드라이버 코드의 호출 = 614

  16.3.3 디바이스 스위치(switches) = 615

  16.3.4 드라이버 진입점(entry points) = 617

 16.4 입출력 서브시스템 = 619

  16.4.1 주(major) 및 부(minor) 디바이스 번호 = 619

  16.4.2 디바이스 파일 = 621

  16.4.3 specfs 파일 시스템 = 622

  16.4.4 공통 snode = 624

  16.4.5 디바이스 복제(cloning) = 625

  16.4.6 문자 디바이스에 대한 입출력 = 626

 16.5 poll 시스템 콜 = 627

  16.5.1 poll의 구현 = 628

  16.5.2 4.3BSD select 시스템 콜 = 630

 16.6 블록 입출력 = 631

  16.6.1 buf 구조 = 632

  16.6.2 Vnode와의 상호작용 = 633

  16.6.3 디바이스 액세스 방법(access methods) = 634

  16.6.4 블록 디바이스에 대한 미가공(raw) 입출력 = 636

 16.7 DDI/DKI 명세 = 637

  16.7.1 일반적 추천 = 638

  16.7.2 3절의 함수들 = 639

  16.7.4 기타 절들 = 641

 16.8 새로운 SVR4 릴리즈들 = 641

  16.8.1 다중 처리기-안전(multiprocessor_safe) 드라이버 = 642

  16.8.2 SVR4.1/ES 변경 = 643

  16.8.3 동적 로딩과 언로딩 = 643

 16.9 미래의 방향 = 646

 16.10 요약 = 648

 16.11 연습 문제 = 648

 16.12 참고 문헌 = 649

17장 스트림즈(STREAMS) = 651

 17.1 동기 = 651

 17.2 개관 = 652

 17.3 메시지와 큐 = 655

  17.3.1 메시지 = 655

  17.3.2 가상 복사 = 657

  17.3.3 메시지 타입 = 658

  17.3.4 큐와 모듈 = 659

 17.4 스트림 I/O = 661

  17.4.1 STREAMS 스케줄러 = 662

  17.4.2 우선 순위 밴드 = 663

  17.4.3 흐름 제어 = 663

  17.4.4 드라이버 엔드(end) = 666

  17.4.5 스트림 헤드(head) = 666

 17.5 구성 및 설정(configuration and setup) = 667

  17.5.1 모듈 또는 드라이버의 구성(configuring) = 668

  17.5.2 스트림의 오픈 = 670

  17.5.3 모듈을 푸시하기 = 671

  17.5.4 복제 장치(clone devices) = 672

 17.6 스트림즈 ioctls = 673

  17.6.1 I_STR ioctls의 처리 = 674

  17.6.2 투명한 ioctls = 675

 17.7 메모리 할당 = 675

  17.7.1 확장된 스트림즈 버퍼 = 677

 17.8 멀티플렉싱 = 678

  17.8.1 상위 멀티플렉서 = 678

  17.8.2 하위 멀티플렉서 = 679

  17.8.3 스트림 연결하기 = 680

  17.8.4 데이터 흐름 = 682

  17.8.5 일반적인 링크와 영구적인 링크 = 683

 17.9 FIFO와 파이프(pipe) = 684

  17.9.1 스트림즈 FIFO = 684

  17.9.2 스트림즈 파이프 = 685

 17.10 네트워킹 인터페이스 = 687

  17.10.1 Transport Provider Interface(TPI) = 687

  17.10.2 트랜스포트 층 인터페이스(Transport Layer Interface, TLI) = 688

  17.10.3 소켓(socket) = 690

  17.10.4 SVR4 소켓 구현 = 691

 17.11 요약 = 692

 17.12 연습 문제 = 693

 17.13 참고 문헌 = 694

찾아보기 = 696



관련분야 신착자료

Muthu, Subramanian Senthilkannan (2022)
Musib, Somnath (2023)