stellar-koala-5880
Edited
• 3 Credit Hours
Loading charts...
Key adjectives used by students — color intensity reflects sentiment
stellar-koala-5880
Edited
sharp-crow-0369
Edited
noble-swan-4237
Edited
witty-kestrel-3207
Tough course, Definitely front heavy but the pace slows as course reaches the end. Hang outs are good to summarize the lessons. Stay consistent and put the time in. If you can get past project 1 and exam 1 comfortably. Continue that effort and.. that is it.
Good TAs, Good Course.
Edited
patient-heron-5351
Edited
rapid-jaguar-6042
Edited
frank-turtle-3106
Edited
tranquil-beaver-5736
Edited
solid-penguin-4403
Edited
bold-condor-3375
Edited
Fall 2025 - Good course overall, Professor Kishore has a lot of passion for the topics which I think rub off on students. There is a weekly zoom call which students can join and take part in polls for extra credit.
I also had good experiences with the TAs.
I enjoyed the projects the most, the second one required writing a paper which took the most time. The 1st and 4th took around the same amount of time. While the 3rd was the shortest.
1st and 4th project - about 40 hours. 3rd project - about 25 hours 2nd project - about 60 hours, mostly due to me wanting to write a very good paper, which might not have been necessary
I think the lecture content is a bit too long. But as other students said some time can be saved by not reading the papers. 80% of the questions are released ahead of time and usually. If a question doesn't get covered in the lecture it will usually be found either in a paper quickly using CTRL+F, or in a hangout session which was previously recorded.
Even with 80% questions released there is only 3 days to answer these questions. So some studying is still required to have a general idea of where to look for an answer. There is collaboration between students for the test answers, usually if a question has a big consensus it's probably the correct answer. For other questions with a variety of answers trust your own answer you found from the material.
(Fall 2025) Solid class. The first portion felt like a review of GIOS/HPCA, and the rest of the course was an overview of OS techniques/innovations presented through academic papers. It improved my system design ability, especially for distributed systems.
The lectures were easy to follow and engaging. Kishore is a great professor. If you have the time to go to the hangouts with him, I found it useful to reinforce lecture topics (plus extra credit points).
The projects were good. My ranking of difficulty (hardest to easiest) is P4 > P1 >> P2 > P3. P4 and P1 took a significant chunk of time while P2 and P3 could be done in a couple days. P1 you build a CPU scheduler/memory manager using libvirt, P2 you implement some barrier algorithms and write a report on their performance, P3 is a introduction/review of asyncronous gRPC, and P4 you implement MapReduce using gRPC. There is an option to work with a partner. I did not and don't think a partner is necessary. The projects are long (esp. P1/P4), but IMO not so long as to require a partner. Doing them solo also helped my learning/programming ability. Getting help on the projects is done through Ed, and it was mostly students helping other students, not TAs helping students like GIOS.
I did not like the exam format. 80% of the questions are released ahead of time on Friday night and the exam is due Monday at midnight. Students can collaborate on the answers to these 80% of released questions. I felt like the exam format encouraged memorizing answers to the 80% of released questions and crossing your fingers for the other 20%. They are also all open response questions so you can't BS an answer you don't know. The exams get easier as the semester continues.
I think the difficulty of this course is overstated. There are really only 4 papers required for the projects/assignments (2 for P2 and P4, and 2 for the paper summaries). There are 90+ papers - reading them all is not a good use of time when the lectures/hangouts review them enough. I was able to pair this course with CN while working full time.
Hardest course I've taken thus far of: GIOS, AOS, SAT, SDCC (yes, the one after this one. The hardest parts of SDCC are definitely harder than AOS, but the average week of AOS was much more than the average week of SDCC). The reason being it's just a ridiculous + consistent amount of content you need to be on top of if you want to maximize the material: multiple research papers per week, projects, lectures, and then tests.
Project 1 and 4 were hard, project 2 was not really hard but it was kinda tedious (so it will take some time), and then project 3 was easy, more like a primer for project 4. If you respect project 4 and really give it a go before the last week/2 weeks, you'll end up fine.
In terms of difficulty: DC > Compilers > AOS > HPC > GIOS
DC: Easy to test your code with the DSLabs framework, but Paxos/Raft/sharded KV store is much more conceptually complex to implement than MapReduce in AOS.
Compilers: Concepts are easier to understand than in AOS (don't need to read academic papers) but it's a lot more effort to implement a 5K+ line of code compiler from scratch.
HPC: Concepts are more theoretical and complex to understand, but the grading is really generous.
GIOS: Easier than AOS, in both conceptual understanding and project size.
Background:
Time: hw0: 5hr prelab: 5hr lectures: 33hr papers: 18hr; included the 2 paper summaries, as well as reading other papers that sounded interesting, like Lamport clocks, Xen, and Dynamo, as well the MR paper for P4 exams: 46hr; includes time to take the exams, as well as study and prep time P1: 60hr P2: 38hr P3: 20hr P4: 92 hr
Experience of the course: Challenging course, with interesting projects, but didn't give the satisfaction that GIOS did. Spent way too much time with a stupid hidden bug for P4 that ended up leaving me feel burnt out by the end of the course. There was a small period (2-3 weeks) of lull during P3, which had the lightest load and also did not have any exams. Otherwise, the rest of the time felt immensely stressful. This course convinced me that, although it was my ultimate goal for OMSCS, I probably cannot handle the time commitment of SDCC, along with my other commitments in life. Course administration was ok, but could have been improved by adding small but important details into the project descriptions instead of addressing it later in an edstem post. I had heard of Prof Kishore's enthusiasm, but unfortunately, could never make the weekly hangout.
Overall, the course teaches a lot. The focus tends to be on expanding from introductory OS topics like virtual memory, scheduling, and parallel processing into using those topics in a distributed computing environment. The projects can take quite a bit of time, but they are valuable learning. There will not be much handling in learning how to use the APIs for the tools that are used. Be prepared to read through the documentation and learn them for yourself.
All in all, I enjoyed the course and finished with a low A.
Some context: Non-CS background (business undergrad), previously took GIOS, GA and CN. I have a family so I avoid studying on weekends (except for exam week), so most of my studies are done on weekdays. I managed to score above 97 overall for an A.
As with other GT courses, do not come in expecting the theoretical content to be state of the art. Rather, the content taught is meant to be foundational. I.e Lectures and papers are from decades back (circa 1980s).
I personally found the content really interesting as I always believe in learning from first principles. Having a good understanding of the foundations will likely help in understanding how the more modern advance stuffs came about.
To balance things up, the projects deals with more modern concepts such as Virtualization, Distributed Computing, gRPC and MapReduce. I won't touch on the content of the projects as there are ample of reviews that covered those. What I can say is - the projects alone made AOS worth it for me. I did every project alone and as a result I felt that it made me a better engineer overall. So i actually recommended doing the projects solo if possible.
Grades are largely made up of two components: Exams (~42%) and Projects (~48%). The other 10% include stuffs like Pre-lab, Homework, Ed participation, Paper summaries and attendance for weekly "tutorial" (aka hangout).
Exams seems to be the Achilles heel for majority of the student. I did relatively well for the exams and here's my suggestions:
I actually did not read much papers at all. Yes there are like 46(?) of them, but i only read a couple of them. My advice is to read only if you're interested (which you should select for the paper summaries) but not to prep for the exam.
I also personally find the marking of the exam to be "lenient"; in the sense that they are not looking for certain keywords or format (unlike a certain course) but rather if your answer displays the correct understanding it will be awarded marks accordingly.
Overall, a solid course which projects alone are worth it. It does take a fair bit of time (especially exam weekend) but still manageable if you're consistent with your work. I have to emphasize consistency is the key, as I can't imagine cramming all those concepts right before an exam.
I did not really learn anything useful in this class. The course content is very boring and dry. The instructor Kishore has spent his entire career in academia and none in industry, and you can really tell by the course material because it is entirely focused on old 30-40 year old operating systems that he studied or worked on when he was a PhD student.
For example, the unit about Security - it started by teaching us Salzer's principles of OS security, which was relevant and interesting. Then, we spend the rest of the unit learning about Andrew operating system, something which was developed in 1988 and has zero bearing and relevance in modern life. It seems we learned about Andrew to try to demonstrate some of Salzer's principles, but I surely there are more modern examples to pull from that actually feel relevant to modern state of the industry.
There is not even a textbook for the course - instead, you're just supposed to read academic research papers on the same 30-40 year old operating systems.
Then the exams are very difficult, asking you super specific questions about the implementations of these old operating systems. It felt like I was taking a History of Operating System class, and not actual relevant details of modern problems and concerns in modern operating systems. I went into the class expecting to learn about how Windows Server or Unix Server handles problems of user security, not how Andrew Operating System from CMU in 1988 handled problems of user security.
The projects were fun and interesting and build off of things learned from GIOS 6200, so they were a high point of the class.
The exams are closed notes, 2 hr time limit. 80% of the exam questions are released ahead of time to you though, so you can study those. BUT, you have only a 72 hour window to take the exam, and the exam questions are released to you at the beginning of the 72 hour window, so you cannot prepare in advance for the exam - so instead, you will spend the weekend cramming to study the 80%, then wait until the last minute to take the exam.
If you are anything like me, you'll breeze through the projects and have fun with them, then slog and struggle through the course material trying to prep for the exams. I struggled to stay awake through the lecture videos of Kishore going and on and on about obscure academic operating systems from the 1980s.
If you're somebody who's trying to get a career in academia and wants to work on operating systems as part of a PhD thesis or something, then this course would be a great fit for you. If you're just somebody who works in the industry and wants the master's degree to help advance your career, this course is not a good use of your time.
I have mixed feelings about this course.
The TAs are pretty bad. They are close to absent from Ed Stem. It would have been nice if there was a disclaimer saying "There will be no TA support in this course." With a topic as interesting as Operating Systems, I would have expected some level of interaction from the TAs. But there was none. Zilch. Nada. Only some bare bones comments from time to time. I've been a TA in my past life and I would be ashamed if I were in any one of their places.
To top it off, the first assignment is awful I went into it thinking "Hey if I get my basics and algorithm right I'll be fine." Unfortunately these morons have < 75 IQ and can only grade based on graphs, not code. I lost a lot of points in it without any fault of mine at all. In the end I did manage to secure an A but only because I had a lot of anxiety and I over-prepared for the exams.
This course isn't going to teach you anything about diving deep into an operating system. A more appropriate name would be "Survey of Systems-related topics fro last three decades."
That being said, it's hard to judge the value of such a course immediately after you take it. The benefits are a bit more long-term. If you took GIOS, you may remember the adage "every problem in computer science can be solved by adding another level of indirection." This course really reinforces that. I enjoyed reading most papers, if not all.
I want to take SDCC eventually and was even looking forward to it. But if the same shithead TAs and the level of commitment from them exists over there, I wouldn't be too happy.