The goal of the Advanced Operating System class is to study recent advances in system design and distributed systems. Topics will be chosen based on student interest and will include current hot research areas in Operating Systems as well as proven technologies that have significant influence in the world today.
New challenges and opportunities in operating systems are emerging as a result of the deployment of processors that include large numbers of processor cores and virtualization of chip resources. These architectures address throughput via increasing parallelism rather than clock frequency, and provide the ability to run many heterogeneous operating systems simultaneously with isolation, dependability, and security. Parallel threads within the kernel and virtual machine monitors are becoming increasingly important as a mechanism to exploit the new hardware. Could these changes create a new way of organizing system software? In addition, systems are changing to accommodate new demands like ubiquitous computing, utility computing, peer to peer networking, high-bandwidth networks, high-volume storage, multi- and continuous media, and inexpensive processor components. This course provides an overview of current trends and offers the student a hands-on and research-oriented introduction to modern systems.
Please use the CS523 Wiki to find, review and discuss interesting papers related to the topics covered in this course.
This course is for UIUC CS graduate students with a thorough background in operating systems, distributed systems, and networking and interested in keeping abreast of recent research and developments in Operating Systems.
Students are also expected to have some experience in programming non-trivial software systems.
Students will be expected to review research papers, make presentations to the class, work together in a project building an experimental system, and write a term paper with their colleagues about their project that is near the quality of a completed workshop or conference paper.
Students are responsible for getting their work done on time, working independently, researching the literature, and attending class and participating in class and web discussions. They are individually responsible for making sure their project is completed. Unlike undergraduate classes, graduate students should over achieve and work with initiative. Students are expected to abide by Rule 33 which defines the general university policy on academic integrity. All classwork is to be done individually unless explicitly specified as a group assignment - any violations of this rule could lead to expulsion from the university.
Lectures videos will be available on the web for off-campus (I2CS) students. Off-campus students will be expected to make class presentations by remote means.
There are several advanced operating system text books that could be used as the basis for this course. However, because of the rapid changes in technology, the class will mainly be based on published conference and journal papers. However, several books that offer a good introductory text to the research problems at the graduate level are:
Distributed Systems : Concepts and Design (4th Edition) (International Computer Science) -- by George Coulouris, et al. (Addison-Wesley)
Distributed Operating Systems : Concepts and Design -- by Pradeep K. Sinha; (Wiley)
Distributed Systems: Principles and Paradigms -- by Andrew S. Tanenbaum, Maarten van Steen. (Prentice Hall)
The course will make extensive use of the Internet. E-mail and news will be the preferred way of communicating with the course staff. News will be used for announcements about the course and Q/A about the course. Students are advised to get familiar with News, learn how to use it to post and read messages and check it for announcements daily. Lecture videos and slides will be available on the web. Discussions will be organized using News. The newsgroup for the class would be class.cs523 on the CS news server. Please check the TSG site for information on how to get your news clients set up.
The course will be graded using examinations, readings, homework, the course project, and bonus points. Each testing tool will contribute to the final grade as follows:
Course Project 60% Midterm Exam 10% Final Exam 10% Readings, Presentations 20% Bonus Class Participation Points 10%
The course will be graded on a curve. Suggested grades: A+ 5% (of the class) A 10% A- 20% B+ 30% B 20% B- 10% C+ 5% to be modified by how well the class does.
Regrade requests for homework/midterm should be directed to the TAs within a week of receiving the graded homework/exam. Late regrade requests will not be entertained.
Bonus points will be awarded by the course staff to students depending on the amount and quality of class participation. This includes discussions in class and on the newsgroup. Please always use the microphone when expressing your views in class. And always start by introducing yourself (if you want those points!). Remember that off-campus students can only get these points by participating in newsgroup discussions. Newsgroup discussion is also important for on-campus students.
Both the exams will be take home examinations.
MIDTERM posted, DUE MARCH 17, 23:59:59
FINAL posted, DUE May 10, 23:59:59
ProjectSystems cannot be designed without consideration for both theory and practice. This course emphasizes the value of actually designing, building and evaluating systems as well as studying the research results of others. The project will be a substantial programming assignment related in some way to operating systems. Some ideas for projects will be announced on the wiki. You are also free to pick your own project after consulting with the Professor.
Projects have to be done in groups. Depending on the scope of the project, the number of students involved in a project could range from 2 to 5.
Students will be required to submit an initial project proposal for approval. Subsequent milestones include progress reports, midterm demo, project report and final demo of the working project. Students interested in projects are advised to consult with the course staff early on in the semester to discuss their plans and possible project topics. Note that the project is a significant portion of the final grade for the course. As such, you are expected to set aside a considerable amount of time to work on your project.
For more details, see the project details page.
Cheating PolicyBottom line: Your work in this class must be your own - we have a zero tolerance policy towards cheating of any kind and any student who cheats will get a failing grade in the course. Rule 33 defines the general university policy on academic integrity. You may discuss, in broad terms, such things as strategies for completing homework. Be aware that, as a general rule, code or pseudo-code is not "broad terms". The programs and exams you hand in, however, must contain only your own work. Your program will be checked against other programs in the class for similarities. If you have any questions about this policy, please talk to the staff. In the past, we have caught students cheating by copying programs from other students without their knowledge. To avoid having your work copied without your knowledge, refrain from leaving source code printouts lying around the lab, protect your files, don't give your passwords to anyone, and enter your passwords in a way that cannot be seen by others. Do not leave a login session active on an unattended workstation. Use xlock in the sparc lab if you must leave briefly, or use some similar measure (or log out!) in other labs; remember that it's a violation of the sparc lab policy (and probably the other lab policies) to leave your workstation unattended for any extended period of time. Report any suspicious behavior to the lab sitters or the TAs. Note that both the cheater and the student who knowingly or unknowingly aided the cheater will be held responsible for the cheating.
Late PolicyAll assignments/homework must be handed in at the time and date specified. Late submissions will not be accepted.