이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
초보 프로그래머가 꼭 알아야 할 컴퓨터 동작 원리
김종훈
한빛미디어 2004.07.10.
가격
16,000
10 14,400
YES포인트?
800원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

1부. 하드웨어
01장. 모든 정보를 2진수로 표현하는 컴퓨터
01. 왜 2진수로 표현할까
02. 진법과 진수 이해하기
03. 컴퓨터에서 문자 표현하기
04. 컴퓨터에서 정수 표현하기
05. 컴퓨터에서 실수 표현하기
02장. 컴퓨터 내부에서의 정수 연산과 실수 연산
01. 정수의 덧셈과 뺄셈
02. 정수의 곱셈
03. 정수의 나눗셈
04. 실수의 덧셈과 뺄셈
05. 실수의 곱셈
03장. 프로그램을 실행하는 CPU
01. 컴퓨터의 구성
02. CPU의 구성
03. CPU 동작 예
04. 명령어의 다양한 표현 형식
05. CPU가 기본 명령어를 실행하는 동작
특별코너: C 언어 프로그램에 대한 실제 명령어와 동작
04장. CPU 속도를 빠르게 하는 파이프라이닝과 수퍼스칼라
01. 파이프라이닝
02. 수퍼스칼라
05장. 계층적으로 구성된 메모리
01. 메모리의 계층 구조
02. 실행중인 프로그램을 저장하는 메인 메모리
03. 처리 속도를 향상시키는 캐시 메모리
06장. 여러 개의 CPU로 구성된 멀티프로세서
01. 멀티프로세서란
02. 멀티프로세서의 분류
03. 캐시 일관성 유지하기
04. 클러스터링
2부. 운영체제
07장. 실행중인 프로그램인 프로세스
01. 프로세스란
02. 프로세스의 다양한 상태
03. 프로세스 생성
특별코너: 리눅스에서의 프로세스 제어 블록
특별코너: 리눅스에서의 프로세스 상태
08장. 프로세스의 실행 순서를 정하는 프로세스 스케줄링
01. 프로세스 스케줄링이란
02. FCFS 스케줄링
03. 라운드 로빈 스케줄링
04. 우선순위 스케줄링
특별코너: 리눅스에서의 스케줄링
09장. 프로세스 동기와 통신
01. 프로세스 동기와 통신이란
02. 프로세스 동기 방법
03. 프로세스간 통신 방법
10장. 메모리 관리하기
01. 가상 메모리란?
02. 페이징
03. 세그멘테이션
04. 페이징과 세그멘테이션의 혼용
특별코너: 메모리 관리를 위한 리눅스 데이터 구조
11장. 디스크에 파일 저장하기
01. 디스크에 파일을 저장하는 파일 시스템
02. 윈도우의 파일 저장하기
03. 유닉스(리눅스)의 파일 저장하기
특별코너: 리눅스에서의 수퍼 블록과 inode

3부. 네트워크
12장. 네트워크를 통한 데이터 전송 과정
01. 네트워크 환경
02. 데이터 전송의 시작은 애플리케이션에서
03. 포트 번호 등을 추가하는 TCP와 UDP
04. IP 주소 등을 추가하는 IP
05. 라우팅 테이블을 이용해서 데이터 보낼 곳의 IP 주소 정하기
06. MAC 주소 등을 추가하는 IP
07. 라우터를 경유해서 수신 LAN 라우터로
08. 수신 LAN 라우터에서 목적지로
09. 최종 목적지에서
특별코너: 네트워크 프로그램 작성하기
13장. 네트워크 주소
01. IP 주소
02. 하나의 네트워크를 여러 네트워크로 나누는 서브넷
03. 기억하기 쉬운 도메인명
특별코너: 도메인명을 이용한 네트워크 프로그램
14장. 네트워크에서의 오류 검출과 오류 정정
01. 오류 검출하기
02. 오류 정정하기

품목정보

발행일
2004년 07월 10일
쪽수, 무게, 크기
320쪽 | 970g | 크기확인중
ISBN13
9788979142839

줄거리

1부. 하드웨어
소프트웨어 개발자가 하드웨어에 대해 깊게 알 필요는 없다. 하지만 최소한 자신이 작성한 프로그램이 실행되는 하드웨어가 어떤 원리로 동작하는지를 알고 있는 사람과 그렇지 못한 사람은 결정적인 순간에 차이가 난다.

1장. 모든 정보를 2진수로 표현하는 컴퓨터
컴퓨터는 사람과는 다른 방식인 2진수 형태로 정보를 표현한다. 이 장에서는 문자, 정수, 실수 등의 데이터를 컴퓨터 내부에서 어떻게 표현하는지에 대해 살펴본다.

2장. 컴퓨터 내부에서의 정수 연산과 실수 연산
컴퓨터 내의 정수와 실수 등 정보를 표현하는 방법이 사람이 사용하는 것과는 차이가 있듯이, 컴퓨터 내에서의 연산 역시 사람이 종이와 연필을 이용해서 하는 연산과는 차이가 있다. 이 장에서는 실제 하드웨어가 덧셈, 뺄셈, 곱셈, 나눗셈을 어떻게 효율적으로 수행하는지에 대해 살펴본다.

3장. 프로그램을 실행하는 CPU
컴퓨터의 핵심적인 일은 프로그램을 실행하는 일이다. 이런 프로그램을 실행하기 위해서는 메인 메모리, 입출력 장치, 버스 등의 장치도 있어야 하지만 CPU가 가장 중요한 역할을 담당한다. CPU는 자신이 이해할 수 있는 프로그램 명령어들을 해석하고 실행하는 장치로 이 장에서는 CPU가 어떻게 동작하는지에 대해 살펴본다.

4장. CPU 속도를 빠르게 하는 파이프라이닝과 수퍼스칼라
컴퓨터 시스템 개발자들의 가장 큰 관심사는 좀 더 빠른 컴퓨터를 개발하는 것이다. 이런 관심 하에 CPU의 속도를 빠르게 하는 많은 기술들이 개발되었는데, 대표적인 것으로는 파이프라이닝과 수퍼스칼라가 있으며, 이에 대해 살펴본다.

5장. 계층적으로 구성된 메모리
메모리는 캐시 메모리, 메인 메모리, 하드 디스크 등으로 계층적으로 구성된다. 이런 메모리 계층 구조에 대해 살펴보고 메인 메모리에 데이터가 어떻게 저장되고 저장된 데이터를 어떻게 읽는지에 대해 살펴본다. 그리고 캐시 메모리가 어떻게 동작하는지도 살펴본다.

6장. 여러 개의 CPU로 구성된 멀티프로세서
여러 개의 CPU로 구성된 시스템을 멀티프로세서라 하는데, 여러 프로그램을 동시에 실행하거나 한 프로그램을 여러 부분으로 분할해 동시에 실행한다. 이런 멀티프로세서에의 다양한 주제에 대해 살펴본다.

2부. 운영체제
리눅스 사용자든 윈도우 사용자든 특정 운영체제를 기반으로 개발을 진행할 것이다. 그러므로 프로그램이 운영되는 운영체제에 대한 이해가 기반이 된다면 프로그램을 보다 효율적으로 개발할 수 있을 것이다.

7장. 실행중인 프로그램인 프로세스
실행되기 위해 메모리에 올라가 있는 프로그램을 프로세스라 하는데, 프로세스의 생성, 실행, 종료 등 프로세스에 대한 모든 관리는 운영체제에 의해 이루어진다. 운영체제가 프로세스를 어떻게 관리하는지 살펴본다.

8장. 프로세스의 실행 순서를 정하는 프로세스 스케줄링
실행을 기다리는 프로세스가 여러 개 있을 경우에는 어떤 프로세스가 먼저 실행될지를 정해줘야 하는데, 이런 규칙을 프로세스 스케줄링이라 한다. 운영체제가 프로세스 스케줄링을 담당하는데, 이에 대해 살펴본다.

9장. 프로세스 동기와 통신
프로세스 동기란 한 프로세스가 사용해야만 하는 데이터를 임의의 프로세스가 사용하고 있을 때 같은 데이터의 사용을 원하는 다른 프로세스는 기다리게 하는 개념이고, 프로세스간 통신이란 프로세스와 프로세스 간에 데이터를 주고받는 동작을 의미한다. 이런 기능을 운영체제에서 제공하는데, 이에 대해 살펴본다.

10장. 메모리 관리하기
운영체제와 CPU는 상호 협조 하에 가상 메모리라는 개념을 이용해 메모리를 관리한다. 가상 메모리란 당장 실행에 필요한 부분만 메인 메모리에 저장하고, 나머지 부분은 하드디스크에 넣어 두고 동작하는 개념인데, 이에 대해 살펴본다.

11장. 디스크에 파일 저장하기
디스크에 파일을 저장하고 디스크로부터 파일을 읽는 동작은 운영체제가 담당하는데, 이 장에서는 실제 윈도우와 유닉스(리눅스)에서 파일을 디스크에 어떻게 저장하고 관리하는지에 대해 살펴본다.

3부. 네트워크
이제 네트워크는 모든 분야에서 필수 사항이 되었기 때문에 네트워크 관련 종사자가 아니더라도 네트워크 환경에서 어떤 원리로 데이터 전송이 이루어지는지 정도는 기본으로 알고 있어야 한다.

12장. 네트워크를 통한 데이터 전송 과정
PC 1에서 네트워크로 연결된 PC 2로 데이터를 전송하는 과정을 단계 단계별 상세한 그림을 통해 살펴봄으로써 네트워크 동작 원리에 대해 명확하게 이해한다.

13장. 네트워크 주소
통신을 원하는 모든 기기는 IP 주소가 부여되어야 한다. 그렇다고 아무렇게나 IP 주소를 부여할 수 있는 것이 아니라 원칙이 있는데, 이에 대해 살펴본다.

14장. 네트워크에서의 오류 검출과 오류 정정
네트워크는 송신측에서 수신측으로 정확하게 데이터를 전송할 수 있어야 하는데, 여러 요인에 의해 데이터가 변경되거나 유실될 수 있다. 이에 네트워크 시스템에서는 이런 오류를 검출하거나 정정할 수 있는 기법을 지니고 있는데 이에 대해 살펴본다.

추천평

이 책은 전반적인 컴퓨터 동작 원리에 대해 적용 예와 그림을 이용한 명쾌한 설명으로 이루어졌다. 강의를 위해 수많은 책들을 접해 보았지만 이렇게 체계적이며 독자 입장에서 구성된 책은 처음 접한다. 컴퓨터 동작 원리에 대한 어려움은 이 책을 만남으로써 사라질 것이다. 컴퓨터와 관련된 모든 분들에게 이 책은 매우 훌륭한 참고 서적이 될 것이라 생각한다.
_안유정 (교수, 명지전문대학 컴퓨터정보과)

지금 생각해 보면 컴퓨터 구조, 운영체제, 네트워크 등이 가장 힘든 교과목이 아니었나 싶다. 배우는 당시에는 이들 과목에 대한 중요성을 크게 인식하지 못했기 때문이다. 그런데 학년이 올라가고 특히 대학원에 진학하니 이들 과목이 얼마나 중요한지를 새삼 깨닫게 되었다. 만일 그 당시에 이 책이 있었다면 매우 명확하고 쉽게 수업을 이해할 수 있었을텐데. 이 책은 그림을 통한 쉬운 설명뿐만 아니라 이론을 실제 시스템에서 어떻게 적용하는지도 설명하고 있다. 이젠 컴퓨터 동작에 대한 부담을 떨쳐낼 수 있을 것 같다.
_이병일 (대학원생, 홍익대학교 컴퓨터공학과 석사과정 1학기)

게임 프로그래밍에 관심을 갖고 공부하고 있는데 깊이 들어가면 갈수록 컴퓨터 원리에 대한 지식이 필요함을 깨달았다. 그래서 하드웨어, 운영체제 등의 책을 구입해서 보았는데 그래도 이해가 되지 않는 부분이 많았다. 그런데 이 책을 보는 순간 저를 위한 책이라는 생각이 들었다. 각 동작 과정 하나 하나를 그림을 통해 설명하는 구성이 너무 좋고, 어려운 주제임에도 불구하고 전문적인 지식이 없는 초보자들도 쉽게 볼 수 있는 책이다. 컴퓨터에 관심 있는 모든 분, 특히 초보자에게 추천한다.
_조영은 (대학생, 숭의여자대학 컴퓨터게임과 2학년)

하드웨어 동작 원리를 설명하는 1부를 읽을 때는 대학교 2학년 때 전공으로 들었던 '디지털 시스템'을 떠올렸지만 조금 오래된 기억에 가물가물했는데, 이 책에서 이 부분을 그림과 함께 자세하고 체계적으로 설명하고 있어 오래된 기억을 되살릴 수 있었다. 그리고 2부에서는 특히 특별 코너가 눈길을 끌었는데, 추상적인 설명에 그치지 않고 리눅스 시스템에서 쓰이는 여러 구조를 예시하고 있어 좀더 가깝게 와닿았다. 마지막으로, 3부에서는 12장에 있는 네트워크 프로그램 작성이 정말 좋았다. 간략한 설명과 더불어 구체적인 예시가 한눈에 들어온다.
-김희영 (대학생, 세종대학교 컴퓨터공학과 4학년)

리뷰/한줄평1

리뷰

9.0 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.