14
ההההה הההה( Garbage collection ) הההההה : ההההה הההההה ההההה( namic 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 הההההההה ההההO)1( הההההההה הההה ההההO)n(

איסוף אשפה (Garbage collection)

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

Page 1: איסוף אשפה  (Garbage collection)

(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סיבוכיות מקום

Page 2: איסוף אשפה  (Garbage collection)

(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

Page 3: איסוף אשפה  (Garbage collection)

Garbage collectionאיסוף אשפה

v1v2v3x

y

z

ee

hh

משתנים של התכנית frameמחסנית

:צמתים שאין אליהם מסלול מאף משתנה תכניתאשפה

:קלט

בעיית איסוף אשפה

:פלט

לשחרר אתאת צמתי האשפה

משתנים נוצרו בזמן mallocע"י ריצה

Heap

Page 4: איסוף אשפה  (Garbage collection)

AVAIL

Garbage collectionאיסוף אשפה

v1v2v3x

y

z

ee

hh

משתני התכנית

:קלט

בעיית איסוף אשפה

:פלט

לשחרר אתאת צמתי האשפה

משתנים בזמן ריצהmallocנוצרו ע"י

הבא mallocב- מוצאים אבר מ-

Page 5: איסוף אשפה  (Garbage collection)

Reference countingספירה 1פתרון

v1v2v3x

y

z

ee

hh

2

1

12

2

1

1

count שדה Vלהוסיף לכל צומת השומר את מספר המצביעים אליו

2

1

1

Page 6: איסוף אשפה  (Garbage collection)

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

Page 7: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

2

1

12

2

1

1

2

1

1

1

בעיה

1

אין גישהלמעגל

Page 8: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

Tracing collectorסימון 2פתרון

Depth First Search (DFS)אלגוריתם

Page 9: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

Depth First Search (DFS)אלגוריתם

אלגוריתם רקורסיביחסרון:

אלגוריתם רקורסיבי משתמש במחסנית

סבוכיות מקוםO(n)

Page 10: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

ללא רקורסיהDFS אלגוריתם

נניח שתמיד ישמצביע לצומת הקודמת

איך נדע אם המצביע מקורי?colorנוסיף משתנה

לכל מצביע

Page 11: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

a b c d e f g

Compactionדחיסה

:פלט:קלט

Page 12: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

a b c d e f g

Compactionדחיסה

:פלט

Page 13: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

a b c d e f g

. לספור את מספר הצמתים1

n = 7

. לקצות מקום2

. לעביר ולהחליף בכתובת3

. עדכון מצביעים4

שימו לב

Page 14: איסוף אשפה  (Garbage collection)

v1v2v3x

y

z

ee

hh

a b cd e f g

. לספור את מספר הצמתים1

n = 7

. לקצות מקום2

. לעביר ולהחליף בכתובת3

. עדכון מצביעים4

סבוכיות מקוםO(1)