summaryrefslogtreecommitdiffstats
path: root/proj2.txt
diff options
context:
space:
mode:
Diffstat (limited to 'proj2.txt')
-rw-r--r--proj2.txt137
1 files changed, 137 insertions, 0 deletions
diff --git a/proj2.txt b/proj2.txt
new file mode 100644
index 0000000..5405336
--- /dev/null
+++ b/proj2.txt
@@ -0,0 +1,137 @@
1 +---------------------------+
2 | ProgOS |
3 | PROJECT 2: VIRTUAL MEMORY |
4 | DESIGN DOCUMENT |
5 +---------------------------+
6
7---- GROUP ----
8
9>> Fill in the names and email addresses of your group members.
10
11Peter Ketscher <e9651415@mail.student.tuwien.ac.at>
12Karoline Knoth <e0326266@student.tuwien.ac.at>
13Manuel Mausz <manuel-uni@mausz.at>
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 PAGE TABLE MANAGEMENT
25 =====================
26---- DATA STRUCTURES ----
27
28>> A1: Copy here the declaration of each new or changed `struct' or
29>> `struct' member, global or static variable, `typedef', or
30>> enumeration. Identify the purpose of each in 25 words or less.
31
32struct thread:
33 struct hash page_table ...page table of thread
34
35struct page_table_entry:
36 void *upage ...virtual address of page
37 bool loaded ...indicates if page is loaded
38 enum type ...type of page
39 union struct segment ...structure needed for lazy loading of data segments
40 struct hash_elem elem ...Hash element.
41
42---- IMPLEMENTATION ----
43>> A2: Describe how you implemented lazy page loading. How do you
44>> determine the file and file offset corresponding to a virtual
45>> address?
46
47TODO
48
49---- SYNCHRONIZATION ----
50>> A3: How do you deal with or prevent page faults in file system
51>> routines. Argue why your solution is deadlock free.
52
53TODO
54
55 STACK GROWTH
56 ============
57
58---- DATA STRUCTURES ----
59
60>> B1: Copy here the declaration of each new or changed `struct' or
61>> `struct' member, global or static variable, `typedef', or
62>> enumeration. Identify the purpose of each in 25 words or less.
63
64extern void *syscall_sp ...stored stack pointer for the "page fault inside
65 syscall/kernel"-case
66
67---- IMPLEMENTATION ----
68>> B2: Describe how you integrated the (potentially growing) stack segment
69>> into your page table management implementation.
70
71TODO
72
73---- ALGORITHMS ----
74>> B3: Explain how you detect a page fault which should trigger a
75>> stack growth. What asssumptions are needed for your implementation
76>> to work?
77
78TODO
79
80 MEMORY MAPPED FILES
81 ===================
82
83---- DATA STRUCTURES ----
84
85>> C1: Copy here the declaration of each new or changed `struct' or
86>> `struct' member, global or static variable, `typedef', or
87>> enumeration. Identify the purpose of each in 25 words or less.
88
89struct page_table_entry:
90 union struct TODO ...structure needed for loading of memory mapped files
91
92---- ALGORITHMS ----
93
94>> C2: Describe how memory mapped files integrate into your virtual
95>> memory subsystem.
96
97TODO
98
99>> C3: Explain how you determine whether a new file mapping overlaps
100>> any existing segment.
101
102TODO
103
104---- RATIONALE ----
105
106>> C4: Mappings created with "mmap" have similar semantics to those of
107>> data demand-paged from executables, except that "mmap" mappings are
108>> written back to their original files, not to swap. This implies
109>> that much of their implementation can be shared. Explain why your
110>> implementation either does or does not share much of the code for
111>> the two situations.
112
113TODO
114
115 SURVEY QUESTIONS
116 ================
117
118Answering these questions is optional, but it will help us improve the
119course in future quarters. Feel free to tell us anything you
120want--these questions are just to spur your thoughts. You may also
121choose to respond anonymously in the course evaluations at the end of
122the quarter.
123
124>> In your opinion, was this assignment, or any one of the three problems
125>> in it, too easy or too hard? Did it take too long or too little time?
126
127>> Did you find that working on a particular part of the assignment gave
128>> you greater insight into some aspect of OS design?
129
130>> Is there some particular fact or hint we should give students in
131>> future quarters to help them solve the problems? Conversely, did you
132>> find any of our guidance to be misleading?
133
134>> Do you have any suggestions for the TAs to more effectively assist
135>> students, either for future quarters or the remaining projects?
136
137>> Any other comments?