The Architecture of Computer Hardware, Systems Software and Networking is designed help students majoring in information technology (IT) and information systems (IS) understand the structure and operation of computers and computer-based devices. Requiring only basic computer skills, this accessible textbook introduces the basic principles of system architecture and explores current technological practices and trends using clear, easy-to-understand language. Throughout the text, numerous relatable examples, subject-specific illustrations, and in-depth case studies reinforce key learning points and show students how important concepts are applied in the real world.
This fully-updated sixth edition features a wealth of new and revised content that reflects today’s technological landscape. Organized into five parts, the book first explains the role of the computer in information systems and provides an overview of its components. Subsequent sections discuss the representation of data in the computer, hardware architecture and operational concepts, the basics of computer networking, system software and operating systems, and various interconnected systems and components. Students are introduced to the material using ideas already familiar to them, allowing them to gradually build upon what they have learned without being overwhelmed and develop a deeper knowledge of computer architecture.
Table of Contents
Preface xxiii
About the Authors xxix
Part I An Overview of Computer Systems
1 Computers and Systems 4
1.0 Introduction 5
1.1 The Starting Point 8
1.2 Components of the Computer System 10
The Hardware Component 13
The Software Component 15
The Communication Component 17
The Computer System 17
1.3 The Concept of Virtualization 19
1.4 Protocols and Standards 20
1.5 Overview of This Book 21
1.6 A Brief Architectural History of the Computer 22
Early Work 23
Computer Hardware 24
Operating Systems 27
Communication, Networks, and the Internet 31
Summary and Review 32
For Further Reading 33
Key Concepts and Terms 33
Reading Review Questions 33
Exercises 34
2 An Introduction to System Concepts and Systems Architecture 36
2.0 Introduction 37
2.1 The General Concept of Systems 37
2.2 IT System Architectures 44
The Role of the System Architect 46
Summary and Review 48
For Further Reading 48
Key Concepts and Terms 49
Reading Review Questions 49
Exercises 49
Part II Data in the Computer
3 Number Systems 52
3.0 Introduction 53
3.1 Numbers as a Physical Representation 53
3.2 Counting in Different Bases 54
3.3 Performing Arithmetic in Different Number Bases 59
3.4 Numeric Conversion Between Number Bases 63
Alternative Conversion Methods 65
3.5 A Special Conversion Case - Number Bases That Are Related 67
3.6 Fractions 68
Fractional Conversion Methods 71
3.7 Mixed Number Conversions 73
Summary and Review 73
For Further Reading 74
Key Concepts and Terms 74
Reading Review Questions 74
Exercises 75
4 Data Formats 78
4.0 Introduction 79
4.1 General Considerations 79
4.2 Alphanumeric Character Data 82
4.3 Visual Data 88
Bitmap Images 89
Object Images 93
Representing Characters as Images 96
Video Images 96
4.4 Audio Data 97
4.5 Data Compression 100
4.6 Page Description Languages 102
4.7 Internal Computer Data Format 102
Numerical Character to Integer Conversion 104
Summary and Review 105
For Further Reading 106
Key Concepts and Terms 106
Reading Review Questions 106
Exercises 107
5 Representing Numerical Data 110
5.0 Introduction 111
5.1 Unsigned Binary and Binary-Coded Decimal Representations 111
5.2 Representations for Signed Integers 115
Sign-and-Magnitude Representation 115
Nine’s Decimal and 1’s Binary Complementary Representations 117
Ten’s Complement and 2’s Complement 124
Overflow and Carry Conditions 126
Other Bases 127
Summary of Rules for Complementary Numbers 128
5.3 Real Numbers 128
A Review of Exponential Notation 128
Floating Point Format 130
Normalization and Formatting of Floating Point Numbers 133
A Programming Example 135
Floating Point Calculations 136
Floating Point in the Computer 139
Conversion between Base 10 and Base 2 141
5.4 Programming Considerations 142
Summary and Review 143
For Further Reading 144
Key Concepts and Terms 144
Reading Review Questions 144
Exercises 145
Part III Computer Architecture and Hardware Operation
6 The Little Man Computer 152
6.0 Introduction 153
6.1 Layout of the Little Man Computer 154
6.2 Operation of the LMC 154
6.3 A Simple Program 156
6.4 An Extended Instruction Set 157
6.5 The Instruction Cycle 160
6.6 A Note Regarding Computer Architectures 162
Summary and Review 163
Key Concepts and Terms 163
Reading Review Questions 164
Exercises 164
7 The CPU and Memory 166
7.0 Introduction 167
7.1 The Components of the CPU 168
7.2 The Concept of Registers 169
7.3 The Memory Unit 171
The Operation of Memory 171
Memory Capacity and Addressing Limitations 175
Primary Memory Characteristics and Implementation 176
7.4 The Fetch-Execute Instruction Cycle 178
7.5 Classification of Instructions 181
Data Movement Instructions (load, store, and Other Moves) 183
Arithmetic Instructions 183
Boolean Logic Instructions 184
Single Operand Manipulation Instructions 184
Bit Manipulation Instructions 184
Shift and Rotate Instructions 185
Program Control Instructions 186
Stack Instructions 187
Multiple Data Instructions 189
Other Instructions 190
7.6 Instruction Word Formats 190
7.7 Instruction Word Requirements and Constraints 192
Summary and Review 195
For Further Reading 195
Key Concepts and Terms 195
Reading Review Questions 196
Exercises 197
8 CPU and Memory: Design, Enhancement, and Implementation 200
8.0 Introduction 201
8.1 CPU Architectures 202
Overview 202
Traditional Modern Architectures 202
8.2 CPU Features and Enhancements 203
Introduction 203
Fetch-Execute Cycle Timing Issues 204
A Model for Improved CPU Performance 206
Scalar and Superscalar Processor Organization 210
8.3 Memory Enhancements 213
Wide Path Memory Access 214
Memory Interleaving 214
Cache Memory 215
8.4 The Compleat Modern Superscalar CPU 219
8.5 Multiprocessing 221
8.6 A Few Comments on Implementation 225
Summary and Review 225
For Further Reading 226
Key Concepts and Terms 227
Reading Review Questions 227
Exercises 228
9 Input/Output and Buses 230
9.0 Introduction 231
9.1 Characteristics of Typical I/O Devices 232
9.2 Programmed I/O 237
9.3 Interrupts 239
Servicing Interrupts 239
The Uses of Interrupts 241
Multiple Interrupts and Prioritization 245
9.4 Direct Memory Access 249
9.5 I/O Controllers 252
9.6 Buses 254
Bus Characteristics 254
Summary and Review 258
For Further Reading 259
Key Concepts and Terms 259
Reading Review Questions 259
Exercises 260
10 Computer Peripherals 262
10.0 Introduction 263
10.1 The Hierarchy of Storage 264
10.2 Solid-State Memory 266
10.3 Magnetic Disks 267
Disk Arrays 272
10.4 Optical Disk Storage 274
10.5 Magnetic Tape 276
10.6 Displays 277
Basic Display Design 277
Graphical Processing Units (GPUs) 279
Liquid Crystal Display Technology 282
OLED Display Technology 283
10.7 Printers 284
Laser Printers 285
Inkjet Printers 285
10.8 User Input Devices 286
Keyboards 287
Pointing Devices 287
Alternative Sources of Alphanumeric Input 288
Scanners 291
Multimedia Input 291
Mobile Devices 292
10.9 Network Communication Devices 293
Summary and Review 293
For Further Reading 294
Key Concepts and Terms 294
Reading Review Questions 295
Exercises 295
11 Computer System Organization 298
11.0 Introduction 299
11.1 Putting the Pieces Together 300
11.2 System Architecture 305
Basic System Interconnection Requirements 305
Bus I/O 307
Channel Architecture 311
Blurring the Line 313
Summary and Review 313
For Further Reading 313
Key Concepts and Terms 314
Reading Review Questions 314
Exercises 314
Part IV Networks, Data Communications, and Networked Computer Systems
12 Networks and Data Communications - An Overview 318
12.0 Introduction 319
12.1 The Impact of Networking on Business Processes and User Access to Knowledge and Services 320
12.2 A Simple View of Data Communications 321
12.3 Basic Data Communication Concepts 324
Messages 324
Packets 325
General Channel Characteristics 326
12.4 Networks 330
Network Topology 330
Types of Networks 334
Network Interconnection 347
12.5 Standards 351
Summary and Review 352
For Further Reading 352
Key Concepts and Terms 352
Reading Review Questions 353
Exercises 353
13 Ethernet and T CP/IP Networking 356
13.0 Introduction 357
13.1 TCP/IP, OSI, and Other Communication Protocol Models 357
13.2 Program Applications versus Network Applications 362
13.3 The Physical and Data Link Layers 362
The Physical Layer 363
The Data Link Layer 364
Hub-Based Ethernet 366
Switched Ethernet 366
Wireless Ethernet (Wi-Fi) 367
13.4 The Network Layer 368
13.5 The Transport Layer 372
13.6 IP Addresses 376
IPv4 and DHCP 376
IPv6 379
13.7 Domain Names and DNS Services 380
13.8 Quality of Service 385
13.9 Network Security 386
Physical and Logical Access Restriction 386
Encryption 387
13.10 Alternative Protocols 387
A Comparison of TCP/IP and OSI 388
Other Protocol Suites and Components 388
SCSI Over IP 389
Cellular Technology 389
MPLS 390
Summary and Review 390
For Further Reading 391
Key Concepts and Terms 391
Reading Review Questions 392
Exercises 392
14 Communication Channel T echnology 396
14.0 Introduction 397
14.1 Communication Channel Technology 398
14.2 The Fundamentals of Signaling Technology 400
Analog Signaling 401
Digital Signaling 411
Modems 416
Two Examples of Alternative Advanced Technologies 416
14.3 Transmission Media and Signaling Methods 418
14.4 Wireless Technologies 420
Cellular Technology 421
Wi-Fi 421
Bluetooth 421
Summary and Review 422
For Further Reading 423
Key Concepts and Terms 423
Reading Review Questions 423
Exercises 424
15 Modern Networked Computer Systems 426
15.0 Introduction 427
15.1 Distributed Systems 428
15.2 Client-Server Computing 430
15.3 Web-Based Computing 433
15.4 Peer-to-Peer Computing 435
15.5 Clusters 436
Overview 436
Classification and Configuration 437
Beowulf Clusters 438
15.6 Storage Area Networks 440
15.7 Cloud Computing 441
15.8 Supercomputing 443
Grid Computing 444
15.9 Networked Computer System Architecture Examples 444
Google: A System Architecture Example 445
Another Example: Facebook’s Application Architecture 448
Summary and Review 449
For Further Reading 450
Key Concepts and Terms 450
Reading Review Questions 450
Exercises 451
Part V The Software Component
16 Operating Systems: An Overview 454
16.0 Introduction 455
16.1 The Barebones Computer System 456
16.2 The Operating Systems Concept: An Introduction 457
16.3 Services and Facilities 463
User Interface and Command Execution Services 464
File Management 465
Input/Output Services 466
Process Control Management 467
Memory Management 468
Scheduling and Dispatch 468
Secondary Storage Management 471
Network and Communications Support Services 471
Security and Protection Services 472
System Administration Support 473
16.4 Organization 476
16.5 Types of Computer Systems 479
Summary and Review 483
For Further Reading 483
Key Concepts and Terms 483
Reading Review Questions 484
Exercises 484
17 The User View of Operating Systems 486
17.0 Introduction 487
17.1 Purpose of the User Interface 488
17.2 User Functions and Program Services 490
Program Execution 490
File Commands 491
Disk and Other I/O Device Commands 492
Security and Data Integrity Protection 492
Interuser Communication and Data Sharing Operations 493
System Status Information and User Administration 494
Program Services 495
17.3 Types of User Interface 495
The Command Line Interface 496
Batch System Commands 498
Graphical User Interfaces 499
Touchless Gesture- and Voice-Based Interfaces 504
Trade-Offs in the User Interface 505
Software Considerations 506
17.4 X Window and Other Graphics Display Methodologies 507
17.5 Command and Scripting Languages 510
The Elements of a Command Language 512
The Command Language Start-Up Sequence Files 512
17.6 Services to Programs 513
Summary and Review 515
For Further Reading 515
Key Concepts and Terms 515
Reading Review Questions 516
Exercises 516
18 File Management 518
18.0 Introduction 519
18.1 The Logical and Physical View of Files 519
18.2 The Role of the File Management System 524
18.3 Logical File Access Methods 528
Sequential File Access 529
Random Access 529
Indexed Access 530
18.4 Physical File Storage 531
Contiguous Storage Allocation 531
Noncontiguous Storage Allocation 532
Indexed Allocation 534
Free Space Management 537
Tape Allocation 539
Optical and Flash Drive Allocation 539
18.5 File Systems, Volumes, Disks, Partitions, and Storage Pools 539
18.6 The Directory Structure 542
Tree-Structured Directories 543
Acyclic-Graph Directories 545
18.7 Network File Access 548
18.8 File Protection 550
18.9 Journaling File Systems 551
Summary and Review 552
For Further Reading 552
Key Concepts and Terms 553
Reading Review Questions 553
Exercises 554
19 The Internal Operating System 556
19.0 Introduction 557
19.1 Fundamental OS Requirements 558
Example: A Simple Multitasking Operating System 559
19.2 Starting the Computer System: The Bootstrap 562
19.3 Processes and Threads 564
Process Creation 567
Process States 568
Threads 569
19.4 Basic Loading and Execution Operations 570
19.5 CPU Scheduling and Dispatching 572
Long-Term Scheduler 572
Short-Term Scheduler and Dispatcher 572
Nonpreemptive Scheduling Algorithms 575
Preemptive Short-Term Scheduling Algorithms 576
19.6 Memory Management 577
Memory Partitioning 578
19.7 Virtual Storage 579
Overview 579
Pages and Frames 580
The Concept of Virtual Storage 585
Page Faults 586
Working Sets and the Concept of Locality 588
Page Sharing 588
Page Replacement Algorithms 589
Thrashing 592
Page Table Implementation 592
Segmentation 595
Process Separation 596
19.8 Disk Scheduling 596
First-Come, First-Served Scheduling 597
Shortest Distance First Scheduling 597
Scan Scheduling 597
n-Step c-Scan Scheduling 598
19.9 Network Operating System Services 598
OS Protocol Support and Other Services 598
19.10 Other Operating System Issues 601
Deadlock 601
Other Issues 602
19.11 Virtual Machines 603
Summary and Review 605
For Further Reading 606
Key Concepts and Terms 606
Reading Review Questions 607
Exercises 608
Bibliography B-1
Index I-1