Syllabus: CSC 7103 Advanced Operating Systems (Fall 2025)
Course Summary
CSC 7103 Advanced Operating Systems, as the name suggests, deals with advanced topics in the field of Operating Systems.
Operating systems are a critical and complex piece of software that does the heavy lifting of managing computing devices for other software. It is also one of the few kind of software that has been extensively engineered, studied, refined, debated, and even overhauled for over decades. While one might consider operating systems as a mature software already, its evolution is far from complete with exciting new ideas that keep being proposed.
This course exposes students to the operating systems as a research field and study operating systems, and more broadly computer systems in general, from a design point of view. We will examine different systems in both important historical context and recent research developments. In addition to teaching various system techniques, the objectives of the course also include helping students learn:
- How to read a research paper in an objective manner.
- How to write a critical analysis of the research described in a paper.
- How to articulate ideas and insights into a research paper.
- How to compare and contrast different approaches to understand their trade-offs.
- How to synthesize research themes and topics across multiple papers.
This course involves readings on classic and new papers. Topics include OS structure and extension techniques, virtualization, synchronization, communication, file systems, cloud systems, reliability, formal verification, security, and history and experience of systems.
My aim is for you to gain sufficient knowledge and experience to have a reasonable understanding of how modern operating systems function and what are new areas of research in this field. Don’t expect to spend less time than maybe 15 to 20 hours a week for 14 weeks if you work by yourself.
Prerequisites
It is very important that you have the necessary background. For this course, the prerequisites are:
- CSC 4103 Operating Systems or an equivalent undergraduate OS course (strict). We assume a good understanding of basic concepts in OS.
- C programming (strict)
- Knowledge of Unix/Linux (strict)
These requirements are absolutely critical for you to succeed in this course. To gain a better understanding of the prerequisite concepts necessary for success in this course, we have created two resources:
- A brief Diagnostic Preparedness Test. This test is for prospective students’ personal purposes, to gauge readiness for this graduate-level Advanced Operating Systems course.
- A CSC 7103 Prerequisites and Concepts List. Please take the time to review the concepts in this document.
In order for you to remember key concepts from you undergraduate OS course, please pay attention to Assignment 0.
Office Hours
While I don’t have “office hours” in the conventional sense, I will stay around after lectures to answer questions. If this doesn’t work out, send me an email hkaiser@cct.lsu.edu and I will meet with you at another, more convenient time.
TA | Hours | |
---|---|---|
TBA |
Lectures
Tuesday/Thursday, Time: 1.30-2.50pm, Place: 1236 Patrick Taylor Hall
Important Dates
- Midterm: TBA
- Fall Holiday: October 16 - October 17, 2025
- Thanksgiving Holiday: November 26 - November 28, 2025
- Final exam: TBA
Both exams are comprehensive.
Reading
There is no required textbook for this class: the material of the course is defined by the lectures and does not exactly correspond to any existing book. However, I recommend the following book if you would like an additional source of material to supplement lectures:
- Operating Systems: Principles and Practice (2nd Edition), by Thomas Anderson and Michael Dahlin.
- Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.
Each page of lecture notes lists related readings from these books at the front of the notes page. Most students find that the materials from the lectures are sufficient for their course needs, so I recommend that you start the course without the books and only purchase them if you are having difficulties understanding the lectures (note the second book is freely available).
Other resources:
- Operating System Concepts (10th ed.), by Avi Silberschatz, Peter Baer Galvin, and Greg Gagne
- Linux Kernel Development (3rd Edition), by Robert Love, also available online If you wish to refer to basic topics in OS, we recommend the following optional books:
- Computer Systems: An Integrated Approach to Architecture and Operating Systems, Umakishore Ramachandran and William D. Leahy, Jr.
- Course Discord server
- CSC 7103 Course Web page.
Please don’t hesitate to ask questions related to the course by sending me email: hkaiser@cct.lsu.edu.
Individual Assignments, Group Projects, and Quizzes
The class work consists of a series individual programming assignments and projects based on the PintOS kernel. You will learn a lot from these assignments and projects, but be prepared to spend a significant amount of time working on them.
There will be several usually tri-weekly individual homework assignments. Those will be due at midnight (11:59pm Central Time) on the due date. For your final grade I will take into account all homework assignment results.
There will also be a series of programming projects that will be due at midnight (11:59pm Central Time) of the due date.
You will be responsible for regularly following any course related information, such as homework assignments and due date announcements on the course website.
In this course, we will manage assignments and the project in repositories hosted on Github. The moment you accept an assignment on Github Classroom, you will get access to your own repository that is a clone of the original repository containing the starter code. Your clone of this repository is private by default. This means that nobody except yourself and the course staff is able to see it.
You are responsible to keep the visibility of the repository and its content private. If you change your repository’s visibility to public or make the content of your repository available to others in any way, then you make yourself vulnerable to allegations of plagiarism - with all related consequences.
Please be also aware that by accepting an homework assignment you agree on sharing your name and your LSU email address in the context of this course with Github. Please be aware that the work you turn in for this course, along with the respective student identifiers will be submitted to Github for review, for providing feedback, for performance analysis, and for grading purposes.
Grading
- Assignments 40%, projects 35%
- Midterm exam 10%
- Final exam 15%
Overall, in the end of the semester 90% of all points or more will give you an ‘A’, 80% or more a ‘B’, 70% or more a ‘C’, and 60% or more results in a ‘D’. The letter grades ‘A’, ‘B’, and ‘C’ have the suffix plus (+) or minus (-) included to distinguish higher and lower performances within each of these letter grades. Below 70% you’ll fail the course, but I’m sure that will not happen to anyone.
Course Policies
Grading Policies
It is course policy that whoever graded something will be responsible for handling grading disputes. I will grade the midterm exam and the final exam. The grader will grade the homework and the project. Grades become final one week after homework or exam is handed back. This should leave ample time to resolve grading disputes.
Homework Standards
All individual assignments and the group projects have to be submitted using the electronic submission mechanism as outlined in an appendix to the first homework assignment. All work submitted must carry the student’s name and must be reasonably neat and well organized. Any work that cannot be read easily will score zero points. A reasonable standard of English expression and grammar is also required. The same requirements apply to exams. Additional requirements may apply for any of the separate assignments and will be outlined in the corresponding descriptions.
Programming Standards
The algorithm used must be essentially correct. Obviously, the program should (compile and) run. Because of the complexity of the programs, no credit can be given for a program that doesn’t run. If a program core dumps, only partial credit will be given.
Honesty
I will treat you as professionals, and you should plan on conducting yourself as such. This course presents many important concepts you will need throughout your career as a computing professional, so it is important that each student do all the assignments and projects and learn the material.
You are free to discuss homework assignments and the project with others. In fact, I encourage you to do so. However, the solutions you submit are to be developed by yourself. Cheating is a very serious offense and will not be tolerated. Supplying others with homework solutions or material is also forbidden.
The policy is that the supplier and the receiver of information will both be dealt with in accordance with and as outlined by the LSU Code of Student Conduct.
Laptops
I’m not generally opposed to you using laptops during the lectures. Many students either take notes or try to find additional references helping them to follow the material. But unfortunately the experience shows that laptops may pose a major distraction not only for those using them but as well for the students sitting around. Please understand that I may have to restrict the use of laptops in class at some point.