|
|
(电子)国外计算机科学教材
操作系统——并发与分布式软件设计(英文版)Operating Systems Concurrent and Distributed Software Design |
|
|
|
| 原价:
¥79.00(以下报价瞬息万变,建议您点击全部站点比对) | | |通过以下方式购买,或许更便宜: |
|
|
| |
|
|
|
|
我要购书网的承诺:本网上购书中心所出售的"操作系统——并发与分布式软件设计(英文版)Operating Systems Concurrent and Distributed Software Design"图书保证正版,您在本购书中心享有收到图书七天内无条件退货!收到商品15日之内换货的待遇!
|
| |
退货规定:从本网上书店所购买的图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品7日之内可退货 |
| |
换货规定:从本购书中心所购买"操作系统——并发与分布式软件设计(英文版)Operating Systems Concurrent and Distributed Software Design"图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品15日之内换货
|
|
| |
| 本书是—本用新的观念讲述操作系统原理和设计的高级教程。全书围绕着并发和分布式概念组织章节,避免仅仅将注意力置于传统的集中式系统,反映了分布式系统在当代已经被广泛应用的现实,从而更能为读者所接受。 全书共有30章,分为四个部分,第一部分和第二部分主要阐述了操作系统核心概念和基本功能,并介绍了操作系统理论和实践的最新进展。第三部分和第四部分将操作系统和数据库,以及分布式系统的设计结合起来,对UNIX,Linux,Windows2000/NT和JVM等典型现代操作系统进行了具体分析,并讨论了Web服务,中间件和事务处理等应用。对于操作系统安全这样一个重要课题,书中还专门安排了一章进行论述。本书的另一个特点是,所有的代码示例均结合Java语言进行,并采用Java描述面向对象的概念、并发算法和分布式程序设计等。 本书适合作为研究生的操作系统课程教材,也适合程序员、软件工程师以及系统设计者作为学习和了解系统软件和操作系统的参考书。 |
| |
| 1 System design requirements1.1 Inherently concurrent systems1.2 Supporting potentially concurrent applications1.3 Architectures for software systems1.4 Defining a concurrent system1.5 Systems implementation requirements1,6 Security, protection and fault tolerance in system designExercisesPART I SYSTEM DESIGN: TECHNOLOGY ANDPRINCIPLES2 System structure and dynamic execution2.1 System structure: Conceptual views2.2 System structure: Implementational views2.3 The process concept2.4 Operating system functions2.5 Operating system invocation and protection-2.6 Operating system structure2.7 Object structuring within and supported by operating systems2.8 Distributed object systems, platforms and middleware2.9 Security and protection2.10 SummaryStudy questions and exercises3 The hardware interface, I/O andcommunications3.1 Overview3.2 Device interfacing3.3 Exceptions3.4 Multiprocessors3.5 User-level input and output3.6 Communications management3.7 Communications networks, interfaces and drivers3.8 Communications software3.9 Communications handling within and above anoperating system3.10 SummaryExercises4 Support for processes4.1 Use of processes in systems4.2 Processes and processors4.3 Process state4.4 Synchronizing with the hardware: Events and the WAIToperation4.5 The process data structure4.6 Scheduling: General approaches4.7 Scheduling for shared-memory multiprocessors4.8 Process scheduling to meet real-time requirements4.9 Process abstraction and implementation4.10 Operating system structure and placement of processes4.11 Multi-threaded process implementation4.12 Processes in languages, runtime systems andoperating systems4.13 Process state in language systems and operating systems4.14 Sequential programs with system calls4.15 Evolution of concurrency in programming languages4.16 Implementation of processes in language systems4.17 Thread package architectures4.18 Java threads and exceptions4.19 SummaryStudy questions and exercises5 Memory management5.1 Memory management5.2 The memory hierarchy5.3 The address space of a process5.4 Segmented virtual memory5.5 Paged virtual memory5.6 Combining segmentation and paging5.7 Operating system data structures5.8 An example of a memory management unit (MMU)5.9 Memory management in system design5.10 SummaryExercises6 File management6.1 File management6.2 An overview of filing system functions6.3 File and directory structure6.4 The filing system interface6.5 The filing system implementation6.6 Modern file system design6.7 Network-based file servers6.8 Integrating virtual memory and storage6.9 SummaryExercises7 Fundamentals of distributed systems7.1 Introduction7.2 Evolution of distributed systems for the workplace7.3 Personal computing7.4 Model and software architecture7.5 Special characteristics of distributed systems7.6 Time in distributed systems7.7 Naming7.8 Mobile users, computers and objects7.9 SummaryExercises8 Security8.1 Scenarios and security requirements8.2 Threats and risk analysis8.3 Approaches to encryption8.4 Algorithms8.5 Protocols8.6 Examples8.7 SummaryExercisesPART II CONCURRENCY CONTROL INMAIN MEMORY9 System structure9.1 Processes sharing an address space9.2 Processes in separate address spaces9.3 Sharing the operating system9.4 Summary of process placement in the two models9.5 Requirements for process interaction9.6 Types of process interaction9.7 A process interaction9.8 Definition of single concurrent actionsStudy questions and exercises10 Low-level synchronization: Implementation10.1 Process synchronization compared with event signal and wait10.2 Mutual exclusion10.3 Hardware support for mutual exclusion10.4 Semaphores10.5 Styles of use of semaphores10.6 Implementation of semaphore operations10.7 SummaryStudy questions and exercises11 Low-level synchronization: Algorithms11.1 Introduction11.2 An example of semaphores in system design: The THE system11.3 The producer-consumer, bounded buffer Droblem11.4 Safety and liveness properties11.5 The multiple readers, single writer problem11.6 Limitations of semaphores11.7 Eventcounts and sequencers11.8 POSIXthreads11.9 Summary11.10 Case study with exercises: Management of a disk block cache12 IPC with shared memory12.1 Critical regions in programming languages12.2 Monitors12.3 Synchronization at the granularity of operations12.4 SummaryStudy questions and exercises13 IPC and system structure13.1 Styles of inter-process communication13.2 System structure and IPC with shared memory13.3 System structure and IPC without shared memory13.4 Systems where shared-memory communication is appropriate13.5 Systems where shared-memory communication isnot appropriate13.6 Examples from classical UNIX13.7 Overview of inter-process communication13.8 Duality of system structures13.9 Naming13.10 SummaryStudy questions and exercises14 IPC without shared memory14.1 Introduction14.2 Use of files for common data14.3 UNIX pipes14.4 Asynchronous message passing14.5 Variations on basic message passing14.6 Implementation of asynchronous message passing14.7 Synchronous message passing14.8 Message passing in programming languages14.9 Multi-threading in clients and servers14.10 SummaryStudy questions and exercises15 Crash resilience and persistent data15.1 Crashes15.2 A model of acrash15.3 Crash resilience or failure transparency15.4 Idempotent (repeatable) operations15.5 Atomic operations on persistent objects15.6 Implementation of atomic operations15.7 Non-volatile memory15.8 A single operation on persistent data15.9 Database management systems' requirements onoperating systems15.10 SummaryStudy questions and exercises16 Distributed IPC16.1 Introduction16.2 Special characteristics of distributed systems16.3 Distributed IPC: Message passing16.4 Integration of IPC with communications16.5 Java's sockets and streams16.6 Distributed programming paradigms16.7 Remote procedure call (RPC)16.8 RPC-language integration16.9 Java's RMI: RPc in the general object model16.10 Critique of synchronous invocation16.11 Naming, location and binding16.12 Summary of Part IIStudy questions and exercisesPART III TRANSACTIONS17 Composite operations17.1 Composite operations17.2 Composite operations in main memory17.3 Composite operations involving main memory andpersistent memory17.4 Concurrent execution of composite operations17.5 Potential problems17.6 Crashes17.7 SummaryStudy questions and exercises18 Resource allocation and deadlock18.1 Requirements for dynamic allocation18.2 Deadlock18.3 Livelock and starvation18.4 Conditions for deadlockto exist18.6 The dining philosophers problem18.6 Object allocation graphs18.7 Data structures and algorithms for deadlock detection18.8 Deadlock avoidance18.9 Information on releasing objects: Multiphase processes18.10 Distributed deadlocks18.11 SummaryStudy questions and exercises19 Transactions19.1 Introduction19.2 Transaction specification and programming19.3 The definition of serializability and consistency19.4 The ACID properties of transactions19.6 Indicating specific orderings of transactions19.6 A system model for transaction processing19.7 Dependency graphs for transactions19.8 Histories and serialization graphs19.9 Dealing with aborts: More about the property of isolation19.10 SummaryStudy questions and exercises20 Concurrency control20.1 Introduction20.2 Concurrent composite operations in main memory only20.3 Structure of transaction management systems20.4 Concurrency control through locking20.5 Time-stamp ordering (TSO)20.6 Optimistic concurrency control (OCC)20.7 SummaryStudy questions and exercises21 Recovery21.1 Requirements for recovery21.2 The object model, object state and recovery21.3 Concurrency, crashes and the properties of transactions21.4 Logging and shadowing for crash resilience21.5 Use of a recovery log21.6 Idempotent undo and redo operations21.7 Transaction states on a failure21.8 An algorithm for recovery21.9 Location databases for mobile objects21.10 SummaryExercises22 Distributed transactions22.1 An object model for distributed systems22.2 Distributed transaction processing22.3 Communication22.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 system22.8 Atomic commitment: The two-phase commit (2PC) protocol22.9 Two-phase validation for OCC22.10 SummaryStudy questions and exercises23 Distributed computations23.1 Introduction23.2 Process groups23.3 Consistency of data replicas23.4 Ordering message delivery23.5 Distributed, N-process mutual exclusion23.6 Summary of Part IIIExercisesPART IV CASE STUDIES24 Classical UNIX24.1 Introduction24.2 Evolution of UNIX24.3 System structure and the UNIX kernel24.4 File system interfaces24.5 File system implementation24.6 Process creation, termination and scheduling24.7 IPC: Pipes and signals24.8 SummaryExercises25 LINUX, Solaris and contemporary UNIX25.1 Introduction25.2 Kernel structure25.3 SVr41PC25.4 Sockets and file subsystem integrated IPC25.5 Memory management25.6 Multiprocessor scheduling25.7 SummaryExercises26 Extensible systems26.1 Mechanisms for extensibility26.2 Compile-time specialization26.3 Microkernel operating systems26.4 Downloadable code26.5 Exokernels and vertical structuring26.6 Nested virtual machines26.7 Extensible virtual machines26.8 SummaryExercises27 Windows 200027.1 Introduction to Windows 200027.2 System structure27.3 The object model and object manager27.4 The kernel27.5 Processes, threads, fibres and concurrency control27.6 The I/O subsystem27.7 The NTfiling system, NTFS27.8 Networking27.9 SummaryExercises2.8 The World Wide Web28.1 A simple web-client, web-server interaction28.2 Naming web pages28.3 Communication using HTTP28.4 Document representation28.5 Executing programs at server and client28.6 Security28.7 Concurrency control28.8 Scalability issues28.9 Web-based middleware: XML and SOAP28.10 SummaryExercises29 Middleware29.1 Middleware paradigms29.2 Java middleware29.3 OMG and OMA29.4 CORBA29.50DMG29.6 COM, DCOM and .NET29.7 Message-oriented middleware (MOM)29.8 SummaryExercises30 Transaction processing monitors and systems30.1 Transaction processing monitors30.2 Introduction to some electronic funds transfer (EFT) applications30.3 International inter-bank payments: SWIFT30.4 Authentication by PIN30.5 The international automatic teller machine (ATM) network service30.6 Load and traffic in TP systems30.7 Summary and trendsExercisesAppendix: Evolution of computer systemsA. 1 Evolution and exploitation of technologyA.2 Operating systems and distributed operating systemsA.3 DatabasesA.4 Concurrency controlBibliographyGlossaryAuthor indexSubject index |
|
|