summaryrefslogtreecommitdiffstats
path: root/doc/start.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/start.tmpl')
-rw-r--r--doc/start.tmpl101
1 files changed, 101 insertions, 0 deletions
diff --git a/doc/start.tmpl b/doc/start.tmpl
new file mode 100644
index 0000000..83b17ad
--- /dev/null
+++ b/doc/start.tmpl
@@ -0,0 +1,101 @@
1 +--------------------+
2 | OS Development |
3 | PROJECT 0: INTRO |
4 | DESIGN DOCUMENT |
5 +--------------------+
6
7---- GROUP ----
8
9>> Fill in the names and email addresses of your group members.
10
11FirstName LastName <email@domain.example>
12FirstName LastName <email@domain.example>
13FirstName LastName <email@domain.example>
14
15---- PRELIMINARIES ----
16
17>> If you have any preliminary comments on your submission, notes for the
18>> TAs, or extra credit, please give them here.
19
20>> Please cite any offline or online sources you consulted while
21>> preparing your submission, other than the Pintos documentation, course
22>> text, lecture notes, and course staff.
23
24 ALARM CLOCK
25 ===========
26
27---- DATA STRUCTURES ----
28
29>> A1: Copy here the declaration of each new or changed `struct' or
30>> `struct' member, global or static variable, `typedef', or
31>> enumeration. Identify the purpose of each in 25 words or less.
32
33---- ALGORITHMS ----
34
35>> A2: Briefly describe what happens in a call to timer_sleep(),
36>> including the effects of the timer interrupt handler.
37
38>> A3: What steps are taken to minimize the amount of time spent in
39>> the timer interrupt handler?
40
41---- SYNCHRONIZATION ----
42
43>> A4: How are race conditions avoided when multiple threads call
44>> timer_sleep() simultaneously?
45
46>> A5: How are race conditions avoided when a timer interrupt occurs
47>> during a call to timer_sleep()?
48
49---- RATIONALE ----
50
51>> A6: Why did you choose this design? In what ways is it superior to
52>> another design you considered?
53
54 ARGUMENT PASSING
55 ================
56
57---- DATA STRUCTURES ----
58
59>> A1: Copy here the declaration of each new or changed `struct' or
60>> `struct' member, global or static variable, `typedef', or
61>> enumeration. Identify the purpose of each in 25 words or less.
62
63---- ALGORITHMS ----
64
65>> A2: Briefly describe how you implemented argument parsing. How do
66>> you arrange for the elements of argv[] to be in the right order?
67>> How do you avoid overflowing the stack page?
68
69---- RATIONALE ----
70
71>> A3: Why does Pintos implement strtok_r() but not strtok()?
72
73>> A4: In Pintos, the kernel separates commands into a executable name
74>> and arguments. In Unix-like systems, the shell does this
75>> separation. Identify at least two advantages of the Unix approach.
76
77
78
79 SURVEY QUESTIONS
80 ================
81
82Answering these questions is optional, but it will help us improve the
83course in future quarters. Feel free to tell us anything you
84want--these questions are just to spur your thoughts. You may also
85choose to respond anonymously in the course evaluations at the end of
86the quarter.
87
88>> In your opinion, was this assignment, or any one of the three problems
89>> in it, too easy or too hard? Did it take too long or too little time?
90
91>> Did you find that working on a particular part of the assignment gave
92>> you greater insight into some aspect of OS design?
93
94>> Is there some particular fact or hint we should give students in
95>> future quarters to help them solve the problems? Conversely, did you
96>> find any of our guidance to be misleading?
97
98>> Do you have any suggestions for the TAs to more effectively assist
99>> students, either for future quarters or the remaining projects?
100
101>> Any other comments?