summaryrefslogtreecommitdiffstats
path: root/proj0.txt
diff options
context:
space:
mode:
Diffstat (limited to 'proj0.txt')
-rw-r--r--proj0.txt106
1 files changed, 106 insertions, 0 deletions
diff --git a/proj0.txt b/proj0.txt
new file mode 100644
index 0000000..d77cdb9
--- /dev/null
+++ b/proj0.txt
@@ -0,0 +1,106 @@
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
73strtok() uses global data, so it is unsafe in threaded programs such as kernels.
74
75>> A4: In Pintos, the kernel separates commands into a executable name
76>> and arguments. In Unix-like systems, the shell does this
77>> separation. Identify at least two advantages of the Unix approach.
78
79
80
81 SURVEY QUESTIONS
82 ================
83
84Answering these questions is optional, but it will help us improve the
85course in future quarters. Feel free to tell us anything you
86want--these questions are just to spur your thoughts. You may also
87choose to respond anonymously in the course evaluations at the end of
88the quarter.
89
90>> In your opinion, was this assignment, or any one of the three problems
91>> in it, too easy or too hard? Did it take too long or too little time?
92
93>> Did you find that working on a particular part of the assignment gave
94>> you greater insight into some aspect of OS design?
95
96>> Is there some particular fact or hint we should give students in
97>> future quarters to help them solve the problems? Conversely, did you
98>> find any of our guidance to be misleading?
99
100>> Do you have any suggestions for the TAs to more effectively assist
101>> students, either for future quarters or the remaining projects?
102
103>> Any other comments?
104
105
106