컴퓨터 구조 (프로그래밍 관점에서 바라보는 컴퓨터 구조)

컴퓨터 구조 (프로그래밍 관점에서 바라보는 컴퓨터 구조)

$26.81
Description
★프로그래밍 관점에서 바라보는 컴퓨터 구조
★컴퓨터구조 수업도 재미있게! 이론에 실습까지 가능한 구성 - 노트북만 있으면 팀단위 수업도 가능
★정수와 실수 등 실제로 표현되는 방식을 ‘간단한 C코딩’으로 확인할 수 있도록 구성.
★실습실이 아니어도 되요~ ‘웹컴파일러’와 ‘QR코드’를 이용해 핸드폰에서 바로 확인 할 수 있도록 구성.
★또 다른 컴퓨터인 가상머신과 클라우드 컴퓨팅까지 포함
저자

정기철

컴퓨터공학을전공하고현재숭실대학교IT대학미디어학부교수로재직중이며,인공지능,HCI등의분야를공부하고있다.

최근학부에서컴퓨터구조론,인공지능,프로그래밍언어,컴퓨터수학등의과목을강의하면서,

급격하게바뀌는지금의IT환경에서단순한지식이나기술의전달및암기위주의공부대신기본적인원리에대한이해,문제해결방법등이더중요하다고느끼면서

이를위한새로운형식의수업방법및저서집필에노력하고있다.

집필저서로는[체험인공지능][게임을만들면서배우는프로세싱][그림을그리면서배우는프로세싱언어][컴퓨터시스템개론]등다수가있다.

목차

PREFACEiii
교재의구성v
강의계획표vii

CHAPTER1컴퓨터구조개론1
1.1컴퓨터의종류3
1.2컴퓨터전원을켜면어떤일이?5
1.3컴퓨터구조개괄6

PART1논리회로관점에서의컴퓨터구조
CHAPTER2컴퓨터내부의데이터표현11
2.1컴퓨터에서사용하는수13
2.1.1정보표현의단위13
2.2진법(numeralsystem)15
2.2.110진법16
2.2.22진법,8진법,10진법,16진법18
2.3정수의표현20
2.3.12진수로변환:정수부분의변환21
2.3.22진수로변환:소수부분의변환23
2.3.3각진법간의숫자표현연습24
2.3.4부호없는정수(unsignedinteger:0과자연수)32
2.3.5부호있는정수(signedinteger)35
2.3.6심화정수연산46
2.4실수의표현47
2.4.1고정소수점표현방법53
2.4.2부동소수점(浮動小數點,floatingpoint)표현방법54
2.4.3심화부동소수점연산64
2.5문자의표현66
2.5.1ASCII코드67
2.5.2유니코드(Unicode)69

CHAPTER3논리회로기초77
3.1논리회로를시작하며79
3.1.1기계어프로그래밍80
3.1.2기계어밑에는무엇이있을까?82
3.1.3논리회로기초86
3.2기본게이트89
3.2.1반도체게이트이전에는무엇이계산에사용되었을까?92
3.3논리회로표현방식기초94
3.3.1간단한경우#194
3.3.2간단한경우#296
3.3.3논리식/논리도/진리표99
3.3.4논리회로의2가지종류:조합논리회로/순서논리회로102

CHAPTER4조합논리회로105
4.1조합논리회로를만들자107
4.1.1불대수법칙108
4.1.2And-Or/Or-And회로111
4.1.3논리식(부울식:booleanexpression)의간소화113
4.2논리식의간소화:Karnaughmap(K-map)115
4.2.12개의입력117
4.2.23개의입력119
4.2.3Don’tCare조건122
4.2.44개의입력123
4.2.5Don’tCare실용적인예제127
4.2.6DualK-Map131
4.2.7입력이4개보다많은경우133
4.2.8NAND게이트134
4.3조합논리회로실습136
4.3.1다양한시뮬레이션예제139
4.3.2회로제작실습문제140
4.4디지털부품141
4.4.1작동구동신호(EnablingLines)141
4.4.2멀티플렉서(multiplexer)와디-멀티플렉서(de-multiplexer)143
4.4.3이진디코더(binarydecoder)와이진인코더(binaryencoder)146

CHAPTER5순서논리회로(순차논리회로)153
5.1Stable(안정)/Unstable(불안정)155
5.1.1SRlatch156
5.1.2SRflip-flop160
5.2다양한종류의플립플랍167
5.2.1SR플립플랍167
5.2.2JK플립플랍169
5.2.3D플립플랍170
5.2.4T플립플랍172
5.3순서논리회로를만들자:카운터(counter)회로예제173
5.3.1비동기식카운터174
5.3.2동기식카운터177
5.4순서논리회로실습180
5.4.1프로그램사용법익히기180
5.4.2플립플랍의사용예181
5.4.3비동기식카운터182
5.4.4동기식카운터183

PART2하드웨어관점에서의컴퓨터구조
CHAPTER6컴퓨터하드웨어189
6.1하드웨어구성요소191
6.2중앙처리장치(CPU:CentralProcessingUnit)192
6.2.1레지스터(registers)193
6.2.2산술/논리연산장치(ArithmeticandLogicUnit:ALU)200
6.2.3제어장치(controlunit)215
6.2.4파이프라이닝225
6.2.5CISC/RISC226
6.3버스(bus)228
6.4기억(저장)장치231
6.4.1내부메모리(internalmemory)232
6.4.2외부메모리(externalmemory/보조기억장치)238
6.4.3캐쉬메모리(cachememory)243
6.5입출력장치(I/ODevice)249
6.5.1입출력장치250
6.5.2입출력장치의제어방식255
6.5.3인터럽트258

CHAPTER7기계어프로그래밍을통한컴퓨터구조이해265
7.1가상머신의구조267
7.1.1Pep/8가상머신267
7.1.2레지스터269
7.1.3메인메모리270
7.1.4입출력장치271
7.2기계어(machinelanguage)와어셈블리언어(assemblylanguage)272
7.2.1고급언어의명령문의기본적구조273
7.2.2기계어273
7.2.3어셈블리언어288
7.3명령어집합311
7.3.1명령어의구성312
7.3.2연산자코드(op-code)312
7.3.3명령어의형식313
7.3.4피연산자의주소지정방식317

PART3또다른컴퓨터들…
CHAPTER8가상머신(VirtualMachines)331
8.1NOX:안드로이드가상머신333
8.2VirtualBox335
8.3자바가상머신341

CHAPTER9병렬컴퓨터(parallelcomputer)349
9.1단일프로세서/멀티프로세서351
9.2병렬컴퓨터종류356
9.3OpenMP를이용한병렬프로그래밍358
9.3.1OpenMP개발환경구축362
9.3.2OpenMP를이용한실제예제363

CHAPTER10클라우드컴퓨팅(CloudComputing)365
10.1클라우드컴퓨팅주요기술368
10.2GoogleDrive서비스(SaaS)369
10.3GoogleComputeEngine(PaaS)372
10.4개발자를위한가상머신:클라우드9(PaaS)379
INDEX383