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