CSCI 4061 Introduction to Operating Systems
Instructor:
General Information
Lectures:
Sec 1: Tu/Th 8.15 am-9.30 am Sec 10: Tu/Th 1pm-2.15pm
Course Modality:
Lecture, labs in-person (subject to change) Live streamed and recorded lectures, labs All office hours via zoom
Course material and information: Via Canvas page
Contact: Private messages on Piazza (Avoid email) 4
Course TAs
4 TAs for the class
Will conduct recitation sections and office hrs
Details on course website
You can go to any TA’s office hrs
5
COVID Precautions and Guidelines
Masks must be worn indoors at all times
University requires all students to be vaccinated Social distancing and stable seating:
Try to space out as much as possible
Try to sit in the same seat every class Physical attendance: NOT required
Can access lectures/labs remotely
If feeling sick or possible exposure to COVID:
DO NOT come to class
7
1
What is this Course About?
8
Course Objectives
Learn Operating System Concepts
Learn how OS relates to the hardware and user
applications
A “Programmer’s view” of Operating Systems
Focus on external OS interfaces and services
Strong emphasis on systems programming
Concepts applicable to non-Unix OS’s
9
Course Non-Objectives
This course is NOT:
User’s guide to C and Unix Kernel hacking course
What you won’t be taught in this course:
C programming: You’ll have to pick it up yourself,
though you would get some help initially
Unix Tools: Some tools would be covered, but this is not a Unix tutorial course
OS internals: Some coverage here, but would be covered in depth in 5103
References available on the course website 11
Pre-Requisites
CSCI 2021 (Computer Architecture): Requires good understanding of computer organization and hardware concepts
Familiarity with Unix environment
Good programming skills: C would be used in
the course, but experience with another language would be helpful too
Good understanding of data structures and algorithm fundamentals
12
2
Course Work and Mechanics
13
Recitation Sections (Labs)
Conducted in-person and synchronously on Zoom TAs would conduct the recitations
Discussion of course material
Lab exercises (submission required)
Clarifications on Assignments
14
You can post questions, clarifications, discuss ideas, course material
Try responding to each other as far as possible Instructor, TAs will regularly monitor the forum
Private messages can be sent to instructor/TAs (Avoid sending emails)
However:
No irrelevant, abusive postings
No posts that break the rules/spirit of honesty
Don’t ask for solutions or post parts of your solution
15
Readings and Lecture Notes
Weekly readings from textbook/external sources on website
Must keep up to follow lectures/recitations
Recommended to read before the lecture
Lecture Notes would be made available online
before lecture
Additional reading material would be online: Links on the course site
16
3
Course Requirements
4 Programming Assignments (40%) To be done in teams of 2-3
Each assignment due in 2 weeks
Exams and In-Class Quizzes (40%)
2 Mid-term Exams: In-class (15% each) 2 In-Class Quizzes (5% each)
No Finals!
Lab Exercises and Online Quizzes (20%):
Given out weekly
1% each lab (Top 10 for a max of 10%)
1% each online quiz (Top 10 for a max of 10%)
17
Programming Assignments
You will be given a set of functional specifications Implement a program to satisfy these specs
Programs must be written in C Why C?
C provides a closer interface to the OS compared to many other languages (like Java, Python, etc.)
C allows more control over program state and performance (e.g., pointers, memory management)
C has traditionally been used for systems programming and for building OSes (e.g., Unix/Linux)
18
Programming Assignments (2/3)
The programs should be well-documented
Provide full code, header files, makefiles, test-
files, README file
Online submission by 11:59 pm on due date
(via Canvas site)
One submission per team
Intermediate submission: About 1 week before
deadline
Late submission policy:
10% penalty for <24 hrs late
No submission allowed beyond that
19
Programming Assignments (3/3)
The code must be original
Not copied or derived from the Web, from past
offerings, other students, programmer friend, ...
No sharing of code across teams Team members should work together
Ask questions and clarifications on class forum, from TAs or instructor
Grading: Points for
Functionality and correctness
Code readability and documentation
Read specifications very carefully! 20
4
Exams and In-Class Quizzes
Mid-term exams would be the length of a lecture:
Cover material from previous 6-7 weeks
In-Class Quizzes would be 25 minutes
Cover material from previous 3-4 weeks
These will be conducted synchronously during the lecture timings
21
Lab Exercises
Exercise to be done in a recitation section
Open resource/open collaboration: You may consult
textbook, and discuss lab material with others
Must be done and submitted individually – reflect your
own effort and understanding
Will count your top 10 submissions (for a total of max
10% of grade)
22
Online Quizzes
Online Canvas quiz every week
Based on material covered previous week Multiple choice, auto-graded
Will count your top 10 submissions (for a total of max 10% of grade)
23
Grading Policy
Absolute scale (not grading on a curve) [93-100] A
[90-93) A-
[87-90) B+
[83-87) B
[80-83) B- [75-80) C+ [70-75) C
[65-70) C- [60-65) D+ [50-60) D [0-50) F
24
5
Regrading Policy
Any issues with grading must be resolved within a week from getting back the graded material
For Prog. Assignments, talk to the TAs first
25
Expectations from you
Follow lectures and recitations regularly Very important for success in course
Keep up with weekly readings, exercises Start on assignments early!
Not going to be trivial, one-day affairs Will run into bugs, problems, questions
26
Academic Dishonesty
What does it include?
Copying assignments, cheating on exams, plagiarism
Programming assignments: Code must be original
(not copied or derived from the web, other teams or external sources)
Can result in serious consequences:
Can range from 0 on assignment to F in class or worse U requires report to Office for Community Standards
Take this issue very seriously
All parties involved in cheating (helper and helpee) will
be considered equally culpable If unsure, just ask!
Disability Statement
If you have, or think you have, a disability, contact Disability Services
Please get a letter from DS for any special accommodation request on course work
I will try my best to make the required accommodations
28
6
What is an Operating System?
29
Computer System
Applications
Operating System
Hardware
(CPU, Memory, Disks, Devices)
30
What is an Operating System?
31
Image Source: nsjour.wordpress.com
Consider an Example Scenario
Suppose:
You are running a particle physics simulation as
part of your Physics homework
You are chatting with your friends on a social
media platform
You are streaming an online video
32
7
What’s happening with each app?
Physics simulation:
Reads/writes input and output files
Does number crunching (perhaps on multiple CPUs)
Social media chat:
Typing and sending out messages you type Receiving and displaying text, images, etc.
Video streaming:
Downloading, decoding and displaying videos on your
screen
Must be done at the right frame rate
33
What’s happening on the computer system?
Several concurrent activities:
Processing: Particle physics computations, Decoding
and displaying videos, web pages, etc.
User interactions (keyboard, screen, etc.)
Data I/O: Reading/writing files from disk,
sending/receiving data over the network
34
How to handle all this activity?
How to make life simple for the user?
How to utilize various hardware resources (CPUs,
memory, network, disk, etc.) efficiently?
How to manage concurrent activities correctly and in a timely manner?
35
8