ipsitmantri / CS347

My solutions for the Programming Assignments of the course CS 347: Operating Systems at IITB

Home Page:https://ipsitmantri.github.io/CS347/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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{:target="_blank"}. The course website can be found here{:target="_blank"}.


Programming Assignment 1

This [assignment](./Programming Assignment 1/pa1.pdf){:target="_blank"} 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](./Programming Assignment 2/xv6-mem.pdf){:target="_blank"} 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{:target="_blank"} 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

About

My solutions for the Programming Assignments of the course CS 347: Operating Systems at IITB

https://ipsitmantri.github.io/CS347/


Languages

Language:C 61.6%Language:Makefile 22.2%Language:C++ 8.2%Language:TeX 5.5%Language:Shell 1.4%Language:Assembly 0.7%Language:Awk 0.3%