100% found this document useful (3 votes)
26 views

Understanding Operating Systems, 8th ed. 8th Edition Ann Mchoes - eBook PDF download

The document is a promotional material for various eBooks, including 'Understanding Operating Systems, 8th Edition' by Ann McIver McHoes and Ida M. Flynn, along with other educational titles. It provides download links for each book and emphasizes the availability of study tools and resources. Additionally, it contains copyright information and details about the publisher, Cengage Learning.

Uploaded by

bloodshelphc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
26 views

Understanding Operating Systems, 8th ed. 8th Edition Ann Mchoes - eBook PDF download

The document is a promotional material for various eBooks, including 'Understanding Operating Systems, 8th Edition' by Ann McIver McHoes and Ida M. Flynn, along with other educational titles. It provides download links for each book and emphasizes the availability of study tools and resources. Additionally, it contains copyright information and details about the publisher, Cengage Learning.

Uploaded by

bloodshelphc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 66

Understanding Operating Systems, 8th ed.

8th
Edition Ann Mchoes - eBook PDF download

https://ebookluna.com/download/understanding-operating-
systems-8th-ed-ebook-pdf/

Download full version ebook from https://ebookluna.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookluna.com
to discover even more!

Medical Terminology for Health Professions 8th Edition Ann Ehrlich - eBook
PDF

https://ebookluna.com/download/medical-terminology-for-health-professions-
ebook-pdf/

Lawrie's Meat Science, 8th ed 8th Edition Fidel Toldra - eBook PDF

https://ebookluna.com/download/lawries-meat-science-8th-ed-ebook-pdf/

Foundations Of Marketing 8th Ed. 8th Edition William M. Pride - eBook PDF

https://ebookluna.com/download/foundations-of-marketing-8th-ed-ebook-pdf/

Hazzard's Geriatric Medicine and Gerontology, 8th ed 8th Edition Kevin P.


High - eBook PDF

https://ebookluna.com/download/hazzards-geriatric-medicine-and-
gerontology-8th-ed-ebook-pdf/
C++ Programming 8th ed Edition D. S - eBook PDF

https://ebookluna.com/download/c-programming-ebook-pdf/

Choices: Interviewing and Counselling Skills for Canadians 8th 8th ed


Edition Bob Shebib - eBook PDF

https://ebookluna.com/download/choices-interviewing-and-counselling-skills-
for-canadians-8th-ebook-pdf/

Sams Teach yourself Java in 24 Hours [8th Ed] 8th Edition Rogers Cadenhead
- eBook PDF

https://ebookluna.com/download/sams-teach-yourself-java-in-24-hours-8th-ed-
ebook-pdf/

Modern Operating Systems, 5th Global Edition Andrew Tanenbaum - eBook PDF

https://ebookluna.com/download/modern-operating-systems-5th-global-edition-
ebook-pdf/

Survey of Operating Systems 5th Edition Jane Holcombe - eBook PDF

https://ebookluna.com/download/survey-of-operating-systems-ebook-pdf/
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Buy. Rent. Access.

Access student data files and other study


tools on cengagebrain.com.

For detailed instructions visit


http://s-solutions.cengage.com/ctdownloads/

Store your Data Files on a USB drive for maximum efficiency in


organizing and working with the files.

Macintosh users should use a program to expand WinZip or PKZip archives.


Ask your instructor or lab coordinator for assistance.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Understanding Operating
Systems Eighth Edition

Ann McIver McHoes


Ida M. Flynn

Australia • Canada • Mexico • Singapore • Spain • United Kingdom • United States

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Understanding Operating Systems, © 2018 Cengage Learning®
Eighth Edition ALL RIGHTS RESERVED. No part of this work covered by the copyright
Ann McIver McHoes & Ida M. Flynn herein may be reproduced or distributed in any form or by any means,
except as permitted by U.S. copyright law, without the prior written
Senior Product Manager: Kathleen McMahon ­permission of the copyright owner.
Product Team Leader: Kristin McNary
Associate Product Manager: Kate Mason For product information and technology assistance, contact us at
Cengage Learning Customer & Sales Support, 1-800-354-9706
Associate Content Development
For permission to use material from this text or product,
Manager: Alyssa Pratt
submit all requests online at www.cengage.com/permissions
Production Director: Patty Stephan Further permissions questions can be emailed to
permissionrequest@cengage.com
Senior Content Project Manager: Jennifer
Feltri-George
Manufacturing Planner: Julio Esperas Library of Congress Control Number: 2016962900
Art Director/Cover Design: Diana Graham ISBN: 978-1-305-67425-7
Production Service/Composition: SPi Global
Cengage Learning
Cover Photos: sumkin/Shutterstock.com 20 Channel Center Street
Boston, MA 02210
USA

Unless otherwise noted all items © Cengage Learning.

Cengage Learning is a leading provider of customized learning solutions


with employees residing in nearly 40 different countries and sales in more
than 125 countries around the world. Find your local representative at
www.cengage.com.

Cengage Learning products are represented in Canada by Nelson


Education, Ltd.
To learn more about Cengage Learning Solutions, visit www.cengage.com
Purchase any of our products at your local college store or at our preferred
online store www.cengagebrain.com

Printed in the United States of America


Print Number: 01 Print Year: 2017
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Dedicated to two inspiring colleagues:
Ida Moretti Flynn, award-winning teacher and a wonderful friend;
her love for teaching lives on.
Bob Kleinmann, superb editor and soul mate – not in that order.
AMM

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Contents
Part One Operating Systems Concepts 1

Chapter 1 Introducing Operating Systems 3


What Is an Operating System? 4
Operating System Software 4
Main Memory Management 6
Processor Management 7
Device Management 8
File Management 9
Network Management 9
User Interface 10
Cooperation Issues 11
Cloud Computing 12
An Evolution of Computing Hardware 13
Types of Operating Systems 14
Timeline of Operating Systems Development 17
1940s 17
1950s 18
1960s 19
1970s 19
1980s 20
1990s 20
2000s 20
2010s 21
Role of the Software Designer 22
Conclusion 23
Key Terms 23
To Explore More 25
Exercises 25

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203

iv
Contents
Chapter 2 Early Memory Management Systems 29
Single-User Contiguous Scheme 30
Fixed Partitions 31
Dynamic Partitions 34
Best-Fit and First-Fit Allocation 36
Deallocation 41
Case 1: Joining Two Free Blocks 41
Case 2: Joining Three Free Blocks 42
Case 3: Deallocating an Isolated Block 43
Relocatable Dynamic Partitions 45
A Machine-Level Look at Relocation 45
The Essential Role of Registers 47
The Benefits of Compaction 49
Conclusion 49
Key Terms 50
To Explore More 51
Exercises 51

Chapter 3 Memory Management Includes Virtual Memory 59


Paged Memory Allocation 60
Page Displacement 62
Pages Versus Page Frames 65
Demand Paging Memory Allocation 67
Page Replacement Policies and Concepts 71
First-In First-Out 72
Least Recently Used 74
Clock Replacement Variation 75
Bit Shifting Variation 75
The Mechanics of Paging 76
The Importance of the Working Set 78
Segmented Memory Allocation 81
Segmented/Demand Paged Memory Allocation 84
Virtual Memory 87
Cache Memory 89
Conclusion 93
Key Terms 94
To Explore More 96
Exercises 96

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
v
Contents

Chapter 4 Processor Management 103


Definitions 104
About Multi-Core Technologies 106
Scheduling Submanagers 107
Process Scheduler 108
Job and Process States 111
Thread States 112
Control Blocks 113
Control Blocks and Queuing 113
Scheduling Policies and Algorithms 116
Scheduling Algorithms 117
First-Come, First-Served 117
Shortest Job Next 119
Priority Scheduling 121
Shortest Remaining Time 121
Round Robin 124
Multiple-Level Queues 126
Earliest Deadline First 128
Managing Interrupts 130
Conclusion 131
Key Terms 132
To Explore More 135
Exercises 135

Chapter 5 Process Synchronization 141


Consequences of Poor Synchronization 142
Modeling Deadlocks with Directed Graphs 143
Several Examples of a Deadlock 144
Necessary Conditions for Deadlock 150
Understanding Directed Graphs 151
Strategies for Handling Deadlocks 153
Prevention 154
Avoidance 156
Detection 158
Recovery 160
Starvation 161
Conclusion 164
Key Terms 164

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
vi
Contents
To Explore More 166
Exercises 166

Chapter 6 Concurrent Processes 171


What Is Parallel Processing? 172
Levels of Multiprocessing 174
Introduction to Multi-Core Processors 174
Typical Multiprocessing Configurations 175
Master/Slave Configuration 175
Loosely Coupled Configuration 176
Symmetric Configuration 177
Process Synchronization Software 178
Test-and-Set 179
WAIT and SIGNAL 180
Semaphores 180
Process Cooperation 183
Producers and Consumers 183
Readers and Writers 186
Concurrent Programming 187
Amdahl’s Law 188
Order of Operations 189
Applications of Concurrent Programming 191
Threads and Concurrent Programming 196
Two Concurrent Programming Languages 197
Ada Language 197
Java 198
Conclusion 200
Key Terms 201
To Explore More 202
Exercises 202

Chapter 7 Device Management 207


Types of Devices 208
Management of I/O Requests 209
I/O Devices in the Cloud 211
Sequential Access Storage Media 211
Direct Access Storage Devices 214
Magnetic Disk Storage 214
Access Times 216
Optical Disc Storage 225

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
vii
Contents

CD and DVD Technology 227


Blu-ray Disc Technology 229
Solid State Storage 229
Flash Memory Storage 229
Solid State Drives 230
Components of the I/O Subsystem 231
Communication Among Devices 235
RAID 237
Level Zero 239
Level One 241
Level Two 241
Level Three 242
Level Four 243
Level Five 243
Level Six 243
Nested RAID Levels 244
Conclusion 245
Key Terms 246
To Explore More 249
Exercises 249

Chapter 8 File Management 255


The File Manager 256
File Management in the Cloud 257
Definitions 257
Interacting with the File Manager 259
Typical Volume Configuration 260
Introducing Subdirectories 262
File-Naming Conventions 263
File Organization 266
Record Format 266
Physical File Organization 267
Physical Storage Allocation 270
Contiguous Storage 271
Noncontiguous Storage 272
Indexed Storage 273
Access Methods 275
Sequential Access 276
Direct Access 276

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
viii
Contents
Levels in a File Management System 277
Access Control Verification Module 280
Access Control Matrix 280
Access Control Lists 281
Capability Lists 282
Data Compression 283
Text Compression 283
Image and Sound Compression 284
Conclusion 285
Key Terms 285
To Explore More 287
Exercises 287

Chapter 9 Network Organization Concepts 293


Definitions and Concepts 294
Network Topologies 296
Star 296
Ring 297
Bus 298
Tree 300
Hybrid 300
Network Types 301
Personal Area Network 301
Local Area Network 302
Metropolitan Area Network 303
Wide Area Network 303
Wireless Local Area Network 303
Software Design Issues 304
Addressing Conventions 305
Routing Strategies 305
Connection Models 307
Conflict Resolution 310
Transport Protocol Standards 314
OSI Reference Model 314
TCP/IP Model 318
Conclusion 320
Key Terms 321
To Explore More 322
Exercises 322

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
ix
Contents

Chapter 10 Management of Network Functions 325


Comparison of Two Networking Systems 326
NOS Development 329
Important NOS Features 329
Major NOS Functions 330
DO/S Development 331
Memory Management 332
Process Management 333
Device Management 339
File Management 342
Network Management 345
Conclusion 348
Key Terms 348
To Explore More 349
Exercises 349

Chapter 11 Security and Ethics 353


Role of the Operating System in Security 354
System Survivability 354
Levels of Protection 355
Backup and Recovery 356
Security Breaches 356
Unintentional Data Modifications 356
Intentional System Attacks 357
System Protection 364
Antivirus Software 365
Firewalls 366
Authentication Protocols 367
Encryption 369
Password Management 370
Password Construction 371
Typical Password Attacks 372
Password Alternatives 372
Password Salting 374
Social Engineering 374
Ethics 375
Conclusion 377
Key Terms 378
To Explore More 379
Exercises 380
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
x
Contents
Chapter 12 System Management 383
Evaluating an Operating System 384
Cooperation Among Components 384
Role of Memory Management 385
Role of Processor Management 385
Role of Device Management 386
Role of File Management 388
Role of Network Management 389
Measuring System Performance 390
Measurement Tools 391
Feedback Loops 393
Patch Management 395
Patching Fundamentals 397
Software to Manage Deployment 399
Timing the Patch Cycle 399
System Monitoring 400
Conclusion 403
Key Terms 403
To Explore More 404
Exercises 404

Part Two Operating Systems in Practice 409

Chapter 13 UNIX Operating Systems 411


Brief History 412
The Evolution of UNIX 414
Design Goals 415
Memory Management 416
Process Management 418
Process Table Versus User Table 419
Process Synchronization 420
Device Management 423
Device Classifications 424
Device Drivers 425
File Management 426
File Naming Conventions 427
Directory Listings 429
Data Structures 431
User Interfaces 432
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xi
Contents

Script Files 434


Redirection 434
Pipes 436
Filters 437
Additional Commands 438
Conclusion 441
Key Terms 441
To Explore More 442
Exercises 442

Chapter 14 Windows Operating Systems 445


Brief History 446
Design Goals 447
Extensibility 447
Portability 448
Reliability 449
Compatibility 450
Performance 450
Memory Management 451
User Mode Features 452
Virtual Memory Implementation 453
Processor Management 456
Device Management 457
File Management 462
Network Management 465
Security Management 466
Security Concerns 466
Security Terminology 468
User Interfaces 469
Menu-Driven Interface 469
Command-Line Interface 471
Conclusion 474
Key Terms 474
To Explore More 475
Exercises 476

Chapter 15 Linux Operating Systems 479


Brief History 480
Design Goals 482
Memory
Copyright 2018 Cengage Management
Learning. 484
All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xii
Contents
Processor Management 487
Process Table Organization 487
Process Synchronization 488
Process Management 488
Device Management 490
Device Classifications 490
Device Drivers 491
Device Classes 492
File Management 494
File Organization 494
Filename Conventions 494
Updates and New Versions 496
User Interfaces 497
System Monitor 498
System Logs 499
File Listings 500
Conclusion 502
Key Terms 502
To Explore More 503
Exercises 503

Chapter 16 Android Operating Systems 507


Brief History 508
Design Goals 511
Memory Management 511
Processor Management 513
Manifest, Activity, Task, and Intent 513
Activity States 514
Device Management 517
Screen Requirements 517
Battery Management 519
File Management 520
Security Management 521
Permissions 521
Device Access Security 522
Encryption Options 524
Bring Your Own Devices 524
User Interface 525
Touch Screen Controls 526
User Interface Elements 526
Copyright 2018 Cengage Learning. All Rights Conclusion 528
Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xiii
Contents

Key Terms 529


To Explore More 530
Exercises 530

Appendix
Appendix A Algorithms 533
Appendix B ACM Code of Ethics and 539
Professional Conduct

Glossary 543
Bibliography 571
Index 577

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xiv
Preface
Is this book for you? In these pages, we explain a very technical subject in a not-
so-technical manner, putting the concepts of operating systems into words that many
­readers can quickly grasp.

For those who are new to the subject, this text demonstrates what operating systems
are, what they do, how they do it, how their performance can be evaluated, and how
they compare with each other. Throughout the textbook we describe the overall function
of many unseen parts of the operating system and lead readers to additional resources
where they can find more detailed information, if they so desire.

For readers with more technical backgrounds, this text introduces the subject concisely,
describing the complexities of operating systems without going into intricate detail. One
might say this book leaves off where other operating system textbooks begin.

To do so, we’ve made some assumptions about our audiences. First, we assume the
readers have some familiarity with computing systems. Second, we assume they have a
working knowledge of how to use an operating system and how it interacts with them.
We recommend (although we don’t require) that readers be familiar with at least one
operating system. In the few places where, in previous editions, we used pseudocode
to illustrate the inner workings of the operating systems, that code can be found in the
Appendix. By moving these algorithms out of individual chapters, we have simplified
our explanations of some complex events.

Although it is more difficult to understand how operating systems work than to memo-
rize the details of a single operating system, gaining this understanding is a longer-lasting
achievement, paying off in the long run because it allows one to adapt as technology
changes—as, inevitably, it does.

Therefore, regardless of the level of expertise that the reader brings to the subject, the
purpose of this book is to give computer users a solid background in the basics of oper-
ating systems, their functions and goals, and how they interact and interrelate.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203

xv
Preface

Structure and Features


The organization of this book addresses a recurring problem with textbooks about
technologies that continue to change—constant advances in evolving subject matter
can make textbooks immediately outdated. To address this problem, our material is
divided into two parts: first, the concepts, which do not change quickly, and second,
the specifics of operating systems, which change dramatically over the course of years
and even months. Our goal is to give readers the ability to apply their knowledge year
after year, realizing that, although a command, or series of commands, used by one
operating system may be different from another, the goals are the same and the func-
tions of competing operating systems are also the same. It is for that reason, that we
have structured this book in two parts.

Part One (the first 12 chapters) describes the concepts of operating systems by concen-
trating on several “managers” in turn, and then describing how these managers work
together. In addition, Part One introduces network organization concepts, security,
ethics, and system management.

Part Two examines actual operating systems: how they apply the theories presented in
Part One and how they compare with each other.

Chapter 1 gives a brief introduction to the subject. The Memory Manager, described in
Chapters 2 and 3, is the simplest component of the operating system to explain, and has
been historically tied to the advances from one operating system to the next. We explain
the role of the Processor (CPU) Manager in Chapters 4, 5, and 6, first discussing simple
systems and then expanding the topic to include multiprocessing systems. By the time we
reach the Device Manager in Chapter 7 and the File Manager in Chapter 8, readers will
have been introduced to many key concepts found in every operating system. Chapters
9 and 10 introduce basic concepts related to networking. Chapters 11 and 12 discuss
security, ethics, and system management, including some of the tradeoffs that operating
systems designers consider when attempting to satisfy the needs of their user population.

In Part Two we explore four operating systems in the order of their first release: UNIX,
Windows, Linux, and Android. Here, each chapter includes a discussion describing how
that operating system applies the concepts discussed in Part One. Again, we must stress
that this is a general discussion—an in-depth examination of an operating system would
require details based on its current standard version, which can’t be done in a textbook.
We strongly suggest that readers use our discussion as a guide—a base to work from—
when comparing the advantages and disadvantages of a specific operating system, and
supplement our work with current academic research, which is readily available online.

Each chapter includes learning objectives, key terms, research topics, exercises, and a
spotlight on industry experts who have left their mark in computer science. For techni-
cally oriented readers, the exercises at the end of each chapter include some problems
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xvi
Preface
for advanced students. Please note that these advanced exercises assume knowledge of
matters not presented in the book, but they’re good for anyone who enjoys a challenge.
We expect some readers who are new to the subject will cheerfully pass them by.

The text concludes with several reference aids. Within each chapter, important terms
are listed at its conclusion as key terms. The Windows chapter also includes a table that
briefly lists all acronyms or abbreviations used in that chapter. An extensive end-of-book
Glossary includes brief reader-friendly definitions for hundreds of terms used in these
pages; note that this glossary is specific to the way these terms are used in this textbook.
The Bibliography can guide the reader to basic research on the subject. Finally, the
Appendix features pseudocode algorithms referenced in several chapters, and a section
of the ACM Code of Ethics.

In an attempt to bring the concepts closer to home, throughout the book we’ve added
real-life examples to illustrate abstract concepts. However, let no one confuse our con-
versational style with our considerable respect for the subject matter. The subject of
operating systems is a complex one and it cannot be covered completely in these few
pages. Therefore, in this textbook we do not attempt to give an in-depth treatise of
operating systems theory and applications. This is an overall view.

Not included in this text is a detailed discussion of databases and data structures, except
as they are used to resolve process synchronization problems, or the work of specific
operating systems. This is because these structures only tangentially relate to operating
systems and are frequently the subject of other courses. We suggest that readers begin
by learning the basics as presented in the following pages and pursue these complex
subjects in their future studies.

Changes to this Edition


This edition has been thoroughly updated and features many improvements over previ-
ous editions:
• Renewed emphasis on the role of the talented people who designed and wrote oper-
ating systems, as well as their design decisions, which can affect how the resulting
system works.
• Added more screenshots from a variety of operating systems, including Macintosh
OS (which runs UNIX), Windows, Android phone and tablet, and Linux.
• Expanded our discussions of cloud computing and cloud storage.
• Revised networking discussions to reflect emerging designs and technology.
• Retained an emphasis on student understanding and original thinking in the exer-
cises, rather than on memorization or cut-and-paste facts. This is because our
book’s answer key is often available online shortly after publication, so in these
pages we have routinely asked students to use their own words to explain concepts.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xvii
Preface

• Expanded cross-references from Part Two to the concepts taught in Part One to
help students link specific system features with the concepts discussed in the begin-
ning chapters.
• Added emphasis on available command-mode options in each operating system for
readers who want to explore their system more directly, without using the menus.
• Included online resources for more information about many of the highly technical
subjects introduced in this text. Please remember that in the field of computer science,
online links go bad frequently, but by providing these links to our readers, they will
have a good starting place from which they can search for more current info.
• Updated artwork and references to the expanding influence of wireless technology.
• Removed examples in assembly language, which is not widely studied in introduc-
tory classes, and replaced them with pseudocode and prose descriptions.

Numerous other changes throughout the text include editorial clarifications, expanded
captions, and improved illustrations.

A Note for Instructors


The following supplements are available when this text is used in a classroom setting.
All supplements can be downloaded from the Instructor Companion Site. Simply search
for this text at sso.cengage.com. An instructor login is required.

Instructor’s Manual. The Instructor’s Manual that accompanies this textbook includes
additional instructional material to assist in class preparation, including Sample Syllabi,
Chapter Outlines, Technical Notes, Lecture Notes, Quick Quizzes, Teaching Tips, and
Discussion Topics.

Test Bank. Cengage Testing Powered by Cognero is a flexible, online system that allows
you to:
• author, edit, and manage test bank content from multiple Cengage solutions;
• create multiple test versions in an instant;
• deliver tests from your LMS, your classroom, or wherever you want.

PowerPoint Presentations. This book comes with Microsoft PowerPoint slides for each
chapter. These are included as a teaching aid for classroom presentations, either to make
available to students on the network for chapter review, or to be printed for classroom
distribution. Instructors can add their own slides for additional topics that they wish
to introduce to the class.

Solutions. Selected solutions to Exercises are provided.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xviii
Preface
Order of Presentation
We have built this text with a modular construction to accommodate several alternative
sequences, depending on the instructor’s preference.

• For example, the syllabus can follow the chapters as listed from Chapter 1 through
Chapter 12 to present the core concepts that all operating systems have in common.
Using this path, students will learn about the management of memory, processors,
devices, files, and networks, in that order.
• An alternative path might begin with Chapter 1, move next to processor manage-
ment in Chapters 4 through 6, then to memory management in Chapters 2 and 3,
touch on systems security and management in Chapters 11 and 12, and finally move
to device and file management in Chapters 7 and 8. Because networking is often the
subject of another course, instructors may choose to bypass Chapters 9 and 10, or
include them for a more thorough treatment of operating systems.

We hope you find our discussion of ethics helpful in Chapter 11, which is here in
response to requests by university adopters of the text who asked us to include this
subject, even though it is sometimes the subject of a separate course.

When teaching one or more operating systems from Part Two, keep in mind that we
structured each of these four chapters the same way we presented concepts in the
first 12 chapters. That is, they discuss the management of memory, processors, files,
devices, networks, and systems, in that order, with a special section demonstrating
the user interfaces for each operating system. To illustrate the use of graphical user
interfaces in UNIX systems, we include screenshots from the Macintosh OS X oper-
ating system.

By including the Android operating system, which is specifically designed for use in a
mobile environment using phones and tablets, we are able to explore the challenges
unique to these computing situations.

Acknowledgments
Our gratitude goes to all of our friends and colleagues who were so generous with their
encouragement, advice, and support over the two decades of this publication. Special
thanks go to Bob Kleinmann, Eleanor Irwin, and Roger Flynn for their assistance.

As always, thanks to those at Cengage, Brooks/Cole, and PWS Publishing who have
made significant contributions to all eight editions of this text, especially Alyssa Pratt,
Kallie Swanson, Mike Sugarman, and Mary Thomas Stone.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xix
Preface

And to the many students and instructors who have sent helpful comments and suggestions since publication
of our first edition in 1991, we thank you. Please keep them coming.

Ann McIver McHoes, mchoesa@duq.edu

Ida Moretti Flynn (1945–2004)

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xx
Part One

Operating Systems
Concepts
This text explores the core mechanisms of operating systems, which manage a comput-
ing system’s hardware and software. That includes its memory, processing capability,
devices, files, and networks—and how to do all of this in an appropriate and secure
fashion. Here, in Part One, we present an overview of an operating system’s essentials.
• Chapter 1 introduces the subject of operating systems.
• Chapters 2 and 3 discuss the management of main memory resources.
• Chapters 4 through 6 cover single processor and multiprocessor management.
• Chapter 7 concentrates on managing available devices without conflicts.
• Chapter 8 is devoted to the management of files, including those that hold sys-
tem instructions as well as your data.
• Chapters 9 and 10 briefly review operating systems for networks.
• Chapter 11 discusses system security.
• Chapter 12 explores system management.

In Part Two (Chapters 13 through 16), we look at four specific operating systems and
how they apply the overall concepts presented in the first 12 chapters.

Throughout our discussion of this very technical subject, we try to include definitions
of terms that might be unfamiliar, but it isn’t always possible to describe a function and
define the technical terms while keeping the explanation clear. Therefore, we’ve put the
key terms with definitions at the end of each chapter, as well as in the glossary at the
end of the text. Items listed in the Key Terms are shown in boldface the first time they
are mentioned significantly.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
1
Part One | Operating Systems Concepts

Throughout this book we keep our descriptions and examples as simple as possible to
introduce the system’s complexities without getting bogged down in technical detail.
Therefore, remember that for almost every topic explained in the following pages,
there’s much more information that’s readily available for study. Our goal is to intro-
duce the subject and to encourage our readers to independently pursue topics of special
interest. Enjoy.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
2
Chapter 1 Introducing Operating
Systems

OPERATING SYSTEM
Software Components Hardware Components
Developed Developed

Operating Systems
Developed

“ I think there is a world market for maybe


five computers.

—Attributed to Thomas J. Watson (1874–1956; chairman of IBM 1949–1956)

Learning Objectives
After completing this chapter, you should be able to describe:
• How operating systems have evolved through the decades
• The basic role of an operating system
• How operating system software manages it subsystems
• The role of computer system hardware on the development of its operating system
• How operations systems are adapted to serve batch, interactive, real-time, hybrid,
and embedded systems
• How operating systems designers envision their role and plan their work

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
3
Chapter 1 | Introducing Operating Systems

To understand an operating system is to begin to understand the workings of an entire


computer system, because the operating system software manages each and every piece
of hardware and software. In the pages that follow, we explore what operating systems
are, how they work, what they do, and why.

This chapter briefly describes the workings of operating systems on the simplest scale.
The following chapters explore each component in more depth, and show how its func-
tion relates to the other parts of the operating system. In other words, we see how the
pieces work together harmoniously to keep the computer system working smoothly.

What Is an Operating System?


A computer system typically consists of software (programs) and hardware (the tangible
machine and its electronic components). The operating system is the most important
software— it’s the portion of the computing system that manages all of the hardware
and all of the other software. To be specific, the operating system software controls
every file, every device, every section of main memory, and every moment of process-
ing time. It controls who can use the system and how. In short, the operating system
is the boss.

Therefore, each time the user sends a command, the operating system must make sure
that the command is executed; or, if it’s not executed, it must arrange for the user to
get a message explaining the error. This doesn’t necessarily mean that the operating
system executes the command or sends the error message, but it does control the parts
of the system that do.

Operating System Software


The pyramid shown in Figure 1.1 is an abstract representation of the operating system in
its simplest form, and demonstrates how its major components typically work together.

At the base of the pyramid are the four essential managers of every major operating
system: Memory Manager, Processor Manager, Device Manager, and File Manager.
These managers, and their interactions, are discussed in detail in Chapters 1 through 8
of this book. Each manager works closely with the other managers as each one performs
its unique role. At the top of the pyramid is the User Interface, which allows the user to
issue commands to the operating system. Because this component has specific ­elements,
in both form and function, it is often very different from one operating system to the
next—sometimes even between different versions of the same operating system.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
4
Operating System Software
(figure 1.1) User Interface
This pyramid represents
an operating system on
a stand-alone computer
unconnected to a network.
It shows the four subsys-
tem managers and the Processor Manager
User Interface. Memory Manager

Device Manager

File Manager

Regardless of the size or configuration of the system, the four managers, illustrated in
Figure 1.2, must, at a minimum, perform the following tasks while collectively keeping
the system working smoothly:
• Monitor the system’s resources
• Enforce the policies that determine what component gets what resources, when, and
how much
• Allocate the resources when appropriate
• Deallocate the resources when appropriate

(figure 1.2)

Each manager at the base Processor Memory


Manager Manager
of the pyramid takes
responsibility for its
own tasks while working
harmoniously with every
other manager.

Device File
Manager Manager

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
5
Chapter 1 | Introducing Operating Systems

For example, the Memory Manager must keep track of the status of the computer
system’s main memory space, allocate the correct amount of it to incoming processes,
and deallocate that space when appropriate—all while enforcing the policies that were
established by the designers of the operating system.

An additional management task, networking, has not always been an integral part of
operating systems. Today the vast majority of major operating systems incorporate a
Network Manager, see Figure 1.3, to coordinate the services required for multiple sys-
tems to work cohesively together. For example, the Network Manager must coordinate
the workings of the networked resources, which might include shared access to memory
space, processors, printers, databases, monitors, applications, and more. This can be a
complex balancing act as the number of resources increases, as it often does.

(figure 1.3)

The Windows 10 Task


Manager displays a
­snapshot of the system's
CPU, main memory, disk,
and network activity.

Main Memory Management

The Memory Manager (the subject of Chapters 2 and 3) is in charge of main memory,
widely known as RAM (short for random access memory). The Memory Manager
checks the validity of each request for memory space, and if it is a legal request, allocates
a portion of memory that isn’t already in use. If the memory space becomes fragmented,
this manager might use policies established by the operating system’s designers to real-
locate memory to make more useable space available for other jobs that are waiting.
Finally, when the job or process is finished, the Memory Manager deallocates its allotted
memory space.

A key feature of RAM chips—the hardware that comprises computer memory—is that
they depend on the constant flow of electricity to hold data. If the power fails or is
turned off, the contents of RAM is wiped clean. This is one reason why computer system
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
6
Operating System Software
designers attempt to build elegant shutdown procedures, so that the contents of RAM

4 can be stored on a nonvolatile device, such as a hard drive, before the main memory
chips lose power during computer shutdown.
RAM stands for
random access A critical responsibility of the Memory Manager is to protect all of the space in main
memory and is memory, particularly the space occupied by the operating system itself—it can’t allow
the computer's
main memory. It's any part of the operating system to be accidentally or intentionally altered because that
sometimes called would lead to instability or a system crash.
“primary storage”
to distinguish it Another kind of memory that’s critical when the computer is powered on is read-only
from “secondary
memory (often shortened to ROM), shown in Figure 1.4. This ROM chip holds soft-
storage,” where
data is stored on ware called firmware: the programming code that is used to start the computer and
hard drives or perform other necessary tasks. To put it in simplest form, it describes, in prescribed
other devices. steps, when and how to load each piece of the operating system after the power is turned
on, up to the point that the computer is ready for use. The contents of the ROM chip
are nonvolatile, meaning that they are not erased when the power is turned off, unlike
the contents of RAM.

(figure 1.4)

A computer’s relatively
small ROM chip contains
the firmware (unchanging
software) that prescribes
the system’s initialization
every time the system’s
power is turned on.

Processor Management

The Processor Manager (discussed in Chapters 4 through 6) decides how to allocate


the central processing unit (CPU); an important function of the Processor Manager is
to keep track of the status of each job, process, thread, and so on. We will discuss all
of these in the chapters that follow, but for this overview, let’s limit our discussion to a
process and define it as a program’s “instance of execution.” A simple example could
be a request to solve a mathematical equation: This would be a single job consisting of
several processes, with each process performing a part of the overall equation.

The Processor Manager is required to monitor the computer’s CPU to see if it’s busy
executing a process or sitting idle as it waits for some other command to finish execu-
tion. Generally, systems are more efficient when their CPUs are kept busy. The Processor
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
7
Chapter 1 | Introducing Operating Systems

Manager handles each process’s transition, from one state of execution to another, as it
moves from the starting queue, through the running state, and, finally, to the finish line
(where it then tends to the next process). Therefore, this manager can be compared to a
traffic controller. When the process is finished, or when the maximum amount of com-
putation time has expired, the Processor Manager reclaims the CPU so it can allocate
it to the next waiting process. If the computer has multiple CPUs, as with a multicore
system, the Process Manager’s responsibilities are greatly complicated.

Device Management

The Device Manager (the subject of Chapter 7) is responsible for connecting with every
device that’s available on the system, and for choosing the most efficient way to allocate
each of these printers, ports, disk drives, and more, based on the device scheduling poli- 4
cies selected by the designers of the operating system. A flash memory
device is an
Good device management requires that this part of the operating system uniquely iden- example of
secondary storage
tify each device, start its operation when appropriate, monitor its progress, and, finally,
because it doesn't
deallocate the device to make the operating system available to the next waiting process. lose data when its
This isn’t as easy as it sounds because of the exceptionally wide range of devices that power is turned
can be attached to any system, such as the system shown in Figure 1.5. off. Still, some
operating systems
allow users to
plug in such a
device to improve
the performance of
main memory.

(figure 1.5)

This computer, running


the Windows 10 operating
system, has device drivers
loaded for all of the print-
ing devices shown here.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
8
Operating System Software
For example, let’s say you’re adding a printer to your system. There are several kinds
of printers commonly available (laser, inkjet, inkless thermal, etc.) and they’re made
by manufacturers that number in the hundreds or thousands. To complicate things,
some devices can be shared, while some can be used by only one user or one job at a
time. Designing an operating system to manage such a wide range of printers (as well
as monitors, keyboards, pointing devices, disk drives, cameras, scanners, and so on) is a
daunting task. To do so, each device has its own software, called a device driver, which
contains the detailed instructions required by the operating system to start that device,
allocate it to a job, use the device correctly, and deallocate it when it’s appropriate.

File Management

The File Manager (described in Chapter 8), keeps track of every file in the system,
including data files, program files, utilities, compilers, applications, and so on. By fol-
lowing the access policies determined by the system designers, the File Manager enforces
restrictions on who has access to which files. Many operating systems allow authorized
individuals to change these permissions and restrictions. The File Manager also controls
the range of actions that each user is allowed to perform on the files after they access
them. For example, one user might have read-only access to a critical database, while the
systems administrator might hold read-and-write access with the authority to create and
delete files in the same database. Access control is a key part of good file management
and is tightly coupled with system security software.

When the File Manager allocates space on a secondary storage device, such as a hard
drive, flash drive, archival device, and so on, it must do so knowing the technical
requirements of that device. For example, if it needs to store an archival copy of a large
file, it needs to know if the device stores it more efficiently as one large block or in sev-
eral smaller pieces that are linked through an index. This information is also necessary
for the file to be correctly retrieved later. Later, if this large file must be modified after
it has been stored, the File Manager must be capable of making those modifications as
accurately and efficiently as possible.

Network Management

Operating systems with networking capability have a fifth essential manager called the
Network Manager (the subject of Chapters 9 and 10) that provides a convenient way for
authorized users to share resources. To do so, this manager must take overall responsi-
bility for every aspect of network connectivity, including the requirements of the avail-
able devices as well as files, memory space, CPU capacity, transmission connections,
and types of encryption (if necessary). Networks with many available resources require
management of a vast range of alternative elements, which enormously complicates the
tasks required to add network management capabilities.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
9
Chapter 1 | Introducing Operating Systems

Networks can range from a small wireless system that connects a game system to
the Internet; to a private network for a small business; to one that connects multiple
­computer systems, devices, and mobile phones to the Internet. Regardless of the size
and complexity of the network, these operating systems must be prepared to properly
manage the available memory, CPUs, devices, and files.

User Interface

The user interface—the portion of the operating system that users interact with
directly—is one of the most unique and most recognizable components of an operating
system. Two primary types are the graphical user interface (GUI), shown in Figure 1.6,
and the command line interface. The GUI relies on input from a pointing device, such
as a mouse or the touch of your finger. Specific menu options, desktops, and formats
often vary widely from one operating system to another, and, sometimes, from one
version to another.

The alternative to a GUI is a command line interface, which responds to specific com-
mands typed on a keyboard and displayed on the monitor, as shown in Figure 1.7. These
interfaces accept typed commands, and offer skilled users powerful additional control
because, typically, the commands can be linked together (concatenated) to perform
complex tasks with a single multifunctional command that would require many mouse
clicks to duplicate using a graphical interface.

While a command structure offers powerful functionality, it has strict requirements


for every command: Each must be typed accurately, each must be formed in the cor-
rect syntax, and combinations of commands must be assembled correctly. In addition,
users need to know how to recover gracefully from any errors they encounter. These
command line interfaces were once standard for operating systems and are still favored
by power users, but have largely been supplemented with simple, forgiving, graphical
user interfaces.

(figure 1.6)

An example of the
­graphical user interface
(GUI) for the Ubuntu Linux
operating system.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
10
Operating System Software
(figure 1.7)

This is the Linux command


line user interface show-
ing a partial list of valid
commands for this operat-
ing system. Many menu-
driven operating systems
also support a command-
line interface similar to
this one.

Cooperation Issues

None of the elements of an operating system can perform its individual tasks in
­isolation—each must also work harmoniously with every other manager. To illustrate
this using a very simplified example, let’s follow the steps as someone chooses a menu
option to open a program. The following series of major steps are typical of the discrete
actions that would occur in fractions of a second as a result of this choice:
1. The Device Manager receives the electrical impulse caused by a click of
the mouse, decodes the command by calculating the location of the cursor,
and sends that information through the User Interface, which identifies the
requested command. Immediately, it sends the command to the Processor
Manager.
2. The Processor Manager then sends an acknowledgment message (such as
“waiting” or “loading”) to be displayed on the monitor so that the user knows
that the command has been sent successfully.
3. The Processor Manager determines whether the user request requires that a file
(in this case a program file) be retrieved from storage, or whether it is already
in memory.
4. If the program is in secondary storage (perhaps on a disk), the File Manager
calculates its exact location on the disk and passes this information to the
Device Manager, which retrieves the program and sends it to the Memory
Manager.
5. If necessary, the Memory Manager finds space for the program file in main
memory and records its exact location. Once the program file is in memory,
this manager keeps track of its location in memory.
6. When the CPU is ready to run it, the program begins execution via the Proces-
sor Manager. When the program has finished executing, the Processor Man-
ager relays this information to the other managers.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
11
Chapter 1 | Introducing Operating Systems

7. The Processor Manager reassigns the CPU to the next program waiting in line.
If the file was modified, the File Manager and Device Manager cooperate to
store the results in secondary storage. If the file was not modified, there’s no
need to change the stored version of it.
8. The Memory Manager releases the program’s space in main memory and gets
ready to make it available to the next program that requires memory.
9. Finally, the User Interface displays the results and gets ready to take the next
command.

Although this is a vastly oversimplified demonstration of a very fast and complex operation,
it illustrates the incredible precision required for an operating system to work smoothly.
The complications increase greatly when networking capability is added. Although we’ll be
discussing each manager in isolation for much of this text, remember that no single manager
could perform its tasks without the active cooperation of every other manager.

Cloud Computing

One might wonder how cloud computing changes the role of operating systems. In
simplest terms, cloud computing is the practice of using Internet-connected resources
to perform processing, storage, or other operations, as shown in Figure 1.8. Generally,

The cloud

(figure 1.8)

A map showing a few of the numerous system resources that can be connected via the cloud. Cloud-
connected devices can be located anywhere in the world if they can access the network.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
12
An Evolution of Computing Hardware
cloud computing allows operating systems to accommodate remote access to system
resources, and provides increased security for these transactions. However, at its roots,
the operating system still maintains responsibility for managing all local resources, and
coordinating data transfer to and from the cloud. Also, the operating system that is
managing the far-away resources is responsible for the allocation and deallocation of
all its resources, this time, on a massive scale. Companies, organizations, and individu-
als are moving a wide variety of resources to the cloud, including data management,
file storage, applications, processing, printing, security, and so on. One can expect this
trend to continue. But regardless of where the resource is located—in the box, under
the desk, or on the cloud—the role of the operating system is the same: to access those
resources and manage the entire system as efficiently as possible.

An Evolution of Computing Hardware


To appreciate the role of the operating system (which is software), it may help to under-
stand the computer system’s hardware, which is the tangible, physical machine and its
electronic components, including memory chips, the central processing unit (CPU), the
input/output devices, and the storage devices.
• Main memory (RAM) is where the data and instructions must reside to be
processed.
• The central processing unit (CPU) is the “brains” of the computer. It has the cir-
cuitry to control the interpretation and execution of instructions. All storage refer-
ences, data manipulations, and input/output operations are initiated or performed
by the CPU.
• Devices, sometimes called I/O devices for input/output devices, include every periph-
eral unit attached to the computer system, from printers and monitors to magnetic
disks, optical disc drives, flash memory, keyboards, and so on.

A few of the operating systems that can be used on a variety of platforms are shown
in Table 1.1.

(table 1.1) Platform Operating System

A brief list of platforms, Laptops, desktops Linux, Mac OS X, UNIX, Windows


and a few of the operating
Mainframe computers Linux, UNIX, Windows, IBM z/OS
systems designed to run
on them, listed here in Supercomputers Linux, UNIX
alphabetical order.
Telephones, tablets Android, iOS, Windows

Workstations, servers Linux, Mac OS X Server, UNIX, Windows


Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
13
Chapter 1 | Introducing Operating Systems

In 1965, Intel executive Gordon Moore observed that each new processor chip ­contained
roughly twice as much capacity as its predecessor (number of components per integrated
function), and that each chip was released within 18–24 months of the previous chip.
His original paper included a graph (shown in Figure 1.9) predicting that the trend
would cause computing power to rise exponentially over relatively brief periods of time,
and it has. Now known as Moore’s Law, the trend has continued and is still remark-
ably accurate. Moore’s Law is often cited by industry observers when making their chip
capacity forecasts.

16 (figure 1.9)
15
Gordon Moore’s 1965
components per integrated function

14
13 paper included the
12 ­prediction that the number
Log2 of the number of

11
of transistors incorporated
10
9 in a chip will ­approximately
8 double every 24 months
7 (Moore, 1965).
6
5 Courtesy of Intel
4 Corporation.
3
2
1
0
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975

Year
Number of components per integrated
function for minimum cost per component
extrapolated vs time.

Types of Operating Systems


Operating systems fall into several general categories distinguished by the speed of their
response, and the method used to enter data into the system. The five categories are
batch, interactive, real-time, hybrid, and embedded systems.

Batch systems feature jobs that are entered as a whole, and in sequence. That is, only
one job can be entered at a time, and once a job begins processing, then no other job
can start processing until the resident job is finished. These systems date from early
computers, when each job consisted of a stack of cards—or reels of magnetic tape—for
input, and were entered into the system as a unit, called a batch. The efficiency of a
batch system is measured in throughput which is the number of jobs completed in a
given amount of time (usually measured in minutes, hours, or days.)

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
14
Types of Operating Systems
Interactive systems allow multiple jobs to begin processing, and return results to users
with better response times than batch systems; but interactive systems are slower than
the real-time systems that we will talk about next. Early versions of these operating
systems allowed each user to interact directly with the computer system via commands
entered from a typewriter-like terminal. The operating system used complex algorithms
to share processing power (often with a single processor) among the jobs awaiting
processing. Interactive systems offered huge improvements in responsiveness with turn-
around times in seconds or minutes, instead of the hours or days of batch-only systems.

Hybrid systems, widely used today, are a combination of batch and interactive. They
appear to be interactive because individual users can enter multiple jobs or processes into
the system and get fast responses, but these systems also accept and run batch ­programs
in the background when the interactive load is light. A hybrid system takes advantage of
the free time between high-demand usage of the system and low-demand times.

Real-time systems are used in time-critical environments where reliability and deadlines
are critical. This time limit need not be ultra-fast, though it often is; however, system
response time must meet the deadline because there are significant consequences for not
doing so. They also need to provide contingencies to fail gracefully—that is, preserving
as much of the system’s capabilities and data as possible, throughout system failure, to
facilitate recovery. Examples of real-time systems are those used for spacecraft, airport
traffic control, fly-by-wire aircraft, critical industrial processes, and medical systems, to
name a few. There are two types of real-time systems, depending on the consequences
of missing the deadline: hard and soft systems.
• Hard real-time systems risk total system failure if the predicted deadline is missed.
• Soft real-time systems suffer performance degradation, but not total system failure,
as a consequence of a missed deadline.

Although it’s theoretically possible to convert a general-purpose operating system


into a real-time system by merely establishing a deadline, the need to be extremely
­predictable is not part of the design criteria for most operating systems; so they can’t
provide the guaranteed response times and graceful failure that real-time performance
requires. Therefore, most embedded systems (described in the following paragraphs)
and r­ eal-time environments require operating systems that are specially designed to
meet real-time needs.

Networks allow users to manipulate resources that may be located over a wide geo-
graphical area. Network operating systems were originally similar to single-processor
operating systems in that each machine ran its own local operating system and served
its own local user group. Now, network operating systems make up a special class of
software that allows users to perform their tasks using few, if any, local resources. One
example of this phenomenon is cloud computing.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
15
Chapter 1 | Introducing Operating Systems

As shown in Figure 1.10, wireless networking capability is a standard feature in many


computing devices: cell phones, tablets, and other handheld Web browsers.

(figure 1.10)
An example of a simple
Internet network. The server is
­connected by a cable
to the router, and the
­remaining devices connect
to it wirelessly.

An embedded system is a computer that is physically placed inside the products that it
operates to add very specific features and capabilities. For example, embedded systems
can be found in automobiles, digital music players, elevators, and pacemakers, to name
a few.

Operating systems for embedded computers are very different from those for general
computer systems. Each one is designed to perform a set of specific programs, which
are not interchangeable among systems. This permits the designers to make the oper-
4
One example of
ating system more lean and efficient to take best advantage of the computer’s limited software available
resources, typically with slower CPUs and smaller memory resources. to help developers
build an
Before a general-purpose operating system, such as Linux, UNIX, or Windows, can be embedded system
is Windows
used in an embedded system, the system designers must select which operating system
Embedded
components are required in that particular environment and which are not. The final Automotive.
version of this operating system generally includes redundant safety features, and only
the necessary elements; any unneeded features or functions are dropped. Therefore,
operating systems with a small kernel (the core portion of the software) and other func-
tions that can be mixed and matched to meet the embedded system requirements have
potential in this market.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
16
Timeline of Operating Systems Development
Grace Murray Hopper
Grace Hopper developed one of the world's first compilers: intermediate programs
that translate human-readable instructions into zeros and ones (the language of
the target computer). She then went on to write compiler-based programming
languages. A mathematician, she joined the U.S. Navy Reserves in 1943. She
was assigned to work on computer systems at Harvard, where she did ground-
breaking work, which included her development
of the widely adopted COBOL language. In 1969,
the annual Data Processing Management Associa-
tion awarded Hopper its “Man of the Year Award,”
and in 1973, she became the first woman of any
nationality, and the first person from the United
States, to be made a Distinguished Fellow of the
British Computer Society. She retired from the
Navy as Rear Admiral Hopper.

National Medal of Technology and Innovation (1991): “For


her pioneering accomplishments in the development of
computer programming languages that simplified com-
puter technology and opened the door to a significantly
larger universe of users.”

Timeline of Operating Systems Development


The evolution of early operating system software parallels the evolution of the computer
hardware it was designed to control.

1940s

To run programs on early computers, the programmers would reserve the entire machine
for the entire time they estimated it would take for the system to execute their program.
Then, the computer would sit idle between reservations.

Many things could go wrong with these early computers. For example, when Harvard’s
Mark I computer stopped working one day in 1945, technicians investigating the cause
discovered that a flying moth had worked its way inside Relay 70 in Panel F and short-
circuited it. The researcher, Grace Murray Hopper, duly placed the dead insect in the

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
17
Chapter 1 | Introducing Operating Systems

system log, as shown in Figure 1.11, noting, “First actual case of bug being found.” The
incident spawned the industry-wide use of the word “bug” to indicate that a system is
not working correctly, and the term is still commonly used today.

(figure 1.11)

Dr. Grace Hopper’s


research journal included
the first computer bug.
Taped to the page are the
remains of a moth that
became trapped in the
computer’s relays, ­causing
the system to crash.
[Photo © 2002 IEEE]

1950s

Mid-century improvements included professional computer operators (instead of indi-


vidual programmers) who were assigned to maximize the computer’s operation and
schedule the incoming jobs as efficiently as possible. Hardware improvements included:
• faster speeds of input/output devices, such as storage drives and disks systems;
• the practice of grouping records into blocks before they were stored or retrieved in
order to use more of the available storage area in the devices;
• the introduction of a control unit to manage data flow in spite of the speed discrep-
ancy between the slow I/O devices and the faster CPU.

During this time, programs were still assigned to the processor one-at-a-time in
sequence. The next step toward better use of the system’s resources was the move to
shared processing.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
18
Timeline of Operating Systems Development
1960s

Computers in the mid-1960s were designed with faster CPUs, but they still had
problems interacting directly with the relatively slow printers and other I/O
devices. The solution was called multiprogramming, which introduced the concept
of loading many programs at one time and allowing them to share the attention
of the single CPU.

One mechanism developed to help implement multiprogramming was the i­ntroduction


of the concept of the interrupt, whereby the CPU was notified of events needing
­operating systems services. For example, when a program issued a print command,
called input/output (I/O) command, it generated an interrupt, which signaled the release
of the CPU from one job so it could begin execution of the next job. This was called
­passive multiprogramming because the operating system didn’t control the interrupts,
but, instead, waited for each job to end on its own. This was less than ideal because if
a job was CPU-bound, meaning that it performed a great deal of nonstop in-memory
processing before issuing an interrupt, it could monopolize the CPU for a long time
while all other jobs waited, even if they were more important.

To counteract this effect, computer scientists designed active multiprogramming, which


allowed the operating system a more active role. Each program was initially allowed
to use only a preset slice of CPU time. When time expired, the job was interrupted by
the operating system so another job could begin its execution. The interrupted job then
had to wait until it was allowed to resume execution at some later time. Soon, this idea,
called time slicing, became common in many interactive systems.

1970s

During this decade, computers were built with faster CPUs, creating an even greater
disparity between their rapid processing speed and slower I/O device times. How-
ever, schemes to increase CPU use were limited by the small and expensive physi-
cal capacity of the main memory. For example, the first Cray supercomputer was
installed at Los Alamos National Laboratory in 1976 and had only 8 megabytes
(MB) of main memory, a mere fraction of what can be found in many computing
devices today.

A solution to this physical limitation was the development of virtual memory, which
allowed only a portion of multiple programs to reside in memory at the same time. In
other words, a virtual memory system could divide each program into parts, keeping
them in secondary storage and bringing each part into memory only as it was needed.
Virtual memory soon became standard in operating systems of all sizes, and paved the
way toward a much better use of the CPU.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
19
Chapter 1 | Introducing Operating Systems

1980s

Computer hardware during this time became more flexible, with logical functions that
were built on easily replaceable circuit boards. And because it had become cheaper to
create these circuit boards, more operating system functions were made part of the
hardware itself, giving rise to a new concept—firmware, a word used to indicate that
a program is permanently held in read-only memory (ROM), as opposed to being held
in secondary storage.

The evolution of personal computers and high-speed communications sparked the move
to networked systems and distributed processing, enabling users in remote locations to
share hardware and software resources. These systems required a new kind of operat-
ing system—one capable of managing multiple sets of subsystem managers, as well as
hardware that might reside half a world away.

1990s

The overwhelming demand for Internet capability in the mid-1990s sparked the prolif-
eration of networking capability. The World Wide Web was first proposed in a paper
by Tim Berners-Lee (http://info.cern.ch/Proposal.html); his original concept is shown in
Figure 1.12. Based on this research, he designed the first Web server and browser, mak-
ing it available to the general public in 1991. While his innovations sparked increased
connectivity, it also increased demand for tighter security to protect system assets from
Internet threats.

The decade also introduced a proliferation of multimedia applications demanding more


power, flexibility, and device compatibility for most operating systems, as well as large
amounts of storage capability, longer battery life, and cooler operation. These techno-
logical advances required that the operating system be equipped with commensurate
advancements.

2000s

The new century emphasized the need for improved flexibility, reliability, and speed.
Virtualization allowed separate partitions of a single server to support different oper-
ating systems. In other words, it turned a single physical server into multiple virtual
servers, often with multiple operating systems. Virtualization required the operating
system to have an intermediate manager to oversee the access of each operating system
to the server’s physical resources.

Processing speed enjoyed a similar advancement with the commercialization of multicore


processors, which contained many cores working cooperatively together. For example,

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
20
Timeline of Operating Systems Development
(figure 1.12)
IBM
Illustration from the Computer GroupTalk
­proposal by Tim Berners- conferencing
Hyper for example
Lee describing his UUCO
Card
revolutionary “linked VAX/ News
ENQUIRE
information system,” NOTES Hierarchical
which became the World systems
unifies
Wide Web (www).
for example
(http://info.cern.ch/­ for example
A
Proposal.html) Proposal
Linked CERNDOC
X
information describes

describes
includes includes
C.E.R.N.
This
describes
“Hypertext” document
DD division

refers MIS OC group


includes describes to wrote

RA section

Hypermedia Tim
Comms
ACM Berners-Lee

a chip with two CPUs allows two sets of calculations to run at the same time, which
sometimes leads to faster job completion (though not always). It’s almost as if the user
has two separate computers, and, thus, two processors, cooperating on a single task.
Designers have created chips that have dozens of cores; one is shown in Figure 1.13.

Does this hardware innovation affect the operating system software? Absolutely. This
is because the operating system must now manage the work of each of these processors
and be able to schedule and manage the processing of their multiple tasks.

2010s

Increased mobility and wireless connectivity spawned a proliferation of multicore CPUs


(a processor is also called a core) on one computer chip. Multicore engineering was
driven by the problems caused by nano-sized transistors and their ultra-close place-
ment on a computer chip. Although chips with millions of transistors placed very close

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
21
Chapter 1 | Introducing Operating Systems

(figure 1.13)

This single piece of silicon


can hold 80 cores, which,
to put it in the simplest
terms, can perform up
to 80 calculations at one
time, and do so without
overheating.

(Courtesy of Intel
Corporation)

together helped increase system performance dramatically, the close proximity of these 4
transistors also allowed current to “leak,” which caused the buildup of heat, as well The number of
as other problems. With the development of multi-core technology, a single chip (one operating systems
is uncountable.
piece of silicon) could be equipped with two or more processor cores. In other words,
Some are specific
they replaced a single large processor with two half-sized processors (called dual core), only to a single
four quarter-sized processors (quad core), and so on. This design allowed the same sized type of device,
chip to produce less heat and offered the opportunity to permit multiple calculations to and some are
widely used
take place at the same time. on systems of
all sizes and
capabilities. The
Linux operating
Role of the Software Designer system was
originally written
by a young
Who writes an operating system? Depending on the complexity of the computer, the
student named
design team could range from a single person to a multi-skilled team of people. Those Linus Torvalds in
who create an operating system are faced with many choices that can affect every part Finland. There's
of the software and the resources it controls. Before beginning, designers typically start more about
Torvalds
by asking key questions, using the answers to guide them in their work. The most com- in Chapter 15.
mon overall goal is to maximize the use of the system’s resources (memory, processing,
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
22
Key Terms
devices, and files) and minimize downtime, though certain proprietary systems may
have other priorities. Typically, designers include the following factors into their devel-
opmental efforts: the minimum and maximum main memory resources; the number
and brand of CPUs; the variety of storage devices likely to be connected; the types of
files, networking capability, security requirements, and default user interfaces available;
assumed user capabilities; and so on.

For example, a mobile operating system often needs to minimize the heat the device gener-
ates. Likewise, if it’s a real-time operating system, designers need to aggressively manage
memory usage, processor time, device allocation, and files so that urgent deadlines will
not be missed. For these reasons, operating systems are often complex pieces of software.

As we might expect, no single operating system is perfect for every environment. Some
systems can be best served with a UNIX system, others benefit from the structure of a
Windows system, and still others work best using Linux, Mac OS, Android, or even a
custom-built operating system.

Conclusion
In this chapter, we looked at the definition of an operating system as well as its overall
function. What began as hardware-dependent operations software has evolved to run
increasingly complex computers and, like any complicated subject, there’s much more
detail to explore, such as the role of the main memory resource, the CPU (processor),
the system’s input and storage devices, and its numerous files. Each of these functions
needs to be managed seamlessly, as does the cooperation among them and other system
essentials, such as the network it’s connected to. As we’ll see in the remainder of this
text, there are many ways to perform every task, and it’s up to the designers of the
operating system to choose the policies that best match the environment and its users.

In the following chapters, we’ll explore in detail how each portion of the operating
system works, as well as its features, functions, and benefits. We’ll begin with the part
of the operating system that’s the heart of every computer: the module that manages
main memory.

Key Terms
batch system: a type of computing system that executes programs, each of which is
submitted in its entirety, can be grouped into batches, and is executed without external
intervention.

central processing unit (CPU): a component with circuitry that controls the interpreta-
tion and execution of instructions. See also processor.
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
23
Discovering Diverse Content Through
Random Scribd Documents
1 volume grand in-18, illustré de 38 gravures.—Prix: 5
francs

SOMMAIRE DES PRINCIPAUX CHAPITRES


Le Juif-Errant.—Histoire du bonhomme Misère.—Crédit est mort.—La
Farce des bossus.—Lustucru.—Le Moine ressuscité.—La Danse des
morts en 1849.—L'Imagerie de l'avenir.
«Toutes les éditions populaires de la légende donnent des portraits
du Juif-Errant d'après un même modèle. Il serait digne d'un artiste
et d'un antiquaire de remonter à la source et d'en découvrir
l'auteur,» disait M.-Ch. Nisard.
C'est ce qu'a fait M. Champfleury développant l'idée et cherchant en
Flandre, en Allemagne, en Angleterre et en Norwége, les
ramifications des anciennes images populaires.

MÊME SÉRIE (EN PRÉPARATION)

Chants, légendes et traditions populaires de la France. 2 vol. in-18,


illustrés.
PARIS.—IMP. SIMON RAÇON ET COMP., RUE D'ERFURTH, 1.
HISTOIRE

DES FAÏENCES PATRIOTIQUES

SOUS LA RÉVOLUTION

1 vol. gr. in-18, 3e édition, augmentée de gravures et marques


nouvelles: 5 fr.

Sous presse pour paraître fin 1875

HISTOIRE

DE LA CARICATURE

SOUS LA RÉPUBLIQUE, L'EMPIRE ET LA


RESTAURATION
1 vol. gr. in-18, avec de nombreuses gravures
2e édit. revue et augmentée.

Pour paraître en 1876

HISTOIRE

DE LA CARICATURE
SOUS LA RÉFORME, LA LIGUE
1 vol. gr. in-18, illustré.
*** END OF THE PROJECT GUTENBERG EBOOK HISTOIRE DE LA
CARICATURE AU MOYEN ÂGE ET SOUS LA RENAISSANCE ***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is derived


from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted


with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this


electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing


access to or distributing Project Gutenberg™ electronic works
provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™


electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for


the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.

1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,


the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West,


Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating


charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where


we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make


any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookluna.com

You might also like