Summary
Applied Operating System Concepts is the first book to provide a precise introduction to the principles of operating systems with numerous contemporary code examples, exercises, and programming projects. Written by the leading authors in the field of operating systems, this book capitalizes on the power of Java(TM) technology to allow students to work with executable code for examples of core concepts. Features of Applied Operating System Concepts * Presents real code examples using the Java programming language * Uses Java technology to introduce difficult concepts like processes, process synchronization, and semaphores * Describes the role of threads in modern operating systems and Java, and provides the opportunity to write multithreaded programs * Introduces up-to-date distributed operating system topics (e.g., Java's Remote Method Invocation, CORBA, RPC) in one concise chapter * Includes chapter-long case studies of UNIX, LINUX, and Windows NT(TM) * Provides a Java Primer appendix
Author Biography
<b>Abraham Silberschatz</b> is director of the Information Sciences Research Center at Bell Laboratories in Murray Hill, New Jersey. He previously held a chaired professorship in the Department of Computer Science at the University of Texas at Austin. His research interests include operating systems, database systems, and distributed systems. Professor Silberschatz is an ACM Fellow whose writings have appeared in numerous ACM and IEEE publications and other professional conferences and journals. He received the 1998 ACM Karl V. Karlstrom Outstanding Educator Award, the 1997 ACM SIGMOD Contribution Award, and the IEEE Computer Society Outstanding Paper Award for the article "Capability Manager," which appeared in IEEE Transactions and Software Engineering. He is co-author of two well-known textbooksùOperating System Concepts and Database System Concepts.<b>Peter Baer Galvin</b> is the chief technologist for Corporate Technologies of Burlington, Massachusetts, where he designs and implements complex computing facilities. Previously, he was systems manager for the department of Computer Science at Brown University. He speaks and teaches worldwide on the topics of system management, security, and performance. Mr. Galvin also writes a column on systems administration for SunWorld Magazine, and is co-author of Operating System Concepts. <b>Greg Gagne</b> has been teaching computer science at Westminster College since 1990. He has taught introductory computer science courses as well as courses on operating systems, data communications, and distributed systems. He also gives Java workshops to educators. Professor Gagnes current research includes Javaùparticularly the areas of multithreading applications and distributed computing. In addition, he has spent the past few years studying the pedagogical implications of technology as it becomes more prominent in the classroom.
Table of Contents
PART ONE OVERVIEW |
|
|
|
|
What Is an Operating System? |
|
|
3 | (3) |
|
|
6 | (2) |
|
|
8 | (2) |
|
Personal-Computer Systems |
|
|
10 | (1) |
|
|
11 | (3) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
16 | (3) |
|
|
17 | (1) |
|
|
18 | (1) |
|
Computer-System Structures |
|
|
|
Computer-System Operation |
|
|
19 | (3) |
|
|
22 | (4) |
|
|
26 | (4) |
|
|
30 | (3) |
|
|
33 | (6) |
|
General System Architecture |
|
|
39 | (1) |
|
|
40 | (5) |
|
|
41 | (2) |
|
|
43 | (2) |
|
Operating-System Structures |
|
|
|
|
45 | (6) |
|
Operating-System Services |
|
|
51 | (2) |
|
|
53 | (9) |
|
|
62 | (2) |
|
|
64 | (6) |
|
|
70 | (4) |
|
|
74 | (3) |
|
System Design and Implementation |
|
|
77 | (3) |
|
|
80 | (1) |
|
|
81 | (6) |
|
|
82 | (2) |
|
|
84 | (3) |
PART TWO PROCESS MANAGEMENT |
|
|
|
|
|
87 | (4) |
|
|
91 | (4) |
|
|
95 | (4) |
|
|
99 | (2) |
|
Interprocess Communication |
|
|
101 | (11) |
|
|
112 | (3) |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
|
|
115 | (1) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
118 | (2) |
|
|
120 | (2) |
|
|
122 | (8) |
|
|
130 | (5) |
|
|
132 | (1) |
|
|
133 | (2) |
|
|
|
|
135 | (4) |
|
|
139 | (2) |
|
|
141 | (12) |
|
Multiple-Processor Scheduling |
|
|
153 | (1) |
|
|
153 | (3) |
|
|
156 | (2) |
|
|
158 | (4) |
|
|
162 | (5) |
|
|
167 | (6) |
|
|
168 | (3) |
|
|
171 | (2) |
|
|
|
|
173 | (2) |
|
|
175 | (2) |
|
|
177 | (4) |
|
|
181 | (3) |
|
|
184 | (7) |
|
Classical Synchronization Problems |
|
|
191 | (8) |
|
|
199 | (6) |
|
|
205 | (15) |
|
|
220 | (2) |
|
|
222 | (5) |
|
|
222 | (3) |
|
|
225 | (2) |
|
|
|
|
227 | (2) |
|
Deadlock Characterization |
|
|
229 | (4) |
|
Methods for Handling Deadlocks |
|
|
233 | (4) |
|
|
237 | (4) |
|
|
241 | (3) |
|
|
244 | (1) |
|
|
245 | (2) |
|
|
247 | (8) |
|
|
248 | (2) |
|
|
250 | (5) |
PART THREE STORAGE MANAGEMENT |
|
|
|
|
|
255 | (7) |
|
|
262 | (3) |
|
Contiguous Memory Allocation |
|
|
265 | (4) |
|
|
269 | (15) |
|
|
284 | (6) |
|
|
290 | (2) |
|
|
292 | (5) |
|
|
294 | (2) |
|
|
296 | (1) |
|
|
|
|
297 | (2) |
|
|
299 | (9) |
|
|
308 | (13) |
|
|
321 | (4) |
|
|
325 | (5) |
|
Operating-System Examples |
|
|
330 | (1) |
|
|
331 | (7) |
|
|
338 | (7) |
|
|
339 | (5) |
|
|
344 | (1) |
|
|
|
|
345 | (10) |
|
|
355 | (2) |
|
|
357 | (11) |
|
|
368 | (4) |
|
|
372 | (5) |
|
|
377 | (9) |
|
|
386 | (2) |
|
|
388 | (2) |
|
Efficiency and Performance |
|
|
390 | (2) |
|
|
392 | (2) |
|
|
394 | (7) |
|
|
396 | (3) |
|
|
399 | (2) |
|
|
|
|
401 | (1) |
|
|
402 | (10) |
|
Application I/O Interface |
|
|
412 | (6) |
|
|
418 | (6) |
|
|
424 | (3) |
|
|
427 | (4) |
|
|
431 | (4) |
|
|
431 | (2) |
|
|
433 | (2) |
|
|
|
|
435 | (1) |
|
|
436 | (6) |
|
|
442 | (4) |
|
|
446 | (2) |
|
|
448 | (2) |
|
Stable-Storage Implementation |
|
|
450 | (1) |
|
Tertiary-Storage Structure |
|
|
451 | (5) |
|
|
456 | (13) |
|
|
458 | (6) |
|
|
464 | (5) |
PART FOUR DISTRIBUTED SYSTEMS |
|
|
|
|
|
469 | (8) |
|
|
477 | (3) |
|
|
480 | (7) |
|
|
487 | (3) |
|
|
490 | (3) |
|
|
493 | (2) |
|
|
495 | (2) |
|
|
497 | (4) |
|
|
498 | (2) |
|
|
500 | (1) |
|
Distributed Communication |
|
|
|
|
501 | (5) |
|
|
506 | (1) |
|
|
507 | (8) |
|
|
515 | (1) |
|
|
516 | (1) |
|
|
517 | (4) |
|
|
518 | (1) |
|
|
519 | (2) |
|
|
|
|
521 | (3) |
|
|
524 | (3) |
|
|
527 | (8) |
|
|
535 | (3) |
|
|
538 | (3) |
|
|
538 | (1) |
|
|
539 | (2) |
|
|
|
|
541 | (2) |
|
|
543 | (4) |
|
|
547 | (4) |
|
Stateful Versus Stateless Service |
|
|
551 | (2) |
|
|
553 | (1) |
|
|
554 | (7) |
|
|
561 | (6) |
|
|
562 | (1) |
|
|
563 | (4) |
PART FIVE PROTECTION AND SECURITY |
|
|
|
|
|
567 | (2) |
|
|
569 | (5) |
|
|
574 | (4) |
|
Implementation of Access Matrix |
|
|
578 | (4) |
|
Revocation of Access Rights |
|
|
582 | (2) |
|
Language-Based Protection |
|
|
584 | (3) |
|
|
587 | (4) |
|
|
588 | (1) |
|
|
589 | (2) |
|
|
|
|
591 | (2) |
|
|
593 | (4) |
|
|
597 | (1) |
|
|
598 | (5) |
|
|
603 | (2) |
|
|
605 | (2) |
|
Computer-Security Classifications |
|
|
607 | (2) |
|
An Example Security Model: Windows NT |
|
|
609 | (2) |
|
|
611 | (4) |
|
|
615 | (6) |
|
|
615 | (1) |
|
|
616 | (5) |
PART SIX CASE STUDIES |
|
|
|
|
|
621 | (2) |
|
|
623 | (3) |
|
|
626 | (8) |
|
|
634 | (4) |
|
|
638 | (4) |
|
|
642 | (4) |
|
|
646 | (8) |
|
|
654 | (4) |
|
Interprocess Communication |
|
|
658 | (6) |
|
|
664 | (5) |
|
|
665 | (1) |
|
|
666 | (3) |
|
|
|
|
669 | (5) |
|
|
674 | (3) |
|
|
677 | (4) |
|
|
681 | (4) |
|
|
685 | (5) |
|
|
690 | (8) |
|
|
698 | (5) |
|
|
703 | (3) |
|
Interprocess Communication |
|
|
706 | (2) |
|
|
708 | (3) |
|
|
711 | (2) |
|
|
713 | (4) |
|
|
714 | (1) |
|
|
715 | (2) |
|
|
|
|
717 | (1) |
|
|
718 | (1) |
|
|
719 | (6) |
|
|
725 | (10) |
|
|
735 | (3) |
|
|
738 | (7) |
|
|
745 | (6) |
|
|
751 | (7) |
|
|
758 | (3) |
|
|
759 | (1) |
|
|
759 | (2) |
Appendix A Java Primer |
|
|
|
761 | (9) |
|
|
770 | (2) |
|
|
772 | (3) |
|
A.4 Interfaces and Abstract Classes |
|
|
775 | (4) |
|
A.5 Applications and Applets |
|
|
779 | (2) |
|
|
781 | (2) |
|
|
781 | (2) |
Bibliography |
|
783 | (24) |
Credits |
|
807 | (2) |
Index |
|
809 | |