Understanding Operating Systems, 8th ed. 8th Edition Ann Mchoes - eBook PDF download
Understanding Operating Systems, 8th ed. 8th Edition Ann Mchoes - eBook PDF download
8th
Edition Ann Mchoes - eBook PDF download
https://ebookluna.com/download/understanding-operating-
systems-8th-ed-ebook-pdf/
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/
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/
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/
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.
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
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
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
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
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
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
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
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
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
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
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.
• 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.
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.
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.
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
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
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.
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.
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)
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 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 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)
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.
(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)
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.
A few of the operating systems that can be used on a variety of platforms are shown
in Table 1.1.
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.
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.
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
(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.
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)
1950s
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.
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.
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.
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
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
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)
(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
SOUS LA RÉVOLUTION
HISTOIRE
DE LA CARICATURE
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.
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.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.
• 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 comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
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.
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.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
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.
ebookluna.com