View on GitHub

CS 347 - Operating Systems

Programming Assignments

Download this project as a .zip file Download this project as a tar.gz file

CS 347: Operating Systems

This repository contains my solutions to the programming assignments of this course that I took in Spring 2022 at IIT Bombay.

I took this course to satisfy the requirements for a minor degree in Computer Science. This course was taught by Prof. Mythili Vutukuru. The course website can be found here.


Programming Assignment 1

This assignment consists of three parts and deals with the following concepts:

  1. Understanding Processes in Linux
  2. Working of a Simple Shell
  3. Working of System Calls in xv6

Programming Assignment 2

This assignment consists of two parts and is based on understanding memory management in xv6:

  1. Displaying Memory Information
  2. Memory Mapping
    • Implementing demand paging

Programming Assignment 3

This assignment consists of 4 parts, but only the last 2 parts were required to be done. It is based on understanding concurrency and synchronization using semaphores and conditional variables:

  1. Implementing semaphore using pthreads library
  2. Using our own problem on concurreny and synchronization, coming up with
    • One correct and one incorrect solution using semaphores
    • One correct and one incorrect solution using conditional variables