User Tools

Site Tools


cs330_f2016:lab14

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs330_f2016:lab14 [2016/11/15 18:48]
morse
cs330_f2016:lab14 [2016/11/15 21:32]
morse
Line 1: Line 1:
-** This version is preliminary and subject to change until this line is removed ** 
  
 ====Objective:​==== ====Objective:​====
Line 41: Line 40:
 ===Stop and Copy=== ===Stop and Copy===
  
-For the stop-and-copy part of the assignment, you are given the initial ​tospace, which is identical to the original heap for the mark-and-sweep part.  ​+For the stop-and-copy part of the assignment, you are given the initial ​fromspace, which is identical to the original heap for the mark-and-sweep part.  ​
 However, the interpretation is slightly different: for mark-and-sweep,​ you have to identify blocks as free and maintain a free-block list.  ​ However, the interpretation is slightly different: for mark-and-sweep,​ you have to identify blocks as free and maintain a free-block list.  ​
 For stop-and-copy,​ there are no free blocks or a list of such.  Instead, all memory above the single free pointer is unused and can be allocated. For stop-and-copy,​ there are no free blocks or a list of such.  Instead, all memory above the single free pointer is unused and can be allocated.
Line 61: Line 60:
 ====Notes:​==== ====Notes:​====
  
-  - Address 0 is intentionally not used and a reference with value = 0 should be taken as a NULL pointer+  - Address 0 is intentionally not used and a reference with value = 0 should be taken as a NULL pointer.
   - Use the "​Interpretation"​ column for your own notes, but all necessary information must be in the heap contents, not this column!   - Use the "​Interpretation"​ column for your own notes, but all necessary information must be in the heap contents, not this column!
-  ​For mark-and-sweep, you should ​"​sweep"​ blocks by marking them as free and adding ​the length ​of the entire block (including header) and a next pointer. + 
-  - Insert new free blocks ​at the head of the free list. +---- 
-  - For stop-and-copy,​ you will need to maintain your on "​scan"​ pointer during the copying process. + 
-  - For stop-and-copy,​ you need to fill in the "​tospace"​, but you also need to show changes to the "​fromspace"​. +====Hints:​==== 
-  - For stop-and-copy,​ you must use Cheney'​s algorithm, so the live blocks must be copied in the correct depth-first order.+ 
 +Since both methods ​should ​result in the same set of live objects, try comparing which blocks ​still remain after each approach.  ​The order in which they appear in memory ​will be different, but the set of live objects should ​be the same. 
 + 
  
  
-===Hints:​=== 
cs330_f2016/lab14.txt · Last modified: 2021/06/30 23:42 (external edit)