Spring 2024, Junior Year
Professor Xu
Link Hub
- OS Overview
- Computer Architecture Overview
- Process scheduling and management
- Process Scheduling
- Resched function
- Context Switch Function (part of process scheduling)
- Process Management
- Suspend, create, resume, process states
- List and Queue Manipulation - Ch. 4 XINU Book below
- Process Scheduling
- Process synchronization
- Memory management
- Interrupt processing
- Device drivers
- File systems
- LAB STUFF
Course Description
This is an undergraduate introductory course to operating systems that investigates 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 backend hardware. Our main implementation platform will be x86 backend machines and Intel x86 frontend PCs where code is developed. Most coding is done in C, with some hardware dependent components utilizing assembly language.
Overall
General Class Info
- Professor Dongyan Xu
- Office hours Monday 11am-12pm, LWSN 1173
- dxu@purdue.edu
- Course Website
- EdStem will have announcements, lecture notes, and lab assignments
- Textbook
- One midterm and one final
- Midterm covers everything pre spring break, final covers EVERYTHING
- Grading
- Lab assignments: 45%
- Opportunities to earn bonus points on each lab, but they do not carry over and lab points are capped at 45%
- AKA you can do poorly on one lab and make up for it on another
- Opportunities to earn bonus points on each lab, but they do not carry over and lab points are capped at 45%
- Midterm 25%
- Final 30%
- Lab assignments: 45%
- Course grade is not curved, but has the following distribution “a total weighted score no lower than mid-80s maps to an A-range grade (includes +/- grades), 70s to mid-80s for B-range, 60s to low-70s for C-range. Below that D, F, etc.”
- We will use the XINU operating system for lab assignments (lab assignments are just the coding assignments, there is no actual lab)
- The lab is comprised of frontend machines xinu01.cs.purdue.edu, xinu02.cs.purdue.edu, …, xinu21.cs.purdue.edu which are Linux PCs. You will use the frontend machines for operating system code development (coding and compiling/linking) and to access one of the backend machines galileo101.cs.purdue.edu, galileo102.cs.purdue.edu, …, galileo196.cs.purdue.edu. The frontend machines can be used by multiple users concurrently to develop and test code. The backend machines are x86 Intel Galileo boards equipped with Quark X1000 processors that are dedicated to running your implementation of XINU. Thus you are loading/running your own OS binary developed on the frontends on dedicated backend hardware. The specifics of developing and testing code in the XINU Lab will be covered in lab1.
- There is a budget of 4 late days used for late submissions of lab assignments
- Basically you have 4 days leeway total throughout the semester to use, whether all on one assignment or across 4 of them with 1 day late on each
- Any late days not utilized will be converted to 15 bonus points each at the end of the semester
- Outside of these late days, late submissions are not accepted with no partial credit
- All lab submissions turned in 2 days prior to deadline will be given 5% bonus credit
- There are PSO’s and while they are not required, attendance is helpful since they will go over the labs. You can attend any PSO on the schedule