Read Ritchie and Thompson's Unix paper (see papers).
Submit a neatly typed page or two (make it substantial but not verbose)
discussing how Unix (as described in the paper) fits in the criteria
for OS outlined in slides 10 (OS Zoo) and 24 (OS
Concepts). For example, you can say in a sentence whether the paper
discusses deadlocks in unix, and if so what it says.
Brian Gordon's inquiry into "the MOO" issue in Ritchie's paper:
in plain text
Read Redell et al.'s Pilot paper (PDF).
Contrast Pilot (as described in the paper) with Unix (as described in
the Ritchie and Thompson paper of A0), with attention to how design
goals affected design decisions, and how the systems differ as a
result. Submit your analysis as 2-4 neatly typed pages (make it
substantial but not verbose).
This assignment is optional: If you choose
to submit assignment A0bis, its grade (lower, equal, or higher) will
replace the grade you obtained in A0.
Write concise, clear, and complete answers to the following problems from the textbook. The problems are given by three numbers, signifying chapter-problem-page in the textbook. The text in parenthesis is just a short reminder of what the problem is about; it is sometimes followed by an additional requirement, a hint or other clarification.
Note: Show your work and/or justify as appropriate. Type your answers unless you are exceptionally neat. This assignment is due at the start of lecture on the date specified.
Important Notes: Do this assignment in teams of two. If you are having a hard time finding a partner, use the course mailing list. Submit one assignment hardcopy per team; notice that this time the deadline does not coincide with the lecture time, so you will have to bring it to the TA's office (FEC 341) or other suitable place that we determine. Do not put it in any mailbox unless specifically directed.
Overview. The two sides of a quaint New England town are connected by a bridge over a river. This historic bridge is wide enough, for cars and smaller vehicles, to cross it in both directions simultaneously. However, the advent of SUVs, 6-wheel "light" trucks, all-terrain personnel carriers, etc., combined with decreased driver competence, are causing frequent stalemates on the bridge's span. Of course, the town cannot widen this historical bridge nor build another one without years of litigation.
Your assignment. Design a solution to this "narrow-bridge problem". Your solution must allow traffic to use the bridge in one direction (E) or the other (W) at a time. Notice that once a car enters in one direction (say heading E), other cars from the same direction (also heading E) may follow immediately. Specifically:
Note: Your solutions should be nontrivial - in this case, trivial solutions would not be realistic for the scenario described.
Important Notes: Do this assignment in teams of three. Submit one assignment hardcopy per team; do not put it in any mailbox unless specifically directed.
Overview: The goal of this assignment is to get some hands-on experience using system-level calls and concurrency, by constructing a simple experimental setup and playing with it. The excuse is measuring some times using Linux's timing systems calls. The assigment consists of three parts; we strongly recommend that you complete each before moving on to the next.
This assignment involves Linux system calls and reading Linux source code; any recent Linux should be fine, although source code could be in different places for different Linux distributions. If in doubt about the experimental setup, ask the TA (John Cochran).
You should use the setitimer and getitimer system calls to do the profiling. To learn about these, read their man pages and the time.h and itimer.c files (see /usr/src/linux/include/linux and /usr/src/linux/kernel, but they may be elsewhere in your system.). You will have to implement signal handlers for each of the timers, so you may want to look at the signal.h and signal.c files also.
Notes: This part of the assignment requires that you do a
bit of investigation on your own into the system calls needed. The
experience gained from Part 1 should help here.
Be cautious about the use of fork; it is easy to
overwhelm a system by creating too many processes.
Note that the earlier requirement that you give a cumulative time for the factoring program has been dropped. (You might still want to experiment with a program with dummy individual factor timers and actual cumulative timers in order to find out how to manifest the bug.)
To Submit: Write a report with your observations, including both measurements and your analysis of them.Your report should be an intelligent distillation of your experiments, not a simple transcription of experimental results; here you want to be concise yet substantial (graphs and/or tables of values may help). We suggest that you begin this part of the assignment by playing with the experimental setup for a short time to familiarize yourself with the inputs and outputs. Then design a set of runs that cover interesting values for the independent variables (what are those?) and record the results. Go over the results and possibly add a few cases if you think they will give a richer picture; also, repeat some cases with all the same values to observe variations due to environmental factors (what are those?).
Write concise, clear, and complete answers to the following problems from the textbook. The problems are given by three numbers, signifying chapter-problem-page in the textbook. The text in parenthesis is just a short reminder of what the problem is about; it is sometimes followed by an additional requirement, a hint or other clarification.
Note: Show your work and/or justify as appropriate. Type your answers unless you are exceptionally neat. This assignment is due at the start of lecture on the date specified.
Page Created 2004.01.20 11:00
Fixed broken links to papers page 2004.01.26 11:00
Fixed more broken links (!)
and Added Assignment #0Bis 2004.02.05 18:00
Added Sample Answers 2004.02.20 11:00
A2 2004.03.02 19:00
A3 2004.03.28 19:00
A3 corrected 2004.04.02 15:00
A4 and weigths 2004.04.27 22:00