Instructor: Dr. Melissa Danforth
Office Hours: MWF 2:45-3:45pm and TuTh 12:00-1:00pm (link posted on Moodle)
Email: melissa@cs.csub.edu or mdanforth@csub.edu (CSUB.edu goes to my phone)
Instructional Student Assistant: Clark Gumba
Moodle website:
https://moodle3.cs.csub.edu/course/view.php?id=45
Course meets MW 12:00-1:15pm (lecture) and F 10:00am-12:30pm (lab) on Zoom
(Zoom information will be posted on Moodle).
Due to the last-minute changes with this course, attendance will not be
required for any of the course sessions, but it is strongly encouraged so
you can ask questions in an interactive format.
Contact me if you have any issues with attending sessions, such as Internet
issues, power outages, technical difficulties, work conflicts, or other
university excused absences.
Webcams will not be required of students. I have configured Zoom to allow
phone call-ins and to mask phone numbers for those who have to call in to
attend.
Videos of the lectures and lab demos will be posted to Moodle after processing
and closed-captioning. Give at least a day for that to occur (longer if the
automatic closed-captioning requires significant editing).
Working in teams or groups is optional in this course. If you do opt to form
a team for the project or work in groups on the group assignments, you must
complete that work virtually, with no face-to-face meetings. Use virtual
collaboration tools such as Slack, Discord, Zoom, MS Teams, etc. to manage
your group work and team work.
CMPS 3600 Operating Systems (4)
A study of the introductory concepts in operating systems: historical
development of batch, multi-programmed, and interactive systems; virtual
memory, process, and thread management; interrupt and trap handlers,
abstraction layer, message passing; kernel tasks and kernel design issues;
signals and interprocess communication; synchronization, concurrency, and
deadlock problems.
Prerequisite: CMPS 2020 with a grade of C- or better.
Programming skill in a high level language (preferably C or C++)
Knowledge of data structures and algorithms
NOTE: This course makes extensive use of the C programming language. Students
who have only learned C++ should review a C tutorial for the differences
between C ("pure C") and C++. Transfer students who have CMPS 2020 credit due
to a Java course will need to take a more intensive self-directed study of
the C programming language, as there are many syntax differences between C
and Java.
4 semester units. 3 units lecture (150 minutes per week), 1 unit lab
(150 minutes per week).
Required for CS and CE.
Operating Systems: Internals and Design Principles, 9th edition
by William Stallings, Pearson. (earlier editions are also acceptable)
The ANSI C Programming Language by Kernighan and Ritchie
The Linux Programming Interface by Michael Kerrisk
Melissa Danforth
This course covers the following ACM/IEEE Computer Science 2013 Body of
Knowledge student learning outcomes in Operating Systems (OS):
- OS/Overview of operating systems
- OS/Operating systems principles
- OS/Concurrency
- OS/Scheduling and dispatch
- OS/Memory management
- OS/Security and protection
This course covers the following ACM/IEEE Computer Engineering 2004 Body of
Knowledge student learning outcomes in Operating Systems (CE-OPS):
- CE-OPS0: History and overview
- CE-OPS1: Design principles
- CE-OPS2: Concurrency
- CE-OPS3: Scheduling and dispatch
- CE-OPS4: Memory management
- CE-OPS6: Security and protection
This course covers the following ACM/IEEE Computer Engineering 2016 Body of
Knowledge student learning outcomes in System Resource Management (SRM):
- CE-SRM-1: History and overview of operating systems
- CE-SRM-2: Relevant tools, standards, and/or engineering constraints
- CE-SRM-3: Managing system resources
The course maps to the following performance indicators for
Computer Science (CAC/ABET) and Computer Engineering (EAC/ABET):
- (CAC Outcome 1) An ability to analyze a complex computing problem and
to apply principles of computing and other relevant disciplines to
identify solutions.
- Laboratory and homework assignments
- (CAC Outcome 2) An ability to design, implement, and evaluate a
computing-based solution to meet a given set of computing requirements
in the context of the program's discipline.
- Final project
- (EAC Outcome 1) An ability to identify, formulate, and solve complex
engineering problems by applying principles of engineering, science,
and mathematics.
- Laboratory and homework assignments
- (EAC Outcome 2) An ability to apply engineering design to produce
solutions that meet specified needs with consideration of public
health, safety, and welfare, as well as global, cultural, social,
environmental, and economic factors.
- Final project
- (EAC Outcome 6): An ability to develop and conduct appropriate
experimentation, analyze and interpret data, and use engineering
judgement to draw conclusions.
- Laboratory and homework assignments
Week | Chapter | Topic list |
Week 1 | Chapters 1 & 2 | Operating systems overview |
Week 2 | Chapters 1 & 2 | Historical development |
Week 3 | Chapter 3 | Process description & control |
Week 4 | Chapter 4 | Principles of threaded programs |
Week 5 | Chapter 4 | SMP & microkernels |
Week 6 | Chapter 5 | Principles of concurrency |
Week 7 | Chapter 5 & Appendix A.1 | Semaphores |
Week 8 | Chapter 6 | Principles of deadlock & starvation |
Week 9 | Chapter 6 | Linux kernel concurrency |
Week 10 | Chapter 7 | Memory management |
Week 11 | Chapter 8 | Virtual memory |
Week 12 | Chapter 9 | Uni-processor scheduling algorithms |
Week 13 | Chapter 10 | Real-time scheduling |
Week 14 | Chapter 11 | I/O scheduling |
Week 15 | Chapter 15 | Security issues |
The schedule of topics is subject to change, depending on the pace of the
course in this term. Specific topics for each week will be posted on Moodle.
Attendance is not required. Students are responsible for their own
attendance. Recordings of the classes will be posted to Moodle after
processing.
You may discuss the assignments with others in the class. A message board
is also available on Moodle for discussions.
If the assignment is a group assignment, the group can turn in one assignment
for the entire group. If the assignment is an individual assignment,
each student must turn in their own work in their own words; no direct
copying from any source is allowed.
Refer to the Academic Integrity policy in the campus catalog and class schedule for more details. You can also refer to the Academic Integrity
policy at the Office of Student Rights and Responsibilities at
https://www.csub.edu/osrr/
To request academic accomodations, please contact the Office of Services for Students with Disabilities (SSD) and email me an accomodations letter from
the SSD Office. Policies from the SSD Office relating to accomodations, such
as scheduling policies for using their testng center, must also be followed. For more information about the services and policies of the SSD Office, contact
their staff by email and/or visit their website at
https://www.csub.edu/ssd/
If you are experiencing challenges related to basic needs, such as food
insecurity, housing insecurity, or other challenges, there are resources
available to you. The campus Food Pantry, located next to the Student Union, is open with reduced hours during Fall 2020. The Food Pantry also
has information about services and monthly food distributions. Please visit the
Food Pantry
website for hours and information. For housing concerns and other basic
needs, please contact the Campus Advocate at 654-6210 or Jason Watkins,
Assistant Director for Basic Needs, at 654-3360.
Labs | 15% |
Homework | 10% |
Final Project | 25% |
Midterm Exam | 25% |
Final Exam | 25% |
The standard academic grading scale as posted in the campus catalog is used
to convert the weighted score to a letter grade.
Grades are posted on Moodle. Note: Moodle does not penalize your grade for
any ungraded assignments, so it will show your "current" overall percentage
based off the classwork graded to-date.
It is your responsibility to check Moodle for grades and any comments on
assignments. If you believe you submitted your assignment on time but the
comment field says "assignment not received", contact me.
Lab assignments will be posted on the course website. The labs are due
at 11:55pm on the following Thursday. Partial credit will be given for
incomplete labs. Labs can be submitted one-day late (Friday at 11:55pm)
for a 10% late penalty. If you have a reason for turning the assignment
in late that would fall under the university excused absence policy,
email me to discuss.
You may work on labs in groups of up to 3 students. If you work in a group,
only one student needs to submit the assignment, but make sure to put
everyone's names on the assignment each week. Only the students whose names
are on the assignment will get credit for the lab. If you are in a group but
are not the one submitting the assignment to Moodle, you may put a comment
in Moodle's Note field indicating who did submit the assignment for your
group.
Submit your work to Moodle and I will grade it during my next grading session.
Do NOT email your submission as the campus spam system sometimes silently
blocks emails with attachments.
Homework assignments and due dates will be posted on the course website.
Partial credit will be given for incomplete homework submissions. Homework
can be submitted one-day late for a 10% grade penalty. If you have a reason
for turning the assignment in late that would fall under the university
excused absence policy, email me to discuss.
Assignments must be turned in via the Moodle website. Do NOT email your
submission as the campus spam system sometimes silently blocks emails with
attachments.
Homeworks may be discussed with others in the class, but every student must
turn in their own assignments in their own words. Copying from other students,
the Internet, previous solutions, the textbook, etc. are all considered
violations of the Academic Integrity Policy.
Submissions must be in LibreOffice/OpenOffice (ODT), Word (DOC or DOCX), PNG,
JPEG, GIF, or PDF format. TXT and RTF files have had issues being uploaded to
Moodle by students in the past, so I would recommend avoiding those formats.
You may also write your answers in the Moodle Notes section if you can
adequately answer them in Moodle's text box. Note that the Moodle text box
does not handle metacharacters like < or &. Rather than using those
characters, spell it out, e.g. "less-than", "lt", "and", etc. If you have
a large number of these characters, it is safer to upload a file rather than
use the Moodle text box.
Moodle records the last time you edit the Notes field or upload a file as
the submission time for the assignment. You do not need to hit the "Submit
for Grading" button for me to see your work.
If you have drawn something out by hand, take a picture or use a scanner and
upload the image to Moodle. Please keep the file sizes reasonable, but also
make sure the image is legible.
If you submit multiple files, please name them in a fashion that indicates
what they contain, e.g. hw1_q2_drawing.jpg, hw2_part1.pdf, hw2_part2.pdf,
and so on.
If you have any difficulties submitting to Moodle, contact me or Steve Garcia
for help. Emailed submissions are not guaranteed to be accepted since my
email volume is so high and the spam detection software can silently drop
emails.
Each student will be expected to complete a final coding project on Odin that
meets a set of given criteria at the end of the term. The final project is the
culminating experience for the laboratory assignments, and each requirement
is associated with specific skills and coding techniques learned during the
lab sessions. Details and requirements for the project will be posted on
Moodle.
The midterm exam will be available on Moodle from 8:00am Thursday October
8, 2020 to 11:55pm Friday October 9, 2020. When you begin the midterm
on Moodle, you will have a 2 hour and 30 minute countdown timer to complete
the exam.
If you have any connectivity, power, or technology issues (hopefully not
meatball sandwich issues) that cause you to lose connection to Moodle during
the attempt, email me as soon as possible so I can reset your attempt.
It is your responsibility to log in to Moodle and take the midterm during
this time frame. I do not give make-up midterm exams. If you miss the midterm
and you believe you have a valid university excused absence, contact me as
soon as possible and I will evaluate the situation. For students where I
approve the absence as an excused absence, the final exam will count for
both the midterm and final weight in the grade calculation. For students
without an approved excused absence, the midterm exam will be recorded as
a 0 in the grade calculation.
Session 1: Friday December 11, 2020 from 11:00am-1:30pm (
NOTE: This
is later than the class normally meets on Friday so plan accordingly)
Session 2: Friday December 11, 2020 from 2:00-4:30pm (
NOTE: This
is later than the class normally meets on Friday so plan accordingly)
Only one session needs to be attended, but two sessions are being scheduled
since people may have time conflicts. Each student can choose which session
they wish to attend.
If you cannot make one of the scheduled final exam sessions due to conflicts
with another final, if you have more than two finals scheduled on that
day, or you have any other known conflicts with the final exam sessions,
arrange an alternative time with me at least ONE WEEK in advance. If many
students have a conflict, a third session may be arranged.
If you have any connectivity, power, technology or other issues that cause you
to lose connection to Moodle during the final exam or if you had an unforeseen
time conflict come up during both sessions, contact me as soon as possible. I
will list real-time contact methods on Moodle during both final exam sessions,
and you can email me after the session if your interruption lasts that long.
Melissa Danforth on August 19, 2020
Approved by the CEE/CS Department in Spring 2014
Updated for new ABET outcomes and Body of Knowledge areas in Spring 2019
Effective Fall 2020