What You Will Learn
Goals, Objectives, and Outcomes
Goals and Objectives
Goals
The most apparent goal of this course is that students
1. understand how an operating system can be designed and implemented.
A less apparent—but at least as important—goal that graduating seniors
2. gain confidence in their their capacity for individual lifelong learning.
Objectives
The specific course objectives are that students learn in some detail the following concepts:
- computer hardware support for operating systems
- processes
- threads
- concurrency
- memory management
- process scheduling
- file management
- disk organization and scheduling
Non-course-specific objectives include that students learn
- how to grasp when they do not understand something
- how to formulate problems to exercise their understanding of a concept on their own
- to gain confidence in their capacity to learn on their own
Outcomes
At the end of the course, students will be able to
- describe the computer hardware needed to support a modern multi-user, multi-programming operating system
- reconstruct a typical instruction fetch and execute cycle with interrupt and exception detection and relate this to operating system functionality
- summarize the primary functional components of an operating system
- reconstruct typical representations in an operating system of processes and threads
- recognize the differences between processes and threads
- recognize the synchronization problems inherent in concurrent programming and methods for solving them
- design and implement threaded programs that manage synchronization issues
- answer questions about memory management, virtual memory in particular
- discuss various process scheduling paradigms and compare them for efficiency and applicability
- discuss variious file system design strategies
- understand an OS organization of secondary storage, primarily disks
- formulate and complete exercises for new topics that are not covered in lectures to ensure that the topic is understood
- assimilate information from a discussion of a new topic when no specific handouts are given or other learning materials are referenced