Module Information
This course introduces the basic concepts in operating systems and links it with contemporary operating systems (eg. Unix/Linux and Windows). It focuses on OS structuring and architecture, processes, memory management, concurrency and file systems. Topics include kernel architecture, system calls, interrupts, models of processes, process abstraction and services, scheduling, review of physical memory and memory management hardware, kernel memory management, virtual memory and paging, caches, working set, deadlock, mutual exclusion, synchronization mechanisms, data and metadata in file systems, directories and structure, file system abstraction and operations, OS protection mechanisms, and user authentication.
~ NUSMods
Schedule
- Venue: Online (Zoom)
- Lectures: 2pm to 4pm on Wednesdays
- Tutorials: 10am to 11am on Wednesdays
- Labs: 2pm to 3pm on Fridays
Professor: Taken Under Prof Cristina Carbunaru
Module Breakdown
- Tutorials 10% (From tutorial Quizzes)
- Labs 30%
- Take home test 15%
- Exam 40%
mindmap root((Total 100%)) Tutorials 10% Labs 35% Take Home Test 15% Exam 40%
Pre-requisites
- CS2100 Computer Organization
Module Details
- OS Structure and Architecture
- Process Management
- Process Abstraction
- Process Scheduling
- Inter-Process Communication
- Threads
- Synchronization
- Memory Management
- Disjoint Memory Schemes
- Virtual Memory Management
- File Management
- Introduction
- File System Implementation
- OS Protection Mechanism
Tutorials
Tutorials are related to the content that was went through in class. The teaching assistants will go through the tutorial questions and answer any questions that you may have. After each tutorial, the answers to the questions will be updated.
This is an important part of the module and understanding the tutorial questions will help you in the labs and exams.
At the start, the tutorials will be rather hard as we are not used to the concepts taught in the module. It is important to keep up with the tutorials and ask questions if you are unsure of anything.
Lectures
The lectures are conducted online via Zoom. Prof Cristina Carbunaru will go through the lecture slides and explain the concepts in the slides. She will also go through the tutorial questions and answer any questions that you may have.
Assignments
There were 5 assignments in total. Each assignment is related to the content that was went through in class.
- Advanced C Programming and Shell Scripting
- Process Management in UNIX
- Synchronization in UNIX
- Memory Management
- Zero-copy File Operations
The assignments took me a very long time to complete as I am not confident in these topics when I was taking the module.
Ratings
Workload (8/10)
For someone who is not confident in the topics taught in the module, the workload is very high. I took a very long time to complete the content from this course. I spent most of my time coding for the assignments and labs for the whole semester.
Organization (9/10)
The module is well organized. The lecture slides are well structured. However, as the content is hard, I would recommend you to read up on the content before the lecture.
Learning (7/10)
As I am a slow learner in the topic, I did not learn as much as I could have from the module. I took a lot of additional time to understand what was taught in the module and understand the concepts.
Enjoyment (3/10)
The pace of the module is very fast and I did not enjoy the module as much as I could have.
Usefulness (10/10)
The module is very useful for anyone who wants to learn more about operating systems. The concepts are also relevant in the future when you are working on projects. Interviews for software engineering roles also ask questions related to operating systems.
Overall (7/10)
Overall, I feel that this module is very useful and I have been applying these techniques to my other modules.
Expected Grade: B+
Actual Grade: A-