ECE 8400 / ENGI 9875
News
Schedule
Lectures
Assignments
Labs
Project
Reference materials
Lectures
Priority inversion
Real-time scheduling
I/O buffering
I/O buses
I/O history
CoW filesystems
FAT filesystem
File permissions
Filesystems
Page faults
Page tables
Memory management
Scheduling algorithms
Scheduling
Process models and scheduling
Kernel architectures and interrupts
Init systems
Inter-process communication
Shells
Memory allocation
Process control
File abstractions
Processes
History
Welcome
Lectures
The course’s lecture content (slides and notes) will be posted here.
Priority inversion
One key issue that comes up in systems with priorities (e.g., RTOS)
Slides
Notes
Real-time scheduling
More scheduling algorithms, this time specific to real-time systems
Slides
Notes
I/O buffering
Strategies for buffering I/O data
Slides
Notes
I/O buses
How I/O devices are connected together
Slides
Notes
I/O history
How I/O has evolved through the years
Slides
Notes
CoW filesystems
Copy-on-write filesystems.
Slides
Notes
FAT filesystem
The venerable FAT filesystem.
Slides
Notes
File permissions
DAC, MAC and capabilities as applied to file authorization.
Slides
Notes
Filesystems
The essential elements of [almost] every filesystem.
Slides
Notes
Page faults
How page faults happen. Common VM policies that are implemented in OS software.
Slides
Notes
Page tables
Page table structure on practical systems today
Slides
Notes
Memory management
Segmentation and paging
Slides
Notes
Scheduling algorithms
Scheduling algorithms and threads.
Slides
Notes
Scheduling
Scheduling criteria, metrics and design issues.
Slides
Notes
Process models and scheduling
Simple models of process execution.
Slides
Notes
Kernel architectures and interrupts
Monolithics vs microkernels. Interrupt handling.
Slides
Notes
Init systems
Every process' parent's parent's parent's ... parent
Slides
Notes
Inter-process communication
How processes talk to each other: (named) pipes, FIFOs, sockets, semaphores, message queues and shared memory
Slides
Notes
Examples:
local-sockets.c
sysv-ipc.c
posix-ipc.c
Makefile
Shells
Programs that execute commands on command
Slides
Notes
Examples:
forkit.c
Memory allocation
Requirements, mechanisms and strategies for allocating memory.
Slides
Notes
Process control
System calls for creating, replacing, terminating and waiting for processes.
Slides
Notes
Examples:
fork.c
File abstractions
What is a file? What is a directory? How do we work with them?
Slides
Notes
Examples:
cpp.cc
files.c
Processes
An introduction to processes.
Slides
Notes
Exercises:
hello-world.cpp
History
A brief history of operating systems.
Slides
Notes
Welcome
Why study operating systems? How will this course work? What do operating systems do?
Slides
Notes