CS50300 - Operating SystemsSpring 2017
Days/Time: TTh / 1:30-2:45 pm
Credit Hours: 3
Acquire the knowledge, design, and implementation skills of operating systems for modern computing systems including servers, desktops, mobile and embedded systems.
Basic principles of operating systems: addressing modes, indexing, relative addressing, indirect addressing, stack maintenance; implementation of multitask systems; control and coordination of tasks, deadlocks, synchronization, mutual exclusion; storage management, segmentation, paging, virtual memory; protection, sharing, access control; file systems; resource management; evaluation and prediction of performance. Students are expected to spend at least three hours per week gaining hands-on experience in using and modifying a small operating system.
This is a graduate introductory course in operating systems that examines how modern operating systems are architected and implemented. Extensive implementation experience is gained by coding, testing, and benchmarking key components of the Xinu operating system on dedicated x86/Linksys hardware in the Xinu Lab. A by-product of programming hardware-dependent kernel features in assembly is achieving significant familiarity with x86 hardware, a dominant platform of commodity computing systems. The topics covered in the course include: evolution of operating systems and computer architectures, process management, memory management, virtual memory, file systems, I/O subsystems and device management, virtualization and security. In addition to implementing key kernel features in Xinu, we will examine case studies in Linux, UNIX (Solaris and BSD), and Windows that differ from Xinu and each other in significant ways. One important example is how I/O subsystems are architected to handle a range of heterogenous devices and their interrupts, including high-speed USB and wired/wireless network interfaces, that characterize many of today's computing systems. Kernel dependence on changing hardware features and support is an important theme throughout the course that will help familiarize with recent developments such as non-traditional file systems for flash RAM secondary memory prevalent in mobile systems.
A bachelor degree in computer science or an equivalent field. Students not in the Computer Science master's program should seek department permission to register.
Previous operating system class at the undergraduate level (CS 35400 or equivalent), ability to read and understand a large non-trivial system written in C, ability to program extensively in C, and command of system development tools.
Labs/Assignments, lecture notes.
5-6 programming intensive.
No separate project aside from lab assignments. Distance students will work with TAs via email, Skype, and other means in place of on-campus Practice/Study/Observation (PSO) sessions.
One or two midterms and one final exam.
Official textbook information is now listed in the Schedule of Classes. NOTE: Textbook information is subject to be changed at any time at the discretion of the faculty member. If you have questions or concerns please contact the academic department.
Tentative: Required--Operating System Design: The Xinu Approach, Linksys Version by Douglas Comer. Chapman and Hall/CRC, 1 edition (September 13, 2011), ISBN-10: 143988109X, ISBN-13: 978-1439881095.
ProEd Minimum Computer Requirements. All lab assignments will be carried out on dedicated hardware in the Xinu Lab (HAAS 257). The lab has frontend machines running Linux on which our teaching operating system, Xinu, is modified/extended and compiled. The compiled Xinu operating system binary is then loaded onto a dedicated backend machine (Intel x86 or Linksys) where it is bootstrapped, run and tested. Access to frontend machines can be done remotely through an Internet connection (a machine with ssh application installed).
ProEd Minimum Requirements: view
Tuition & Fees: view
A machine (PC or laptop) with Internet connection and ssh application installed. There are many free ssh applications for UNIX/Linux and Windows platforms. Lecture notes and material that are distributed electronically are in pdf format. Software to view and create/export pdf files is required