Syllabus (pdf) - Syracuse University
Syllabus (pdf) - Syracuse University
Syllabus (pdf) - Syracuse University
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CIS 657 - Principles of Operating Systems<br />
Fall 2011, <strong>Syracuse</strong> <strong>University</strong><br />
<strong>Syllabus</strong><br />
Lectures : MW 2:15–3:35 pm @ HL 207, 8/29-12/7 Labs : Th 2-5 / 5-8 pm @ Link 202, 9/1-12/8<br />
Instructor : Kanat Bolazar TA : Yiou Xiao <br />
Office Hrs : MW 12:30 - 2:00 pm @ SCITC 4-116<br />
and by appointment<br />
Purpose<br />
Office Hrs : TBA<br />
This is a graduate course on design and implementation of operating systems. Students are<br />
expected to have taken an undergraduate operating systems course such as CSE 586 or<br />
equivalent at another institution.<br />
Starting with implementation issues and known trade-offs, we will see how various architectural,<br />
policy and design decisions must be made in the implementation of an Operating System.<br />
Studying a concrete example should ground the previously abstract knowledge of OS concepts and<br />
principles.<br />
Textbook<br />
The textbook for this course is The Design and Implementation of the FreeBSD Operating System<br />
(covering version 5.2.1), by Marshall Kirk McKusick and George V. Neville-Neil, AddisonWesley,<br />
ISBN: 0-201-70245-2.<br />
Our textbook focuses on the concepts and structure of the FreeBSD operating system, and even<br />
though the book does not have much source code, it is the best introduction for reading the source<br />
code because it teaches the concepts, terms and names of policies used in the internal<br />
documentation of the source code.<br />
As this textbook is the best there is for FreeBSD, and it has not seen a new print since FreeBSD<br />
5.2.1, we stay with FreeBSD 5.2.1 in this course, even though there are many more recent versions<br />
(FreeBSD 8.2, possibly more).<br />
Other than the textbook, FreeBSD.org has a very complete FreeBSD Handbook freely available<br />
online, that can help casual users, administrators, and even us, kernel developers. If you look for<br />
the handbook, make sure you get the 5.2.1 version, not the latest version, as FreeBSD has seen<br />
some significant change.<br />
We will use VMware Player (for OS virtualization) and a FreeBSD 5.2.1 image in our labs and<br />
projects. These are freely available online; you need not buy a FreeBSD installation CD or DVD. We<br />
will spend a short time on AndroidOS at the end of the course (as time allows); we don't need a<br />
book for such a brief study; we'll use online resources.<br />
Grading Policy<br />
The grade for this course will be calculated as:<br />
• 40% Programming Assignments (two or three)<br />
• 30% Midterm Exams (two)<br />
• 20% Final Exam<br />
• 10% Homeworks (short, few) and quizzes (frequent)
Labs and Programming Assignments<br />
There are two lab sessions for the course. You must attend one of the sessions.<br />
We will use VMware to host FreeBSD on machines in the lab (and on your laptop, except VMware<br />
Player is not ported to Mac OS X).<br />
Either bring your laptops and/or a USB stick with 2 GB space, to hold the VMware virtual machine<br />
(1.1 GB, and will grow over time; 260 MB zipped), and possibly the VMware Player installer (105<br />
MB). Remember to save the virtual machine to USB again when you are done.<br />
Some small parts of programming assigments will be required to be completed during the lab<br />
(completed in the three hours allowed). In this case, the lab performance will affect the<br />
programming assignment grade. Other labs are meant as practice, and are not graded.<br />
Programming assignments will have a minimum of two weeks each. They will be written in C, and<br />
will cover common Operating System tasks starting with memory and process management at the<br />
core, and possibly including interactive shell that lives outside the kernel.<br />
Late Policy<br />
All assignments must be turned in by the due date, must compile and run. Keep developing in<br />
cycles, and always have one version that covers some of the requirements, compiles, works, and<br />
doesn't crash. This is what you should always do, especially after you graduate.<br />
Honor Policy<br />
Students are expected to do their own work. Unless explicitly given permission, you should not<br />
work with other students on the programming of your assignments. Discussion of concepts is fine,<br />
but your code should be your own. Do not take code from the Internet or other sources. Code<br />
sharing is also a violation of this policy. Violation of this policy is grounds for failure from the<br />
course.<br />
Class Notes<br />
I will make the lecture notes and lab pages available online.<br />
Rough Schedule<br />
Lectures:<br />
1. Introduction to FreeBSD (ch1)<br />
2. Assessment Test<br />
3. C Programming, reading FreeBSD source code<br />
4. Unix Programming in C<br />
5. Design Overview of FreeBSD (ch2)<br />
6. Kernel Services (ch3)<br />
7, 8, 9. Process Management (ch4)<br />
10. Midterm 1<br />
11, 12, 13, 14. Memory Management (ch5)<br />
15, 16, 17, 18. I/O System (ch6)<br />
19. Midterm 2<br />
20, 21, 22. Local Filesystems (and Filestores) (ch8)<br />
23. Review of FreeBSD<br />
24. Introduction to Android; It's Linux Inside<br />
25. FreeBSD vs. Android: Similarities, Differences<br />
26, 27, 28. Selected Topics on Android