CS 326 Operating SystemsCourse Website: http://cs326.cs.usfca.edu Lecture: LS 307 TR 2:40-4:25pm Lab: LS 307 W 5:30pm-7:00pm Final: Thursday, December 14, 3:00pm-5:00pm Staff Teaching Assistants Siwadon Saosoong, ssaosoong@dons.usfca.edu Yiding Liu, yliu224@dons.usfca.edu Course Objectives and TopicsOperating systems are essential to most modern computer systems, from very small computing devices such as mobile phones and tablets to larger computers such as laptops, desktop computers, workstations, clusters, and supercomputers. An operating system has two fundamental tasks: to manage a computer's resources (i.e., CPU cycles, memory, disk, network interface, etc.) and to provide applications with an abstract interface to these resources so that they are (relatively) easy to use. In this course you will learn the fundamental principles of operating system design and implementation. You will learn how the principles are used in practice by writing system software and modifying components of an operating system, including the system call interface, user processes, virtual memory, and file systems. We are going to study and modify a small scale version of UNIX called xv6 developed at MIT. Learning Outcomes On completion of this course the student should be able to accomplish the following:
Prerequisites
Operating Systems: Principles and Practice, 2nd Edition Thomas Anderson and Michael Dahlin Recursive Books ISBN-10: 0985673524 ISBN-13: 978-0985673529 You should also already have the K&R book from CS 220 or CS 221: The C Programming Language, 2nd Edition Brian W. Kernighan and Dennis M. Ritchie Prentice-Hall ISBN-10: 0131103628 ISBN-13: 978-0131103627 I will provide additional material on the class website. Assignments and ExamsTentatively, there will 5 programming projects. For the projects you will need to submit you solutions to GitHub repositories for each project. We will have regular in-class quizzes based on the assigned reading and lecture material. The quizzes will be short answers and you will be submitted your answers online via Canvas. Generally the quizzes will be at the beginning of class. We may not have quizzes some weeks. There will be one midterm and a final. The purpose of the exams will be to assess your understanding of the topics covered in class, in the assignments, and from the book. The material covered on the exams will be based on the assigned reading, information presented in lecture, and what you learn by doing the projects. The exams will be closed book, but you will be allowed to bring one page of notes (front and back).
PoliciesAll assignments will be worth 100 points. Grading will be done on an absolute scale:
If you score 90% or higher will be guaranteed an A-. For some assignments and exams I may adjust your raw score depending on the level of difficulty. Such adjustments will only raise your score, not lower it. Conciseness and neatness of your solutions are considered in the grading of assignments and exams. While being neat won't necessarily improve your score, being messy will certainly lower your score. Only turn in what you intend to have graded. Exam grade policy: If you score less than Min C- value on your aggregate exam scores (midterm + final) you will receive no higher than a C- in the course. That is, even if your accumulative score is a C or higher, you could end up with a C- or lower depending on your total exam scores. Due Dates and AttendanceAssignments must be turned in on time to receive credit. Except in the most extreme situations, late assignments will not be accepted. If you cannot complete an assignment by the due date, hand in whatever you have done in order to receive partial credit. Class attendance is not required, but it is highly recommended. Please show up on time to class. Regrades In general, assignments to be considered for regrades must be turned in no later than one week after the graded papers were made available. However, at the end of the semester, assignments to be considered for regrades must be turned in earlier, as will be announced. Similarly, any mis-recorded grades must be reported within a week of their posting, except as will be announced at the end of the semester. Missed ExamsMake-up or early exams will not be given except in the most extreme situations. If you must miss an exam due to extreme illness, etc. contact the instructor (email is fine) or leave a message with the Department of Computer Science office (415.422.6530) before the exam. Laptop Usage in ClassYou may use your laptop during class as long as you are using it in order to take notes or to look up information regarding the lecture content. Please do not user your laptop for any other activity such as to read or compose email, to use instant messaging software, or to play games. This is very disruptive to me and the other students in the class, not to mention that it will distract you from learning the material. If I have reason to believe you are not using your laptop in a productive way I will ask you not to use it in class. Each student is to do his or her own work on the assignments and exams. It is fine to talk with others about general approaches used to solve the assignments or simply to understand the problem statement, but each student is to develop his or her own solution; collaborative efforts are not allowed. In addition, using solutions from any other source is forbidden. In particular, using solutions (either instructors' or other students') from previous offerings of this course is not allowed. To summarize: all assignments and labs are to be individual and original efforts. You must never represent another person’s work as your own. If you are caught cheating or plagiarizing (e.g., collaboration, copying on exams, cutting and pasting text) you will be given an F for the course and you will be reported to the Dean. All students are expected to know and adhere to the University of San Francisco's Academic Honor Code. Go to http://myusf.usfca.edu/academic-integrity/honor-code for details. Copying answers or code from other students or sources during a quiz, exam, or for a project or homework assignment is a violation of the university’s honor code. This includes copying code or other material from the web, and having anyone other than yourself complete your assignments. It also includes working too closely with another student. Collaboration or discussion that results in the same or very similar code indicates that you have not placed enough independent work into your solution and is a violation of the honor code. Examples of honor code violations include but are not limited to:
In general, you should post all questions to the Piazza group for this class. You can also use Piazza to send private message to the instructor and TA. If you do need to email the instructor or TA, be sure to email from an account to which we can directly reply. We expect that you read your USF dons email. |