![]() |
||||||
Operating Systems - Practical Work: 2011 / 2012
// Globals that come in handy.
$DateFormat = "l \\t\h\e jS \o\f F Y";
$myname=ereg_replace('^.*/export','',$_SERVER['SCRIPT_FILENAME']);
echo "Last-Modified: ".date($DateFormat, filemtime($myname)).".";
?>
NewsCheck back here regularly for updates. Earth-shattering news will be mailed to registered participants as well.
ExercisesThis practical is divided into two separate exercises, each adding functionality to a different part of the MINIX 3 operating system. Both exercises are required to pass the class. The first exercise adds kernel functionality (profiling). the second one adds file system functionality (defragmentation).
You may work alone, although groups of two persons are encouraged. Groups larger than two are not permitted. You must register by sending an e-mail to Matty Huntjens. You are advised to start with exercise 1 as soon as possible, as you may (read: will) bump into several obstacles. AssistanceInformation is mainly provided by the following sources:
Assistants can give a limited amount of help. Discussing a design or implementation plan with the supervisor can be useful. If needed, arrange an appointment. Before you ask for help from an assistant, be sure to have read all the relevant documents (like the ones listed on this page). Also make sure you've tried all possible solutions first. Please note that while the course lasts until the end of August, the assistants may be less responsive during the Summer months due to holidays, internships, etc. InfrastructureThe practical is based on the book version of MINIX 3 (see OSDI, 3rd ed.), enhanced with a few changes, which are described below. (See the book CD-ROM or download the CD-ROM image here.) This version is preinstalled on the computers in the MINIX 3 lab, room P4.29. Assume the following infrastructure:
Intermediate TestingIt is required that your program supports a minimum functionality before your work can be considered eligible for further grading (i.e., source code and documentation reviewing). For that reason we have developed some scripts to test your programs. Experience has shown that most submitted work does not pass our tests the first time.To prevent you from being surprised by failing our tests after submitting your final version, you can submit your code for each of the exercises for testing up to three times a month. You can submit each at any time (using mnx_submit); we will send back the test results as soon as possible. Unfortunately we have other work to do too, so it may take about a week in some cases. On failure of the tests, you will only be told what kind of error was encountered. You can discuss ways to find the error and your testing plans with your supervisor. A precise description of where, why, and how the tests failed will not be given! The tests are not meant as an aid to help you test and debug your implementations. They are meant only as a way to warn you if your current implementation is not to be accepted. You should therefore test your implementation THOROUGHLY before submitting it. Notes on submitting:
Submission DeadlineThe deadline for submitting your exercises for final grading is Fri Aug. 31, 2012, 23:59:59. Submit your code using the normal mnx_submit procedure. Documentation describing the project should be sent as a separate document, preferably in PDF format, to <bs@cs.vu.nl>.The deadline is hard. Late submissions will not be accepted. We don't care if your pants were on fire, or if your dog ate your harddrive, or if your taxi was late, or if there were not enough MINIX 3 machines available, NO EXCEPTIONS! GradingYour submission is eligible for grading only if it passes the basic test suite. However, this does not guarantee a grade >= 5.5, as source code and documentation still need to be reviewed. Submitted work is usually tested and graded in the first weeks of September. The grade is made up as follows:
Since a third of your grade depends on the documentation, you should give a great deal of care to it, and not postpone writing it until the last moment. The documentation should be in English and about 2-3 pages per exercise. It should provide insight in the issues encountered during the exercises and demonstrate that you understand the problems at hand. In other words, why did something go wrong, why did you choose a particular solution, and how did you verify its correctness, rather than only describing the final solution. For example, next to describing your final solution, this solution may well be illustrated by a description of earlier solutions that failed. Assume insiders as the audience, and write for them. As such, leave out trivialities that are mentioned in the assignment and the man-pages. However, make sure that the documentation is self-contained. Since your source code will be thoroughly examined and graded, it is advised that your code looks clean, and with very clear and abundant comments. This means that you should put to use what you learned in earlier programming courses. Experience has shown that students forget them. However, more importantly, when modifying the sources try to stick to the original style. Another important aspect of modifying sources is that you should try to keep your modifications small, local, and efficient. Failure to take these points into account will inevitably result in low scores for the source code! MiscellaneousWhile it is possible to do some of your work in a virtual environment, we do not recommend this, and this is completely at your own risk. We will not support this -- as far as we are concerned, you are supposed to do the work in the lab only. With that said, Erik van der Kouwe created a VMware image specifically for this practical (some notes). UPDATE: Richard Bronkhorst has supplied us with an updated version. It is available here. Don't forget to praise/blame these guys (we are only offering disk space). We do not host any images for other virtualization products. |
||||||