SYSTEM SOFTWARE AND SOFTWARE SYSTEMS: Concepts and Methodology is intended to offer a systematic treatment of the theory and practice of designing and implementing system software.The two volumes systematically develop and apply the systems methodology for software development. For that the concept of a system is analysed and various types of systems used in computer science are systematized into a concept of an ad hoc system that is suitable as a mechanism for software development. The kernel of this methodology consists of a systematic approach for ad hoc systems development (specification, implementation, validation). The hardware and the software of a computer system are specified as ad hoc systems. Examples from various architectures, languages, and operating systems are provided as illustrations. Problems and their suggested solutions are provided at the end of each chapter. Further readings and a list of references conclude each chapter.These volumes are self-contained and may be used as textbooks for an introductory course on system software and for a course on operating system. However, a broad spectrum of professionals in computer science will benefit from it.
Part 1 Interrupt system: hardware system's environment; system's interaction with the environment; interrupts and exceptions; the concept of a process; process stste transition; model of an interrupt system; actual implementations of interrupt system; examples of interrupt systems. Part 2 Process management system: process data type; process creation and process termination; process scheduling; controlling process interaction; process management in unix; parallel processes (interleaving versus true parallelism); lightweight processes (tasks and threads); process dependence graph; language constructs for process management (fork and join, parbegin and perend); parallel programming under unix multitasking environment); threads environment. Part 3 Process interaction by sharing: critical section as a communication protocol; designing a critical section - theory; designing a critical section - practice; Dekker's algorithm; general solution; lock data type (semaphores, spinlocks, events, barriers); examples; language constructs for process interaction. Part 4 Process interaction by message passing: communication monitors; communication link; direct communication; indirect communication; examples of message systems. Part 5 Memory management system - micro scheduling: memory hierarchy; objectives of a MMS; mechanisms of a MMS; base-limit registers; one level memory; virtual memory; one level memory implementation; associative memory; segmentation. Part 6 memory management system - macro scheduling: policies of memory allocation; placement policies (best fit, worst fit, first fit, coalescing, buddy system); replacement policies (optimal replacement policy, random replacement policy; first-in-first-out, lease recently used, least frequently used; clock replacement, second chance algorithm; fetch policies (on demand, anticipatory); locality principle, the working set model. Part 7 Information management system: file data type; file specification and implementation; file as the language object; file as the system object; file system; I/O management system (opem, close, DOIO operations) information management system (directory structure, user interface, command language); file system in unix.