Course Overview
Welcome to CSCI 330, Operating Systems!
Course Description
Catalog Description: Procedure initiation, environment construction, reentrancy, kernel functions, resource management, input/output, file structures, security, process control, semaphores and deadlock, and recovery procedures. The laboratory includes the opportunity to examine and modify the internals of an operating system.
The objectives of this course are:
- to demystify the interactions between the software you have written in other courses and hardware,
- to familiarize you with the issues involved in the design and implementation of modern operating systems,
- and to explain the more general systems principles that are used in the design of all computer systems.
Structure
Classroom work will consist of lecture, discussion, and lab
experimentation. Written work will consist of homework and
programming assignments, two exams, and OS development projects.
Instructional Staff
Sara Sprenkle
Office: Parmly Hall 410
Office Hours: MW 2:30-4, T 3-4:30, and by appointment
E-mail Address:
Phone Number: (540) 458-8309 (it is better to email me than to call)
Course Information
CSCI 330, Section 01
Class Meetings: MWF 1:30-2:30 p.m.
Textbook
Operating System Concepts, Siberschatz, Galvin, and Gagne. Tenth Edition. John Wiley & Sons, Inc. 2018. ISBN 978-1-119-43925-7. Either the enhanced eText edition or the printed edition. When you purchase the eText edition, you get a code to redeem at VitalSource.
Student Learning Objectives
After successfully completing the course, you should be able to:
- Describe the importance of abstraction in modern systems
- Differentiate between policy and mechanism
- Explain how operating systems manage concurrent processes including the complete life-cycle of user processes, threads, process synchronization, and deadlock avoidance.
- Evaluate the suitability of algorithms used for process scheduling, memory allocation, and disk access for various use cases.
- Understand how operating systems manage physical and virtual memory including segmentation and paging.
- Develop programs that emulate or interact with operating system code.
Course Policies
Student Responsibilities
- It is very important that you attend lectures (see Grading below). There will be considerable information given in class that is not available elsewhere. Family and medical emergencies and conflicts with University-recognized extra-curricular activities are the only reasons to request that work be rescheduled.
- You are expected to arrive to lectures promptly.
- Please turn off cellphones.
- Actively participate in the class by asking and answering questions.
- Check your W & L email frequently and check this web page and the schedule for new information.
- Throughout this class (and life in general), keep in mind a cowboy's wisdom: "Good judgement comes from experience." You may ask, "How do I get experience?" Bad judgement works every time. My point? Don't be afraid to make mistakes in this class, but make sure you learn from them!
- Use your laptop or the lab computer during CSCI330 class time only for CSCI330 work.
Instructor Responsibilities
I will try to
make this course and its material as exciting for you as it is for
me. I will be respectful of student questions and misunderstandings.
I will give prompt, constructive feedback from assignments. I will
be available during office hours and by appointment. I will do my
best to respond to questions via email within 24 hours.
Honor System
You may discuss individual programming assignments informally with other students.
However, sharing a solution, in the form of experimental results or the
design or implementation of a program, is an honor violation. Students
should know where to draw the line between getting legitimate outside
assistance with course material and outright cheating. Students who obtain
too much assistance without learning the material ultimately cheat
themselves the most. If you have any uncertainty about what this means,
consult with me before you collaborate. All written assignments should
be done individually.
Participation and attendance
To receive full
credit for class participation and attendance, you must be actively
engaged in the classroom by answering and asking questions each class when
appropriate and by being respectful of other students. The average grade
for participation is a B-.
If you cannot make an exam, you must arrange a time prior to the scheduled exam to take the exam. If you miss the exam period, you will receive a 0 for the exam. If you are ill, you must email me with a phone number where you can be reached and speak with me in person. An email informing me that you are not taking the exam is NOT acceptable. In fairness to your peers taking the exam early or at the scheduled time, you must provide a note from the health center.
Academic Accommodations
Washington and Lee University makes reasonable academic accommodations
for qualified students with disabilities. All undergraduate
accommodations must be approved through the Office of the Dean of the
College. Students requesting accommodations for this course should
present an official accommodation letter within the first two weeks of
the term and schedule a meeting outside of class time
to discuss accommodations. It is the student’s responsibility to
present this paperwork in a timely fashion and to follow up about
accommodation arrangements. Accommodations for test-taking should be
arranged with the professor at least a week before the date of the
test or exam.
Grading
Grades for the course will be computed as follows:
- (50%) OS Programming Projects
- (15%) Individual programming, reading, and writing assignments
- (15%) Midterm Exam
- (15%) Final Exam
- (5%) Participation and attendance
General grading policies
Programs turned in with syntax errors will receive no credit. "Roll back"
your program (using version control management software) into a state
where it does not have syntax errors.
Late policy
All assigned work is due on
the date specified. Any assignment turned in after the due
date/time but on the same day will be penalized 10%. Any
assignment turned in after the day on which it is due will be
penalized an additional 10% for each late day. No
assignment will be accepted that is more than three school
days late. If you turn an assignment in late, you must
indicate this somehow (in comments, on paper, etc.).