수요가 좀 되는 것 같은데 재판매 고려해보시는게 어떠신지요..
우리는 흔히 차를 만드는 사람과 차를 모는 사람은 평행선에 위치해 있다고 생각하곤 한다.
하지만 해외 유명한 카레이서들이 직접 차의 엔진을 제작하여 성능을 극한으로 끌어올리고 더 훌륭한 레이스를 펼치는 것을 보면, 그들에겐 더 이상 차를 만드는 사람과 모는 사람의 경계는 존재하지 않는다.
앞의 예와 같이 개발자들이 흔히 할 수 있는 오해가 하드웨어인 CPU와 소프트웨어인 OS가 각각 개별적으로 동작한다고 생각하는 것이다. 이는 일반적으로 논리회로나 OS 등을 개별적인 과목으로 학습학기 때문에 서로의 유기적인 결합에 대해 쉽게 느끼지 못하기 때문이다.
사실 컴퓨터라는 하나의 '차'를 몰기 위해서는 차의 엔진에 해당하는 CPU 구조에 대해 파악해야 한다. 또한 이와 함께 속도를 올리고, 바퀴와 와이퍼를 움직이도록 지시하는 것에 해당하는 각 프로그램이 구동하는 베이스인 OS의 역할에 대한 이해도 필요하다. 그래야만 각각의 움직임(프로그램)이 차라는 하나의 개체에서 결합되어 어떻게 충돌없이 동작할 수 있는지 또 동작하게 할 수 있는지를 이해할 수 있다.
이 책은 자판기, 카레이스, 차 공장 프로세스 등 실제 우리가 접하기 쉬운 예제와 설명들을 토대로 개발자들이 프로그램을 제작할 시 놓치고 지나가기 쉬운, CPU와 C, OS의 역할과 상호 관계에 대해 한 눈에 알수 있도록 했다.
이를 통해 단지 일반적인 상식 선에서 프로그램을 이해하는 것을 뛰어넘어, 더 넓은 시야를 보유한 고급 프로그래머로 도약할 수 있는 기본을 닦아준다.
주요내용
"예를 들어 printf라는 함수가 글자를 화면에 출력하기까진 매우 많은 조력자들이 필요합니다. 당장 함수 호출이나 변수 전달 방식과 같은 기본 메커니즘에서부터 전혀 상관없을 것 같은 OS의 역할, 그리고 가장 기본적인 CPU의 동작까지. 많은 프로그래머들 중에서도 printf 함수를 호출하고 결과를 응용할 줄은 알지만 그 속에서 일어나는 일에 대해서 깊이 관심을 가지거나 자세히 아는 분은 그리 많지 않을 것입니다. 이 책에서는 이런 궁금증을 각 Part별로 나누어 가능한 쉽게 그리고 자세히 설명하려 노력하였습니다."
- 저자 서문 중에서
추천사 저자 서문 로드맵 Part1. CPU와 친해지기 - 누구나 알기 쉬운 CPU의 구조 1장. 0과 1의 세상 01. 디지털과 컴퓨터 02. 0과 1의 세상 2장. 논리회로 01. 기본 연산 게이트 02. BOOLE 대수 03. BOOLE 대수의 응용 3장. 조합 및 순차 논리회로 01. 조합 논리회로 02. 순차 논리회로 03. RS 플립플롭 04. D 플립플롭 05. 기타 플립플롭들과 이들의 존재 의의 4장. 컴퓨터의 두뇌 - CPU 01. CPU의 탄생 비화 02. 범용 논리회로 03. 산술 연산 장치 - Adder의 구현 04. 32비트 ALU의 구현 05. ALU에서의 뺄셈 구현 06. 인스트럭션 맛보기 5장. CPU의 필수 도구 - 레지스터와 클럭 01. ALU와 메모리 02. 컴퓨터의 곱셈과 레지스터 03. 컴퓨터의 시계 - 클럭 6장. CPU의 언어 - 인스트럭션 01. 프로그램 저장방식 컴퓨터 02. 인스트럭션의 구성요소 7장. 실전 인스트럭션 셋 - MIPS 01. MIPS의 레지스터 02. 레지스터의 활용 03. R-타입 인스트럭션 04. I-타입 인스트럭션 05. J-타입 인스트럭션 8장. 실전 CPU 설계 - MIPS의 데이터 경로 01. R-타입 인스트럭션의 CPU 수행 02. I-타입 인스트럭션의 CPU 수행 03. J-타입 인스트럭션의 CPU 수행 9장. 쉴틈없이 일하라 - 파이프라이닝 01. 파이프라이닝 02. 구조적 위험(Structural Hazard) 03. 분기 위험(Branch Hazard) 04. 데이터 위험(Data Hazard) Part2. 인간의 말을 배운 컴퓨터 - 아무도 알려주지 않는 C의 비밀 10장. 컴파일러의 등장 01. CPU의 청동기 시대 - 어셈블러 02. CPU의 철기 시대 - 고급 언어의 등장 11장. 변수의 정체 01.약방의 감초 - 변수 02.변수의 종류와 선언 03.변수의 크기와 부호 04.양날의 칼 - 포인터 05. 함수까지 가리키는 만능 재주꾼 - 포인터 06. 포인터의 함정 - 댕글링 포인터 07. 아무나 가리키는 포인터 - 일반 포인터 08.포인터의 사촌 - 배열 09. 포인터와 배열 10. 다중(다차원) 배열 12장. 메모리 나누기 - 코드, 데이터, 스택, 힙 01. 코드 및 데이터 세그먼트 02. 스택 세그먼트 여기서 잠깐 폰 노이만 vs 하버드 아키텍쳐 03. 힙 세그먼트 13장. 함수가 호출되기까지 01. 벽돌과도 같은 함수 - 구조화된 프로그래밍 02. 함수호출의 기본 원리 - 스택 프레임 03. 스택 프레임을 통한 함수간 값 전달 04. 지역 변수 Part3. 프로그램의 정부 - 운영체제(OS) 14장. OS의 정체 01. 누구냐 넌? - OS 02. 선점과 비선점 방식 15장. 프로그래머가 알아야 할 필수 OS 01. 프로세스 vs 스레드 02. 동기화 03. Blocked I/O vs Non-blocked I/O 04. 멀티 스레딩과 서버 05. 윈도우즈의 최강자 서버 - IOCP 16장. OS가 제공하는 편리한 기능 01. 프로세스 vs 메모리 02. 프로그램이 실행되기까지 03. 멀티 프로그램을 위한 메모리 관리 04. 페이징 05. 페이징을 활용한 가상 메모리 06. 페이지 테이블을 위한 캐쉬 메모리 - TLBs 07. 페이징을 통한 프로세스 간 메모리 공유 08. CPU의 시간표 - 스케줄링 09. 실시간 운영체제 정답과 해설 찾아보기
자료명 | 등록일 | 다운로드 |
---|---|---|
![]() |
2016-04-06 | 다운로드 |