for kernel assignments
“timely” means within 8 hours or the original post
No individual extra credit
try your best from the beginning!
321 0
Operating Systems – CSCI 402
Projects Midterm Final
Grading
45% 2 warm-ups (individual), 3 group projects
25% during class time, Wed, 10/27/2021 (firm)
30% (DEN section) 8am-10am, Mon, 12/13/2021 (firm) (PM section) 11am-1pm, Fri, 12/10/2021 (firm)
Exam times above is USC local time, if exam time in your timezone is before 7am or after 10pm, I will have to offer you alternate exams
make sure your “Local Address” is correct in OASIS
Additional extra credit
1) turn in assignments more than 48 hours before deadline
2) giving good/useful/timely answers in the class Google Group
32
Copyright ý .
Projects (i.e., programming assignments) graded by the graders
Exams graded by the TAs
Final letter grade assigned by the instructor
a grade of incomplete is only possible for documented illness or documented family emergency (according to USC policy)
please understand that it¡¯s not possible for me to get you a grade of incomplete because you need more time to improve your grade
Two methods (assuming that no one games the system) 1) on a curve
2) fixed scale
your class letter grade will be the higher of the two C¡¯s may be given, F¡¯s if necessary
pretty much the only way you would get an F in the class is if
Operating Systems – CSCI 402
you cheat Copyright ý . Cheng
321 0
33
Operating Systems – CSCI 402
Grading
Curve (assuming that no one games the system)
one curve for each section (since exams are different)
Std
Std
Avg
34
321 0
Copyright ý .
Curve (assuming that no one games the system)
one curve for each section (since exams are different) loose guideline depicted below:
Operating Systems – CSCI 402
B- B B+ A- A
Std
Std
Avg
35
321 0
Copyright ý . scale
every 9% is a “grade step”
Grading
Operating Systems – CSCI 402
Percentage
Letter Grade
91% or higher
A
82-91%
A-
73-82%
B+
64-73%
B
55-64%
B-
46-55%
C+
37-46%
C
28-37%
C-
below 28%
F
36
321 0
Copyright ý . Cheng
must cite the code inline (or points will be deducted) you can use any code given to you as part of this class
no need to cite such code
321 0
Operating Systems – CSCI 402
Academic Integrity Policy
The USC Student Conduct Code prohibits plagiarism
for warmup projects, all submitted work must be your own work
you must not access/run/look at code from previous semesters
you must not copy a single line of code from other sources for kernel projects, all submitted work must be work done by members of your group
any member of your team must not access/run/look at code from previous semesters
any member your team must not copy a single line of code from other sources
Two exceptions for copying code
for warmup assignments, code fragments done by yourself for other classes or given to you as class resource (in a class you have taken) must be cited explicitly
37
Copyright ý . Systems – CSCI 402
Academic Integrity Policy (Cont…)
You are encouraged to work with other students for individual assignments or with other groups for group projects
“work with” does not mean “copy each other¡¯s work”
“work with” means discussing and solving problems together
this should happen at a high level
but be very careful when it¡¯s time to write code
must write code completely on your own
do not write code together
“sharing” even a single line of code is considered cheating
If you cannot work together at a high level
you are advised not work together with other students for individual assignments or with other groups for group projects
For more details, please see the Academic Integrity Policy section on the Course Description web page
38
321 0
Copyright ý . Systems – CSCI 402
Academic Integrity Policy (Cont…)
For kernel assignments, if you know your partner is cheating, you must tell him/her to stop
there is only one submission from your team
you won¡¯t get graded separately from your teammates
if the university determined that the submission by your team was the result of plagiarism, everyone in the team will receive a grade of F for the class
even if you don¡¯t know that your partner is cheating, the same policy applies
choose your partners carefully
talk to your partners to make sure that no one is cheating
throw away code written by other people
if you know that a partner of yours has code from previous
semester, you should ask him/her to throw away the code talk to your partner if he/she cannot explain the code he/she claimed to have written
321 0
39
Copyright ý . Systems – CSCI 402
Academic Integrity Policy (Cont…)
You must not post your code to a public code repository
if you post it to a private repository, you need to verify that it¡¯s truly private
ask your friend or kernel partners to verify
github.com is considered a public repository (no matter what they claim)
if you don¡¯t pay, your code becomes public
therefore, you must not use github.com bitbucket.org is free for students and you can setup private repositories
Since our projects are on-going projects, you must not knowingly make your code public (not even pseudo-code)
if I find your code posted in a public place, you (and your team) will get a zero for your assignment
if you post your code after the semester is over, I will ask the
university to change your grade
321 0
40
Copyright ý . Systems – CSCI 402
Displaying Your Code in Public Repositories
As a general rule, you should only post code to the public if the spec is public and the code you are depending on is also public
all our assignment specs are private
the code given to you in our assignment are private
you must not post any of your CS 402 code to a public repository
You do not have the right to post it as part of your online resume
because your code depends on the rest of the assignment which you do not have the rights to display or distribute this is serious business!
your future boss would/should appreciate that you understand about software copyrights
Also, you have agreed to the USC Student Conduct Code
USC Student Conduct Code says that you must not cheat off other students and you must not knowingly allow other students to cheat off of you
321 0
41
Copyright ý . Systems – CSCI 402
Program Checker
Do not submit someone else¡¯s code
How do we catch cheaters?
we use MOSS to analyze your submissions
http://theory.stanford.edu/~aiken/moss/
analyzes code structure intelligently
we have all projects from previous semesters
If MOSS reports an unacceptable level of code match
your submission will be automatically rescinded and you will get a zero for that assignment
if you insist that we grade your assignment, I will have to forward the MOSS data to the university to investigate and decide if there is cheating before we can grade your assignment
if the university decides that plagiarism has occurred, you will get an F in the class
I typically check for plagiarism around final exam time
321 0
42
Copyright ý . Systems – CSCI 402
E-mail Questions
One type of question I often get over e-mail or see in class Google Group:
here is my understanding of X. “Am I right?” “Is this correct?” “Correct me if I¡¯m wrong…” “Please confirm that I¡¯m right…”
this is really not a good way to ask something
if no one corrects you, you must not conclude that you were correct
stick to the definition of X in lecture slides or in the textbook and try to understand why it was stated that way
perfectly reasonable to discuss this during office hours
find a different way to ask over e-mail to be more productive
Another type of question I often get about assignments:
I am thinking about not following the spec and do this instead. Is it acceptable (or is this okay)?
stick to the written words (spec and grading guidelines)!
43
321 0
Copyright ý . Systems – CSCI 402
Course Readings
Required textbook
“Operating Systems In Depth: Design and Programming” by T. W. Doeppner
we will follow this book closely
my job is to explain this book to you
44
321 0
Copyright ý . Systems – CSCI 402
Course Readings
Optional textbook
“C Programming Language” by B. Kernighan and D. Ritchie all programming assignments must be done in C
45
321 0
Copyright ý . Systems – CSCI 402
Class Structure
Lectures mostly based on Doeppner
slides
You must keep up with the assigned lecture videos and watch them before the corresponding live lectures
you are required to read the corresponding materials in the textbook
although exam questions mainly come from the lectures and slides
of course, “mainly” is not the same as “completely”
I can ask you about things that I think you should know, given what you are supposed to have learned in this class
I expect you to keep up with the lecture schedule
you will also be expected to participate in midterm and final exams
46
321 0
Copyright ý . Systems – CSCI 402
Lecture Slides
Lecture slides came with the book
the purpose of lectures is to explain what¡¯s in the textbook
the textbook is not all that easy to understand
lecture slides are not meant as “extra material”
lecture slides have a lot of details
too much details?!
some are verbatim from the textbook
too much details can be a good thing
it tells you what¡¯s important to study
you don¡¯t need a eparate study guide for exams!
You need to understand every slide
do you need to read the textbook?
no if you just want to do well in the exams and you understand everything covered in lectures
although highly recommended
I think it¡¯s a good textbook
321 0
47
Copyright ý . Cheng
1) kernel threads & processes
2) virtual file system layer
3) virtual memory (extremely difficult)
no solutions will be given
program in C only (and you must learn C on your own)
C is a proper subset of C++
although stream I/O and strings are not available in C you must learn how to do I/O the right way
you must learn how to deal with C-strings (i.e., null-terminated array of chars)
the kernel assignments are extremely difficult should get started as early as possible
321 0
48
Operating Systems – CSCI 402
Projects / Programming Assignments
Programming assignments
(7%, 18%) 2 warm-up projects (to be done individually) linked list in C, pthreads (no kernel code)
(25%, 25%, 25%) 3 kernel projects (to be done individually or in a group of 2-4 students)
Copyright ý . Cheng
follow the instruction at the bottom of the class web page
install VirtualBox first
then install a virtual appliance (which contains a 32-bit Ubuntu 16.04) into VirtualBox
we call this the standard 32-bit Ubuntu 16.04 system if you want to use any other method, come talk to me first
You can install as many virtual machines as you¡¯d like
keep one clean standard 32-bit Ubuntu 16.04 for testing so
you know exactly what the grader will see
321 0
Operating Systems – CSCI 402
Projects / Programming Assignments
All assignments must be done on 32-bit Ubuntu 16.04
install the latest Ubuntu 16.04 LTS (any subversion is fine)
if you are offered to “upgrade” to a new release, you must refuse it
or you have to reinstall Ubuntu 16.04 from scratch again our kernel assignments will NOT work on Ubuntu 17.04 or newer
Install Ubuntu 16.04 early and let me know if there are problems
49
Copyright ý . Systems – CSCI 402
Projects / Programming Assignments
If you have a Mac with a non-Intel/AMD CPU, you won¡¯t be able to run Ubuntu 16.04 inside VirtualBox
you have 2 options
1) find an Intel-based Mac or Windows machine to do our assignments
2) request access to Viterbi¡¯s MyDesktop (VMware Horizon) this is a remote server running Windows 10
if you don¡¯t have a fast and reliable Internet, this can be
very inconvenient
if (1) is not an option for you, you need to contact me as soon as possible so I can request an account for you on MyDesktop
50
321 0
Copyright ý . Systems – CSCI 402
Projects / Programming Assignments
For kernel assignments, half the grade is “team grade” and half is “individual grade”
in the README file your team will submit, you need to:
specify how to split the points (in terms of percentages and must sum to 100%)
give a brief justification about the split
for exmaple, the grader gives you 80 points and everyone contributed equally, everyone gets 80 points
what if it¡¯s not equal contribution?
what if the split is 0/50/50? what should be your scores? what if the split is 20/30/50? what should be your scores?
51
321 0
Copyright ý . Systems – CSCI 402
Projects / Programming Assignments
If there is an uneven split, we will use a program called “cs402calc.txt” (it¡¯s a perl script) to assign scores:
general syntax
cs402calc.txt grade p1 p2 …
where grade is the grade the grader gave, and p1, p2, …
are percentages
simple linear interpolation
Ex:
scores would be 100, 57.14, 57.14, and 57.14, respectively
cs402calc.txt 100 70 10 10 10
52
321 0
Copyright ý . Systems – CSCI 402
Projects / Programming Assignments
It can be difficult to figure out contribution of each team member
some would try to do that precisely and that can create tension among team members
is finding a bug worth writing 100 lines of code?
how much less important is testing compared to coding?
I cannot and will not get involved in your team¡¯s dispute because I did not get involved in forming your team
My recommendation is to simply claim equal contribution in your README file and focus on getting the work done
what about free loaders?
when you form your team, you need to have a discussion with your teammates and agree on how to determine the split
53
321 0
Copyright ý . Cheng
after groups are formed, only mutually agreed swaps are
allowed, and with my approval
321 0
Operating Systems – CSCI 402
Projects / Programming Assignments
Forming groups
you can form a group with students from any section
It¡¯s probably a good idea to work with other students during the warmup projects
although you must write code independently for the warmup projects
“work with” means working at a high level (not code level)
all students not belonging to a group by the group forming deadline will be assigned a group
algorithm:
form a random list from these students (random drawing) assign 4 to a group starting from the beginning of the list remaining students join these randomly formed groups this is the only way to have 5-student groups
boundary conditions? hope we don¡¯t get there
54
Copyright ý . Cheng
form your own team, or
do the kernel projects by yourself!
if you choose neither, we cannot grade you differently given our fairness policy
during the first 6 weeks, work with other students so you know with whom you want to be partners
321 0
Operating Systems – CSCI 402
Projects / Programming Assignments
We know that our algorithm is far from perfect
that¡¯s why it¡¯s specified way in advance
this way, you can plan how to form teams given that you know our algorithm for assigning teams
If you cannot form a team of your own and end up in a team that cannot get the kernel assignments to work?
probably because there are problem members is this unfair to you?
No! because you did have options
given that you know that this is the rule, what should you do?
55
Copyright ý . Systems – CSCI 402
Grade Normalization for Programming Assignments
It¡¯s pretty much impossible for graders to grade identically
students in different sections can be in the same kernel team makes things more complicated
if your team gets a score of 90, it may be above average for one student and below average for another
if another team scores 90 as well, it may be graded by an easier/harsher grader
When I calculate your final grade, I will normalize each of your programming assignment grades, using the average and standard deviation of your grader
e.g., average of your grader is 85 and standard deviation is 10 for this assignment and your score is 87.5
your score is thus “average plus half of a standard deviation” your normalized score is therefore class average plus half a class standard deviation
I know this is not perfect, but it¡¯s much better than using
un-normalized scores
321 0
56
Copyright ý . Cheng
submit source code only (or 2 points will be deducted)
for team projects, only one member needs to submit
it is your responsibility to make sure that your submission is what you want us to grade – Be a little paranoid!
57
321 0
Operating Systems – CSCI 402
Electronic Submissions
Use the Bistro system (see bottom of assignment specs for details) you can make multiple submissions
will grade last submission by default
Bistro system gives tickets for your submission
these are proofs that my server got your submission we cannot trust any file timestamp
we can only trust things that have made it to our server
very important: read your tickets and save your tickets as PDF very important: verify your submissions
see the bottom of the Electronic Submission Guidelines
web page for details
if you forget a file in your submission, you are not allowed to resubmit it after the deadline
Copyright ý . Systems – CSCI 402
Electronic Submissions
Use the Bistro system (see bottom of assignment specs for details) no other form of submission will be accepted
use your judgement under special circumstances or urgent situation while accepting the risks with e-mail submissions
58
321 0
Copyright ý . Systems – CSCI 402
Late Policy
Electronically Submitted Assignments
you can submit multiple times, only the last submission will be graded (unless you send the instructor an e-mail)
15 minutes grace period
90% of your score if within one day late beyond grace period although in the first 50 minutes of this period, you will only lose 1% of your grade every 5 minutes
see next page for details
time is based on Bistro server timestamp in the ticket
Extension only possible if you have a note from a doctor or other form of official proof of family emergencies
e.g., scheduling conflict with work, other classes, etc. cannot be excused
321 0
59
Copyright ý . Systems – CSCI 402
midnight
midnight
Late Policy
100% 90% 80%
60% 40% 20%
0%
on time
1 day late
10%
slope = -1% every 5 minutes (round up to the nearest percent)
60
321 0
Copyright ý . Systems – CSCI 402
Late Policy
I must stick to my policies
1) please do not ask for individual extension unless you
have a documented proof of illness or a documented
proof of family (not personal) emergency
2) my “fairness” policy is: “Whatever I offer you, I must
offer it to the whole class”
this is why I cannot give individual extensions
what if your laptop died? home Internet disrupted? car broken? cousin got stuck at the airport? my house was on fire? need to go to court? need to go to Miami? and so on …
these are personal emergencies
please see (1) and (2) above
please submit early so personal emergencies will not cause problems
321 0
61
Copyright ý . Systems – CSCI 402
Modifications After Deadline
After the submission deadline has past
you are allowed up to 3 lines of free changes, if submitted via e-mail to the instructor, within 24 hours of the project submission deadline
clearly, this is not meant for major changes
you may want to anticipate that your submission may not be exactly what you thought you had submitted
one line (128 characters max) of change is defined as one of the following:
add 1 line before (or after) line x delete line x
replace line x by 1 line
move line x before (or after) line y
additional modifications at 3 points per line within 24 hours of the project submission deadline
(cont…)
321 0
62
Copyright ý . Systems – CSCI 402
Modifications After Deadline (cont…)
After the submission deadline has past (cont…)
24 hours after the submission deadline, additional modifications cost 10 points per line for the next 6 days
afterwards, it costs 25 points per line
applies to source code and README files
do not forget to submit files, verify your submission this is your responsibility
we cannot accept missing files after deadline because that¡¯s too many lines of changes!
a filesystem timestamp can be easily forged, so they cannot be used as proof that you have not modified the file after deadline
try things out before your first submission deadline to get familiar with the Bistro system
re-test your code after you have made your final submitted to be sure
321 0
63
Copyright ý . Credit 1
To encourage you to do your projects early, you will get extra credit if you turn in programming assignment 2 or 3 days early
if your submission is more than 72 hours before the posted deadline, you get an extra 10%
if your submission is between 48 and 72 hours before the posted deadline, you get an extra 5%
midnight
midnight
midnight
midnight
Operating Systems – CSCI 402
110% 105% 100%
. . .
5%
slope = -1% every 5 minutes (round up to the nearest percent)
5%
+10%
+5%
no extra credit
3 days early
2 days early
1 day early
on time
64
321 0
Copyright ý . Systems – CSCI 402
Extra Credit 2
You can get extra credit for posting timely, useful, and insightful answers to the class Google Group in response to questions posted by other students regarding kernel programming assignments
you probably won¡¯t get extra credit if you repeat exactly what another student has already posted
you need to add something useful to existing posts
you can still post to support another student¡¯s position
you probably won¡¯t get extra credit if you respond more than 8 hours after the time of the original post
the maximum number of extra credit points you can get is 10 points for each of the kernel assigments (on a 100-point scale) if you post something good, it¡¯s your responsibility to verify that it has been posted to the Google Group
you can lose extra points you have earned if you post something unprofessional to the class Google Group or exhibit poor netiquette
65
321 0
Copyright ý . Systems – CSCI 402
Regrade Policy
Grades will be sent to individuals via e-mail
you must register for the class mailing list
Regrade requests in writing
submit within 1 week of initial grade notification
must follow instruction in grade notification e-mail
regrade can be done after the 1-week deadline, but you must initiate a regrade request within 1 week
we reserve the right to regrade the whole thing
If you have made multiple submissions and after you have received your grade, you realized that you meant for us to grade a different submission
it will cost you 20 points to regrade a different submission this is why Verify Your Submission is so important to make sure that we are grading the correct submission
66
321 0
Copyright ý . Systems – CSCI 402
Student Commitments
Keep up with lectures and discussions Do your own work
Turn in assignments on time
Ensure gradable assignments
save a copy of the ticket you see in the browser
it¡¯s a PROOF that my server has received your submission
the ticket in the e-mail is not that important and can get delayed it¡¯s very important to verify your submissions, especially after you have made your final submission
if you submitted a wrong file or forgot to include a file, there is absolutely nothing we can do after the deadline
You are encouraged to study with other students and discuss (no copying/sharing code or pseudo-code) about programming assignments
321 0
67
Copyright ý . Cheng
you are encouraged to ask questions, pretty much about anything related to programming
when you get stuck with programming, ask the TA, the CP,
or the instructor for help, don¡¯t wait too long
321 0
Operating Systems – CSCI 402
Student Commitments
If you are confused about anything, you are expected to ask me questions!
68
Copyright ý . Systems – CSCI 402
Student Commitments (Cont…)
If you feel that you are falling behind
talk to the instructor as soon as possible
How do you know you are in trouble?
assuming that you want a decent grade
you look at a set of slides that has been covered in class and have no idea what it means
then you read the textbook and understands it perfectly you are probably not in trouble
if you read the textbook and are still confused you are somewhat in trouble
if you don¡¯t read the textbook you are probably in big trouble
don¡¯t do this right before exams!
you should ask youself, “Am I in trouble?” like at least every week if you don¡¯t plan to come to lectures
321 0
69
Copyright ý . Cheng
how many kernel programmers do we need in this world? but everyone in CS must understand OS concepts well
Exams mostly are based on lectures
I reserve the right to ask anything from required materials
Exam questions often asks for the best answer
you get credit for including the “best answer”
you may get deductions for including “bad answers” generic answer usually gets you very little partial credit partial credit: better answer may get you more points
Do not review all lectures only right before the exams
otherwise, you may only be able to give generic answers because everything is a blur
you need to show that you know the difference
between answers of different quality
321 0
Operating Systems – CSCI 402
Study for Exams
Exams are worth a lot! This class is not just about programming!
70
Copyright ý . Systems – CSCI 402
Things to Do Today
Read entire class web page: http://merlot.usc.edu/cs402-f21
get user ID and password to access protected part of website
should do this even if you are not registered for the
class but plan to take this class
check warmup #1 project spec and start coding
Additional things to learn/do quickly
learn C if you don¡¯t know it already learn “git” (see online book)
you will need it for group projects
should start using it for the warmup projects
learn a commandline editor: vim/pico/emacs
pico is the easiest
install VirtualBox on your laptop/desktop and then install standard 32-bit Ubuntu 16.04 into VirtualBox and let me know if there are problems
if the only machine you have is a M1 Mac, contact me!
321 0
71
Copyright ý . hours
(M/Tu/W/Th 3:00-4:00pm): 983 8678 2289 https://usc.zoom.us/j/98386782289
321 0
72
Operating Systems – CSCI 402
Summary Of Zoom Meeting IDs
Due to security concerns, we cannot post Zoom meeting IDs in the public area of our website
it¡¯s probably a good idea to setup bookmarks to remember the URLs below
Live lectures
DEN section (MW 10:00-11:50am): must access from D2L click on the Virtual Meetings menu and select CSCI 402 secondary live lecture (MW 10:00-11:45am): 975 1775 9846 https://usc.zoom.us/j/97517759846
PM section (MW 12:00-1:50pm): 965 1245 0741 https://usc.zoom.us/j/96512450741
secondary live lecture (MW 12:00-1:50pm): 981 1955 9969 https://usc.zoom.us/j/98119559969
Copyright ý . Systems – CSCI 402
Summary Of Zoom Meeting IDs
Office hours
(M/Tu/W/Th 3:00-4:00pm): 983 8678 2289 https://usc.zoom.us/j/98386782289
: (TBD) Zhuojin Li: (TBD)
73
321 0
Copyright ý . Systems – CSCI 402
Course Content Credit
Slides and course content primarily came with the textbook and originally written by:
Prof. . Doeppner
Additional slides and course content from:
Prof.
Some (test) code for the kernel assignments from:
Prof. Dr. Sung-
Miscellaneous
Someone actually complained about this, so I¡¯m stating it here
I do not use the standard course evaluation window
in the old days, course evaluations are done in class (i.e., the window was about 15 minutes)
321 0
74
Copyright ý . Cheng