Introduction to Operating Systems
Prerequisite
C or better in CMSC 341 and either (CMPE 212 and CMPE 310) or CMSC 313.
Description
An introduction to the fundamentals of operating systems. Topics include interprocess communication, process scheduling, deadlock, memory management, virtual memory, file systems and distributed systems. Formal principles are illustrated with examples and case studies of one or more contemporary operating systems.
Course Outcomes
Each student will:
- Learn the fundamental concepts of designing and implementing or extending modern operating systems.
- Gain deep understanding of the operations of modern operating systems.
- Apply software development tools and skills.
- Practice his or her communication skills.
Program Outcomes
CMSC 421 supports these CMSC program outcomes:
- (O1) through a significant project implementation that applies programming and software development skills to implement central operating systems concepts;
- (O5) through deep foundational learning of modern operating systems concepts.
Texts
Operating Systems Concepts (8/e), Silberschatz, Galvin, and Gagne, John Wiley, 2008. ISBN 0-470-12872-0.
Other textbooks on Linux, UNIX, and operating systems textbooks may be recommended at the discretion of the instructor.
Topics
- Introduction and historical perspective
- Process management, inter-process communication, and threads
- Process and CPU scheduling
- Process synchronization (semaphores and monitors) and deadlocks
- Address spaces, multiprogramming, and I/O
- Memory management, address translation, and virtual memory
- File systems and secondary storage
- Security and protection
Grading
The course grade will be based on the following work:
40-60% | At least a midterm and final exam. Quizzes may also be included or substitute the midterm exam at the instructor’s discretion. |
40-60% | 2-4 homework and 1-3 project assignments, with at least 2 major progranmming assignments. The projects are generally done at the operating system kernel level, and might involve modifications to both kernel and user space elements. |
The course may require additional constraints for passing, such as minimum performance thresholds on homeworks, projects, quizzes, and exams at the instructors discretion.