Operating Systems and Middleware: Supporting Controlled Interaction
Free

Operating Systems and Middleware: Supporting Controlled Interaction

By Max Hailperin
Free
Book Description

Intended for juniors, seniors, and first-year graduate students, Max Hailperin's Operating Systems and Middleware: Supporting Controlled Interaction takes a modern approach to the traditional Operating Systems course. By using this innovative text, students will obtain an understanding of how contemporary operating systems and middleware work, and why they work that way. They will also gain practical skills including the ability to reason about and program concurrent computations, understand hardware/software interactions, use empirical measurement to guide design, and analyze system security.



Version 1.2, published 2015-07-11 is now available. Source for the book is in a Github repository.

Table of Contents
  • Preface
  • Introduction
    • Chapter Overview
    • What Is an Operating System?
    • What Is Middleware?
    • Objectives for the Book
    • Multiple Computations on One Computer
    • Interactions Between Computations
    • Supporting Interaction Across Time
    • Supporting Interaction Across Space
    • Security
  • Threads
    • Introduction
    • Example of Multithreaded Programs
    • Reasons for Using Concurrent Threads
    • Switching Between Threads
    • Preemptive Multitasking
    • Security and Threads
  • Scheduling
    • Introduction
    • Thread States
    • Scheduling Goals
      • Throughput
      • Response Time
      • Urgency, Importance, and Resource Allocation
    • Fixed-Priority Scheduling
    • Dynamic-Priority Scheduling
      • Earliest Deadline First Scheduling
      • Decay Usage Scheduling
    • Proportional-Share Scheduling
    • Security and Scheduling
  • Synchronization and Deadlocks
    • Introduction
    • Races and the Need for Mutual Exclusion
    • Mutexes and Monitors
      • The Mutex Application Programming Interface
      • Monitors: A More Structured Interface to Mutexes
      • Underlying Mechanisms for Mutexes
    • Other Synchronization Patterns
      • Bounded Buffers
      • Readers/Writers Locks
      • Barriers
    • Condition Variables
    • Semaphores
    • Deadlock
      • The Deadlock Problem
      • Deadlock Prevention Through Resource Ordering
      • Ex Post Facto Deadlock Detection
      • Immediate Deadlock Detection
    • Synchronization/Scheduling Interactions
      • Priority Inversion
      • The Convoy Phenomenon
    • Nonblocking Synchronization
    • Security and Synchronization
  • Atomic Transactions
    • Introduction
    • Example Applications of Transactions
      • Database Systems
      • Message-Queuing Systems
      • Journaled File Systems
    • Mechanisms to Ensure Atomicity
      • Serializability: Two-Phase Locking
      • Failure Atomicity: Undo Logging
    • Transaction Durability: Write-Ahead Logging
    • Additional Transaction Mechanisms
      • Increased Transaction Concurrency: Reduced Isolation
      • Coordinated Transaction Participants: Two-Phase Commit
    • Security and Transactions
  • Virtual Memory
    • Introduction
    • Uses for Virtual Memory
      • Private Storage
      • Controlled Sharing
      • Flexible Memory Allocation
      • Sparse Address Spaces
      • Persistence
      • Demand-Driven Program Loading
      • Efficient Zero Filling
      • Substituting Disk Storage for RAM
    • Mechanisms for Virtual Memory
      • Software/Hardware Interface
      • Linear Page Tables
      • Multilevel Page Tables
      • Hashed Page Tables
      • Segmentation
    • Policies for Virtual Memory
      • Fetch Policy
      • Placement Policy
      • Replacement Policy
    • Security and Virtual Memory
  • Processes and Protection
    • Introduction
    • POSIX Process Management API
    • Protecting Memory
      • The Foundation of Protection: Two Processor Modes
      • The Mainstream: Multiple Address Space Systems
      • An Alternative: Single Address Space Systems
    • Representing Access Rights
      • Fundamentals of Access Rights
      • Capabilities
      • Access Control Lists and Credentials
    • Alternative Granularities of Protection
      • Protection Within a Process
      • Protection of Entire Simulated Machines
    • Security and Protection
  • Files and Other Persistent Storage
    • Introduction
    • Disk Storage Technology
    • POSIX File API
      • File Descriptors
      • Mapping Files into Virtual Memory
      • Reading and Writing Files at Specified Positions
      • Sequential Reading and Writing
    • Disk Space Allocation
      • Fragmentation
      • Locality
      • Allocation Policies and Mechanisms
    • Metadata
      • Data Location Metadata
      • Access Control Metadata
      • Other Metadata
    • Directories and Indexing
      • File Directories Versus Database Indexes
      • Using Indexes to Locate Files
      • File Linking
      • Directory and Index Data Structures
    • Metadata Integrity
    • Polymorphism in File System Implementations
    • Security and Persistent Storage
  • Networking
    • Introduction
      • Networks and Internets
      • Protocol Layers
      • The End-to-End Principle
      • The Networking Roles of Operating Systems, Middleware, and Application Software
    • The Application Layer
      • The Web as a Typical Example
      • The Domain Name System: Application Layer as Infrastructure
      • Distributed File Systems: An Application Viewed Through Operating Systems
    • The Transport Layer
      • Socket APIs
      • TCP, the Dominant Transport Protocol
      • Evolution Within and Beyond TCP
    • The Network Layer
      • IP, Versions 4 and 6
      • Routing and Label Switching
      • Network Address Translation: An End to End-to-End?
    • The Link and Physical Layers
    • Network Security
      • Security and the Protocol Layers
      • Firewalls and Intrusion Detection Systems
      • Cryptography
  • Messaging, RPC, and Web Services
    • Introduction
    • Messaging Systems
    • Remote Procedure Call
      • Principles of Operation for RPC
      • An Example Using Java RMI
    • Web Services
    • Security and Communication Middleware
  • Security
    • Introduction
    • Security Objectives and Principles
    • User Authentication
      • Password Capture Using Spoofing and Phishing
      • Checking Passwords Without Storing Them
      • Passwords for Multiple, Independent Systems
      • Two-Factor Authentication
    • Access and Information-Flow Controls
    • Viruses and Worms
    • Security Assurance
    • Security Monitoring
    • Key Security Best Practices
  • Stacks
    • Stack-Allocated Storage: The Concept
    • Representing a Stack in Memory
    • Using a Stack for Procedure Activations
  • Bibliography
  • Index
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      Also Available On
      App store smallGoogle play small
      Categories
      Curated Lists
      • Pattern Recognition and Machine Learning (Information Science and Statistics)
        by Christopher M. Bishop
        Data mining
        by I. H. Witten
        The Elements of Statistical Learning: Data Mining, Inference, and Prediction
        by Various
        See more...
      • CK-12 Chemistry
        by Various
        Concept Development Studies in Chemistry
        by John Hutchinson
        An Introduction to Chemistry - Atoms First
        by Mark Bishop
        See more...
      • Microsoft Word - How to Use Advanced Algebra II.doc
        by Jonathan Emmons
        Advanced Algebra II: Activities and Homework
        by Kenny Felder
        de2de
        by
        See more...
      • The Sun Who Lost His Way
        by
        Tania is a Detective
        by Kanika G
        Firenze_s-Light
        by
        See more...
      • Java 3D Programming
        by Daniel Selman
        The Java EE 6 Tutorial
        by Oracle Corporation
        JavaKid811
        by
        See more...