Concurrent Euclid, The UNIX system, and TUNIS
By: R.C. Holt.
Series: Addison-Wesley series in computer science
Publisher: Addison-Wesley
Published: 1983
Place of publication: Reading, Mass
Language: eng
Number of pages: 323
Subjects: UNIX (Computer file); TUNIS; Concurrent Euclid (Computer program language)
First sentence: This book introduces the art of concurrent programming. (Preface)  Concurrent programming means writing programs that have several parts in execution at the same time. (Chapter 1)
Notes: Includes bibliographies and index.
Table of contents: title: . 1 Concurrent Programming and Operating Systems, 1; title: Examples of Concurrency, 1; title: Operating Systems, 4; title: Communication in Operating Systems, 5; title: Operating Systems and Monolithic Monitors, 7; title: Basing an Operating System on a Kernel, 8; title: An Example Operating System, 10; title: Processes, Processors and Procedures, 11; title: Summary, 12; title: Bibliography, 13; title: Exercises, 14; title: . 2 Concurrency Problems and Languge Features, 17; title: Specifying Concurrent Execution, 17; title: Disjoint and Overlapping Processes, 19; title: Critical Sections, 23; title: Mutual Exclusion by Busy Waiting, 24; title: Synchronization Primitives: Semaphores, 28; title: Other Synchronization Primitives, 32; title: Message Passing, 33; title: The Blocking Send, 36; title: The Rendezvous, 37; title: Communicating Sequential Processes, 39; title: Monitors, 41; title: The Deadlock Problem, 43; title: Detecting Deadlock, 45; title: Summary, 51; title: Bibliography, 51; title: Exercises, 53; title: . 3 Concurrent Euclid: Sequential Features, 59; title: History, 59; title: Goals of Concurrent Euclid, 60; title: Comparison with Pascal, 60; title: Basic Data Types, 61; title: Structured Data Types, 62; title: Literal Values, 63; title: The I/O Package, 64; title: A Complete CE Program, 66; title: Other Control Constructs, 67; title: Running Under Unix, 69; title: A Simple Procedure, 70; title: Nesting of Constructs, 70; title: An Example Module, 71; title: Naming Conventions, 73; title: Running on a Bare Microprocessor, 74; title: Non-Manifest Array Bounds, 75; title: Functions and Side Efects, 76; title: Points and Collections, 78; title: Aliasing and the Bind Statement, 80; title: Type Converters, 81; title: Separate Compilation, 84; title: Linking Programs Under Unix, 85; title: Summary, 86; title: Bibliography, 88; title: Exercises, 89; title: . 4 Concurrent Euclid: Concurrency Features, 93; title: Specifying Concurrency, 93; title: Re-Entrant Procedures, 94; title: Mutual Exclusion, 96; title: Waiting and Signaling, 98; title: Details of Signaling, Waiting, and Conditions, 99; title: Assert Statements, 100; title: Priority Conditions, 100; title: An Example Program: Managing a Circular Buffer, 101; title: Simulation Mode and Kernels, 103; title: Basic Device Management, 104; title: Simulation and the Busy Statement, 105; title: Simulated Time and Process Utilization, 107; title: Process Statistics, 108; title: Summary, 109; title: Bibliography, 110; title: Exercises, 112; title: . 5 Examples of Concurrent Programs, 115; title: Dining Philosophers, 115; title: Readers and Writers, 122; title: Scheduling Disks, 127; title: A Disk Arm Scheduler, 129; title: Buffer Allocation for Large Messages, 134; title: Summary, 137; title: Bibliography, 138; title: Exercises, 139; title: . 6 Unix: User Interface and File System, 145; title: History and Overview of Unix, 145; title: Typical Configurations, 147; title: Major Layers of Unix, 147; title: Systems that are Unix-Compatible, 148; title: Logging In and Simple Commands, 148; title: Creating, Listing and Deleting Files, 149; title: The Directory Hierarchy, 151; title: Special Files, 153; title: File Protection, 154; title: System Calls to Manipulate Files, 155; title: Internal Format of Files, 157; title: Mounting Disk Packs, 158; title: Summary, 159; title: Bibliography, 161; title: Exercises, 162; title: . 7 Unix: User Processes and the Shell, 163; title: The Address Space of a User Process, 163; title: Manipulation of User Processes, 165; title: Implementing the Shell, 167; title: Input/Output Re-Direction, 168; title: Background Processing, 169; title: Pipes and Filters, 170; title: System Calls to Support Pipes, 170; title: Files Containing Commands, 171; title: System Initialization, 172; title: Summary, 173; title: Bibliography, 174; title: Exercises, 175; title: . 9 Tunis: A Unix-Compatible Nucleus, 195; title: Tenents of Software Engineering, 196; title: The Layer Structure of Tunis, 198; title: The Major Layers, 199; title: The Abstraction of Address Spaces, 202; title: The Assassin Process, 202; title: An Example Module, 203; title: Programming Conventions, 206; title: Entry Points of the Tunis Kernel, 206; title: The Envelope as Guardian Angel, 207; title: Summary, 208; title: Bibliography, 209; title: Exercises, 210; title: . 10 Implementing a Kernel, 213; title: Structure of a Kernel, 213; title: Process/Device Communication; title: Queue Management, 216; title: Entries into the Kernel, 218; title: Simplifying Assumptions, 219; title: A Kernel for Single CPU Systems, 220; title: Handling Input and Output, 224; title: A Kernel for the PDP-11, 225; title: A Kernel for Multiple CPU Systems, 230; title: Supporting the Kernel's Virtual Processor, 233; title: Implementing Kernel Enter/Exit, 234; title: Kernels for CE and Tunis, 236; title: Summary, 237; title: Bibliography, 238; title: Exercises, 238; title: . Appendix: Specification of Concurrent Euclid, 243; title: The SE Language, 245; title: Concurrency Features, 264; title: Separate Compilation, 269; title: Collected Syntax of Concurrent Euclid, 272; title: Keywords and Predefined Identifiers, 283; title: Input/Output in Concurrent Euclid, 284; title: PDP-11 Implementation Notes, 290; title: CE Implementation Notes, 294; title: . Index, 299