Operating Systems Design
|Hours||3.0 Credit, 3.0 Lecture, 0.0 Lab|
|Prerequisites||C S 224 & C S 240|
|Note||Students are allowed only 1 retake of C S 345. This includes students who have failed or withdraw (received a "W" grade). If after 1 retake, a student needs to retake the course again, the student must wait 1 semester/term before being allowed to take any C S course and must follow the petition process at cs.byu.edu/retake-policy. This policy does not apply to classes dropped before the add/drop deadline. Petitions for exceptions to the policy can be completed at cs.byu.edu/retake-policy.|
|Taught||Fall, Winter, Spring even years, Summer odd years|
|Programs||Containing C S 345|
Operating System Basics
Describe the basic components of an operating system and their role in implementations for general purpose, real-time, and embedded applications.
Define the concepts of processes, threads, asynchronous signals and competitive system resource allocation.
Show how a shell works.
Scheduling Algorithms for Multi-Tasking
Explain what multi-tasking is and outline standard scheduling algorithms for multi-tasking.
Mutual Exclusion Principles
Discuss mutual exclusion principles and their use in concurrent programming, including semaphore construction and resource allocation.
System Memory Management
Give an overview of system memory management.
Implementing File Systems
Explain how file systems are implemented.
Competing Operating Systems
Discuss the features and strengths of various contemporary operating systems.
Implement an Operating System
Implement a functional, pre-emptive, multi-tasking operating system written in C, including a shell, scheduler, file manager, memory manager, and synchronization components.