CS377: Operating Systems
Lecture 1 Course Introduction
Fall 2025
Instructor: Nikko
A hearty welcome to all of you!
We, the staff for this course, support the UMass commitment to diversity.
Our plan today:
Why Study OS?
Hilariously: You are unlikely to get a job building an OS...
Why Study OS?
Hilariously: You are unlikely to get a job building an OS.
Why Study OS?
Hilariously: You are unlikely to get a job building an OS.
However, Understanding operating systems will enable you to utilize your computer more effectively.
Why Study OS?
Hilariously: You are unlikely to get a job building an OS.
However, Understanding operating systems will enable you to utilize your computer more effectively.
Why does my application run slowly?
Why Study OS?
Hilariously: You are unlikely to get a job building an OS.
However, Understanding operating systems will enable you to utilize your computer more effectively.
Why does my application run slowly?
How can I make my application cheaper to run?
Why Study OS?
Hilariously: You are unlikely to get a job building an OS.
However, Understanding operating systems will enable you to utilize your computer more effectively.
Why does my application run slowly?
How can I make my application cheaper to run?
It will also serve as an excellent example of system design issues whose results and ideas you will apply elsewhere.
Journey, you will pick up multiple skills along the way
CS 377 teaching team
Who are we?
About “us”: Instructor, TAs, UCAs
Phuthipong Bovornkeeratiroj
New(?) teaching faculty
(just graduated last semester),�interested in climate change, human-centered design.
“Nikko” (he/him)
Instructor
Nathan Kwan-Ho Ng
(he/him)
Teaching Assistant
nth year PhD student.
TAed for 677 and 532 multiple times, distributed systems (edge computing) researcher
Hetvi Shastri
(she/her)
Teaching Assistant
TA'ed 230, 677
Research area: Distributed Systems and Machine Learning
About “us”: Instructor, TAs, UCAs
We are all here to help you learn!
Hoa La
(he/him)
UCA
Tuan Nguyen
(he/him)
UCA
Fun fact: I like concurrency bugs
CS 377 course info
What did you get yourself into?
A Day in the Life with 377 (probably)
“I think I’m going to drop this course”�(Nikko: please no!)
Credit: Bruno Portela
Big picture (10,000 ft. view)
Tools
Canvas�class materials, quizzes, assignments
Poll Everywhere�in-class activities
Zoom�only for online office hours
Piazza�Q&A, discussions, announcements
Gradescope�submit assignments, re-grading requests
Echo360�class records (only lectures, not labs)
Course Elements
In-person
Assignments
Course Evaluation (Grades)
In-person
Assignments
80%
20%
4 pick 2! (10% each)
Attendance
Final Exam
Oral Exam
Group Project
20%�20%�40%
Assessing mastery of material, avoiding “high-stakes” setting:
Grade Letter & Range
A | 93 or more |
A- | 90-92 |
B+ | 87-89 |
B | 83-86 |
B- | 80 |
C+ | 77 |
C | 73 |
C- | 70 |
D+ | 67 |
D | 60 |
F | 59 or less |
Any decimals will be rounded up.
What’s “4 pick 2”?
20%
4 pick 2!
Attendance
Final Exam
Oral Exam
Group Project
Q: Can I pick all 4? �A: Yes, but only the highest two count.
you might feel like you are drinking from a fire hydrant!
Example:
Total: 10+9 = 19%
Attendance
Final Exam (10%)
Oral Exam (10%)
Group Project (10%)
Question: Which “4 pick 2” options do you prefer?
Let’s test the poll
Course Evaluation (Grades)
In-person
Assignments
80%
20%
4 pick 2! (10% each)
Attendance
Final Exam
Oral Exam
Group Project
20%�20%�40%
Assessing mastery of material, avoiding “high-stakes” setting:
(20%) Quizzes
The first quiz will be assigned next Friday (Feb 12) and due on (Feb 19)
(20%) Lab Exercises
The first lab is this Friday, let’s warm up with basic C.
(40%) Project Assignments
Your submission is your work. No exceptions.
(40%) Project Assignments
Early bird submission
Late submission
Resubmission
Hidden test cases become public
Release date
3 days
= no penalty
4 days �= 0.8*score
Due date
bonus credit
= +0.2%
Bonus credits (max. 3%)
377 Squid Game Day
Miscellaneous
Prerequisites
Major Applicability
Textbook
Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dussea.
This is a free textbook available online. While the entire textbook is available for free from this site, if you so wish, a hard copy may be purchased on Amazon.
This book is absolutely fabulous as far as OS books go.
Class policy
Our expectation from you
We can’t learn without making mistakes!
The goal is to learn and enjoy the process here on out.
Some snacks for participating in class activity/discussion.
Course norm
ChatGPT/AI policy
Let the AI teach you.
Let the AI give you feedback.
Let the AI do your assignments.
Cheating policy
Warning: We will compare your code with all previous years submissions too!
Please don’t cheat. We take this seriously.
Please ask for extension & support instead!!!
Syllabus
Software Tools
We will use a variety of software tools in this course. The most important that you will need to install on your computer is:
You will be doing all your coding in the Edlab environment. The Edlab environment is a cluster of Linux machines with all the installed software that you need.
You can use VSCode to remotely connect to the Edlab and code like you are on your own machine. Very nice!!
Or you can optionally use emacs, vim, or nano.
Academic Honesty and Collaboration Policy
Project Assignments: Individual work, no code sharing
Collaboration in Labs
Labs: Collaborative work in groups
Academic Misconduct Penalties
Penalties: Consequences for academic misconduct
A formal resolution may lead to suspension or expulsion
Contact and Resolution
Contact: Suspicion of misconduct leads to email contact
/* */ || ?
Why do we need an OS?
Assigned video (please watch it before next class):
What’s an OS?
Interface between the user and the machine architecture.
Implements a virtual machine that is (hopefully) easier to program than raw hardware.
11
What’s an OS?
13
User-level Applications
Operating System
Hardware
virtual machine interface
physical machine interface
Most Important Features
Services: The OS provides standard services (the interface) which the hardware implements.
Most Important Features
Services: The OS provides standard services (the interface) which the hardware implements.
Coordination: The OS coordinates multiple applications and users to achieve fairness and efficiency (throughput).
Most Important Features
Services: The OS provides standard services (the interface) which the hardware implements.
Coordination: The OS coordinates multiple applications and users to achieve fairness and efficiency (throughput).
Goal: Design an OS so that the machine is convenient to use (a software engineering problem) and efficient (a system and engineering problem).
Next class: Introduction to Operating Systems
There is a body of software that is responsible for making it easy to run programs.
Allowing programs to share memory…
Enabling programs to interact with devices…
… and other fun stuff like that!
This body of software is called� the operating system (OS).
Class 1: Wrap up
Notable (your to do’s):
ADJOURN
Old slides
About “us”: Instructor, TA, UCAs
Phuthipong Bovornkeeratiroj
New teaching faculty,
originally from Thailand, �interested in climate change, human-centered design.
“Nikko” (he/him)
Instructor
Dave Dirnfeld
(he/him)
Teaching Assistant
TA’ed 377 for 8 times,
created multiple labs and assignments,
computer vision researcher.
About “us”: Instructor, TA, UCAs
We are all here to help you learn!
August Huber
(he/they)
Head UCA
Neha Aryasomayajula
(she/her)
UCA
Sagnik Pal
(he/him)
UCA
About “us”: Instructor, TAs, UCAs
Phuthipong Bovornkeeratiroj
New teaching faculty,
originally from Thailand, �interested in climate change, human-centered design.
“Nikko” (he/him)
Instructor
Dave Dirnfeld
(he/him)
Teaching Assistant
TA’ed 377 for 8 times,
created multiple labs and assignments,
computer vision researcher.
David Gerard
(he/him)
Teaching Assistant
MS student graduating this Spring, previous undergrad, software engineer at MITRE, enjoys driving up to Vermont to ski on weekends.
About “us”: Instructor, TA, UCAs
We are all here to help you learn!
Khiem Le
(he/him)
UCA
Neha Aryasomayajula
(she/her)
UCA
Sagnik Pal
(he/him)
UCA