Syllabus: CSC 4103 Operating Systems (Spring 2025, Section 2)

Course Summary

CSC4103 Operating Systems introduces the basic facilities provided by modern operating systems. The course divides into three major sections. The first part of the course discusses concurrency: how to manage multiple tasks that execute at the same time and share resources. Topics in this section include processes and threads, context switching, synchronization, scheduling, and deadlock. The second part of the course addresses the problem of memory management; it will cover topics such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. The third major part of the course concerns file systems, including topics such as storage devices, disk management and scheduling, directories, protection, and crash recovery. After these three major topics, the class will conclude with a few smaller topics such as virtual machines.

My aim is for you to gain sufficient knowledge and experience to have a reasonable understanding of how operating systems function. Don’t expect to spend less time than maybe 15 to 20 hours a week for 14 weeks if you work by yourself.

Prerequisites

  • Credit in CSC3102
  • There are no other required prerequisites, except for willingness to learn.

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 Email Hours
Shreyas Atre satre1@lsu.edu TBA

Lectures

Mondays and Wednesdays, Time: 5:00pm-6:20pm, Place: 1200 Patrick Taylor Hall

Important Dates

  • Mardi Gras: March 3-5
  • Midterm exam: March 12, 2025, 5:00pm-6:20pm
  • Spring break: March 31 - April 4
  • Final exam: we will use the results of Assignment 3 in place of the final examination

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. Each page of lecture notes lists related readings in this book 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 book and only purchase the book if you are having difficulties understanding the lectures.

Other resources:

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 group project 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 up to four usually tri-weekly individual homework assignments. Those will be due at midnight (11:59pm Central Time) on the due date. A penalty will be applied if homework is late. For your final grade I will take into account all homework assignment results.

There will be up to three programming group projects that will be due at midnight (11:59pm Central Time) of the due date. A penalty will be applied if the project submission is submitted late.

Occasionally we may have short quizzes (2-3 questions in 5 minutes) at the beginning of a lecture. These are mostly about things discussed in one of the previous lectures and shouldn’t require any special preparation - if you follow the lectures, that is.

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 55%, projects 35%
  • Midterm exam 10%

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.

Topics

The following list indicates roughly how much time we will spend on each topic:

No. of Weeks Topic
1-5 Concurrency (processes and threads, context switching, synchronization, scheduling, and deadlock)
6-11 Memory management (linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging)
12-15 File systems (storage devices, disk management and scheduling, directories, protection, and crash recovery)

There is a full lecture calendar available on the course webpage outlining the topics in more detail. There will also be some flexibility in shortening some of these topics and adding other advanced topics as we go.

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.