Operating Systems: A Spiral Approach

Elmasri, Levine, and Carrick's "spiral approach" to teaching operating systems develops student understanding of various OS components early on and helps students approach the more difficult aspects of operating systems with confidence. While operating systems have changed dramatically over the years, most OS books use a linear approach that covers each individual OS component in depth, which is difficult for students to follow and requires instructors to constantly put materials in context. Elmasri, Levine, and Carrick do things differently by following an integrative or "spiral" approach to explaining operating systems. The spiral approach alleviates the need for an instructor to "jump ahead" when explaining processes by helping students "completely" understand a simple, working, functional system as a whole in the very beginning. This is more effective pedagogically, and it inspires students to continue exploring more advanced concepts with confidence. Table of contents PART 1: Operating Systems Overview and Background 1 Getting Started 2 Operating System Concepts, Components, and Architectures PART 2: Building Operating Systems Incrementally: A Breadth-Oriented Spiral Approach 3 A Simple, Single-Process Operating System 4 A Single-User Multitasking Operating System 5 A Single-User Multitasking/Multithreading Operating System 6 A Multiple-User Operating System 7 Parallel and Distributed Computing, Clusters, and Grids PART 3: CPU and Memory Management 8 Process Management: Concepts, Threads, and Scheduling 9 More Process Management: Interprocess Communication, Synchronization, and Deadlocks 10 Basic Memory Management 11 Advanced Memory Management PART 4: A Depth-Oriented Presentation of OS Concepts: Files Systems and Input/Output 12 File Systems - Basics 13 File Systems - Examples and More Features 14 Disk Scheduling and Input/Output Management PART 5: Networks, Distributed Systems, and Security 15 Introduction to Computer Networks 16 Protection and Security 17 Distributed Operating Systems PART 6: Case Studies 18 Windows NT™ through Vista™ 19 Linux: A Case Study 20 Palm OS: A Class Case Study Appendices Appendix A: Overview of Computer System and Architecture Concepts

[1]  James Martin,et al.  Sna: IBM's Networking Solution , 1987 .

[2]  Leslie Lamport,et al.  A new solution of Dijkstra's concurrent programming problem , 1974, Commun. ACM.

[3]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[4]  John M. Rushby,et al.  Design and verification of secure systems , 1981, SOSP.

[5]  Richard H. Eckhouse,et al.  Operating system enhancement through firmware , 1977, MICRO 10.

[6]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[7]  Eric C. Rosen,et al.  The New Routing Algorithm for the ARPANET , 1980, IEEE Trans. Commun..

[8]  Edgar Knapp,et al.  Deadlock detection in distributed databases , 1987, CSUR.

[9]  Luiz André Barroso,et al.  Web Search for a Planet: The Google Cluster Architecture , 2003, IEEE Micro.

[10]  Laszlo A. Belady,et al.  Dynamic space-sharing in computer systems , 1969, Commun. ACM.

[11]  Peter J. Denning,et al.  Operating Systems Principles for Data Flow Networks , 1978, Computer.

[12]  Adi Shamir,et al.  How to expose an eavesdropper , 1984, CACM.

[13]  K. Kavi Cache Memories Cache Memories in Uniprocessors. Reading versus Writing. Improving Performance , 2022 .

[14]  J. Foley Interfaces for advanced computing , 1987 .

[15]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[16]  Gordon Bell,et al.  Ethernet: Distributed Packet Switching for Local Computer Networks , 1976 .

[17]  Dieter Zöbel,et al.  The Deadlock problem: a classifying bibliography , 1983, OPSR.

[18]  Charles Antony Richard Hoare Towards a theory of parallel programming , 2002 .

[19]  Philip D. L. Koch Disk file allocation based on the buddy system , 1987, TOCS.

[20]  Butler W. Lampson,et al.  Experience with processes and monitors in Mesa , 1980, CACM.

[21]  Laszlo A. Belady,et al.  The IBM History of Memory Management Technology , 1981, IBM J. Res. Dev..

[22]  Robert Love,et al.  Linux Kernel Development , 2003 .

[23]  Panos E. Livadas File structures: theory and practice , 1990 .

[24]  Dorothy E. Denning,et al.  Programming Techniques and Data Structures Digital Signatures with Rsa and Other Public.key , 2022 .

[25]  Jack B. Dennis,et al.  Segmentation and the Design of Multiprogrammed Computer Systems , 1965, JACM.

[26]  Elliott I. Organick,et al.  The multics system: an examination of its structure , 1972 .

[27]  R. S. Fabry,et al.  MIN—an optimal variable-space page replacement algorithm , 1976, CACM.

[28]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[29]  N. G. de Bruijn,et al.  Additional comments on a problem in concurrent programming control , 1967, Commun. ACM.

[30]  Craig A. Knoblock,et al.  Advanced Programming in the UNIX Environment , 1992, Addison-Wesley professional computing series.

[31]  Adi Shamir,et al.  On Digital Signatures and Public-Key Cryptosystems. , 1977 .

[32]  Michael R. McGuire,et al.  Further comments on Dijkstra's concurrent programming control problem , 1972, CACM.

[33]  William Stallings,et al.  Isdn: An Introduction , 1988 .

[34]  Richard C. Holt,et al.  Some Deadlock Properties of Computer Systems , 1972, CSUR.

[35]  Per-Åke Larson,et al.  File organization: implementation of a method guaranteeing retrieval in one access , 1984, CACM.

[36]  Stephen T. Kent,et al.  Security Mechanisms in High-Level Network Protocols , 1983, CSUR.

[37]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[38]  Edsger W. Dijkstra,et al.  Co-operating sequential processes , 1968 .

[39]  David Lorge Parnas,et al.  Concurrent control with “readers” and “writers” , 1971, CACM.

[40]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[41]  David A. Patterson,et al.  Reduced instruction set computers , 1985, CACM.

[42]  J. Martin Local area networks: Architectures and implementations , 1989 .

[43]  Eric R. Fox,et al.  Reduced Instruction Set Architecture for a GaAs Microprocessor System , 1986, Computer.

[44]  Joep L. W. Kessels An alternative to event queues for synchronization in monitors , 1977, CACM.

[45]  Laura M. Haas,et al.  Distributed deadlock detection , 1983, TOCS.

[46]  Edsger W. Dijkstra,et al.  Hierarchical ordering of sequential processes , 1971, Acta Informatica.

[47]  Peter J. Denning,et al.  The working set model for program behavior , 1968, CACM.

[48]  Eugene H. Spafford,et al.  The internet worm program: an analysis , 1989, CCRV.

[49]  Donald Golden,et al.  The structure of microcomputer file systems , 1986, CACM.

[50]  Glen E. Newton Deadlock prevention, detection, and resolution: an annotated bibliography , 1979, OPSR.

[51]  A. Nico Habermann,et al.  Prevention of system deadlocks , 1969, CACM.

[52]  Gustavus J. Simmons,et al.  Symmetric and Asymmetric Encryption , 1979, CSUR.

[53]  David A. Patterson,et al.  Assessing RJSCs In High-Level Language Support , 1982, IEEE Micro.

[54]  Efrem G. Mallach Emulator Architecture , 1975, Computer.

[55]  Radia Perlman,et al.  Interconnections: Bridges, Routers, Switches, and Internetworking Protocols , 1999 .

[56]  Leslie Lamport,et al.  The mutual exclusion problem: part I—a theory of interprocess communication , 1986, JACM.

[57]  Douglas E. Comer,et al.  Internetworking with TCP/IP - Principles, Protocols, and Architectures, Fourth Edition , 1988 .

[58]  James W. Havender Avoiding Deadlock in Multitasking Systems , 1968, IBM Syst. J..

[59]  Thomas Knight,et al.  Design and Implementation of the VAX 8600 Pipeline , 1985, Computer.

[60]  Arthur J. Bernstein,et al.  Output Guards and Nondeterminism in “Communicating Sequential Processes” , 1980, TOPL.

[61]  Selim G. Aki Digital signatures: A tutorial survey , 1983, Computer.

[62]  Peter J. Denning,et al.  Virtual memory , 1970, CSUR.

[63]  Russel Sandberg,et al.  The Sun Network Filesystem: Design, Implementation and Experience , 2001 .

[64]  Brian Reid,et al.  Reflections on some recent widespread computer break-ins , 1991 .

[65]  F. T. Grampp,et al.  The UNIX system UNIX operating system security , 1984, AT&T Bell Laboratories Technical Journal.

[66]  D. J. Lalja,et al.  Reducing the branch penalty in pipelined processors , 1988, Computer.

[67]  Dharma P. Agrawal,et al.  MASCO: The Design of a Microprogrammed Processor , 1985, Computer.

[68]  Leslie Lamport,et al.  Password authentication with insecure communication , 1981, CACM.

[69]  Leslie Lamport,et al.  Concurrent reading and writing , 1977, Commun. ACM.

[70]  Michel Raynal,et al.  Algorithms for mutual exclusion , 1986 .

[71]  H. Zimmermann,et al.  OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection , 1980, IEEE Transactions on Communications.

[72]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[73]  John H. Howard Mixed solutions for the deadlock problem , 1973, CACM.

[74]  Norman Abramson,et al.  The ALOHA System-Another Alternative for Computer Communications , 1899 .

[75]  Sreekaanth S. Isloor,et al.  The Deadlock Problem: An Overview , 1980, Computer.

[76]  Toby J. Teorey,et al.  A comparative analysis of disk scheduling policies , 1972, CACM.

[77]  Ron Obermarck,et al.  Distributed deadlock detection algorithm , 1982, TODS.

[78]  Ashok K. Agrawala,et al.  An optimal algorithm for mutual exclusion in computer networks , 1981, CACM.

[79]  Leslie Lamport,et al.  The mutual exclusion problem: partII—statement and solutions , 1986, JACM.

[80]  P. Couvares Caching in the Sprite network file system , 2006 .

[81]  Giovanni Neri,et al.  MP 80: A Microprogrammed CPU with a Microcoded Operating System Kernel , 1981, Computer.

[82]  Roger R. Schell A Security Kernel for a Multiprocessor Microcomputer , 1983, Computer.

[83]  Leslie Lamport The synchronization of independent processes , 2004, Acta Informatica.

[84]  Tomlinson Gene Rauscher,et al.  Microprogramming: A Tutorial and Survey of Recent Developments , 1980, IEEE Transactions on Computers.

[85]  Peter J. Denning,et al.  Working Sets Past and Present , 1980, IEEE Transactions on Software Engineering.

[86]  Roger M. Needham,et al.  Using encryption for authentication in large networks of computers , 1978, CACM.

[87]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.