SLU logo

CSCI 3500: Operating Systems - Class Page

Fall 2020

Instructor David Ferry, Homepage
Course Web Site http://cs.slu.edu/~dferry/courses/csci3500/
Course meeting times Monday, Wednesday, & Friday from 11:00 - 11:50, ONLINE
Zoom link: Click here to join
Zoom passcode: 864569
You must be authenticated through SLU to join this meeting
Midterm exam
October 5th, in class
Final exam
Wednesday, December 2nd, 9:00 - 9:50AM
Office hours See my schedule
Contact You may contact me in person during office hours or during class time, or you may email me at dferry@slu.edu. I am also available to meet by appointment, see my schedule.

Contents
  1. Course Description
  2. Prerequisites
  3. Lecture
  4. Studios
  5. Labs
  6. Course Schedule
  7. SLU Git Repository
  8. Textbooks and Other Resources
  9. Grading
  10. Attendance
  11. COVID-19 Considerations for Fall 2020
  12. Fall 2020 Mask Policy
  13. Academic Integrity
  14. Title IX Statement
  15. Academic Support
  16. Disability Services
  17. Writing Center
  18. Basic Needs Security

Course Description

Operating systems are the bridge between computer hardware and the software programs we create and use. As a concept, operating systems are one of the oldest software disciplines, yet they continue to adapt and reinvent themselves as the computing landscape evolves. Modern operating systems must tackle the same challenges of the original mainframes, but must also meet the varied needs of personal computers, severs, mobile/embedded devices, and virtualized systems.

The four elements of this course are lectures, studios, labs, and exams. Studios are short assignments intended to be completed primarily within class time and to augment lecture topics. Labs are longer assignments that will ask students to apply and analyze OS mechanisms. Lectures will be delievered asynchronously via recording. Most class periods will be a mix of questions and answers over lecture material, deep-dives into one or more of the lecture topics or practical demonstrations, and pair programming time for studios. Expect a lab assignment approximately every two weeks.

Topical outline:

Assessment Objectives- at the completion of this course, students will be able to:

Catalog Description:Theory and practice of operating systems, with emphasis on one of the UNIX family of operating systems. File organization and database systems. Focus on a multi-user system in the client-server model. Hands-on experience.


Prerequisites

Please see the instructor if you're missing a prerequisite or uncertain about your preparation for this course.


Lecture and Synchronous Meetings

Studies show that traditional lecture is not a great use of class time for many students. We will implement the flipped classroom strategy, where students consume the traditional lecture content outside of class on their own time and then come prepared to explore topics further. Our synchronous meetings will always have time for your questions on lecture topics, and we will often have deep-dive practical excerises as well. The remainder of our synchronous meetings will be time for you to work with a partner on studios and/or lab assignments.

Lectures are recorded and should be watched prior to attending class for the day. Links to individual lectures will be avialable on the course schedule at least 48 hours prior to the start of class.


Studios

Computer science is an eminently practical discipline, and studios are daily assignments intended to complement and reinforce lectures through practice. Studios will be completed in a team of two students. Students from different teams may discuss studios, but sharing of code or solutions is strictly prohibited.

Studios will be submitted via the Git repository. Every student should have a copy of their studio solutions in their own repository, even if you work with a group.

Studios are due Friday of the week after they are assigned. The midterm exam and other cirumstances may modify this, see the complete course schedule below.

Studios will be graded on a trimodal scale: complete, partial credit, or no credit. Studios that are turned in late or not turned in at all will receive no credit, studios graded as partial will receive 60% credit.


Labs

There will be five lab assignments for this course. These are programming assignments whose purpose is to apply course concepts and to analyze operating system mechanisms. As such, each lab will require a written report detailing your findings in addition to a code submission.

Some labs will require a team of two students, while others are individual projects. Students from different teams may discuss the lab assignments only during course meeting times. Students from the same team are of course encouraged to discuss and work on lab assignments at any time.

Labs submitted on time (as determined by electronic time stamp) are eligible for full credit. Labs submitted up to 24 hours late will be given a ten percent penalty. Labs submitted between 24 and 48 hours late will be given a twenty percent penalty. Labs submitted after 48 hours late will not be given credit, except in the case of extenuating circumstances pre-approved by the instructor.


Course Schedule

A tentative course schedule is below. Note that this schedule may change over the course of the semester. When changes occur, students will be given enough advance notice so that readings and other preparation may be accommodated.
Week Date Topic Readings Studios Labs
Aug 17-Aug 21 Mon Intro to OS
(Syllabus Video)
MOS 1.1 - 1.3 Make sure you can login
for next time
Lab 1 Assigned
Wed What is an OS?
(What is an OS? Video)
(Class Discussion)
MOS 1.4 and 1.5 Studio 1
Fri Lab 1 Discussion Video
open_demo.c
(Class Discussion)
Git Setup Documentation
Git Submission Tutorial
Studio 2
Aug 24-Aug 28 Mon System Calls
(System Calls Video)
(Classroom Discussion)
MOS 1.6 - 1.8
man syscalls
Studio 3
Wed Lab 1 Work Day
Fri Processes
(Processes Video)
(Classroom Discussion)
MOS 2.1 Studio 4
Studios 1 and 2 due
Lab 1 Due
Aug 31-Sept 4 Mon fork(), exec(), wait(), and kill()
(Fork() Video)
Code from class: fork_demo.c
Studio 5 Lab 2 Assigned
Wed Lab 2 Discussion
(Class Discussion)
Studio 6
Fri Pipes, stdin, stdout
(Class Discussion)
pipe_demo.c
dup2_demo.c
MOS 2.2 Studio 7
Studios 3 and 4 due
Sept 7-Sept 11 Mon Lab 2 Work Day
strtok_demo.c
Wed Threads
(Class Discussion - ScholarStrike and Threads)
Studio 8
Fri Pthreads, C++11 threads
(Class Discussion)
strtok_demo_2.c
thread_demo.c
c11threads.cpp
MOS 2.3 Studio 9
Studios 5 to 7 due
Sept 14-Sept 18 Mon Race conditions
(Class Discussion)
Pipeline Pseudocode
MOS 2.5.1 Studio 10 Lab 2 Due
Wed Locks, Mutexes, Deadlock, Atomic Instructions
(Class Discussion)
Studio 11 Lab 3 Assigned
crypt_demo.c
Fri (Class Discussion)
fork_benchmark.c
thread_benchmark.c
lock_benchmark.c
atomic_benchmark.c
Studio 12
Studios 8 and 9 due
Sept 21-Sept 25 Mon Lab 3 Discussion
(Class Discussion)
Wed Lab 3 Work Day
Fri OpenMP, Cilk Plus MOS 2.4 Studio 13
Studios 10 to 12 due
Sept 28-Oct 2 Mon Batch and interactive scheduling
(Class Discussion)
Studio 14 Lab 3 Due
Wed Real-Time Scheduling
(Class Discussion)
Fri Midterm review
(example questions)
(Class Discussion)
Studio 13 due
Oct 5-Oct 9 Mon Midterm Exam
Wed Memory management in real mode MOS 3.1 Studio 15-a
Fri Address spaces, protected mode, and allocation MOS 3.2 Studio 15-b
Studio 14 due
Oct 12-Oct 16 Mon Paging
(Paging Video)
Studio 16 Lab 4 Assigned
Wed Page tables and the TLB
(Page Tables/TLB Video)
Studio 17
Fri Page Replacement Algorithms
(Page Replacement Video)
Studio 18
Studios 15-a and 15-b due
Oct 19-Oct 23 Mon Lab 4 Discussion
(Whiteboard discussion video)
(Code demo video)
Wed Lab 4 Work Day
Fri Files and the File System
(Files Video)
Studio 19
Studios 16 to 18 due
Oct 26-Oct 30 Mon File systems and allocation on disk
(File Systems Video)
Wed Linux Memory Maps (video)
Fri Directories
(Directories Video)
Studio 20 Lab 4 Due
Nov 2-Nov 6 Mon OSI Model of Networking
(Networking Intro Video)
Studio 21
Wed Physical and Data Link Layers
(Physical and Data Link Layers Video)
Studio 22
Fri Network Layer
(Network Layer Video)
Studio 23
Studios 20 and 21 due
Nov 9-Nov 13 Mon Lab 5 Discussion Studio 24 Lab 5 Assigned
Wed Sockets Demo
client.c
server.c
Fri Transport Layer
(Transport Layer Video)
Studio 25
Studios 21 to 23 due
Nov 16-Nov 20 Mon Lab 5 Work Day
Wed Sockets Interface
(Sockets Interface Video)
Fri Session, Presentation and Application Layers
(Userspace Layers Video)
Studios 24 and 25 due
Nov 23-Nov 27 Mon Final Exam Review Video Lab 5 due
?? ??-?? ?? Mon Security Concerns - CIA Note: Will be asynchronous only, time permitting
Wed Secure Systems and a Trusted Computing Base
Fri Permission Domains and Permission Management
Nov 30-Dec 4 Mon Dec 2nd - Final Exam - 9:00AM to 9:50AM

SLU Git Repository

All studios and labs will be submitted via individual course Git repositories that are housed at SLU. You will find your repository already has a directory structure that provides a place for all lab and studio assignments. Your work must be in the appropriate location for the instructor to find it and count it for credit.

A short guide to using SLU's git resources


Textbook and Class Resources

Reccomended Course textbook: Modern Operating Systems, 4th Ed. by Tanenbaum and Bos. A classic computing textbook on the fundamentals of operating systems, with a bent towards Unix-like operating systems. This book is not required for the course, rather it is a secondary source of information that provides a more comprehensive textbook-like presentation of the material. I will not be assigning homework from the book or taking test questions from the book.

Linux skills references:

References for Linux software development.

Software resources:

Linux kernel hacking references:

We aren't doing any kernel hacking in this course, but these are great references if you're interested.


Grading

There are three activities for which you will receive credit in this course: studios, labs, and exams. Studios are daily guided assignments primarily designed to familiarize students with course concepts and development tools (i.e. knowledge and comprehension tasks). Lab assignments will ask students to apply general course concepts and analyze OS design alternatives. A midterm and final exam will evaluate your technical understanding of course concepts.

Studios are graded on the following scale: complete, partial credit, or no credit. Studios will not be turned back with detailed comments. Labs and exams will be graded on a points scale and will be turned back with comments. My goal is to return lab assignments to you within nine days of the deadline, which is an additional 48 hours for late submissions plus one week for grading time. Similarly, my goal is to return exams to you within one week.

Extensions on labs and studios are generally not granted aside from major unexpected events. You have at least a week to complete and submit any studio in this course, and at least two weeks for any lab assignment- it is assumed that this is sufficient for you to work around things such as sporting events or academic conferences on your own time. Please note the automatic 48-hour late policy for lab assignments.

I am happy to work with you on rescheduling exams if you are away from campus for slu-sponsored travel, but you must notify me at least two weeks ahead of time (and note that the exam dates are provided as of the first day of class). Make up exams outside of this policy will only be given for severe and documented reasons.

Your grade will be determined as follows:

Activity Grade Percentage
Studios 20%
Labs 50%
Midterm 15%
Final 15%

Grading is done on a straight scale (uncurved). The following scores are guaranteed. The grading scale may be curved upwards (in your favor) at the discretion of the instructor.

Most work assigned in this course, other than exams and some labs, is expected to be completed collaboratively. Student teams may change from assignment to assignment, but the sharing of written work or significant portions of code between teams is strictly prohibited.

Some specific guidelines for this course:


Attendance

Successful students attend all or mostly all class sessions. This is true in my experience and has been demonstrated in large scale studies as well. In that study, even students who attended nine out of ten class periods had measurably lower class performance than those who attended all classes. However, there is no attendance requirement for this class, and you do not need to get permission when you do miss class. You are an adult and have the freedom to manage your time in whatever way you feel is most useful. Job interviews, conferences, tests in other courses, etc. are all reasonable cases for being absent.

Note that in-class assignments such as tests or quizes cannot be made up outside of class without prior approval from the instructor. All such activities will be listed course schedule with ample time to prepare (i.e. there are no "pop quizes").

If you do miss class you should refer to the course schedule to see what was missed and arrange to get course notes from another student. I am always happy to answer questions but I do not repeat full class periods in office hours.

Required University Attendance Statement for Fall 2020

The health and well-being of SLU’s students, staff, and faculty are critical concerns. Accordingly, the following University policy statements on in-person class attendance are designed to preserve and advance the collective health and well-being of our institutional constituencies.
  1. Students who exhibit any potential COVID symptoms (those that cannot be attributed to some other medical condition the students are known to have, such as allergies, asthma, etc.) shall absent themselves from any in-person class attendance or in-person participation in any class-related activity until they have been evaluated by a qualified medical official. Students should contact the University Student Health Center for immediate assistance.
  2. Students who exhibit potential COVID symptoms (those that cannot be attributed to some other medical condition the students are known to have, such as allergies, asthma, etc.) but who feel well enough to a) attend the course synchronously in an online class session or b) participate in asynchronous online class activities, are expected to do so. Those who do not feel well enough to do so should absent themselves accordingly.
  3. Students (whether exhibiting any of potential COVID symptoms or not, and regardless of how they feel) who are under either an isolation or quarantine directive issued by a qualified health official must absent themselves from all in-person course activity per the stipulations of the isolation or quarantine directive. They are expected to participate in synchronous or asynchronous online class activities as they feel able to do so, or absent themselves accordingly.
  4. Students are responsible for notifying each instructor of an absence as far in advance as possible; when advance notification is not possible, students are responsible for notifying each instructor as soon after the absence as possible.
  5. As a temporary amendment to the current University Attendance Policy, all absences due to illness or an isolation/quarantine directive issued by a qualified health official shall be considered “Authorized” absences (effective August 2020 through May 2021).

COVID-19 Considerations for Fall 2020

Notification of absences: You do not need to notify the instructor that you are missing a regular synchronous class meeting. Notify the instructor as early as possible if you have a conflict with exam times.

Student Absences: It is the responsibility of the student to accommodate their absence. Make arrangements in advance with another student to get a report of synchronous class activities and their notes for the day. Our synchronous meetings will be recorded via Zoom, but do not rely on such recordings: they do not record group breakout sessions, the recording may fail, etc.

Lecture content for this course is delivered asynchronously and may be viewed at any time.

Late work: Severe illness is a reasonable basis to request an extension on lab assignments. However, my experience is that extensions tend to do more harm than good for many as once you get behind on work it can be difficult to catch up. All students would be well-served by starting assignments early especially with the uncertainty due to COVID-19.

What happens if the course instructor becomes ill: As this is an entirely online course the class will proceed as normal if the instructor is well enough to meet. Otherwise a replacement faculty from the computer science department will take over synchronous meeting times. Ideally the asynchronous lecture content will be completed already and the course will run mostly unaffected, however it is possible that we will switch to synchronous lectures under such circumstances.

Depending on the timing of the illness some modification to the course schedule and assignment deadlines may be required. If any modification takes place it will always be announced and made in favor of the student- e.g. deadlines may be extended, but never shortened. The group exam times will not be moved under any circumstances.

Grading policy changes: If circumstances require it, certain graded elements of the course may be eliminated or replaced with a substitute. In the case of substitution the new assignment will have the same point-values as the old assignment: for example if the midterm exam is replaced with a programming project that programming project will be worth 15% of your final grade. In the case of elimination the point-values assigned to the activity group will not change: for example if we eliminate one of the five lab assignments then the remaining four will collectively still be worth 50% of the final grade.


Mandatory Statement of Face Masks (Fall 2020)

The University’s Interim Policy on Face Masks governs all students, faculty, staff, and campus visitors in all University-owned, leased, or operated facilities. All persons physically present in any such University facility associated with this course shall comply fully with this policy at all times. Masks must be worn before entry to all such University facilities (as well as outdoors on all University property when six feet of distance is unpredictable or cannot be maintained).

Saint Louis University is committed to maintaining an inclusive and accessible environment. Individuals who are unable to wear a face mask due to medical reasons should contact the Office of Disability Services or Human Resources to initiate the accommodation process identified in the University’s ADA Policy. Inquires or concerns may also be directed to the Office of Institutional Equity and Diversity. Notification to instructors of SLU-approved ADA accommodations should be made in writing prior to the first class session in any term (or as soon thereafter as possible).

As the instructor of this course, I shall comply fully with SLU’s policy and all related ADA regulations.

Students who attempt to enter a classroom without wearing masks will be asked by the instructor to wear masks prior to entry. Students who remove their masks at any time during a class session will be asked by the instructor to resume wearing their masks.

Note: Accordingly, no consumption of any food will be allowed in class.

Students who do not comply with a request by a SLU instructor to wear a mask in accordance with the University’s Interim Policy on Face Masks may be subject to disciplinary actions per the rules, regulations, and policies of Saint Louis University, including but not limited to the Student Handbook. Non-compliance with this policy may result in disciplinary action, up to and including any of the following:

To immediately protect the health and well-being of all students, instructors, and staff, instructors reserve the right to cancel or terminate any class session at which any student fails to comply with faculty or staff request to wear a mask in accordance with University policy.

Students are strongly encouraged to identify to their instructor any student or instructor not in compliance. Non-compliance may be anonymously reported via the SLU Integrity Hotline at 1-877-525-5669 (or confidentially via the Integrity Hotline's website at http://www.lighthouse-services.com/slu.


Academic Integrity

Academic integrity is honest, truthful and responsible conduct in all academic endeavors. The mission of Saint Louis University is "the pursuit of truth for the greater glory of God and for the service of humanity." Accordingly, all acts of falsehood demean and compromise the corporate endeavors of teaching, research, health care, and community service via which SLU embodies its mission. The University strives to prepare students for lives of personal and professional integrity, and therefore regards all breaches of academic integrity as matters of serious concern.

The governing University-level Academic Integrity Policy was adopted in Spring 2015, and can be accessed on the Provost's Office website at: https://www.slu.edu/provost/policies/academic-and-course/policy_academic-integrity_6-26-2015.pdf.

Additionally, each SLU College, School, and Center has adopted its own academic integrity policies, available on their respective websites. All SLU students are expected to know and abide by these policies, which detail definitions of violations, processes for reporting violations, sanctions, and appeals. Please direct questions about any facet of academic integrity to your faculty, the chair of the department of your academic program, or the Dean/Director of the College, School or Center in which your program is housed. Specific College of Arts and Sciences Academic Honesty Policies and Procedures may be found here.


Title IX Statement

Saint Louis University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. If you have encountered any form of sexual harassment, including sexual assault, stalking, domestic or dating violence, we encourage you to report this to the University. If you speak with a faculty member about an incident that involves a Title IX matter, that faculty member must notify SLU’s Title IX Coordinator and share the basic facts of your experience. This is true even if you ask the faculty member not to disclose the incident. The Title IX Coordinator will then be available to assist you in understanding all of your options and in connecting you with all possible resources on and off campus.

Anna Kratky is the Title IX Coordinator at Saint Louis University (DuBourg Hall, room 36; anna.kratky@slu.edu; 314-977-3886). If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK or make an anonymous report through SLU’s Integrity Hotline by calling 1-877-525-5669 or online at http://www.lighthouse-services.com/slu. To view SLU’s policies, and for resources, please visit the following web addresses: https://www.slu.edu/about/safety/sexual-assault-resources/index.php and https://www.slu.edu/general-counsel.

IMPORTANT UPDATE: SLU’s Title IX Policy (formerly called the Sexual Misconduct Policy) has been significantly revised to adhere to a new federal law governing Title IX that was released on May 6, 2020. Please take a moment to review the new policy and information on the following web address: https://www.slu.edu/about/safety/sexual-assault-resources/index.php. Please contact the Anna Kratky, the Title IX Coordinator, with any questions or concerns.


Supporting Student Success

In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. The Student Success Center, a one-stop shop, which assists students with academic and career related services, is located in the Busch Student Center (Suite 331). Students can visit https://www.slu.edu/life-at-slu/student-success-center/ to learn more about tutoring services, university writing services, disability services, and academic coaching.


Disability Services

Students with a documented disability who wish to request academic accommodations must contact Disability Services to discuss accommodation requests and eligibility requirements. Once successfully registered, the student also must notify the course instructor that they wish to access accommodations in the course.

Please contact Disability Services, located within the Student Success Center, at Disability_services@slu.edu or 314-977-3484 to schedule an appointment. Confidentiality will be observed in all inquiries. Once approved, information about academic accommodations will be shared with course instructors via email from Disability Services and viewed within Banner via the instructor’s course roster.

Note: Students who do not have a documented disability but who think they may have one are encouraged to contact Disability Services.


University Writing Services

Students are encouraged to take advantage of University Writing Services in the Student Success Center; getting feedback benefits writers at all skill levels. Trained writing consultants can help with writing projects, multimedia projects, and oral presentations. University Writing Services offers one-on-one consultations that address everything from brainstorming and developing ideas to crafting strong sentences and documenting sources. For more information, visit https://www.slu.edu/life-at-slu/student-success-center/ or call the Student Success Center at 314-977-3484.


Basic Needs Security

Students in personal or academic distress and/or who may be specifically experiencing challenges such as securing food or difficulty navigating campus resources, and who believe this may affect their performance in the course, are encouraged to contact the Dean of Students Office (deanofstudents@slu.edu or 314-977-9378) for support. Furthermore, please notify the instructor if you are comfortable in doing so, as this will enable them to assist you with finding the resources you may need.