Read this very important statement about academic integrity,
and live by it.
Final Quiz Q2 is posted below. It is due Tuesday May 7. You can deliver it in person to the CS office or you can fax it to me at 703-993-1710. There are two bonus questions worth 1 extra-credit point each. (4/17/02)
The links below will include the current topic list, the current newsletter, and lecture slides. Lecture slide links will be added as the slides are needed for class. Recorded lectures are available via the network section page (see below).
The lecture slides for this course (and its companion CS471) are available as an Internet book, The Art of Operating Systems. These slides will support topics covered in the syllabus and the book.
Extra slides shown weekly are listed below.
January 22, 2002. February 5, 2002. February 19, 2002. March 19, 2002.
Click the title line above to see the technical newsletters. Copies of previous semester's issues are also here.
This space will contain links to all assignments.
Links to web-based resources useful in the course appear in this space. Those needing Adobe Acrobat reader are marked "PDF".
The course TA is Vamshi Kalakuntla (firstname.lastname@example.org). His office is in Room ST2/435 and hours are:
The TA will be primarily responsible to help you with programming
and system questions around your two projects (P1 and P2).
Questions about other assignments should be directed to Professor
There will be:
The homework assignments are important to your progress. At the beginning of the next class following the due date I will review the questions and their answers.
Extra credit problems may be offered from time time; extra credit (EC) points will be added to your total.
Your overall score, S, at any given time can be estimated by
computing your average to date in each category on a scale
from 1 to 10, combining them
by the given weights, and adding your (total EC points)/20.
as a number between 1 and 10, your grade is (no curve):
Class participation is very important. Active participation may be rewarded with extra points toward your score S.
I will not accept assignments late unless you have pre-arranged a new due date, or if there is an emergency and you let me know as soon as possible after the emergency. The principle I am working with is that your due date is a promise; you are responsible for your promises. If you cannot fulfill your promise, you need to negotiate a new due date as soon as you know.
Jan 22: OS overview and base architecture
Jan 29: Processes, threads, time sharing
Feb 5: Synchronization, monitors
Feb 12: Information Object models
Feb 19: Virtual Machine models
Feb 26: Storage systems, file systems
Mar 5: Virtual memory systems
Mar 10: No class -- Spring holiday
Mar 19: Performance evaluation
Mar 26: Performance evaluation
Apr 2: Distributed systems
Apr 9: Remote procedure call
Apr 16: Protection and Security
Apr 23: Protection and Security
Apr 30: Course Review
May 7: OS futures
CS571 is a 3-credit course with prerequisites CS310 and CS365 or equivalent. I am assuming you know the prerequisite material. I am also assuming you are a competent C++/Java programmer.
The course introduces the basic concepts in operating systems, emphasizing distributed systems. These concepts include processes, synchronization, memory management, file and I/O management, user program execution. The UNIX operating system is used to illustrate implementation of these concepts. Basic performance analysis methods such as Markov chains and Mean Value Analysis are introduced to study the performance aspects of mechanisms used in operating systems. You will get some hands-on experience in operating systems through a course project.
Required text books:
Other recommended books:
I may also select articles for you to read; if that happens,
copies will be available for you on this web page as resources.
On the first day of classes, you will form into project groups, most of size 3. You should meet with your group once a week as part of your normal class work. You should discuss all homework questions freely and frequently in your group. Except when group projects are explicitly declared, you must write your own individual report for each assignment. You will learn much more working with your group than you would working alone. It is important to acknowledge the sources of your information -- name the persons with whom you collaborated, cite sections from books or articles if you use them, etc. In short, collaborate freely, acknowledge all help and sources, and write your own individual homework reports. Your study group will also function as a project team in the projects that you will work on. At all times, you must observe the University's Honor Code.
There will be a course project to implement a simulator of a significant part of an operating system.
It is important for your to work out in advance how you will divide up the work on the project among your team mates so that you can aim for equal distribution of the points. It is important to work out a schedule so that you can get everything done -- don't put the main work off to the last minute because you can be severely hampered by computer overloads that so frequently happen in last-minute rushes. It is also important to keep your promises to your group members because otherwise they will not sign an equal-distribution statement with you at the end. The project due dates will not be postponed except for major emergencies (e.g., snow days or machine unavailability).
If you encounter any breakdowns in the operation of your group, let me know immediately so that I can help you solve the problem.