Operating System Concepts 10th 10th Edition Abraham Silberschatz 2024 scribd download
Operating System Concepts 10th 10th Edition Abraham Silberschatz 2024 scribd download
com
https://ebookmeta.com/product/operating-system-
concepts-10th-10th-edition-abraham-silberschatz/
OR CLICK HERE
DOWLOAD NOW
https://ebookmeta.com/product/operating-system-concepts-10th-edition-
abraham-silberschatz/
ebookmeta.com
https://ebookmeta.com/product/operating-system-concepts-10th-edition-
silberschatz/
ebookmeta.com
https://ebookmeta.com/product/biology-concepts-applications-10th-
edition-cecie-starr/
ebookmeta.com
https://ebookmeta.com/product/capture-the-crown-gargoyle-queen-1-1st-
edition-jennifer-estep/
ebookmeta.com
https://ebookmeta.com/product/humans-and-electricity-understanding-
body-electricity-and-applications-2nd-edition-kwang-suk-park/
ebookmeta.com
https://ebookmeta.com/product/regularization-in-deep-learning-
meap-v04-peng-liu/
ebookmeta.com
GREG GAGNE
8FTUNJOTUFS$PMMFHF
7(17+(',7,21
Publisher Laurie Rosatone
Editorial Director Don Fowley
Development Editor Ryann Dannelly
Freelance Developmental Editor Chris Nelson/Factotum
Executive Marketing Manager Glenn Wilson
Senior Content Manage Valerie Zaborski
Senior Production Editor Ken Santor
Media Specialist Ashley Patterson
Editorial Assistant Anna Pham
Cover Designer Tom Nery
Cover art © metha189/Shutterstock
This book was set in Palatino by the author using LaTeX and printed and bound by LSC Kendallville.
The cover was printed by LSC Kendallville.
Copyright © 2018, 2013, 2012, 2008 John Wiley & Sons, Inc. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by
any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted
under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, Inc. 222 Rosewood Drive, Danvers, MA 01923, (978)750-8400, fax
(978)750-4470. Requests to the Publisher for permission should be addressed to the Permissions
Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030 (201)748-6011, fax (201)748-
6008, E-Mail: [email protected].
Evaluation copies are provided to qualified academics and professionals for review purposes only, for use
in their courses during the next academic year. These copies are licensed and may not be sold or
transferred to a third party. Upon completion of the review period, please return the evaluation copy to
Wiley. Return instructions and a free-of-charge return shipping label are available at
www.wiley.com/go/evalreturn. Outside of the United States, please contact your local representative.
The inside back cover will contain printing identification and country of origin if omitted from this page. In
addition, if the ISBN on the back cover differs from the ISBN on this page, the one on the back cover is
correct.
Enhanced ePub ISBN 978-1-119-32091-3
Printed in the United States of America
10 9 8 7 6 5 4 3 2 1
To my children, Lemor, Sivan, and Aaron
and my Nicolette
Avi Silberschatz
To my wife, Carla,
and my children, Gwen, Owen, and Maddie
To my wife, Pat,
and our sons, Tom and Jay
Greg Gagne
Preface
Operating systems are an essential part of any computer system. Similarly, a
course on operating systems is an essential part of any computer science edu-
cation. This field is undergoing rapid change, as computers are now prevalent
in virtually every arena of day-to-day life—from embedded devices in auto-
mobiles through the most sophisticated planning tools for governments and
multinational firms. Yet the fundamental concepts remain fairly clear, and it is
on these that we base this book.
We wrote this book as a text for an introductory course in operating sys-
tems at the junior or senior undergraduate level or at the first-year graduate
level. We hope that practitioners will also find it useful. It provides a clear
description of the concepts that underlie operating systems. As prerequisites,
we assume that the reader is familiar with basic data structures, computer
organization, and a high-level language, such as C or Java. The hardware topics
required for an understanding of operating systems are covered in Chapter 1.
In that chapter, we also include an overview of the fundamental data structures
that are prevalent in most operating systems. For code examples, we use pre-
dominantly C, as well as a significant amount of Java, but the reader can still
understand the algorithms without a thorough knowledge of these languages.
Concepts are presented using intuitive descriptions. Important theoretical
results are covered, but formal proofs are largely omitted. The bibliographical
notes at the end of each chapter contain pointers to research papers in which
results were first presented and proved, as well as references to recent material
for further reading. In place of proofs, figures and examples are used to suggest
why we should expect the result in question to be true.
The fundamental concepts and algorithms covered in the book are often
based on those used in both open-source and commercial operating systems.
Our aim is to present these concepts and algorithms in a general setting that
is not tied to one particular operating system. However, we present a large
number of examples that pertain to the most popular and the most innovative
operating systems, including Linux, Microsoft Windows, Apple macOS (the
original name, OS X, was changed in 2016 to match the naming scheme of other
Apple products), and Solaris. We also include examples of both Android and
iOS, currently the two dominant mobile operating systems.
The organization of the text reflects our many years of teaching courses
on operating systems. Consideration was also given to the feedback provided
vii
viii Preface
by the reviewers of the text, along with the many comments and suggestions
we received from readers of our previous editions and from our current and
former students. This Tenth Edition also reflects most of the curriculum guide-
lines in the operating-systems area in Computer Science Curricula 2013, the most
recent curriculum guidelines for undergraduate degree programs in computer
science published by the IEEE Computing Society and the Association for Com-
puting Machinery (ACM).
Book Material
The book consists of 21 chapters and 4 appendices. Each chapter and appendix
contains the text, as well as the following enhancements:
Preface ix
A hard copy of the text is available in book stores and online. That version has
the same text chapters as the electronic version. It does not, however, include
the appendices, the regular exercises, the solutions to the practice exercises,
the programming problems, the programming projects, and some of the other
enhancements found in this ePub electronic book.
utilization of the CPU and the speed of its response to its users, the com-
puter must keep several processes in memory. There are many different
memory-management schemes, reflecting various approaches to memory
management, and the effectiveness of a particular algorithm depends on
the situation.
• Storage management. Chapters 11 and 12 describe how mass storage and
I/O are handled in a modern computer system. The I/O devices that attach
to a computer vary widely, and the operating system needs to provide a
wide range of functionality to applications to allow them to control all
aspects of these devices. We discuss system I/O in depth, including I/O
system design, interfaces, and internal system structures and functions.
In many ways, I/O devices are the slowest major components of the com-
puter. Because they represent a performance bottleneck, we also examine
performance issues associated with I/O devices.
• File systems. Chapters 13 through 15 discuss how file systems are handled
in a modern computer system. File systems provide the mechanism for on-
line storage of and access to both data and programs. We describe the clas-
sic internal algorithms and structures of storage management and provide
a firm practical understanding of the algorithms used—their properties,
advantages, and disadvantages.
• Security and protection. Chapters 16 and 17 discuss the mechanisms nec-
essary for the security and protection of computer systems. The processes
in an operating system must be protected from one another’s activities.
To provide such protection, we must ensure that only processes that have
gained proper authorization from the operating system can operate on
the files, memory, CPU, and other resources of the system. Protection is
a mechanism for controlling the access of programs, processes, or users
to computer-system resources. This mechanism must provide a means
of specifying the controls to be imposed, as well as a means of enforce-
ment. Security protects the integrity of the information stored in the system
(both data and code), as well as the physical resources of the system, from
unauthorized access, malicious destruction or alteration, and accidental
introduction of inconsistency.
• Advanced topics. Chapters 18 and 19 discuss virtual machines and
networks/distributed systems. Chapter 18 provides an overview of
virtual machines and their relationship to contemporary operating
systems. Included is a general description of the hardware and software
techniques that make virtualization possible. Chapter 19 provides an
overview of computer networks and distributed systems, with a focus on
the Internet and TCP/IP.
• Case studies. Chapter 20 and 21 present detailed case studies of two real
operating systems—Linux and Windows 10.
• Appendices. Appendix A discusses several old influential operating sys-
tems that are no longer in use. Appendices B through D cover in great
detaisl three older operating systems— Windows 7, BSD, and Mach.
Preface xi
Programming Environments
The text provides several example programs written in C and Java. These
programs are intended to run in the following programming environments:
• POSIX. POSIX (which stands for Portable Operating System Interface) repre-
sents a set of standards implemented primarily for UNIX-based operat-
ing systems. Although Windows systems can also run certain POSIX pro-
grams, our coverage of POSIX focuses on Linux and UNIX systems. POSIX-
compliant systems must implement the POSIX core standard (POSIX.1);
Linux and macOS are examples of POSIX-compliant systems. POSIX also
defines several extensions to the standards, including real-time extensions
(POSIX.1b) and an extension for a threads library (POSIX.1c, better known
as Pthreads). We provide several programming examples written in C
illustrating the POSIX base API, as well as Pthreads and the extensions for
real-time programming. These example programs were tested on Linux 4.4
and macOS 10.11 systems using the gcc compiler.
• Java. Java is a widely used programming language with a rich API and
built-in language support for concurrent and parallel programming. Java
programs run on any operating system supporting a Java virtual machine
(or JVM). We illustrate various operating-system and networking concepts
with Java programs tested using Version 1.8 of the Java Development Kit
(JDK).
• Windows systems. The primary programming environment for Windows
systems is the Windows API, which provides a comprehensive set of func-
tions for managing processes, threads, memory, and peripheral devices.
We supply a modest number of C programs illustrating the use of this API.
Programs were tested on a system running Windows 10.
Major Changes
The Tenth Edition update encompasses much more material than previous
updates, in terms of both content and new supporting material. Next, we
provide a brief outline of the major content changes in each chapter:
coverage of the system boot process with a focus on GRUB for Linux
systems. New coverage of the Windows subsystem for Linux is included
as well. We have added new sections on linkers and loaders, and we now
discuss why applications are often operating-system specific. Finally, we
have added a discussion of the BCC debugging toolset.
• Chapter 3: Processes simplifies the discussion of scheduling so that it
now includes only CPU scheduling issues. New coverage describes the
memory layout of a C program, the Android process hierarchy, Mach
message passing, and Android RPCs. We have also replaced coverage of
the traditional UNIX/Linux init process with coverage of systemd.
• Chapter 4: Threads and Concurrency (previously Threads) increases the
coverage of support for concurrent and parallel programming at the API
and library level. We have revised the section on Java threads so that it
now includes futures and have updated the coverage of Apple’s Grand
Central Dispatch so that it now includes Swift. New sections discuss fork-
join parallelism using the fork-join framework in Java, as well as Intel
thread building blocks.
• Chapter 5: CPU Scheduling (previously Chapter 6) revises the coverage of
multilevel queue and multicore processing scheduling. We have integrated
coverage of NUMA-aware scheduling issues throughout, including how
this scheduling affects load balancing. We also discuss related modifica-
tions to the Linux CFS scheduler. New coverage combines discussions of
round-robin and priority scheduling, heterogeneous multiprocessing, and
Windows 10 scheduling.
• Chapter 6: Synchronization Tools (previously part of Chapter 5, Process
Synchronization) focuses on various tools for synchronizing processes.
Significant new coverage discusses architectural issues such as instruction
reordering and delayed writes to buffers. The chapter also introduces lock-
free algorithms using compare-and-swap (CAS) instructions. No specific
APIs are presented; rather, the chapter provides an introduction to race
conditions and general tools that can be used to prevent data races. Details
include new coverage of memory models, memory barriers, and liveness
issues.
• Chapter 7: Synchronization Examples (previously part of Chapter 5,
Process Synchronization) introduces classical synchronization problems
and discusses specific API support for designing solutions that solve
these problems. The chapter includes new coverage of POSIX named and
unnamed semaphores, as well as condition variables. A new section on
Java synchronization is included as well.
• Chapter 8: Deadlocks (previously Chapter 7) provides minor updates,
including a new section on livelock and a discussion of deadlock as an
example of a liveness hazard. The chapter includes new coverage of the
Linux lockdep and the BCC deadlock detector tools, as well as coverage
of Java deadlock detection using thread dumps.
• Chapter 9: Main Memory (previously Chapter 8) includes several revi-
sions that bring the chapter up to date with respect to memory manage-
Exploring the Variety of Random
Documents with Different Content
The Project Gutenberg eBook of The Southern
Literary Messenger, Vol. II., No. 4, March, 1836
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.
Title: The Southern Literary Messenger, Vol. II., No. 4, March, 1836
Author: Various
Language: English
EVERY DEPARTMENT OF
RICHMOND:
T. W. WHITE, PUBLISHER AND PROPRIETOR.
1835-6.
THE CLASSICS
HALLEY'S COMET
EPIMANES: by E. A. Poe
TO HELEN: by E. A. P.
CHANGE
EPIGRAM
AMERICANISMS: by H.
CRITICAL NOTICES
EPISCOPAL CHURCH IN VIRGINIA: by Francis L. Hawks, D.D.
PHRENOLOGY: by Mrs. L. Miles
MAHMOUD
GEORGIA SCENES: by a native Georgian
TRAITS OF THE TEA PARTY
NO. XI.—(Continued.)
The inertness of the French since their rupture with Algiers, had
induced Hussein to treat their threats with contempt, and he by no
means anticipated the extreme measures to which they were about
to resort. The certainty of their intentions to attack him, however,
effected no change in his resolve to maintain the position which he
had assumed; all offers of mediation or intercession were rejected,
and the approach of the storm only rendered him the more
determined to brave its violence. He was left to meet it alone. The
mission of Tahir Pasha was the only effort made by the Sultan in his
behalf; Great Britain had in vain offered its mediation to both Parties,
and did not appear disposed to interfere farther between them; the
other European Powers remained neutral. The Sovereigns of Tripoli
and Tunis were summoned to aid in defending the common cause of
Islamism; but the appeal was in both instances vain; Yusuf dreaded
the vengeance of the French, on account of the support which he
had unwillingly afforded to the accusations against their Consul, and
was by no means inclined to give them additional cause for enmity,
or to involve himself in expenses from which he could anticipate no
immediate benefit. The Bey of Tunis had long been devoted to the
interests of France; far from aiding the Dey, he had agreed to furnish
his enemies with provisions, and even if required to make a diversion
in their favor, by invading the Algerine Province of Constantina which
lay contiguous to his own dominions.
Hussein did not however trust entirely to Providence for the safety of
his capital; on the contrary he made every preparation in his power
for its defence. In the city and its environs every man was enrolled,
and the slightest expression indicative of fear or mistrust as to the
result of the contest, was punished by death. From the Provinces,
the Beys were ordered to bring to Algiers all whom they could enlist
or force into the service, and immense sums from the public treasury
were placed at their disposal for the purpose. By these means he
speedily assembled a very large force, the exact amount of which it
is impossible to ascertain; the French historians state it to have been
seventy-two thousand; other accounts perhaps equally worthy of
credit make it much less. The number of what may be termed regular
troops appears to have been precisely twenty-two thousand, viz. five
thousand Turks or Janissaries, seven thousand Koul-ogleis, and ten
thousand Moors; to these the French accounts add ten thousand
Kabyles, and forty thousand others, principally Arab horsemen.
Major Lee the Consul of the United States, who made very particular
observations and inquiries on the subject, and whose statements
appear to be entirely free from prejudice, does not consider that the
irregular forces exceeded thirty thousand. Whatever may have been
the fact with regard to the whole number of the Algerine troops, it is
certain that a large and important portion were never brought into
action in the open field, having been necessarily retained to garrison
the city and the fortifications in its immediate vicinity.
On the morning of the 13th the sea near Algiers was again covered
with ships under the white flag of France. The sky was cloudless, a
fresh breeze from the northeast permitted the vessels to move at
pleasure along the coast, and as they passed majestically almost
within gun shot of the batteries, the Algerines felt that the day of trial
was come.
Eastwardly from Sidi Ferruch the land rises almost imperceptibly for
three miles, presenting a sandy plain partially covered with aloes,
cactus, and evergreen shrubs, at the termination of which is an
irregular plateau called Staweli, where the shepherds of the country
were in the habit of encamping. Farther on a valley called Backshé-
dere separated this plateau from the south-western side of Jibbel
Boujereah, along which a road originally formed by the Romans
conducted to the walls of the Emperor's castle, within a mile of
Algiers. The whole distance by this way from Sidi Ferruch to the city
is twelve miles, over a country "gently undulating and perfectly
practicable for artillery or any species of carriage," which is also
abundantly supplied with fresh water from numerous springs.
Our country has produced few works displaying greater originality and soundness of
views than this; its subject has caused it to be overlooked in the United States, but in
France when circumstances gave value to all information relative to Algiers, its merits
were soon recognized, and it was translated by order of the Government for the
benefit of the officers engaged in the expedition. His remarks on the power,
resources, and policy of the Algerine Government, or rather upon its weakness, its
want of means, and the absurdity of its system, were calculated to dispel many of the
illusions with regard to it which the mutual jealousy of the great European nations had
so long contributed to maintain; and it is impossible to examine his observations as to
the proper disposition of a force destined to act against the city, in conjunction with
the statement of the plans pursued by the French, without conceiving that in all
probability those plans were the result of his suggestions. At page 51 he says:
"The several expeditions against Algiers, in which land forces have been employed,
have landed in the bay eastward of the city; this is evidently an error, and discovers
unpardonable ignorance of the coast and topography of the country, for all the means
of defence are concentrated there. But it is obvious that any force whatever might be
landed in the fine bay of Sidi Ferruch without opposition; thence by a single march
they might arrive upon the heights commanding the Emperor's castle, the walls of
which, as nothing could prevent an approach to them, might be scaled or breached by
a mine in a short time. This position being mastered, batteries might be established
on a height commanding the Casauba, which is indicated by the ruins of two wind-
mills, and of a fort called the Star, which the jealous fears of this Government caused
to be destroyed for the reason here alleged, that it commanded the citadel and
consequently the city. The fleet which had landed the troops would by this time
appear in the bay, to distract the attention of the besieged, when Algiers must either
surrender at discretion or be taken by storm."
Many other passages might be quoted in illustration of Mr. Shaler's sagacity; so many
of his speculations respecting the future destinies of Barbary have been already
confirmed, that we are warranted in entertaining hopes of the fulfilment of his
prediction, that it will again be inhabited by a civilized and industrious race.
The French ships after their dispersion by the storms of the first days
of June retreated to Palma where they remained until the 10th. On
that day the first and second divisions of the fleet again sailed for the
African coast; the third division composed almost entirely of
merchant vessels, containing the battering artillery, provisions and
materials which would not be needed until the disembarkation had
been effected, was to have sailed on the 12th, but it was detained
until the 18th by adverse winds.
As the fleet drew near the spot which had been selected for the
disembarkation of the troops, preparations were made for immediate
action in case it should be necessary. The heavy armed ships
advanced in front, slowly and in order of battle, ready to pour a
destructive fire upon any forces or works of their opponents as soon
as discovered within its reach. At ten o'clock, they were opposite the
extremity of the peninsula, and it became evident that no precautions
had been taken by the Algerines, which were likely to prove effectual
in preventing the descent. No fortifications had been erected on Sidi
Ferruch, in addition to the shore battery near the point, and the turret
on the hill, both of which were deserted; indeed nothing less than the
strongest works and the most scientific defence could have rendered
it tenable, when surrounded by such a fleet. On the main land, a
division of the Algerine army, supposed to consist of twelve thousand
men, were encamped near a spring of water about two miles from
the neck of the peninsula; between them and the sea were erected
two batteries,2 armed with nine pieces of cannon and two howitzers,
which had been removed from the fort on Sidi Ferruch. Arab
horsemen enveloped in their white cloaks were seen collected in
groups on the beach, or galloping among the bushes on the plain
between it and the encampment. Nothing however betokened any
disposition on the part of the Africans, to meet the invaders at the
water's edge.
2 Any fortification defended by artillery, and even the spot occupied by artillery, is
called a battery. These temporary defences are formed by throwing up earth to the
height of three or four feet, so as to form a wall or parapet for the protection of the
cannon and men; where this cannot be done, logs, barrels or sacks filled with earth,
&c. are employed. At New Orleans the American lines of batteries were principally
formed of bales of cotton.
In order to protect an army from sudden attacks, entrenchments are made on the side
on which they are apprehended; they consist of ditches, the earth from which is
thrown up within.