M.3 Operating Systems Theory
Operating systems (OS) provide the platform on which running software acquires and uses computing resources. Operating systems are responsible for working with the underlying hardware to provide the baseline security capabilities of a system. Understanding the underlying theory of operating system design is critical to cyber operations as operating systems control the operation of a computer and the allocation of associated resources.
Specific topics to be covered in this knowledge unit include, but are not limited to:
- Privileged vs. non-privileged states; and transitions between them (domain switching)
- Concurrency and synchronization (e.g., semaphores and locks)
- Processes and threads, process/thread management, synchronization, inter-process communications
- Memory management, virtual memory, hierarchical memory schemes
- Uni-processor and multi-processor interface and support
- CPU Scheduling
- File Systems
- IO issues (e.g., buffering, queuing, sharing, management)
- Distributed OS issues (client/server, message passing, remote procedure calls, clustering)
Outcome: Students will have a thorough understanding of operating systems theory and implementation. They will be able to understand operating system internals to the level that they could design and implement simple architectural changes to an existing OS.