Upload
jacinta-bernal
View
34
Download
4
Tags:
Embed Size (px)
DESCRIPTION
איסוף אשפה (Garbage collection). כותרת חילופית : ניהול זיכרון דינמי (Dynamic memory allocation) ספר בתחום :. Garbage Collection: Algorithms for automatic dynamic memory management, Richard Jones and Rafael Lins, Wiley, 1999. כמה זיכרון צורכת התוכנית הבאה ?. 3. 4. p. p. 11. 12. p. 1. - PowerPoint PPT Presentation
Citation preview
(Garbage collection)איסוף אשפה
(Dynamic memory allocation): ניהול זיכרון דינמי כותרת חילופית
Garbage Collection: Algorithms for automatic dynamic:ספר בתחוםmemory management, Richard Jones and Rafael Lins, Wiley, 1999.
כמה זיכרון צורכת התוכנית הבאה ?
1
malloc
2
malloc
3
malloc
4
malloc
p
5
malloc
6
malloc
7
malloc
8
malloc
9
malloc
10
malloc
11
malloc
12
malloc
13
malloc
14
malloc
…
p
p p
)n(Oסיבוכיות מקום נוסף )O)1סיבוכיות מקום
(Garbage collection)איסוף אשפה
(Dynamic memory allocation): ניהול זיכרון דינמי כותרת חילופית
Garbage Collection: Algorithms for automatic dynamic:ספר בתחוםmemory management, Richard Jones and Rafael Lins, Wiley, 1999.
כמה זיכרון צורכת התוכנית הבאה ?
1 2
3 4
5 6
7 8
9 10
11 12
13 14
…
: איך לשחרר צמתים שהמתכנת לא שחרר באמצעות פקודת הבעיהfree.
p
freefree
freefree
free free
q
q
Garbage collectionאיסוף אשפה
v1v2v3x
y
z
ee
hh
משתנים של התכנית frameמחסנית
:צמתים שאין אליהם מסלול מאף משתנה תכניתאשפה
:קלט
בעיית איסוף אשפה
:פלט
לשחרר אתאת צמתי האשפה
משתנים נוצרו בזמן mallocע"י ריצה
Heap
AVAIL
Garbage collectionאיסוף אשפה
v1v2v3x
y
z
ee
hh
משתני התכנית
:קלט
בעיית איסוף אשפה
:פלט
לשחרר אתאת צמתי האשפה
משתנים בזמן ריצהmallocנוצרו ע"י
הבא mallocב- מוצאים אבר מ-
Reference countingספירה 1פתרון
v1v2v3x
y
z
ee
hh
2
1
12
2
1
1
count שדה Vלהוסיף לכל צומת השומר את מספר המצביעים אליו
2
1
1
AVAIL
V של countעדכן את 1.אלגוריתם בכל פעם שמשנים מצביע
0 שווה V של count. אם 2 AVAILשים את הצומת ב-
v1v2v3x
y
z
ee
hh
2
1
12
2
1
1
2
1
1
0
12
v1v2v3x
y
z
ee
hh
2
1
12
2
1
1
2
1
1
1
בעיה
1
אין גישהלמעגל
v1v2v3x
y
z
ee
hh
Tracing collectorסימון 2פתרון
Depth First Search (DFS)אלגוריתם
v1v2v3x
y
z
ee
hh
Depth First Search (DFS)אלגוריתם
אלגוריתם רקורסיביחסרון:
אלגוריתם רקורסיבי משתמש במחסנית
סבוכיות מקוםO(n)
v1v2v3x
y
z
ee
hh
ללא רקורסיהDFS אלגוריתם
נניח שתמיד ישמצביע לצומת הקודמת
איך נדע אם המצביע מקורי?colorנוסיף משתנה
לכל מצביע
v1v2v3x
y
z
ee
hh
a b c d e f g
Compactionדחיסה
:פלט:קלט
v1v2v3x
y
z
ee
hh
a b c d e f g
Compactionדחיסה
:פלט
v1v2v3x
y
z
ee
hh
a b c d e f g
. לספור את מספר הצמתים1
n = 7
. לקצות מקום2
. לעביר ולהחליף בכתובת3
. עדכון מצביעים4
שימו לב
v1v2v3x
y
z
ee
hh
a b cd e f g
. לספור את מספר הצמתים1
n = 7
. לקצות מקום2
. לעביר ולהחליף בכתובת3
. עדכון מצביעים4
סבוכיות מקוםO(1)