Objectives
This is an undergraduate-level course on the design and implementation of operating systems. This course places a heavy emphasis on programming projects. The course also has an accompanying laboratory component, which is mandatory for each student. There are also readings assigned for each class and two exams. Upon successful completion of this course, a student should be able to:
- Explain tasks performed by an Operating System.
- Describe interrupt management by OS.
- Understand the use of system call.
- Design threads and processes
- Perform process scheduling
- Understand virtual memory management.
TextBooks
- Operating Systems Concepts, A. Silberschatz, P. Baer Galvin, G. Gagne, Tenth Edition, ISBN: 978-1-118-06333-0 - Required
- Operating Systems: Principles & Practice, Thomas Anderson and Michael Dahlin, Second Edition, ISBN: 978-0-9856735-2-9 - Optional
Grading Scheme
The final grade for the course will be based approximately on the following weights:
- 25% - Projects
- 20% - Midterm
- 20% - Final Exam
- 15% - Class Participation + Attendance
- 20% - Laboratory
Projects
Each students will work individually to complete three projects during the course.
The first assignment carries 5% of the grade, while the last two projects are worth 10% of the grade.
We will not teach students how to write/debug C programs during the quarter. It is a prerequisite for this course.
Exams
There will be two exams during the course. These exams will cover the mandatory readings and topics discussed in class. The first exam, midterm , will be an in-class exam. The final will be a final exam at during the University's final examination period at the end of the quarter.
Late Policy
Each person has an automatic extension of three calendar days for projects only.
For instance, you can hand in one project three days late, or each of three projects one day late.
Late days are rounded up to the nearest integer. For example, a submission that is 3 hours late will count as one day late.
When you hand in a late project, you must identify (1) how late this project is and (2) how many total extension days you have left.
If you hand in a homework late and have used up your extension days for project, the grade will be zero.
Missed Days
Each student is allowed to miss two classes (including labs) during the quarter without facing any loss in the class participation grade.
Plagiarism
We expect each student group to work on their projects in isolation, while each student will complete the exam by themselves. You cannot copy any part of a solution that was written by another group/students, or develop your project or homework solutions together with other groups/students, or copy solutions from any unauthorized source such as the Internet. You may not look at another group/student's solution without permission from the course staff, even if you have completed your own, nor may you knowingly give your solution to another group/student or leave your solution where another group/student can see it.
Here are some examples of behavior that are inappropriate:
- Copying (or retyping) homework, project, or exam solutions from another group/student or source, either in draft or final form,
even if permissions are incorrectly set to allow it.
This behavior is still clearly inappropriate even if you make modifications from the original source.
- Searching for or viewing a current or past group/student's homework, project, or exam solution.
- Allowing someone else to view or copy your code, written assignment, quiz, or exam, either in draft or final form.
- Getting help that you do not fully understand or from someone whom you do not acknowledge on your solution.
- Coaching others step-by-step without them understanding your help.
- Writing, using, or submitting a program that attempts to alter or erase grading information or otherwise compromise security of course resources.
- Lying to course staff.
- Making your work publicly available in a way that other students (current or future) can access your solutions,
even if others' access is accidental or incidental to your goals.
If your work contains any statement or code that was not written by you, you must clearly identify the derived work and cite the source. If you are paraphrasing an idea you read elsewhere, you must acknowledge the source. Using existing material without proper citation is plagiarism, a form of cheating. If there is any question about whether the material is permitted, you must get permission in advance.
It is not considered cheating to clarify vague points in the assignments, lectures, lecture notes, or to give help or receive help in using the computer systems, compilers, or other facilities.
Any violation of this policy is cheating. The minimum penalty for cheating (including plagiarism) will be a zero grade for the whole assignment; a typical penalty
will be 0 on the project.
Dishonesty while discussing an academic integrity issue (i.e. lying to course staff) usually results in an 'F' in the course.
All violations of this collaboration policy will be referred to the appropriate University disciplinary board, with possible additional disciplinary action.
For more information, see the University Policy on Academic Integrity.
If you have any question about how this policy applies in a particular situation, ask the instructors or TAs for clarification.