Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lucy Wiki" for change 
notification.

The "LucyBookClub" page has been changed by MarvinHumphrey:
https://wiki.apache.org/lucy/LucyBookClub?action=diff&rev1=58&rev2=59

Comment:
Add June 18, archive June 11.

  [[mailto:[email protected]|[email protected]]]
  
  == Upcoming Meetings ==
+ 
+ === Tuesday June 18, 7:00 pm PDT: ===
+ 
+ Lectures from [[https://www.coursera.org/course/hwswinterface|The 
Hardware/Software Interface]]
+ 
+  * Section 9: Virtual Memory
+  * Section 10: Memory Allocation
+ 
+ Review questions for section 9, "Virtual Memory":
+ 
+  1.  What four problems do the professors suggest that virtual memory solves?
+  1.  "Any problem in computer science can be solved by..." what?
+  1.  Without indirection, what happens if you need to update data which 
exists at multiple memory locations?
+  1.  What are some non-computer-science examples of indirection?
+  1.  What aren't there any machines which are capable of mapping a full 
64-bit address space in physical memory?
+  1.  What are some systems which use direct physical addressing?  
+  1.  What are the three states for virtual memory pages?
+  1.  Roughly how large is a virtual memory page?
+  1.  Why not use write-through with virtual memory?
+  1.  What's in a page table entry?
+  1.  How many page tables per process?
+  1.  How much of the MMU is implemented with hardware?
+  1.  What's _thrashing_?
+  1.  What permission bits are contained in typical page table entries?
+  1.  Explain the sequence of events during a page hit.
+  1.  What impact does address space size have on page table size?
+  1.  How is responsibility divided between hardware and OS for implementing 
virtual memory?
+ 
+ Review questions for section 10, "Memory Allocation":
+ 
+  1.  How does the heap grow?
+  1.  What alignment guarantees does malloc make?
+  1.  What are the two conflicting performance goals of memory allocators?
+  1.  There are two kinds of fragmentation: internal and external.  Internal 
and external to what?  How do they differ?
+  1.  Briefly describe four approaches to managing a memory heap: _implicit 
free list_, _explicit free list_, _segregated free list_, and _blocks sorted by 
size_.
+  1.  What are the differences between _first fit_, _next fit_ and _best fit_?
+  1.  What is _splitting_? 
+  1.  What is _coalescing_?
+  1.  When memory is nearly full, which is faster: implicit or explicit free 
list?
+  1.  For a segregated free list allocator, how closely does memory 
utilization approach best fit?
+ 
+ Bonus questions not answered by lecture:
+ 
+  1.  If heap memory were executable, how might a double free() lead to a an 
exploit resulting in arbitrary code execution?  Hint: it's like a stack buffer 
overflow, but much harder for the attacker.
+  1.  Why does Professor Ceze keep saying "Simple, right?" for stuff that 
isn't simple?
+ 
+ 
+ 
+ == Community Notes ==
+ 
+ Below are an excerpt of notes from previous meetings and or anything of 
interest related to the meetings.
  
  === Tuesday June 11, 7:00 pm PDT: ===
  
@@ -50, +101 @@

   2.  How expensive is fork()?
   3.  Why use fork/execve instead of posix_spawn?  How about vfork/execve as 
an alternative?
  
- 
- == Community Notes ==
- 
- Below are an excerpt of notes from previous meetings and or anything of 
interest related to the meetings.
  
  === Tuesday June 4, 7:00 pm PDT: ===
  

Reply via email to