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, RTH 115 |
Midterm exam |
Oct 10th, during class |
Final exam |
Wednesday, December 14th, 9:00 AM |
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. |
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 be a mix of questions and answers over lecture material, deep-dives into one or more of the lecture topics or practical demonstrations. Expect a lab assignment approximately every two weeks.
Topical outline:
Assessment Objectives- at the completion of this course, students will be able to:
fork()
and Pthreads)
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.
Please see the instructor if you're missing a prerequisite or uncertain about your preparation for this course.
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.
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.
Date | Day | Topic | Readings | Studios | Labs |
---|---|---|---|---|---|
Aug 24 | Wed | Intro to OS | MOS 1.1 - 1.3 | Make sure you can login for next time | Lab 1 Assigned |
Aug 26 | Fri | What is an OS? | MOS 1.4 and 1.5 | Studio 1 | |
Aug 29 | Mon | Lab 1 Discussion open_demo.c |
Git Setup Documentation Git Submission Tutorial |
Studio 2 | |
Aug 31 | Wed | Lab 1 Discussion | |||
Sep 02 | Fri | Class Cancelled | |||
Sep 05 | Mon | System Calls | MOS 1.6 - 1.8man syscalls |
Studio 3 | |
Sep 07 | Wed | Processes | MOS 2.1 | Studio 4 Studio 1 Due |
Lab 1 Due |
Sep 09 | Fri | fork() , exec() , wait() , and kill() |
Studio 5 | Lab 2 Assigned | |
Sep 12 | Mon | Lab 2 Discussion | Studio 6 Studios 2-4 Due |
||
Sep 14 | Wed | Pipes, stdin , stdout fork_demo.c pipe_demo.c dup2_demo.c strtok_demo.c |
MOS 2.2 | Studio 7 | |
Sep 16 | Fri | Threads | Studio 8 Studios 5 and 6 Due |
||
Sep 19 | Mon | Pthreads, C++11 threads thread_demo.c c11threads.cpp |
MOS 2.3 | Studio 9 |
|
Sep 21 | Wed | Race Conditions | MOS 2.5.1 | Studio 10 | Lab 2 Due |
Sep 23 | Fri | Locks, Mutexes, Deadlock, Atomic Instructions | Studio 11 Studios 7 and 8 Due |
Lab 3 Assigned crypt_demo.c |
|
Sep 26 | Mon | fork_benchmark.c thread_benchmark.c lock_benchmark.c atomic_benchmark.c |
Studio 12 | ||
Sep 28 | Wed | Lab 3 Discussion | |||
Sep 30 | Fri | OpenMP, Cilk Plus | MOS 2.4 | Studio 13 Studios 9-11 Due |
|
Oct 03 | Mon | Batch and interactive scheduling | Studio 14 | ||
Oct 05 | Wed | Real-Time Scheduling | Lab 3 Due | ||
Oct 07 | Fri | Midterm Review | Studios 12 and 13 Due | ||
Oct 10 | Mon | Midterm Exam | |||
Oct 12 | Wed | Memory management in real mode |
MOS 3.1 | Studio 15-a | |
Oct 14 | Fri | Address spaces, protected mode, and allocation | MOS 3.2 | Studio 15-b | Lab 4 Assigned |
Oct 17 | Mon | Paging | Studio 16 | ||
Oct 19 | Wed | Page tables and the TLB | Studio 17 | ||
Oct 21 | Fri | Page Replacement Algorithms | Studio 18 Studios 14-15b Due |
||
Oct 24 | Mon | Lab 4 Discussion | |||
Oct 26 | Wed | Files and the File System | Studio 19 | ||
Oct 28 | Fri | File systems and allocation on disk | Studio 16-18 Due | ||
Oct 31 | Mon | Linux Memory Maps | |||
Nov 02 | Wed | Directories | |||
Nov 04 | Fri | More Lab 4 Discussion | Studio 19 Due | ||
Nov 07 | Mon | OSI Model of Networking | Studio 20 | ||
Nov 09 | Wed | Physical and Data Link Layers | Studio 21 | Lab 4 Due | |
Nov 11 | Fri | Network Layer | Studio 22 | Lab 5 Assigned | |
Nov 14 | Mon | Sockets Demo client.c server.c |
Studio 23 Studios 20 and 21 Due |
||
Nov 16 | Wed | Transport Layer | Studio 24 | ||
Nov 18 | Fri | Sockets Interface | Studio 25 | ||
Nov 21 | Mon | Session, Presentation and Application Layers | Studios 22 and 23 Due | Lab 5 Due | |
Nov 23 | Wed | Security Concerns - CIA | |||
Nov 25 | Fri | Permission Domains and Permission Management | |||
Nov 28 | Mon | Final Exam Review | Studio 25 Due | ||
Dec 14 | Wed | Final Exam |
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
Reccomended Course textbook: Modern Operating Systems by Tanenbaum and Bos. Either the 3rd or 4th Edition works fine. 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 and textbook-like presentation of the material for students who prefer this. I will not be assigning homework from the book or taking test questions from the book. Access to the book's companion website is not required and will not be used during this course.
Linux skills references:
References for Linux software development.
vi
tutorial
vi
tutorial
emacs
tutorial
emacs
tutorial
Software resources:
scp
manual page: Transfer files between your Mac/Linux machine and the departmental Linux machines.
Linux kernel hacking references:
We aren't doing any kernel hacking in this course, but these are great references if you're interested.
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:
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.
Student Success Center
The Student Success Center (SSC) supports students in reaching their goals in and out of the classroom. Providing a variety of resources, the Student Success Center houses both the Center for Accessibility and Disability Resources (CADR) and Academic Support, which includes Tutoring, Supplemental Instruction, University Writing Services, and Student Success Coaching. The Student Success Center is located in the Busch Student Center, Suite 331, and students can make an appointment with any SSC resource via EAB Navigate. To learn more about the Student Success Center and its resources, please visit: https://www.slu.edu/life-at-slu/student-success-center/index.php
University Writing Services
University Writing Services offers one-on-one consultations with trained writing consultants who help with everything from brainstorming, outlining, and proposing research questions to documenting sources, revising, and implementing feedback. These consultations can take place in-person, asynchronously, or via Zoom and can be scheduled through EAB Navigate – Student. Getting feedback benefits writers at all skill levels on different writing projects (including but not limited to class assignments, conference papers, cover letters, dissertations, group projects, multimedia assignments, personal statements, senior capstone projects, short answer questions on applications, speeches, and theses). For additional information, visit https://www.slu.edu/life-at-slu/student-success-center/academic-support/university-writing-services/index.php or send an email to writing@slu.edu.
University Counseling Center
The University Counseling Center (UCC) offers free, short-term, solution-focused counseling to Saint Louis University undergraduate and graduate students. UCC counselors are highly trained clinicians who can assist with a variety of issues, such as adjustment to college life, troubling changes in mood, and chronic psychological conditions. To make an appointment, call 314-977-8255 (TALK), or visit the clinic on the second floor of Wuller Hall. For after hours needs, please press #9 after dialing the clinic number.
Wellness
All students experience stressors and challenges at some point, and seeking support is beneficial. Such challenges may be the result of academic concerns (such as those related to particular assignments or content in a course), or they may be more personal in nature (such as concerns related to relationships, mental health, loss, identities, alcohol or drugs, housing or food security, or finances, among other things). If you experience these or other difficulties, please consider seeking support from the resources available to you.
For concerns related to this course, please contact me. I am invested in your success and will support your success in the ways I can.
Additionally, you have access to the many resources SLU provides in support of your personal wellness. You will find a list of available resources onthe Well-being page of the SLU website.
If you or someone you know is experiencing a crisis: please consult the Crisis Support and Warning Signs on the University Counseling Center website.
In the spirit of cura personalis, the University sees your academic success as connected to your health and well-being and provides resources to support your holistic wellness.
Students experiencing food insecurity, housing insecurity, and any other challenges that are impacting their personal and/or academic wellbeing are encouraged to contact the Dean of Students Office for support. Students can submit an intake form, email deanofstudents@slu.edu, or call 314-977-9378 to connect with their office. Students may also communicate directly with their instructors about any challenges they are experiencing to receive support and resource referrals.
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 through which SLU fulfills 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 full University-level Academic Integrity Policy can be found on the Provost's Office website at: https://www.slu.edu/provost/policies/academic-and-course/academic-integrity-policy.pdf.
Additionally, each SLU College, School, and Center has its own academic integrity policies, available on their respective websites.
The School of Science and Engineering Academic Integrity policy may be found at: https://www.slu.edu/science-and-engineering/_pdfs/sse-temporary-academic-integrity-policy.pdf
Students with a documented disability who wish to request academic accommodations must formally register their disability with the University. Once successfully registered, students also must notify their course instructor that they wish to use their approved accommodations in the course.
Please contact the Center for Accessibility and Disability Resources (CADR) to schedule an appointment to discuss accommodation requests and eligibility requirements. Most students on the St. Louis campus will contact CADR, located in the Student Success Center and available by email at accessibility_disability@slu.edu or by phone at 314.977.3484. Once approved, information about a student’s eligibility for academic accommodations will be shared with course instructors by email from CADR and within the instructor’s official course roster. Students who do not have a documented disability but who think they may have one also are encouraged to contact to CADR. Confidentiality will be observed in all inquiries.
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 that you shared an experience relating to Title IX. 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.