Operating Systems

Vlastimil Babka

Lubomír Bulej

Vojtěch Horký

Petr Tůma

This material is a work in progress that is provided on a fair use condition to support the Charles University Operating Systems lecture. It should not be used for any other purpose than to support the lecture. It should not be copied to prevent existence of outdated copies. It comes without warranty of any kind.

This is version 1854246b129de719fb64f40976b04a31545a422e (modified) generated on 2019-09-30 17:18:48.

For the latest version, check http://d3s.mff.cuni.cz/~ceres.


Table of Contents

1. Introduction
1.1. Basic Concepts
1.1.1. Hardware Building Blocks
1.1.2. Basic Computer Architecture
1.1.3. Advances In Bus Architecture
1.1.4. Operating System Structure
2. Process Management
2.1. Process Alone
2.1.1. Starting A Process
2.1.2. What Is The Interface
2.2. Achieving Parallelism
2.2.1. Multiprocessing On Uniprocessors
2.2.2. How To Decide Who Runs
2.2.3. What Is The Interface
2.3. Process Communication
2.3.1. Shared Memory
2.3.2. Message Passing
2.4. Process Synchronization
2.4.1. Means For Synchronization
2.4.2. Memory Models
2.4.3. What Is The Interface
3. Memory Management
3.1. Management Among Processes
3.1.1. Separating Multiple Processes
3.1.2. What Is The Interface
3.2. Allocation Within A Process
3.2.1. Process Memory Layout
3.2.2. Stack
3.2.3. Heap
4. Device Management
4.1. Device Drivers
4.1.1. Asynchronous Requests
4.1.2. Synchronous Requests
4.2. Devices
4.2.1. Busses
4.2.2. Disk Storage Devices
5. File Subsystem
5.1. File Subsystem
5.2. Abstractions And Operations
5.2.1. Stream File Operations
5.2.2. Example: Windows Stream File Operations
5.2.3. Mapped File Operations
5.2.4. Whole File Operations
5.2.5. Directory Operations
5.2.6. Sharing Support
5.2.7. Consistency Support
5.3. File Subsystem Internals
5.3.1. Disk Layout
5.3.2. Integration Of Multiple File Subsystems
6. Network Subsystem
6.1. Abstractions And Operations
6.1.1. Sockets
6.2. Network Subsystem Internals
6.2.1. Queuing Architecture
6.2.2. Packet Filtering
6.2.3. Example: Linux Packet Scheduling
6.3. Network Subsystem Applications
6.3.1. File Systems
7. Security Subsystem
7.1. Authentication
7.1.1. Linux PAM Example
7.2. Authorization
7.2.1. Example: Security Enhanced Linux