11.01.2015 Views

Syllabus (pdf) - Syracuse University

Syllabus (pdf) - Syracuse University

Syllabus (pdf) - Syracuse University

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!