Observe a deadlock and decide how to prevent it from happening. Students gain an appreciation of problems of synchronization and race conditions . Analysis of strategies. Preemptive and non-preemptive scheduling 2. Run various job mixes in a simulator or actual system under various kinds of scheduling, and then analyze the results.
Students learn how to analyze a scheduling policy, and the effects of different scheduling policies.
Description of alternative realizations of Asynchronous and parallel constructs in programming languages. Problems involving scheduling and contention for resources 3. Student gains familiarity with parallelism and its use at this language level. A survey of the kinds of risks that can accompany a computing application, and the considerations that a system designer can make to account for these risks. Such risks include software and hardware bugs, unforeseen user interactions, security risks, privacy violations, unethical uses, user misunderstandings, and misapplication of a system.