COMPSCI 577: Operating Systems Design and Implementation Goals, Objectives, and Learning Outcomes
COURSE GOALS
To provide students with an in-depth understanding of modern operating system technology, implementation techniques, and research issues.
Our approach to achieving this goal is to expose students to advanced topics in operating systems via interactive lectures/discussion, and selected research papers. Further, students will undertake a several programming assignments and a substantial programming project where they apply their skills to advanced operating system construction. Together, both components give students an advanced foundation in operating systems, that is re-enforced through practical application.
This course builds upon an undergraduate operating systems course (COMPSCI 377 or equivalent) that provides an understanding of the basic operating systems concepts
for developing systems and applications This advanced operating systems course will enable students to specialise in operating systems, giving them the background to become operating systems or embedded-systems developers or researchers, either themselves or as part of a team.
This course will enable students to gain or enhance the following skills:
- Programming assignments and the final project enables students to further develop the analytical skills required to manage system complexity, creative problem solving, and engages student in collaborative and in-depth application of their operating system skills.
- Regular project demonstrations improve technical communication skills.
- Interactive examination during lectures of relevant research in the field develops critical thinking, and engages students in examples of scholarly enquiry.
- The project also requires students to develop their skills in locating the relevant information required complete the project, evaluate the information's relevance to the project, and when required, digest and apply the information, and self-evaluate their own understanding of the material.
More specifically, the above course goals will be realized through the following technical, educational and professional objectives.
COURSE OBJECTIVES
Technical
Provide in-depth coverage of modern operating system issues, such as:
- microkernels and IPC,
- user-level OS servers,
- design and implementation of microkernel-based systems,
- performance,
- kernel design and implementation,
- device drivers,
- virtualization,
- processor scheduling,
- effects and control of hardware caches,
- protection and security models,
- OS designs and resulting issues,
- OS performance profiling and debugging,
- hot topics such as containers and cluster scheduling
Educational
- Exposing students to current operating systems research and modern OS technology.
- Providing insight in the design principles of efficient/fast kernels.
- Providing experience in low-level systems programming in a realistic development environment.
- Providing experience in reading and evaluating research papers.
- Encouraging interest in further study and research in the area.
Professional
- Working in an environment and on problems similar to a professional OS or embedded systems engineer in industry.
- Designing, implementing and debugging a whole system from the hardware up.
- Learning to cope with system complexity.
- Understanding lowest-level OS code and its interactions with hardware.
LEARNING OUTCOMES
On successfully completing the course, students should be capable of:
- Developing low-level operating system code.
- Understanding the performance and design trade-offs in complex software systems
- Understanding and be capable of developing OS code inside a variety of OS environments, including monolithic, microkernels, and virtual machines, including device drivers.
- Developing benchmarks and use of profiling tools to evaluate the performance of operating systems and application stacks.
- Understanding and of evaluating research published in the field of operating systems at a level commensurate with their experience.
We gratefully acknowledge use of Prof. Kevin Elphinstone and Gernot Heiser's Advanced OS course materials for developing this page.
This page is online at http://lass.cs.umass.edu/~shenoy/courses/577/outcomes.html
Prashant Shenoy
Last modified: Sun Jan 19 05:33:27 EST 2020