OMSCS Review: Introduction to Operating Systems

Dec 17, 2024

CS 6200: Introduction to Operating Systems (typically referred to as GIOS) is one of the most frequently recommended and highly rated courses on Reddit, OMSCentral, and other Georgia Tech student forums. Although the name may suggest that the course is introductory, it is well known to feature challenging projects that serve as a litmus test of whether one can succeed in the OMSCS program. After taking this class in Spring of 2024, I have to completely agree with the past reviews; this is possibly my favorite course that I've taken thus far for my master's degree.

As the name suggests, the lectures in this course provide an introduction into some of the basic functions of operating systems, such as threads, scheduling, and virtualization. My understanding is that this course was added to get graduate students "up to speed" if they didn't cover this material in their undergrad degree, which can make the lessons feel a bit dense. Even though I was somewhat familiar with many of the concepts, I still felt as though I learned quite a bit every week.

The lectures and accompanying research papers form the basis of the two exams, which together make up 50% of the total grade. Due to the nature of the material, the questions created a situation where "you either know it or you don't," with no real likelihood of deriving the answer on the spot. Both of these exams were fairly challenging, but overall the question makeup of the exams felt fair. I received an 82% and 73% on the midterm and final respectively, roughly in line with the median in both cases.

The true highlights of GIOS were the three projects, which were among the best I have ever encountered in my academic career. The projects were written in C or C++ and required building upon boilerplate code to implement design specifications. At a high level, the three projects covered:

  • Writing a multi-threaded client/server application using sockets
  • Using inter-process communication (IPC) and shared memory to develop a proxy server and a cache server
  • Building a distributed file system (DFS) using gRPC

It is rare for classwork to accurately recreate the feeling of professional software engineering, but the GIOS projects required patience, planning, and problem solving comparable to my professional work. The requirements were often daunting, making me wonder if I was even capable of completing them in the time given. However, little by little, I made progress every day until the entire system came together. I received nearly full marks on each project, after dozens of hours of programming (and a little bit of hair pulling).

Beyond the projects, the community fostered by the teaching staff and students in this class was wonderful and highly conducive to learning. The professor was actively involved in office hours (which unfortunately is fairly rare in OMSCS) and heavily invested in the students' success. The slack channel for the class was an invaluable resource for completing the projects, or even just venting in solidarity with fellow students struggling with these challenging assignments.

After taking the course, I have to say that GIOS definitely lives up to the hype. I would recommend this class to any OMSCS student, particularly those in the Computing Systems specialization.

~ MAD

Tags

Return to Blog