Marvin Solomon
office: 7397 Computer Sciences
office hours: 9:00 TR
office phone: 263-2844
email address:
solomon@cs.wisc.edu
Rob Mellencamp
office: 1349 Computer Sciences
office hours: 10-11 MWF
office phone: 262-5340
email address:
mellen@cs.wisc.edu
News
Watch this space for the latest updates.
A more detailed breakdown of the grade distribution is also available.
A few typographical errors in the notes on Deadlock Avoidance have been corrected. Most importantly, the same array was being called D in some places and M in others. It is now called M in all places.
By popular demand, an old midterm exam is available for you to look at. Warning: You should take this example with a large grain of salt. The exam is from a very long time ago when the course used a different text and covered topics in a different order. This semester's midterm will likely be quite different.
The first caused the Introduction paragraph to be slightly garbled. Thanks to Jake Dawley-Carr for pointing this one out.
The second was a line omitted from the sample code for Algorithm I in the Programming Details section. After you create a ThreadScheduler, you have to start it
ThreadScheduler sched = new ThreadScheduler(); sched.start();This was specified correctly in the later section on the ThreadScheduler, but not in the Details section. The Web page is now fixed. Thanks to Liping Zhang for this one.
The file ~cs537-1/public/src/petersonCyclic.graph contains the Peterson graph shown in the project specification
The
online version
has been corrected.
Thanks, Todd.
You should be aware that there is a weekly seminar on operating systems and networking, meeting Mondays at 2:30. The first seminar of the semester is Monday the 16th. Check the Colloquia and Seminars web page for more details.
set path=($path /s/java/bin)To make the change take effect, either type
source .cshrc.localor simply log out and log back in.
Tues - Thurs, Sept 3 - 5 | 4 pm and 6pm, room 1221 CS |
Mon - Thurs, Sept 9 - 12 | 4 pm, room 1221 CS |
The discussion section is not ``optional'': it is at least as important as the
lectures.
The primary focus of the Wednesday meetings will be topics related to the
projects
(including introduction to the
Java
programming language), but time will also be available for answering any
questions you have regarding points raised in the the lectures or the
text.
Text
Required
Modern Operating Systems
by Andrew S. Tanenbaum,
Prentice Hall, 1992.
Strongly Recommended
The Java Programming Language
by Ken Arnold and James Gosling,
Addison Wesley, 1996.
Online References
Lots of additional helpful materials about Java are available on the WEB.
The following references have been collected locally for fast access.
Watch this spot for additional links to the web.There will be five programming projects, all in the Java programming language. Sun SparcStation workstations running the Solaris dialect of the Unix operating system are provided for your use, but you may use any computer to which you have access that implements the Java programming language. However, if you do not use the Computer Sciences Department's computers, you will be responsible for transferring any required data sets or software packages to your computer.
The first assignment will be an easy ``get acquainted'' exercise designed to help you become familiar with the computing environment and the Java language. Subsequent projects will involve process synchronization, processor scheduling, disk scheduling, and file-system implementation. On all but the first project, students will be required to work in pairs. Both members of a pair will receive the same grade on a project. Feel free to discuss projects with anyone, but you must not share code with anyone but your partner. Cheating will be vigorously punished. Enough said!
Assignments are due at the beginning of class (11 a.m.) on the date
indicated.
Over the entire semester, you have
three late days
of credit.
You can use these late days on different assignments (e.g., one day on each
of three assignments) or all three days on one assignment.
Late days may not be used for the last assignment.
Why Java?
Most students taking this course will be familiar with C++ but not Java. Why, then, did we choose Java? There are several arguments in favor of it.
On the other hand, switching to a new programming language is always
a bit dislocating.
Fortunately, there are excellent resources are available to ease the
transition.
The Java Programming Language
by Arnold and Gosling is amazingly good.
It is neither an introductory programming primer (the authors assume you
already know how to program)
nor a reference manual (although a
reference manual
is available online),
but a readable introduction to the language, which takes you all to the way
from getting started to everything you need to write quite sophisticated
programs in Java.
This book is available at the University Bookstore.
You are strongly encouraged to buy it.
We have also gathered a variety of
other resources together, including a nice
online tutorial
about Java programming, and
a reference manual
for the standard class libraries you will be using.
Grading
There will be a midterm and a final exam, each of which will count for 25%
of your grade.
The midterm will be in the evening of Wednesday, October 23
from 7:15 to 9:15 pm in room 1240, Computer Sciences and Statistics.
The final, as scheduled in the timetable, will be Tuesday, December 17
at 5:05 p.m.
The first programming project (getting started) will count for 2% of your
grade.
The remaining four projects will count for 12% each.
Course Schedule
The following schedule is tentative; it may be updated later in the semester, so check back here frequently.
Sept 3 - 6 | Introduction | Chapter 1 |
Sept 10 - Oct 8 | Processes, Synchronization, Processor Scheduling | Chapters 2 and 6 |
Sept 17 | Project 1 Due | Learning Java |
Oct 10 | Project 2 Due | Synchronization |
Oct 10 - Nov 11 | Memory Management and Virtual Memory | Chapter 3 |
Oct 22 | Project 3 Due | CPU Scheduling |
Oct 23 | Midterm Exam | Room 1240 Comp Sci. |
Nov 14 - Dec 5 | I/O Devices, File Systems | Chapters 4 and 5 |
Nov 14 | Project 4 Due | Disk Scheduling |
Dec 10 - 12 | Protection and Security | Sections 4.4 and 4.5 |
Dec 12 | Project 5 Due | File Systems |
Dec 17 | Final Exam |