목차 일부
추천사 ... 3
저자 서문 ... 4
로드맵 ... 6
part CPU와 친해지기 - 누구나 알기 쉬운 CPU의 구조
1장 0과 1의 세상 ... 17
01. 디지털과 컴퓨터 ... 19
02. 0과 1의 세상 ... 21
여기서 잠깐 : 비디오카드의 어드레스 라인과 데이터 라인 ... 23
Vitamin ...
더보기
목차 전체
추천사 ... 3
저자 서문 ... 4
로드맵 ... 6
part CPU와 친해지기 - 누구나 알기 쉬운 CPU의 구조
1장 0과 1의 세상 ... 17
01. 디지털과 컴퓨터 ... 19
02. 0과 1의 세상 ... 21
여기서 잠깐 : 비디오카드의 어드레스 라인과 데이터 라인 ... 23
Vitamin info : 머리 속으로 하는 2진수의 16진수 변환 ... 24
2장 논리회로 ... 27
01. 기본 연산 게이트 ... 29
02. BOOLE 대수 ... 32
Exercise 2-1 : BOOLE 대수 연습 ... 37
03. BOOLE 대수의 응용 ... 37
Exercise 2-2 : 4×1 MUX 설계하기 ... 46
Vitamin info : 카르노 맵 ... 47
이것만은 알고 갑시다 ... 51
3장 조합 및 순차 논리회로 ... 53
01. 조합 논리회로 ... 55
02. 순차 논리회로 ... 56
03. RS 플립플롭 ... 58
Vitamin Quiz : 입력이 모두 0인 RS 플립플롭의 출력 ... 62
04. D 플립플롭 ... 63
05. 기타 플립플롭들과 이들의 존재 의의 ... 65
Exercise 3-1 : JK 플립플롭을 이용한 쉬프트 레지스터 설계 ... 69
Vitamin info : 복잡한 회로의 설계 ... 69
이것만은 알고 갑시다 ... 72
4장 컴퓨터의 두뇌 - CPU ... 73
01. CPU의 탄생 비화 ... 75
Vitamin Quiz : 건전지 예제 ... 79
02. 범용 논리회로 ... 80
03. 산술 연산 장치 - Adder의 구현 ... 84
04. 32비트 ALU의 구현 ... 89
Vitamin Quiz : Add 이외 연산의 캐리 출력 ... 89
05. ALU에서의 뺄셈 구현 ... 93
06. 인스트럭션 맛보기 ... 97
Vitamin info : ALU의 NOT 연산 설계 ... 100
이것만은 알고 갑시다 ... 101
5장 CPU의 필수 도구 - 레지스터와 클럭 ... 103
01. ALU와 메모리 ... 105
02. 컴퓨터의 곱셈과 레지스터 ... 106
03. 컴퓨터의 시계 - 클럭 ... 111
Vitamin info : CPU의 클럭 속도 ... 113
6장 CPU의 언어 - 인스트럭션 ... 115
01. 프로그램 저장방식 컴퓨터 ... 117
여기서 잠깐 : RAM과 ROM ... 120
Vitamin Quiz : 레지스터와 메모리의 차이 ... 120
02. 인스트럭션의 구성요소 ... 121
Vitamin info : 메모리 엑세스 인스트럭션 ... 128
이것만은 알고 갑시다 ... 129
7장 실전 인스트럭션 셋 - MIPS ... 131
01. MIPS의 레지스터 ... 134
Exercise 7-1 : 메모리의 크기와 어드레스 비트 수 ... 138
02. 레지스터의 활용 ... 138
03. R-타입 인스트럭션 ... 140
04. I-타입 인스트럭션 ... 143
Vitamin Quiz : addi vs subi 인스트럭션 ... 149
05. J-타입 인스트럭션 ... 150
Vitamin info : I-타입 인스트럭션의 한계 ... 157
이것만은 알고 갑시다 ... 159
8장 실전 CPU 설계 - MIPS의 데이터 경로 ... 161
01. R-타입 인스트럭션의 CPU 수행 ... 163
02. I-타입 인스트럭션의 CPU 수행 ... 176
03. J-타입 인스트럭션의 CPU 수행 ... 184
Vitamin info : 유휴 하드웨어의 활용 ... 187
이것만은 알고 갑시다 ... 188
9장 쉼 없이 일하라 - 파이프라이닝 ... 159
01. 파이프라이닝 ... 191
02. 구조적 위험(Structural Hazard) ... 197
03. 분기 위험(Branch Hazard) ... 200
04. 데이터 위험(Data Hazard) ... 203
Vitamin info : 인스트럭션 재배치를 통한 스톨(stall) 제거 ... 207
이것만은 알고 갑시다 ... 209
part 2 인간의 말을 배운 컴퓨터 - 아무도 알려주지 않는 C의 비밀
10장 컴파일러의 등장 ... 213
01. CPU의 청동기 시대 - 어셈블러 ... 215
02. CPU의 철기 시대 - 고급 언어의 등장 ... 220
Vitamin info : 고급 언어 VS 어셈블리어 ... 227
이것만은 알고 갑시다 ... 228
11장 변수의 정체 ... 229
01. 약방의 감초 - 변수 ... 231
02. 변수의 종류와 선언 ... 231
Vitamin Quiz : 상수표현과 변수의 크기 ... 240
03. 변수의 크기와 부호 ... 240
04. 양날의 칼 - 포인터 ... 252
05. 함수까지 가리키는 만능 재주꾼 - 포인터 ... 270
06. 포인터의 함정 - 댕글링 포인터 ... 284
07. 아무나 가리키는 포인터 - 일반 포인터 ... 286
08. 포인터의 사촌 - 배열 ... 288
09. 포인터와 배열 ... 296
10. 다중(다차원) 배열 ... 298
Vitamin info : 어셈블리어에서의 변수 ... 305
이것만은 알고 갑시다 ... 307
12장 메모리 나누기 - 코드, 데이터, 스택, 힙 ... 309
01. 코드 및 데이터 세그먼트 ... 311
02. 스택 세그먼트 ... 321
여기서 잠깐 : 폰 노이만 vs 하버드 아키텍쳐 ... 340
03. 힙 세그먼트 ... 340
Vitamin info : 동적 메모리 할당 함수 ... 355
이것만은 알고 갑시다 ... 359
13장 함수가 호출되기까지 ... 361
01. 벽돌과도 같은 함수 - 구조화된 프로그래밍 ... 363
여기서 잠깐 : 서브루틴 ... 365
02. 함수호출의 기본 원리 - 스택 프레임 ... 366
03. 스택 프레임을 통한 함수간 값 전달 ... 374
Vitamin Quiz : 스택의 증가방향 ... 389
04. 지역 변수 ... 390
Vitamin info : 호출 규약 ... 394
이것만은 알고 갑시다 ... 398
part 3 프로그램의 정부 - 운영체제(OS)
14장 OS의 정체 ... 401
01. 누구냐 넌? - OS ... 403
02. 선점과 비선점 방식 ... 409
15장 OS랑 친해지기 - 핵심 OS 요소 ... 417
01. 프로세스 vs 스레드 ... 419
02. 동기화 ... 432
03. Blocked I / O vs Non-blocked I ... 449
04. 멀티 스레딩과 서버 ... 454
05. 윈도우즈의 최강자 서버 - IOCP ... 464
Vitamin info : 스레드의 CPU 점유율 ... 480
이것만은 알고 갑시다 ... 484
16장 OS속 들여다보기 - OS의 내부 동작 원리 ... 485
01. 프로세스 vs 메모리 ... 487
02. 프로그램이 실행되기까지 ... 490
03. 멀티 프로그램을 위한 메모리 관리 ... 498
04. 페이징 ... 505
05. 페이징을 활용한 가상 메모리 ... 511
06. 페이지 테이블을 위한 캐쉬 메모리 - TLBs ... 519
07. 페이징을 통한 프로세스 간 메모리 공유 ... 522
08. CPU의 시간표 - 스케줄링 ... 525
09. 실시간 운영체제 ... 530
Vitamin info : 세그먼테이션 ... 540
이것만은 알고 갑시다 ... 544
정답과 해설 ... 545
찾아보기 ... 562
더보기 닫기