书籍详情

操作系统:并发与分布式软件设计

操作系统:并发与分布式软件设计

作者:(英)Jean Bacon等著

出版社:电子工业出版社

出版时间:2003-06-01

ISBN:9787505387881

定价:¥79.00

购买这本书可以去
内容简介
  本书是一本用新的观念讲述操作系统原理和设计的高级教程。全书围绕着并发和分布式概念组织章节,避免仅仅将注意力置于传统的集中式系统,反映了分布式系统在当代已经被广泛应用的现实,从而更能为读者所接受。全书共有30章,分为四个部分,第一部分和第二部分主要阐述了操作系统核心概念和基本功能,并介绍了操作系统理论和实践的最新进展。第三部分和第四部分将操作系统和数据库,以及分布式系统的设计结合起来,对UNIX,Linux,Windows 2000/NT和JVM等典型现代操作系统进行了具体分析,并讨论了Web服务,中间件和事务处理等应用。对于操作系统安全这样一个重要课题,书中还专门安排了一章进行论述。本书的另一个特点是,所有的代码示例均结合Java语言进行,并采用Java描述面向对象的概念、并发算法和分布式程序设计等。本书适合作为研究生的操作系统课程教材,也适合程序员、软件工程师以及系统设计者作为学习和了解系统软件和操作系统的参考书。
作者简介
暂缺《操作系统:并发与分布式软件设计》作者简介
目录
1   System design requirements                  
 1.1   Inherently concurrent systems                  
 1.2   Supporting potentially concurrent applications                  
 1.3   Architectures for software systems                  
 1.4   Defining a concurrent system                  
 1.5   Systems implementation requirements                  
 1,6   Security, protection and fault tolerance in system design                  
        Exercises                  
 PART I SYSTEM DESIGN: TECHNOLOGY AND                  
 PRINCIPLES                  
 2   System structure and dynamic execution                  
 2.1   System structure: Conceptual views                  
 2.2   System structure: Implementational views                  
 2.3   The process concept                  
 2.4   Operating system functions                  
 2.5   Operating system invocation and protection-                  
 2.6   Operating system structure                  
 2.7   Object structuring within and supported by operating systems                  
 2.8   Distributed object systems, platforms and middleware                  
 2.9   Security and protection                  
 2.10  Summary                  
         Study questions and exercises                  
 3   The hardware interface, I/O and                  
       communications                  
 3.1   Overview                  
 3.2   Device interfacing                  
 3.3   Exceptions                  
 3.4  Multiprocessors                  
 3.5  User-level input and output                  
 3.6  Communications management                  
 3.7  Communications networks, interfaces and drivers                  
 3.8 Communications software                  
         3.9 Communications handling within and above an                  
         operating system                  
         3.10  Summary                  
         Exercises                  
         4  Support for processes                  
         4.1  Use of processes in systems                  
         4.2  Processes and processors                  
         4.3  Process state                  
 4.4   Synchronizing with the hardware: Events and the WAIT                  
         operation                  
        4.5  The process data structure                  
         4.6  Scheduling: General approaches                  
         4.7  Scheduling for shared-memory multiprocessors                  
         4.8  Process scheduling to meet real-time requirements                  
         4.9  Process abstraction and implementation                  
         4.10  Operating system structure and placement of processes                  
         4.11  Multi-threaded process implementation                  
         4.12  Processes in languages, runtime systems and                  
         operating systems                  
         4.13  Process state in language systems and operating systems                  
 4.14  Sequential programs with system calls                  
 4.15  Evolution of concurrency in programming languages                  
 4.16  Implementation of processes in language systems                  
 4.17  Thread package architectures                  
 4.18  Java threads and exceptions                  
 4.19  Summary                  
         Study questions and exercises                  
 5   Memory management                  
 5.1   Memory management                  
 5.2   The memory hierarchy                  
 5.3   The address space of a process                  
 5.4   Segmented virtual memory                  
 5.5   Paged virtual memory                  
 5.6   Combining segmentation and paging                  
 5.7   Operating system data structures                  
 5.8   An example of a memory management unit (MMU)                  
 5.9   Memory management in system design                  
 5.10  Summary                  
          Exercises                  
 6   File management                  
 6.1    File management                  
 6.2   An overview of filing system functions                  
 6.3   File and directory structure                  
 6.4   The filing system interface                  
 6.5   The filing system implementation                  
 6.6   Modern file system design                  
 6.7   Network-based file servers                  
 6.8   Integrating virtual memory and storage                  
 6.9   Summary                  
         Exercises                  
 7   Fundamentals of distributed systems                  
 7.1   Introduction                  
 7.2   Evolution of distributed systems for the workplace                  
 7.3   Personal computing                  
 7.4   Model and software architecture                  
 7.5   Special characteristics of distributed systems                  
 7.6   Time in distributed systems                  
 7.7   Naming                  
 7.8   Mobile users, computers and objects                  
 7.9   Summary                  
         Exercises                  
 8   Security                  
 8.1   Scenarios and security requirements                  
 8.2   Threats and risk analysis                  
 8.3   Approaches to encryption                  
 8.4   Algorithms                  
 8.5   Protocols                  
 8.6   Examples                  
 8.7   Summary                  
         Exercises                  
 PART II CONCURRENCY CONTROL IN                  
 MAIN MEMORY                  
 9   System structure                  
 9.1   Processes sharing an address space                  
 9.2   Processes in separate address spaces                  
 9.3   Sharing the operating system                  
 9.4   Summary of process placement in the two models                  
 9.5   Requirements for process interaction                  
 9.6   Types of process interaction                  
 9.7   A process interaction                  
 9.8   Definition of single concurrent actions                  
         Study questions and exercises                  
 10  Low-level synchronization: Implementation                  
 10.1  Process synchronization compared with event signal and wait                  
 10.2  Mutual exclusion                  
 10.3  Hardware support for mutual exclusion                  
 10.4  Semaphores                  
 10.5  Styles of use of semaphores                  
 10.6  Implementation of semaphore operations                  
 10.7  Summary                  
         Study questions and exercises                  
 11   Low-level synchronization: Algorithms                  
 11.1  Introduction                  
 11.2  An example of semaphores in system design: The THE system                  
 11.3  The producer-consumer, bounded buffer Droblem                  
 11.4  Safety and liveness properties                  
 11.5  The multiple readers, single writer problem                  
 11.6  Limitations of semaphores                  
 11.7  Eventcounts and sequencers                  
 11.8  POSIXthreads                  
 11.9  Summary                  
 11.10 Case study with exercises: Management of a disk block cache                  
 12  IPC with shared memory                  
 12.1   Critical regions in programming languages                  
 12.2  Monitors                  
 12.3  Synchronization at the granularity of operations                  
 12.4  Summary                  
         Study questions and exercises                  
 13  IPC and system structure                  
 13.1  Styles of inter-process communication                  
 13.2  System structure and IPC with shared memory                  
 13.3  System structure and IPC without shared memory                  
 13.4  Systems where shared-memory communication is appropriate                  
 13.5  Systems where shared-memory communication is                  
         not appropriate                  
 13.6  Examples from classical UNIX                  
 13.7  Overview of inter-process communication                  
 13.8  Duality of system structures                  
 13.9  Naming                  
 13.10 Summary                  
         Study questions and exercises                  
 14  IPC without shared memory                  
 14.1  Introduction                  
 14.2  Use of files for common data                  
 14.3  UNIX pipes                  
 14.4  Asynchronous message passing                  
 14.5  Variations on basic message passing                  
 14.6  Implementation of asynchronous message passing                  
 14.7  Synchronous message passing                  
 14.8  Message passing in programming languages                  
 14.9  Multi-threading in clients and servers                  
 14.10 Summary                  
         Study questions and exercises                  
 15  Crash resilience and persistent data                  
 15.1  Crashes                  
 15.2  A model of acrash                  
 15.3  Crash resilience or failure transparency                  
 15.4  Idempotent (repeatable) operations                  
 15.5  Atomic operations on persistent objects                  
 15.6  Implementation of atomic operations                  
 15.7  Non-volatile memory                  
 15.8  A single operation on persistent data                  
 15.9  Database management systems' requirements on                  
         operating systems                  
 15.10 Summary                  
         Study questions and exercises                  
 16  Distributed IPC                  
 16.1  Introduction                  
 16.2  Special characteristics of distributed systems                  
 16.3  Distributed IPC: Message passing                  
 16.4  Integration of IPC with communications                  
 16.5  Java's sockets and streams                  
 16.6  Distributed programming paradigms                  
 16.7  Remote procedure call (RPC)                  
 16.8  RPC-language integration                  
 16.9  Java's RMI: RPc in the general object model                  
 16.10 Critique of synchronous invocation                  
 16.11  Naming, location and binding                  
 16.12 Summary of Part II                  
         Study questions and exercises                  
 PART III TRANSACTIONS                  
 17  Composite operations                  
 17.1  Composite operations                  
 17.2  Composite operations in main memory                  
 17.3  Composite operations involving main memory and                  
         persistent memory                  
 17.4  Concurrent execution of composite operations                  
 17.5  Potential problems                  
 17.6  Crashes                  
 17.7  Summary                  
         Study questions and exercises                  
 18  Resource allocation and deadlock                  
 18.1   Requirements for dynamic allocation                  
 18.2  Deadlock                  
 18.3  Livelock and starvation                  
 18.4  Conditions for deadlockto exist                  
 18.6  The dining philosophers problem                  
 18.6  Object allocation graphs                  
 18.7  Data structures and algorithms for deadlock detection                  
 18.8  Deadlock avoidance                  
 18.9  Information on releasing objects: Multiphase processes                  
 18.10 Distributed deadlocks                  
 18.11 Summary                  
         Study questions and exercises                  
 19  Transactions                  
 19.1   Introduction                  
 19.2  Transaction specification and programming                  
 19.3  The definition of serializability and consistency                  
 19.4  The ACID properties of transactions                  
 19.6  Indicating specific orderings of transactions                  
 19.6  A system model for transaction processing                  
 19.7  Dependency graphs for transactions                  
 19.8  Histories and serialization graphs                  
 19.9  Dealing with aborts: More about the property of isolation                  
 19.10 Summary                  
         Study questions and exercises                  
 20  Concurrency control                  
 20.1  Introduction                  
 20.2  Concurrent composite operations in main memory only                  
 20.3  Structure of transaction management systems                  
 20.4  Concurrency control through locking                  
 20.5  Time-stamp ordering (TSO)                  
 20.6  Optimistic concurrency control (OCC)                  
 20.7  Summary                  
         Study questions and exercises                  
 21   Recovery                  
 21.1   Requirements for recovery                  
 21.2  The object model, object state and recovery                  
 21.3  Concurrency, crashes and the properties of transactions                  
 21.4  Logging and shadowing for crash resilience                  
 21.5  Use of a recovery log                  
 21.6  Idempotent undo and redo operations                  
 21.7  Transaction states on a failure                  
 21.8  An algorithm for recovery                  
 21.9  Location databases for mobile objects                  
 21.10 Summary                  
         Exercises                  
 22  Distributed transactions                  
 22.1  An object model for distributed systems                  
 22.2  Distributed transaction processing                  
 22.3  Communication                  
 22.4  Concurrency control:Two-phase locking (2PL)                  
 22.5  Concurrency control: Time-stamp ordering (TSO)                  
 22.6  Optimistic concurrency control (OCC)                  
 22.7  Commit and abort in a distributed system                  
 22.8  Atomic commitment: The two-phase commit (2PC) protocol                  
 22.9  Two-phase validation for OCC                  
 22.10 Summary                  
          Study questions and exercises                  
 23  Distributed computations                  
 23.1  Introduction                  
 23.2  Process groups                  
 23.3  Consistency of data replicas                  
 23.4  Ordering message delivery                  
 23.5  Distributed, N-process mutual exclusion                  
 23.6  Summary of Part III                  
          Exercises                  
 PART IV CASE STUDIES                  
 24  Classical UNIX                  
 24.1   Introduction                  
 24.2  Evolution of UNIX                  
 24.3  System structure and the UNIX kernel                  
 24.4  File system interfaces                  
 24.5  File system implementation                  
 24.6  Process creation, termination and scheduling                  
 24.7  IPC: Pipes and signals                  
 24.8  Summary                  
         Exercises                  
 25  LINUX, Solaris and contemporary UNIX                  
 25.1  Introduction                  
 25.2  Kernel structure                  
 25.3  SVr41PC                  
 25.4  Sockets and file subsystem integrated IPC                  
 25.5  Memory management                  
 25.6  Multiprocessor scheduling                  
 25.7  Summary                  
         Exercises                  
 26  Extensible systems                  
 26.1  Mechanisms for extensibility                  
 26.2  Compile-time specialization                  
 26.3  Microkernel operating systems                  
 26.4  Downloadable code                  
 26.5  Exokernels and vertical structuring                  
 26.6  Nested virtual machines                  
 26.7  Extensible virtual machines                  
 26.8  Summary                  
         Exercises                  
 27  Windows 2000                  
 27.1  Introduction to Windows 2000                  
 27.2  System structure                  
 27.3  The object model and object manager                  
 27.4  The kernel                  
 27.5  Processes, threads, fibres and concurrency control                  
 27.6  The I/O subsystem                  
 27.7  The NTfiling system, NTFS                  
 27.8  Networking                  
 27.9  Summary                  
         Exercises                  
 2.8  The World Wide Web                  
 28.1  A simple web-client, web-server interaction                  
 28.2  Naming web pages                  
 28.3  Communication using HTTP                  
 28.4  Document representation                  
 28.5  Executing programs at server and client                  
 28.6  Security                  
 28.7  Concurrency control                  
 28.8  Scalability issues                  
 28.9  Web-based middleware: XML and SOAP                  
 28.10 Summary                  
         Exercises                  
 29  Middleware                  
 29.1  Middleware paradigms                  
 29.2  Java middleware                  
 29.3  OMG and OMA                  
 29.4 CORBA                  
 29.50DMG                  
 29.6  COM, DCOM and .NET                  
 29.7  Message-oriented middleware (MOM)                  
 29.8  Summary                  
         Exercises                  
 30  Transaction processing monitors and systems                  
 30.1  Transaction processing monitors                  
 30.2  Introduction to some electronic funds transfer (EFT) applications                  
 30.3  International inter-bank payments: SWIFT                  
 30.4  Authentication by PIN                  
 30.5  The international automatic teller machine (ATM) network service                  
 30.6  Load and traffic in TP systems                  
 30.7  Summary and trends                  
          Exercises                  
 Appendix: Evolution of computer systems                  
 A. 1   Evolution and exploitation of technology                  
 A.2   Operating systems and distributed operating systems                  
 A.3   Databases                  
 A.4   Concurrency control                  
  Bibliography                  
  Glossary                  
  Author index                  
  Subject index                  

猜您喜欢

读书导航