Welcome
Catalog Description
Course Objectives
Instructor
Text
Grades
Homework
Tests
Cheating
Using AI
Attendance
Disabilties
Title IX
PWU Policies
Outline
Notes
Course Outline
Overview of Operating Systems (OS)
applications vs. the OS
role & purpose of the OS
history of OS development
types of OSs: mainframe, networked, single-user, real-time, embedded
components & functions of contemporary OSs
OS design goals: efficiency, robustness, flexibility, portability, security, compatibility
OS design influences: security, the Internet, multimedia, GUIs
OS architectures: monolithic, layered, microkernel, network
Computer Hardware & Software
computer hardware components: motherboard, processors, memory, peripherals
memory hierarchy
device I/O models: character, block
device I/O methods: polled, interrupt, DMA
hardware support for protection: processor operating modes, memory protection
programming languages hierarchy
programming paradigms: structured & object-oriented
application programming interfaces (APIs) & middleware
software development process: compiling, linking, loading
Operating System Principles
abstractions, processes and resources
application needs and evolution of hardware/software techniques
operating system modes: kernel vs. user
device organization and abstraction
user state / system state and protection
Concurrency
concept and need of concurrency
task states and state diagrams
data structures for task management: stacks, queues, etc.
dispatching and context switching
role of system interrupts
the mutual exclusion problem and solutions
producer-consumer problems and synchronization
models and mechanisms: semaphores, monitors, condition variables, rendezvous
deadlock: causes, conditions, prevention
Scheduling and Dispatch
preemptive vs. nonpreemptive scheduling
schedulers and policies
processes and threads
deadlines and real-time issues
Memory Management
physical vs. virtual memory and memory management hardware
overlays, swapping and partitions
paging and segmentation
placement and replacement policies: FIFO, LRU, LFU, NUR
working sets and thrashing
caching
Device Management
serial and parallel device characteristics
device abstraction
buffering strategies
direct memory access
failure recovery
File Systems
files: data, metadata, organization, operations, buffering
file types: sequential, nonsequential
directories: contents and structure
file systems: partitioning, mounting/unmounting, virtual file systems
standard implementation techniques
memory-mapped files
special-purpose file systems
naming, searching, access, backups
The following optional topics may be chosen by the instructor:
Security & Protection
overview of system security and ethics
separation of policy and mechanism
security methods and devices
protection, access and authentication
protection models
memory protection
encryption
recovery management
Real-Time and Embedded Systems
process and task scheduling
real-time environment requirements on memory and disk management
failures, risks and recovery
special concerns in real-time systems
Fault Tolerance
concepts: reliable and available systems
spatial and temporal redundancy
fault tolerance implementation methods
Scripting
scripting and the role of scripting languages
basic system commands
creating scripts, parameter passing
script execution
influences of scripting on programming
Revised 2012