CS 311 – Operating Systems
One of my required classes this semester was CS 311: Operating Systems. Binghamton University replaced CS 350 with CS 311 this semester – its identical except without the required Lab time; rather, we’re required to complete all of the labs on our own time.
The first lab required us to read from a text file, and create an identical copy of it. There were two versions – one that read/wrote character by character, and one that read/wrote line by line. In either version, the original file was read, then the text was written to the output file. Both CPU Time and Wall Time were calculated to check how the scheduler differed between Windows and Redhat Linux.
Code:
Lab1_Character.c
Lab1_Line.c
Write-Up:
ReadMe.txt
Lab 2 required us to perform matrix multiplication concurrently using threads. The matrices were read in from a single file, with the two matrices being divided by a line of stars ['*'], and stored in a vector-of-vectors [vector< vector
Design Document:
Lab2_DesignDocument.docx
Code:
Lab2.cpp
Lab2.py
Write-Up:
README
Sample Output File:
Output
In Lab 3, we revisited the old Readers/Writers concurrency problem. Rather than using semaphores, as most solutions for this problem do, we were required to use a monitor to provide the synchronization to the threads. The user supplied the program with the necessary parameters via the command, and then was given the option of 3 different modes of operation – 1) Readers have absolute priority, 2) Writers have absolute priority, and 3) the threads are treated on a First Come, First Served basis. For each mode, different logic was used within the monitor to enforce the appropriate conditions for the threads. Every time a Writer was executed, a Database string was updated with the current time of day in the format HH:MM:SS:mmm. Every time a Reader was executed, the Database was read. Each thread wrote a line to an output text file when it executed, allowing the user to see the order in which the threads were run.
Design Document:
Lab3_DesignDocument.docx
Code:
Lab3.cpp
Monitor.h
Monitor.cpp
Makefile
Write-Up:
README
Sample Output File:
Output
These are just the first three labs that were coded for this class; please check back as the class continues and I update with the remainder of the labs we code.
[...] is the original post: From the Ground Up » CS 311 – Operating Systems By admin | category: BINGHAMTON University SUNY | tags: buffalo, buffalo-university, [...]
[...] 311, Part 2 As I said in my first post regarding my Operating Systems class, I still had several labs that I needed to complete for the [...]