CMSC 421 Syllabus
Introduction to Operating Systems
Prerequisite
CMSC 341 with a grade of ‘C’ or better. CMSC 313 or (CMPE 212 and CMPE 310) with a grade of ‘C’ or better.
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:
- Understand the fundamental concepts of operating systems including the core principles, components, and functionalities of operating systems
- Examine process management, memory management, file systems, and device management.
- Develop proficiency in operating system design and implementation including concepts such as process scheduling, memory allocation, synchronization, and device drivers.
- Analyze and evaluate different operating system architectures including assessing the strengths and weaknesses of various operating system architectures.
- Explore concurrency and synchronization mechanisms including concepts of concurrency, race conditions, and synchronization in operating systems.
- Study memory management techniques including virtual memory, paging, segmentation, and demand paging.
- Examine file system organization and implementation such as directory structures, file allocation methods, and access control mechanisms.
- Investigate operating system security and protection including techniques used to protect against threats, including access control, authentication, encryption, and intrusion detection.
- Design and develop a substantial project that involves modifying the Linux kernel, demonstrating an understanding of operating system concepts and practical implementation techniques.
Student Outcomes
Level Of Emphasis | ||||
ABET Outcome | Low | Medium | High | |
Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. | X | |||
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. | X | |||
Communicate effectively in a variety of professional contexts. | X | |||
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. | X | |||
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. | X | |||
Apply computer science theory and software development fundamentals to produce computing-based solutions. | X |
Texts
Silberschatz, A., Galvin, P., and Gagne,G. (2018). Operating Systems Concepts. 10th Edition. John Wiley. ISBN 978-1-119-32091-3.
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
Optional Topics
- Hypervisors and Virtualization
Grading
20% | Homework Assignments |
40% | Projects (3) |
20% | Midterm exam |
20% | Final exam |