Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
This book has its origins in Jean Bacon's Concurrent Systems editions 1 and 2. Edition 3 was created recently, specifically for the Open University of the UK who have used the book for their course 'Software Systems and their Development' (M301) since 1999. That course does not require a detailed treatment of operating systems' design with case studies and those parts of Concurrent Systems were removed in its third edition.
This book extends the treatment of operating systems, making it even more appropriate for the standard Operating Systems curriculum. Editions 1 and 2 of Concurrent Systems established the fundamental principles which are necessary for understanding software systems. Features of Operating Systems: Concurrent and Distributed Software Design are:
Java is used throughout to illustrate object-orientation concepts, concurrent algorithms and distributed programming.
The coverage of operating systems' design and case studies is updated and extended.
There is a chapter on security which complements the coverage of distributed systems.
The case studies in Part IV have separated the treatment of classical UNIX from that of current versions and include a new chapter on extensible operating systems. 'The World Wide Web' and a rewrite of 'Middleware' represent recent developments in distributed systems.
The philosophy and approach, focusing on system design issues, remain unchanged and have been applied to the systems that have evolved since 1993.
The aim of this book is to equip students with an integrated view of modern software systems. Modularity, concurrency and distribution are the unifying themes, both within the design of operating systems and in the systems supported by operating systems. The book takes a systems approach rather than a programming language approach, since concurrent and distributed programming are firmly rooted in system design. The language is an implementation tool for the system designer and programming languages are covered throughout the book from this perspective.
The structure of the book is:
Introduction, in which types of real-world system are described and requirements for building computerized systems established.
Part I, in which the relationship between technology and system design is explored. The basic operating system functions are described in detail and the abstraction, and implementation, of a system as a community of concurrent processes is established. The fundamental properties of distributed systems are set down and the provision of security in such systems is discussed.
Part II, in which the focus is concurrency control in operating systems and application-level systems, and inter-process communication (IPC) is explored in the context of system design. To partition the material, the theme of this part concentrates on how to achieve atomicity of a method invocation on an object in main memory. We conclude by considering the cases when the object invoked is persistent or remote; distributed IPC is covered in detail.
Part III, in which the theme is concurrent composite operations or transactions. The traditional application area for these ideas is database systems but we illustrate the general applicability of these systems concepts.
Part IV, in which some case studies are considered from the perspective developed throughout the book.