🏫
Module Reviews
  • Welcome
  • School of Computing
    • CP2106 Independent Software Development Project (Orbital)
    • CS1010J Programming Methodology
    • CS1231 Discrete Structures
    • CS2030 Programming Methodology II
    • CS2040 Data Structures and Algorithms
    • CS2100 Computer Organisation
    • CS2102 Database Systems
    • CS2103 Software Engineering
    • CS2105 Introduction to Computer Networks
    • CS2106 Introduction to Operating Systems
    • CS3103 Computer Networks Practice
    • CS3223 Database Systems Implementation
    • CS3230 Design and Analysis of Algorithms
    • ES2660 Communicating in the Information Age
    • IS1103 IS Innovations in Organisations and Society
  • NUS Business School
    • ACC1701 / ACC1002 Accounting for Decision Makers
    • BSP1702 / BSP1004 Legal Environment Of Business
    • BSP1703 / BSP1005 Managerial Economics
    • BSP2701 Global Economy
    • DAO1704 / DSC1007 Decision Analytics using Spreadsheets
    • DAO2702 / DSC2008 Programming for Business Analytics
    • DAO2703 / DSC2006 Operations and Technology Management
    • DBA3701 / DSC3214 Introduction To Optimisation
    • DBA3712 / DSC3224 Dynamic Pricing & Revenue Management
    • DOS3701 / DSC3201 Supply Chain Management
    • DOS3703 / DSC3203 Service Operations Management
    • ES2002 Business Communication for Leaders
    • FIN2704 / FIN2004 Finance
    • FSP4003 Field Service Project
    • MKT1705 / MKT1003 Principles of Marketing
    • MNO1706 / MNO1001 Organisational Behavior
    • MNO2705 / MNO2007 Leadership and Decision Making under Uncertainty
  • Other faculties
    • GEH1035 Phy’cal Qns from Everyday Life
    • GEQ1000 Asking Questions
    • GER1000 Quantitative Reasoning
    • GESS1025 / GES1035 Singapore: Imagining the Next 50 Years
    • GET1004 / GEK1531 Cyber Security
    • LAM1201 Malay 1
    • LAM2201 Malay 2
    • MA2001 / MA1101R Linear Algebra I
    • MA1521 Calculus for Computing
    • PC1141 Introduction to Classical Mechanics
Powered by GitBook
On this page
  • What it is about
  • Assessment components
  • Comments
  • Lectures and Tutorials
  • Lab Assignments
  • Test and Final Exam
  • Other information

Was this helpful?

  1. School of Computing

CS2106 Introduction to Operating Systems

PreviousCS2105 Introduction to Computer NetworksNextCS3103 Computer Networks Practice

Last updated 3 years ago

Was this helpful?

Module: CS2106 Introduction to Operating Systems

Semester taken: AY 2020/21 Semester 1

Lecturer: Dr. Cristina Carbunaru

Tutor: Mr Julius Sander Nugroho (tutorial) / Mr Alen Kandathumthodukayil Sabu (lab)

Textbook: Modern Operating System (4th Edition), by Andrew S. Tanenbaum, Pearson, 2009, and Operating System Concepts (8th Edition), by Abraham Silberschatz, Peter Baer Galvin & Greg Gagne, McGraw Hill, 2010

What it is about

This module introduces students on the concepts of the operating system and is taken after . It touches on how the operating system handles processes, memory and files. It also covers other concepts on operating system protection mechanisms, as well as operating system structures and architectures.

Assessment components

  • Tutorials: 10% (quizzes)

  • Lab Assignments: 35%

  • Take-at-home test: 15%

  • Exam: 40%

Comments

This module is known to be a tough module, and I wanted to take this module overseas via the Student Exchange Programme (SEP). Unfortunately, it was cancelled due to COVID-19 and I had no choice but to take it here. I then wanted to take this module under Uncle Soo, which I took CS2100 under, but unfortunately he has handed over this module to Dr Cristina. I dreaded this module, and was hoping for the best.

However, it was quite surprising, as Dr Cristina is a really good lecturer and tries her best to keep the class engaged even though it was conducted entirely on Zoom. The content is tough to absorb, but she uses various tools to encourage class participation, which overall made this module a little more enjoyable.

Some companies out there may ask content taught in this module, especially for backend-related roles. However, most do not ask too deeply and will probably ask some of the basic concepts.

Lectures and Tutorials

There are 2-hour lectures every week conducted entirely on Zoom. As it was the first semester where lectures are entirely online due to COVID-19, it was a little messy at the start as people were getting used to it, but eventually Dr Cristina found ways to keep us engaged, such as allowing annotations before the lecture starts to get some feedback from students.

The lecture notes are rather self-contained, which means that there is no need to refer to the textbook, as the materials that you need are all available in the lecture slides. Dr Cristina also followed Uncle Soo's presentation style by having a couple of extra slides during the lecture. Some of these extra slides can be rather important, and thankfully we were able to screenshot on Zoom to annotate on.

The tutorials are 1-hour long each week and often overrun, as there are lots of material to cover. The tutor will start with a recap of the week's concepts, followed by going through some of the tutorial questions, before ending with a multiple choice quiz where you need to get a certain number of questions right before you can get the 1% credit for that week. Most of the questions are simple and answers can be found in the lecture slides.

Lab Assignments

The lab assignments are not really assignments done in a laboratory setting, but more like programming assignments. There were a total of 5 lab assignments, where each assignment would span 2 weeks and will test a particular concept taught in class (mainly related to interacting with the operating system). All assignments are done in C.

The lab assignments are very difficult, and it is understandable as they are written in C and they deal directly with the OS internals, which can be difficult to debug. Not many people have experience writing C code, which adds to the difficulty as it is not immediately obvious which function you should be using. Unfortunately, my lab TA offered very little help, but I was lucky as I had a friend in another lab group and that lab TA provided a lot more guidance on tackling the assignments.

There is a 1-hour lab each week, and students will demonstrate part of their code for that week's lab assignment. The lab TA may also go through the lab itself (especially if it is released on that week). If you have already demonstrated your code in the first week, then often you do not need to attend the second week's lab session.

To tackle the lab assignments, it is better to work with friends, as the concepts can be very difficult to apply and the code is difficult to debug. This is especially true when it come to multithreading, where the order of your code matters a lot. There may even be functions that you are not aware of, but will make your life a lot easier when you use them.

Test and Final Exam

The take-at-home test is a midterm test with a mix of MCQ and short answer questions, for about 1 hour. The final exam is of a similar format, but for 2 hours. Both tests are open book, Zoom proctored with screen recording.

The questions are a good mix of easy and hard questions, and the "open book" concept is not limited to the lecture notes. We had one question where the answer is found in the Linux man pages, and Dr Cristina did say that the man pages are also available during the exam.

It is extremely vital to practice a lot for the exams, as there can be weird ways that a certain concept is asked. Make sure to completely understand the concepts taught in class and find lots of practice questions to prepare for the exams.

Other information

Assignment workload: There are 5 graded lab assignments.

Project workload: None

Readings: None

Recommended if: A compulsory module for Computer Science students, and if you are interested to know how to work directly with the operating system.

Rating: 4.0/5. A tough module but teaches concepts that are important, sometimes asked by companies during interviews.

Expected grade: A-

Actual grade: A (rather surprised but mostly carried by my friend for the lab assignments)

CS2100 Computer Organisation