CS31202/CS39002 Operating Systems: Theory and Laboratory | Spring 2024 |
Schedule
Timing: Slot E4 [Wed (12:00pm–01:00pm), Thu (11:00am–12:00pm) Fri (09:00am–11:00am)]Theory
Section 1 Students with odd roll numbers
Instructor: Abhijit Das
Classroom: NC243Section 2 Students with even roll numbers
Instructor: Bivas Mitra
Classroom: NC244Lab: Software Labs, Old Building, Slot X [Wed (02:00pm–05:00pm)]
Teaching Assistants: Amrita Bose, Arpan Dam, Biraja Misra, Bokade Tushar Kishor, Debasree Das, Harsh Borse, Salma Mandi, Shubhraneel Pal, Sugandh Pargal
Notices and Announcements
- Jan 04, 2024 (3:00am)
- We can accept a few non-CSE students in the theory course. Based upon our capacity, we have accepted/declined all the requests available until now. No new requests will be processed further.
- Dec 29, 2023
- For space limitations, we cannot accept any non-CSE student in the lab.
Tentative Coverage (Theory)
Topic # hours More info Introduction to OS 2 Concept of process, states and state transition 3 Scheduling algorithms, context switching 3 Process synchronization and inter-process communication 5 Deadlock: necessary conditions, avoidance and prevention 3 Threads, popular thread libraries, thread synchronization 2 Memory management: Contiguous and non-contiguous allocation, Physical and logical addresses 3 Memory management: Paging, different Page-table architectures, Virtual Memory 6 File systems: file operations, organization, mounting, sharing 2 File system implementation 4 Disk and I/O management 3 Virtualization: motivation and techniques 2 Case studies of operating systems 2 Books and References
- Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne, Operating System Concepts, 10th edition (Global edition), Wiley, 2018 (2023).
- Andrew S. Tanenbaum and Herbert Bos, Modern Operating Systems, 5th edition, Pearson, 2023.
- William Stallings, Operating Systems: Internals and Design Principles, 9th edition (Global edition), Pearson, 2018.
- Brian "Beej Jorgensen" Hall, Beej’s Guide to Interprocess Communication, online tutorial.
Tests
- Class Test 1: 06-Feb-2024 [Questions with solutions]
- Class Test 2: 10-Apr-2024 [Questions with solutions]
- Mid-Semester Test: 21-Feb-2024 [Questions with solutions]
- End-Semester Test: 24-Apr-2024 [Questions with solutions]
Lab Assignments and Tests
# Topic Date and type More info A1 Solving problems by multiple processes 10-Jan-2024 (in-lab, individual) Sample codes: [fork and wait] 1 | 2 | 3 | 4, [exec] 1 | 2
SolutionA2 [job.c] IPC using signals 17-Jan-2024 (in-lab, individual) Sample codes: [signal]
Solution: using signal, using sigactionA3 IPC using pipes (and dup) 24-Jan-2024 (in-lab, individual) Sample codes: [pipe] [dup]
Solution: assignment version, for FooBar Inc.A4 IPC using shared memory 31-Jan-2024 (in-lab, individual) Sample codes: [shm]
SolutionA5 [LA5.zip] IPC using shared memory and semaphores 07-Feb-2024 (in-lab, individual) Sample codes: [sem]
SolutionA6 [LA6.zip] Multithreaded applications using pthread 06-Mar-2024 (in-lab, individual) Sample codes: [pthread] | Tutorial
SolutionA7 [gentree.c | makefile] Design your own thread library 13-Mar-2024 (in-lab, individual) Tutorial on clone
SolutionLab Test Written test 20-Mar-2024 (in-lab, individual) Solution A8 Simulation of pure demand paging 27-Mar-2024 (take-home, group) A9 File System Interface 10-Apr-2024 (take-home, group) Reference Manual, Section 14 [PDF] Submission Site