Revision materials

Forewords

Following materials will together do a great repetition before the exam. They were used to prepare the lecture and will be required from students at the exam. I strongly suggest reading it at least once :)

Excerpts from books

Operating systems: Internals and Design Principles

COMPUTER SYSTEM OVERVIEW
1.1 Basic Elements
1.2 Processor Registers
1.3 Instruction Execution
1.4 Interrupts
1.5 The Memory Hierarchy
1.6 Cache Memory
1.7 I/O Communication Techniques
1.8 Recommended Reading and Web Sites
1.9 Key Terms, Review Questions, and Problems
APPENDIX 1A Performance Characteristics of Two-Level Memories
APPENDIX 1B Procedure Control
OPERATING SYSTEM OVERVIEW
2.1  Operating System Objectives and Functions
2.2  The Evolution of Operating Systems
2.3  Major Achievements
2.4  Developments Leading to Modern Operating Systems
2.5  Microsoft Windows Overview
2.8  Linux
2.10 Key Terms, Review Questions, and Problems
PROCESS DESCRIPTION AND CONTROL
3.1 What Is a Process?
3.2 Process States
3.3 Process Description
3.4 Process Control
3.5 Execution of the Operating System
3.8 Summary
3.9 Recommended Reading
3.10 Key Terms, Review Questions, and Problems
THREADS, SMP, AND MICROKERNELS
4.1 Processes and Threads
4.2 Symmetric Multiprocessing
4.3 Microkernels
4.7 Summary
4.9 Key Terms, Review Questions, and Problems
CONCURRENCY: MUTUAL EXCLUSION AND SYNCHRONIZATION
5.1 Principles of Concurrency
5.2 Mutual Exclusion: Hardware Support
5.3 Semaphores
5.4 Monitors
5.5 Message Passing
5.6 Readers/Writers Problem
5.7 Summary
5.9 Key Terms, Review Questions, and Problems
MEMORY MANAGEMENT
7.1 Memory Management Requirements
7.2 Memory Partitioning
7.3 Paging
7.4 Segmentation
7.5 Security Issues
7.6 Summary
7.8 Key Terms, Review Questions, and Problems
APPENDIX 7A Loading and Linking
VIRTUAL MEMORY
8.1 Hardware and Control Structures
8.2 Operating System Software
8.6 Summary
8.8 Key Terms, Review Questions, and Problems
UNIPROCESSOR SCHEDULING
9.1 Types of Professor Scheduling
9.2 Scheduling Algorithms
9.4 Summary
9.6 Key Terms, Review Questions, and Problems

Pattern Oriented Software Architecture: A System of Patterns

ARCHITECTURAL PATTERNS
2.2 From Mud to Structure (only section about "Layers" and "Pipes and Filters")
2.5 Adaptable Systems (only section about "Micro-kernel")
PATTERNS AND SOFTWARE ARCHITECTURE
6.3 Enabling Techniques fo Software Architecture
6.4 Non-functional Properties of Software Architecture

Operating System Concepts

INTRODUCTION
(all subchapters)
SYSTEM STRUCTURES
2.1 Operating-System Services
2.2 User Operating System Interface
2.3 System Calls
2.4 Types of System Calls
2.5 System Programs
2.6 Operating-System Design and Implementation
2.7 Operating-System Structure
2.8 Virtual Machines
2.12 Summary
PROCESS CONCEPT
3.1 Process Concepts
3.2 Process Scheduling
3.3 Operations on Processes
3.4 Interprocess Communication
3.6 Communication in Client-Server Systems
3.7 Summary
MULTI-THREADED PROGRAMMING
4.1 Overview
4.2 Multi-threading Models
4.4 Threading Issues
4.6 Summary
PROCESS SCHEDULING
5.1 Basic Concepts
5.2 Scheduling Algorithms
5.3 Thread Scheduling
5.4 Multiple-Processor Scheduling
5.8 Summary
SYNCHRONIZATION
6.1 Background
6.2 The Critical-Section Problem
6.4 Synchronization Hardware
6.5 Semaphores
6.6 Classic Problems of Synchronization
6.7 Monitors
6.10 Summary
MEMORY-MANAGEMENT STRATEGIES
8.1 Background
8.2 Swapping
8.3 Contiguous Memory Allocation
8.4 Paging
8.5 Structure of the Page Table
8.6 Segmentation
8.8 Summary
VIRTUAL-MEMORY MANAGEMENT
9.1 Background
9.2 Demand paging
9.3 Copy-on-write
9.4 Page Replacement
9.5 Allocation of Frames
9.6 Trashing
9.7 Memory-Mapped Files
9.8 Allocating Kernel Memory
9.9 Other Considerations
9.11 Summary