SLU logo

CSCI 3500: Operating Systems - Class Page

Spring 2020

Instructor David Ferry, Homepage
Course Web Site http://cs.slu.edu/~dferry/courses/csci3500/
Course meeting times Monday, Wednesday, & Friday from 1:10 - 2:00, Ritter Hall Rm. 115
Midterm exam
Feb 28th, in class
Final exam
May 11th, 12:00 - 1:50
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. Studios
  4. Labs
  5. Course Schedule
  6. SLU Git Repository
  7. Textbooks and Other Resources
  8. Grading
  9. Attendance
  10. Academic Integrity
  11. Title IX Statement
  12. Academic Support
  13. Disability Services
  14. Writing Center
  15. 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. Most class periods will consist of a short lecture followed by studio time. 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.


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 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
Jan 13-Jan 17 Mon Intro to OS MOS 1.1 - 1.3 Make sure you can login
for next time
Lab 1 Assigned
Wed Types of OSes, OS concepts MOS 1.4 and 1.5 Studio 1
Fri Lab 1 Discussion
open_demo.c
Lab 1 Discussion Video
Git Submission Tutorial
Studio 2
Jan 20-Jan 24 Mon No class: Martin Luther King Day
Wed System calls and OS architectures MOS 1.6 - 1.8
man syscalls
Studio 3
Fri Processes MOS 2.1 Studio 4
Studios 1 and 2 due
Lab 1 Due
Jan 27-Jan 31 Mon fork(), exec(), wait(), and kill()
Code from class: fork_demo.c
Studio 5 Lab 2 Assigned
Wed Lab 2 Discussion Studio 6
Fri Pipes, stdin, stdout
pipe_demo.c
dup2_demo.c
MOS 2.2 Studio 7
Studios 3 and 4 due
Feb 3-Feb 7 Mon Threads Studio 8
Wed Pthreads, C++11 threads
thread_demo.c
c11threads.cpp
MOS 2.3 Studio 9
Fri Race conditions MOS 2.5.1 Studio 10
Studios 5 to 7 due
Feb 10-Jan 14 Mon Locks, Mutexes, Deadlock, Atomic Instructions Studio 11 Lab 2 Due
Wed fork_benchmark.c
thread_benchmark.c
lock_benchmark.c
atomic_benchmark.c
Studio 12 Lab 3 Assigned
crypt_demo.c
Fri Lab 3 Discussion Studios 8 to 10 due
Feb 17-Feb 21 Mon OpenMP, Cilk Plus MOS 2.4 Studio 13
Wed Batch and interactive scheduling Studio 14
Fri Real-Time Scheduling Studios 11 and 12 due
Feb 24-Feb 28 Mon Lab 3 Due
Wed Midterm review (example questions) Studios 13 and 14 due
Fri Midterm Exam
Mar 2-Mar 6 Mon Memory management in real mode MOS 3.1 Studio 15-a
Wed Address spaces, protected mode, and allocation MOS 3.2 Studio 15-b
Fri
Mar 9-Mar 13 Mon No class: Spring Break
Wed
Fri
Mar 16-Mar 20 Mon No class: Class Cancelled
Wed
Fri
Mar 23-Mar 27 Mon Paging
(Paging Video)
Studio 16
Wed Page tables and the TLB
(Page Tables/TLB Video)
Studio 17
Fri Lab 4 Discussion
(Whiteboard discussion video)
(Code demo video)
Studios 15-a and 15-b due Lab 4 Assigned
Mar 30-Apr 3 Mon Page Replacement Algorithms
(Page Replacement Video)
Studio 18
Wed Files and the File System
(Files Video)
Studio 19
Fri File systems and allocation on disk
(File Systems Video)
Studios 16 and 17 due
Apr 6-Apr 10 Mon Linux Memory Maps (video)
Wed Directories
(Directories Video)
Studio 20
Studios 18 and 19 due
Fri No class: Good Friday
Apr 13-Apr 17 Mon No class: Easter Monday
Wed OSI Model of Networking
(Networking Intro Video)
Studio 21
Fri Physical and Data Link Layers
(Physical and Data Link Layers Video)
Studio 22
Studio 20 due
Lab 4 Due
Apr 20-Apr 24 Mon Network Layer
(Network Layer Video)
Studio 23
Wed Lab 5 Discussion Studio 24 Lab 5 Assigned
Fri Sockets Interface
client.c
server.c
Studios 21 and 22 due
Apr 27-May 1 Mon Transport Layer
(Transport Layer Video)
Studio 25
Wed Sockets Interface
(Sockets Interface Video)
Fri Session, Presentation and Application Layers
(Userspace Layers Video)
Studios 23 and 24 due
Apr 27-May 1 Mon Security Concerns - CIA
Wed Secure Systems and a Trusted Computing Base
Fri Permission Domains and Permission Management Studio 25 due Lab 5 Due
May 4-May 8 Mon Final Exam Review Video Studio 25 due Lab 5 due
May 11-May 15 Mon May 11th - Final Exam - 12:00AM to 1: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

Grading Modifications Due to COVID-19 Course Changes

The novel coronavirus has completely changed how the second half of this course will be taught, and it has completely rearranged our personal lives as well. I want to be as sensitive to this as possible, while also upholding the original goals and objectives of the course. To that end, the following grading policy provides a greater degree of flexibility. It is not possible to do worse under the new grading policy relative to the old grading policy, so the new policy will apply to all students.

However, if you feel you are unable to complete any coursework due to the ongoing crisis please let me know as soon as possible and I may make additional accomodations based on any additional factors you feel are relevant.

Revised Grading Policy

  1. Studio and lab deadlines are now flexible, but you MUST email me at least 24 hours before the original deadline to request an extension and we MUST agree on a reasonable future due date. Of course, exigent circumstances will continue to be considered in all cases.
  2. All studios are expected to be completed as before.
  3. Labs 4 and 5 are optional- if you complete one of these labs I will drop your lowest lab grade, and if you complete both then I will drop the two lowest lab grades. In other words, 50% of your final grade will be determined by your three highest lab grades.

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 detailed comments.

Make up exams 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.


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 misconduct (e.g. sexual assault, sexual harassment, stalking, domestic or dating violence), we encourage you to report this to the University. If you speak with a faculty member about an incident of misconduct, that faculty member must notify SLU's Title IX coordinator, Anna R. Kratky (DuBourg Hall, room 36; akratky@slu.edu; 314-977-3886) and share the basic fact of your experience with her. 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.

If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK. To view SLU’s sexual misconduct policy and for resources, please visit the following web addresses: www.slu.edu/here4you and https://www.slu.edu/general-counsel.


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.