CS50300 - Operating SystemsSpring 2015 Days/Time:
MWF / TBACredit Hours:
Acquire the knowledge, design, and implementation skills of operating systems for modern computing systems including servers, desktops, mobile and embedded systems.Description:
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. Topics Covered:
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.Prerequisites:
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. Applied/Theory:
30/70Web Address:http://www.cs.purdue.edu/homes/cs503Web Content:
In addition to the course website, course information and grades will be available via Blackboard.Homework:
4-5 programming intensive lab assignments that require modifying and adding to Xinu source code, our teaching operating system, that are tested and benchmarked on dedicated hardware in the Xinu Lab (HAAS Bldg., rm 257). The assignments also have a written component.Projects:
None. For labs: Distance students will work TAs using Skype and screen-sharing in place of on-campus Practice/Study/Observation (PSO) sessions.Exams:
One midterm and one final exam.Textbooks:
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. Disclaimer: final textbook listings are available in April for fall and summer semesters. Please visit the Listing of Textbooks by College or School for the most up-to-date information.
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: viewTuition & Fees: viewOther Requirements:
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. Therefore a pdf reader application is needed to view the material.