Welcome to CSCI 330, Operating Systems!
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.
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.
Office: Parmly Hall 410
Office Hours: MW 2:30-4, T 3-4:30, and by appointment
Phone Number: (540) 458-8309 (it is better to email me than to call)
CSCI 330, Section 01
Class Meetings: MWF 1:30-2:30 p.m.
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.
- 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.
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.
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.
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.
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.
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.).