Operating Systems (CSCI 375)
Spring Semester 2025
The instructor for CSCI 375 this semester is
Course Description
(From the Syllabus:)
"This course introduces basic principles and techniques used in the design and implementation of operating systems.
The course follows text; however, supporting material is introduced throughout the course.
Topics are basic and advanced features of modern operating systems including processes, I/O, memory, and
processor scheduling."
Course Syllabus
Course Announcements
- Nathaniel Martinez is available to provide supplementary tutoring in peroson and remotely. His schedule is as follows.
In person in 6.64 NB:
Monday, 11:00 AM to 3 PM
Wednesday, 11:00 AM to Noon, 2:00 PM to 6:00 PM
Friday, 2:00 PM to 3:00 PM
Remote Support:
Tuesday & Thursday, 1:00 to 3:30 PM
Please email him at nathaniel.martinez@jjay.cuny.edu to schedule an appointment.
Assignments
(5% penalty per day for late project and no late homework will be accepted)
- Project 3: Critical section problem I, due by May 1, 2025
- Homework #3 (Due by May 1, 2025): Excercise Problems for Chapter 6 (6.2 ~ 6.6), Chapter 7 (7.1 ~ 7.4), Chapter 8 (8.2 ~ 8.4, 8.6 ~ 8.9)
- Project 2: OpenMP multithreading as discussed in the lecture note 5 (PP 95 ~ 96), due by Mar 27, 2025
- Homework #2 (Due by Mar 27, 2025, One week extension): Excercise Problems for Chapter 3 (3.1 ~ 3.5), Chapter 4 (4.1 ~ 4.6), Chapter 5 (5.2 ~ 5.8, 5.11, 5.15, 5.18, 5.22, 5.35)
- Project 1: multithreading application, due by March 11, 2025
- Homework #1 (Due by Feb 18, 2025): Excercise Problems for Chapter 1 (1.1, 1.2, 1.5, 1.6, 1.8, 1.9, 1.10), Chapter 2 (2.1, 2.2, 2.5, 2.6)
Class lecture notes
- Lecture 1 (PDF format)
- Lecture 2 (PDF format)
- Lecture 3 (PDF format)
- Lecture 4 (PDF format)
- Lecture 5 (PDF format)
- OpenMP Installation
- C++
- Windows (Command line)
- Download TDM-GCC and unzip it
- open a command prompt and run
mingwvars.bat
from the folder
- Windows (CodeBlocks)
- Linux
- g++ should already be on the command line
- Mac
- Install homebrew using
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Install gcc using
/usr/local/bin/brew install gcc
- use
g++-10
as the compile command
- Test
- Download openmp_confirm.cpp
- Compile with
g++ -o openmp_confirm openmp_confirm.cpp -fopenmp
- Run
openmp_confirm
- You should see:
hi from thread 0
hi from thread 1
- Using Microsoft Visual Studio (2015 or later recommended)
- Open a new empty project (console application). Empty project should not have precompiled header
- Now, right click on the new opened solution(++ sign) in Solution Explorer
- A property window will appear. Go to Configuration Properties -> C/C++ -> Language.
- Now click Open MP Support -> select Yes (/openmp) from a dropdown box. You are all set at this point.
Test:
Add openmp_confirm.cpp file as an existing item in to the Source Files directory (in Solution Explorer window).
- Build and run the openmp_confirm.cpp file (Shortcut: Ctrl + F5)
- You should see:
hi from thread 0
hi from thread 1
- For the older VS (2013 or earlier) versions you might need to follow below instructions along with the instructions above.
- Go to Build menu (top level) -> Configuration Manager.
- In the Project contexts area box: set Configuration as Debug and Platform as Win32 from the dropdown boxes. You are all set now!
Lecture 6 (PDF format)
Lecture 7 (PDF format)
Lecture 8 (PDF format)
Lecture 9 (PDF format)
Last modified: April 22, 2025 8:45 by Jinwoo Kim