Cover image for Microsoft visual C++ :  introductory edition for educational use only
Title:
Microsoft visual C++ : introductory edition for educational use only
Personal Author:
Publication Information:
Harlow, England: Addison-Wesley, 2001
Physical Description:
1 CD-ROM ;$ 12 cm
ISBN:
9780201648591
General Note:
Accompanies text with the title Computer systems architecture : a networking approach :(QA76.9.A73 W55 2001)

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010005819 CP 1664 Open Access Computer File Compact Disk (Open Shelves)
Searching...
Searching...
30000004532622 CP 1664 Computer File Accompanies Open Access Book Compact Disc Accompanies Open Access Book
Searching...

On Order

Summary

Summary

This textbook for a two-semester introductory course in networked computer systems moves through digital logic, hardware, layers of software, networking, and operating systems. Williams (University of the West of England) emphasizes how software performance can be dependent on hardware features. The


Author Notes

Dr Rob Williams is Head of the Computer Systems Technology School at the University of the West of England. He currently specialises in real-time systems


Table of Contents

Prefacep. xiii
Recommended lab sessionsp. xix
Part 1 Basic functions and facilities of a computer
1 Introduction: the hardware--software interfacep. 3
1.1 Computer systems--the importance of networkingp. 4
1.2 Hardware and software--mutual dependencep. 5
1.3 Programming your way into hardware--VHDL, a language for electronic engineersp. 6
1.4 Systems administration--we all need to knowp. 9
1.5 Voice, image and data--technological convergencep. 9
1.6 Windowing interfaces--WIMPsp. 11
1.7 The global Internet--connecting all the networksp. 13
1.8 Using the PC--a case study; more reasons to study CSAp. 16
2 The von Neumann Inheritancep. 23
2.1 Base 2--the convenience of binary--10110011100011110000p. 24
2.2 Stored program control--general-purpose machinesp. 24
2.3 Instruction codes--machine action repertoirep. 26
2.4 Translation--compilers and assemblersp. 27
2.5 Linking--bringing it all togetherp. 28
2.6 Interpreters--executing high-level commandsp. 30
2.7 Code sharing and reuse--let's not write it all again!p. 31
2.8 Data codes--numeric and characterp. 32
2.9 The operating system--Unix and Windowsp. 36
2.10 Client--server computing--the way of the Netp. 39
2.11 Reconfigurable hardware--an alternative to fetch--executep. 41
3 Functional units and the fetch--execute cyclep. 47
3.1 The naming of parts--CPU, memory, IO unitsp. 48
3.2 The CPU fetch--execute cycle--high-speed tediump. 51
3.3 System bus--synchronous or asynchronous?p. 54
3.4 System clock--instruction cycle timingp. 58
3.5 Pre-fetching--early efforts to speed things upp. 60
3.6 Memory length--address widthp. 62
3.7 Endian-ness--Microsoft vs. Unix, or Intel vs. Motorola?p. 64
3.8 Simple input--output--parallel portsp. 66
4 Building computers from logic: the control unitp. 71
4.1 Electronic Lego and logic--the advantage of modular unitsp. 72
4.2 Basic logic gates--truth tables for AND, OR, XOR and NOTp. 73
4.3 Truth tables and multiplexers--a simple but effective design toolp. 74
4.4 Programmable logic--reconfigurable logic chipsp. 77
4.5 Traffic light controllers--impossible to avoid!p. 78
4.6 Circuit implementation from truth tables--some practical tipsp. 81
4.7 Decoder logic--essential for control units and memoriesp. 82
4.8 CPU control unit--the 'brain'p. 85
4.9 Washing machine controllers--a simple CUp. 85
4.10 RISC vs. CISC decoding--in search of faster computersp. 88
5 Building computers from logic: the ALUp. 95
5.1 De Morgan's equivalences--logical interchangeabilityp. 96
5.2 Binary addition--half adders, full adders, parallel addersp. 96
5.3 Binary subtraction--using two's complement integer formatp. 99
5.4 Binary shifting--barrel shifterp. 101
5.5 Integer multiplication--shifting and addingp. 103
5.6 Floating-point numbers--from very, very large to very, very smallp. 104
6 Building computers from logic: the memoryp. 115
6.1 Data storage--one bit at a timep. 116
6.2 Memory devices--memory modules for computersp. 118
6.3 Static memory--a lot of fast flip-flopsp. 119
6.4 Dynamic memory--a touch of analogue amid the digitalp. 120
6.5 DRAM refreshing--something else to dop. 122
6.6 Page access memories--EDO and SDRAMp. 122
6.7 Memory mapping--addressing and decodingp. 126
6.8 IO port mapping--integration vs. differentiationp. 129
7 The Intel Pentium CPUp. 135
7.1 The Pentium--a high-performance microprocessorp. 136
7.2 CPU registers--temporary store for data and address variablesp. 140
7.3 Instruction set--introduction to the basic Pentium setp. 145
7.4 Structure of instructions--how the CU sees itp. 147
7.5 CPU status flags--very short-term memoryp. 147
7.6 Addressing modes--building effective addressesp. 150
7.7 Execution pipelines--the RISC speedup techniquep. 152
7.8 Microsoft Developer Studio--using the debuggerp. 154
8 Subroutinesp. 163
8.1 The purpose of subroutines--saving space and effortp. 164
8.2 Return address--introducing the stackp. 165
8.3 Using subroutines--HLL programmingp. 166
8.4 The stack--essential to most operationsp. 168
8.5 Passing parameters--localizing a subroutinep. 169
8.6 Stack frame--all the local variablesp. 172
8.7 Supporting HLLs--special CPU facilities for dealing with subroutinesp. 175
8.8 Interrupt service routines--hardware-invoked subroutinesp. 175
8.9 Accessing operating system routines--late bindingp. 176
9 Simple input and outputp. 181
9.1 Basic IO methods--polling, interrupt and DMAp. 182
9.2 Peripheral interface registers--the programmer's viewpointp. 183
9.3 Polling--single-character IOp. 187
9.4 Interrupt processing--service on demandp. 192
9.5 Critical data protection--how to communicate with interruptsp. 200
9.6 Buffered IO--interrupt device driversp. 204
9.7 Direct memory access (DMA)--autonomous hardwarep. 205
9.8 Single-character IO--screen and keyboard routinesp. 207
10 Serial communicationsp. 215
10.1 Serial transmission--data, signals and timingp. 216
10.2 Timing synchronization--frequency and phasep. 217
10.3 Data codes and error control--parity, checksums, Hamming codes and CRCsp. 220
10.4 Flow control--hardware and software methodsp. 228
10.5 The 16550 UART--RS232p. 230
10.6 The serial mouse--COM1 rodentsp. 235
10.7 Serial ports--practical tips, avoiding the frustrationp. 237
10.8 USB--Universal Serial Busp. 238
10.9 Modems--modulating carrier wavesp. 241
11 Parallel connectionsp. 249
11.1 Parallel interfaces--better performancep. 250
11.2 Centronics--more than a printer port but less than a busp. 250
11.3 SCSI--the Small Computer Systems Interfacep. 253
11.4 IDE--Intelligent Drive Electronicsp. 257
11.5 AT/ISA--a computer standards success storyp. 258
11.6 PCI--Peripheral Component Interconnectionp. 259
11.7 Plug-and-Play--automatic configurationp. 262
11.8 PCMCIA--Personal Computer Memory Card International Associationp. 265
12 The memory hierarchyp. 271
12.1 Levels of performance--you get what you pay forp. 272
12.2 Localization of access--exploiting repetitionp. 273
12.3 Instruction and data caches--matching memory to CPU speedp. 277
12.4 Cache mapping--direct or associativep. 281
12.5 Virtual memory--segmentation and demand pagingp. 285
12.6 Address formulation--when, where and how muchp. 289
12.7 Hard disk usage--parameters, access scheduling and data arrangementp. 290
12.8 Performance improvement--blocking, caching, defragmentation, scheduling, RAM diskp. 294
12.9 Optical discs--CD-DA, CD-ROM, CD-RW and DVDsp. 296
12.10 DVD--Digital Versatile Discp. 300
12.11 Floppy disks--waiting to be redevelopedp. 300
Part 2 Networking and increased complexity
13 The programmer's viewpointp. 307
13.1 Different viewpoints--different needsp. 308
13.2 Application user--office packagesp. 309
13.3 Systems administration--software installation and maintenancep. 311
13.4 HLL programmer--working with Java, C++ or BASICp. 315
13.5 Systems programming--assembler and Cp. 318
13.6 Hardware engineer--design and hardware maintenancep. 321
13.7 Layered virtual machines--hierarchical descriptionp. 322
13.8 Assemblers--simple translatorsp. 324
13.9 Compilers--translation and morep. 325
14 Local area networksp. 331
14.1 Reconnecting the users--email, printers and databasep. 332
14.2 PC network interface--cabling and interface cardp. 336
14.3 Ethernet--carrier sense, multiple access/collision detectp. 340
14.4 LAN addressing--logical and physical schemesp. 344
14.5 Host names--another layer of translationp. 348
14.6 Layering and encapsulation--TCP/IP software stackp. 348
14.7 Networked file systems--sharing files across a networkp. 349
14.8 Interconnecting networks--gatewaysp. 351
14.9 Socket programming--an introduction to WinSockp. 351
15 Wide area networksp. 359
15.1 The Internet--originsp. 360
15.2 TCP/IP--the essential protocolsp. 362
15.3 TCP--handling errors and flow controlp. 365
15.4 IP routing--how packets find their wayp. 368
15.5 DNS--distributed name databasep. 374
15.6 World Wide Web--the startp. 376
15.7 Browsing the Web--Netscape Navigatorp. 378
15.8 HTTP--another protocolp. 380
15.9 Search engines--DEC AltaVistap. 383
15.10 Open Systems Interconnect--an idealized schemep. 384
16 Other networksp. 391
16.1 The PSTN--telephonesp. 392
16.2 Cellnets--providers of mobile communicationsp. 398
16.3 ATM--asynchronous transfer modep. 407
16.4 Messaging--radio paging and packet radio networksp. 411
16.5 ISDN--totally digitalp. 414
16.6 DSL--digital subscriber linep. 417
16.7 Cable television--facilities for data transmissionp. 418
17 Introduction to operating systemsp. 425
17.1 Historic origins--development of basic functionsp. 426
17.2 Unix--a landmark operating systemp. 429
17.3 Outline structure--modularizationp. 431
17.4 Process management--initialization and dispatchingp. 432
17.5 Scheduling decisions--time-slicing, demand preemption or cooperativep. 436
17.6 Task communication--pipes and redirectionp. 440
17.7 Exclusion and synchronization--semaphores and signalsp. 442
17.8 Memory allocation--malloc ( ) and free ( )p. 448
17.9 User interface--GUIs and shellsp. 449
17.10 Input--output management--device handlersp. 450
18 Windows NTp. 457
18.1 Windows GUIs--responding to a needp. 458
18.2 Win32--the preferred user APIp. 460
18.3 Processes and threads--multitaskingp. 461
18.4 Memory management--virtual memory implementationp. 462
18.5 NT Registry--centralized administrative databasep. 462
18.6 NTFS--Windows NT file systemp. 464
18.7 File access--ACLs, permissions and securityp. 465
18.8 Sharing software components--OLE, DDE and COMp. 467
18.9 Windows NT as a mainframe--Winframe terminal serverp. 468
19 Filing systemsp. 473
19.1 Data storage--file systems and databasesp. 474
19.2 The PC file allocation table and the directoryp. 481
19.3 Unix inodes--they do it differentlyp. 484
19.4 Microsoft NTFS--complexity and securityp. 489
19.5 RAID configuration--more security for the disk subsystemp. 490
19.6 File security--access controlsp. 492
19.7 CD portable file system--multi-session contents listsp. 493
20 Visual outputp. 499
20.1 Computers and graphics--capture, storage, processing and redisplayp. 500
20.2 PC graphics adapter cards--graphics coprocessorsp. 506
20.3 Laser printers--this is mechatronics!p. 512
20.4 Adobe PostScript--a page description languagep. 513
20.5 WIMPs--remodelling the computerp. 517
20.6 Win32--graphical API and morep. 520
20.7 The X Window system--enabling distributed processingp. 520
20.8 MMX technology--assisting graphical calculationsp. 522
21 RISC processorsp. 527
21.1 Justifying RISC--increased instruction throughputp. 528
21.2 Pipeline techniques--more parallel operationsp. 533
21.3 Superscalar methods--parallel parallelismp. 534
21.4 Register files--many more CPU registersp. 535
21.5 Branch prediction methods--maintaining the pipelinesp. 537
21.6 Compiler support--an essential part of RISCp. 538
21.7 Sun SPARC--scalar processor architecture as RISCp. 539
21.8 Intel Itanium--the next generationp. 540
21.9 Future processor design--debatep. 545
22 The Motorola MC68300 microcontrollerp. 549
22.1 The MC68300--an example microcontroller and CISC processorp. 550
22.2 MC68000 CPU--the CPU registers and their usep. 552
22.3 MC68000 status register--communication flagsp. 554
22.4 Addressing modes--more power and complexityp. 555
22.5 CISC designs--principal featuresp. 558
22.6 MC68000 memory--family variationsp. 560
Appendix Microsoft Visual C++ Developer Studiop. 567
Glossaryp. 583
Answers to end of chapter questionsp. 599
Referencesp. 645
Indexp. 647