Read this very important statement about academic integrity,
and live by it.
Final grades will be completed and submitted to registrar no later than Dec 18.
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).
TECHNICAL NOTES: Copies of technical newsletters (distributed by email) are posted here.
NETWORK SECTION: All classes will be conducted using the
ClassWise system for distribution of the class to the networked
students. ClassWise records the lectures; those recordings are
available to all members of the class. Please consult the
Web Page for information on how to download the ClassWise
client for your WinTel PC. If you need technical support
AFTER you have downloaded and tried the demo, call
703-993-1743 between 2pm and 7pm weekdays.
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's primary TA is Vamshi Kalakuntla, firstname.lastname@example.org. The course is also assisted by TA Yun Yang, email@example.com. They are your primary source for help with programming assignments. Their office hours are:
Monday 7:30-8:30pm, ST2/435 (Kalakuntla)
Wednesday 2:00-4:00pm, ST2/435 (Kalakuntla)
Thursday 7:30-9:30pm, ST2/365 (Yang)
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.
Aug 28: OS overview and base architecture
Sep 4: Processes, threads, time sharing
Sep 11: Synchronization, monitors
Sep 18: Information Object models
Sep 25: Virtual Machine models
Oct 2: Storage systems, file systems
Oct 9: No class -- Columbus holiday
Oct 16: Virtual memory systems
Oct 23: Performance evaluation
Oct 30: Performance evaluation
Nov 6: Distributed systems
Nov 13: Remote procedure call
Nov 20: Protection and Security
Nov 27: Protection and Security
Dec 4: 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.