Krystian Bacławski
Research & interests
Computer Architectures
Operating Systems
Programming Languages
Retrocomputing
Dydaktyka
Syllabus
Contents
1
Computer System Overview
2
Operating System Overview
3
Processes & Threads
4
Operating System Structure
5
Concurrency: Mutual Exclusion
6
Concurrency: Synchronization
7
Concurrency: Deadlock And Starvation
8
Interprocess Communication
9
Memory Management
10
Virtual Memory
11
Scheduling
12
SMP and Real-Time Scheduling
13
I/O Management And Disk Scheduling
14
File Management
15
Protection & Security
Computer System Overview
Basic Elements
Processor Registers
Instruction Execution
Interrupts
The Memory Hierarchy
Cache Memory & Locality
I/O Communication Techniques
Procedure Control
Operating System Overview
Operating System Objectives and Functions
The Evolution of Operating Systems
Major Achievements
Processes
Memory Management
Scheduling and Resource Management
System Structure
Information Protection and Security
Developments Leading to Modern Operating Systems
Processes & Threads
What Is a Process?
Process States
Process Description
Process Control
Modes of Execution
Process Creation & Termination
Process Switching
Threads
Multithreading
Thread Functionality
User-Level and Kernel-Level Threads
Operating System Structure
Symmetric Multiprocessing
Architecture
Organization
Multiprocessor Operating System Design Considerations
Execution of the Operating System
Nonprocess Kernel
Execution within User Processes
Process-Based Operating System
System calls
Architectural Design Patterns
Layers
Microkernel
Broker
System Boot
Monolithic kernels
Microkernels
Microkernel Architecture
Benefits of a Microkernel Organization
Microkernel Performance
Microkernel Design
Concurrency: Mutual Exclusion
Principles of Concurrency
Critical Section
Deadlock
Race Condition
Starvation
Operating System Concerns
Process Interaction
Requirements for Mutual Exclusion
Mutual Exclusion: Hardware Support
Interrupt Disabling
Special Machine Instructions
Semaphores
General Semaphore
Binary Semaphore
Mutual Exclusion
The Producer/Consumer Problem
Implementation of Semaphores
Monitors
Conditional Variables
Monitor with Signal
Alternate Model of Monitors with Notify and Broadcast
Concurrency: Synchronization
Classic Problems of Synchronization
Readers/Writers Problem
Readers Have Priority
Writers Have Priority
Dining Philosophers Problem
Solution Using Semaphores
Solution Using a Monitor
POSIX.1 Case Study
Atomic Operations
Spinlocks
Semaphores
Barriers
Mutual Exclusion Lock
Readers/Writer Lock
Condition Variables
Concurrency: Deadlock And Starvation
Principles of Deadlock
Reusable Resources
Consumable Resources
Resource Allocation Graphs
The Conditions for Deadlock
Deadlock Prevention
Mutual Exclusion
Hold and Wait
No Preemption
Circular Wait
Deadlock Avoidance
Process Initiation Denial
Resource Allocation Denial
Deadlock Detection
Deadlock Detection Algorithm
Recovery
An Integrated Deadlock Strategy
Interprocess Communication
Message Passing
Synchronization
Addressing
Message Format
Queuing Discipline
Shared Memory
Remote Procedure Calls
Signals
IPC: POSIX.1 Case Study
Pipes
Sockets
Message Queues
Shared Memory
Signals
Memory Management
Memory Management Requirements
Relocation
Protection
Sharing
Logical Organization
Physical Organization
Memory Partitioning
Fixed Partitioning
Dynamic Partitioning
Buddy System
Relocation
Paging
Segmentation
Loading and Linking
Virtual Memory
Hardware and Control Structures
Locality and Virtual Memory
Paging
Segmentation
Combined Paging and Segmentation
Protection and Sharing
Common Mechanisms
Demand Paging
Copy-on-Write
Memory Mapped Files
Operating System Software
Fetch Policy
Placement Policy
Replacement Policy
Resident Set Management
Cleaning Policy
Load Control
Scheduling
Types of Professor Scheduling
Long-Term Scheduling
Medium-Term Scheduling
Short-Term Scheduling
Scheduling Algorithms
Short-Term Scheduling Criteria
The Use of Priorities
Alternative Scheduling Policies
Performance Comparison
Fair-Share Scheduling
Response Time
SMP and Real-Time Scheduling
Multiprocessor Scheduling
Granularity
Design Issues
Process Scheduling
Thread Scheduling
Real-Time Scheduling
Characteristics of Real-Time Operating Systems
Real-Time Scheduling
Deadline Scheduling
Rate Monotonic Scheduling
Priority Inversion
I/O Management And Disk Scheduling
I/O Devices
Organization of the I/O Function
The Evolution of the I/O Function
Direct Memory Access
Operating System Design Issues
Design Objectives
Logical Structure of the I/O Function
I/O Buffering
Single Buffer
Double Buffer
Circular Buffer
The Utility of Buffering
Disk Scheduling
Disk Performance Parameters
Disk Scheduling Policies
Disk Cache
File Management
Overview
Files and File systems
File Structure
File Management Systems
File Organization and Access
The Pile
The Sequential File
The Indexed Sequential File
The Indexed File
The Direct or Hashed File
File Directories
Contents
Structure
Naming
File Sharing
Access Rights
Simultaneous Access
Record Blocking
Secondary Storage Management
File Allocation
Free Space Management
Volumes
Reliability
File System Security
Protection & Security
Computer Security Concepts
Threats, Attacks, Assets
Intruders
Malicious Software Overview
Authentication
Access Control
Intrusion Detection
Malware Defense
Dealing With Buffer Overflow Attacks