HEAL DSpace

Αλγόριθμοι συλλογής απορριμμάτων για αυτόματη διαχείριση μνήμης

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Κονόμης, Δημήτρης Χ. el
dc.contributor.author Konomis, Dimitris Ch. en
dc.date.accessioned 2015-04-24T06:18:16Z
dc.date.available 2015-04-24T06:18:16Z
dc.date.issued 2015-04-24
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/40589
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.9274
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject Γλώσσες προγραμματισμού el
dc.subject Programming languages en
dc.subject Αυτόματη διαχείριση μνήμης el
dc.subject Συλλογή απορριμμάτων el
dc.subject Εξιχνίαση el
dc.subject Καταμέτρηση αναφορών el
dc.subject Automatic memory management en
dc.subject Garbage collection en
dc.subject Tracing en
dc.subject Reference counting en
dc.title Αλγόριθμοι συλλογής απορριμμάτων για αυτόματη διαχείριση μνήμης el
dc.title Garbage collection algorithms for automatic memory management en
heal.type bachelorThesis
heal.classification Γλώσσες προγραμματισμού el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2015-04-02
heal.abstract Αν και αρχικά περιοριζόταν στη γλώσσα Lisp και τις συναρτησιακές γλώσσες προγραμματισμού, σήμερα η συλλογή απορριμμάτων αποτελεί σημαντικό κομμάτι του συστήματος διαχείρισης μνήμης πολλών σύγχρονων γλωσσών, τόσο προστακτικών όσο και δηλωτικών. Παρά τη φήμη πως επιβραδύνει και διαταράσσει την εκτέλεση διαδραστικών εφαρμογών, οι σύγχρονες τεχνικές υλοποίησης της συλλογής απορριμμάτων έχουν μειώσει την επιβάρυνση της σημαντικά, σε τέτοιο σημείο ώστε να αποτελεί ρεαλιστική επιλογή ακόμη και για παραδοσιακές γλώσσες προγραμματισμού όπως η C. Παρά την ταχεία ανάπτυξη του μεγέθους μνήμης ακόμη και των πιο φθηνών υπολογιστών, ο αποθηκευτικός χώρος δεν είναι ανεξάντλητος. Όπως όλοι οι περιορισμένοι πόροι απαιτεί προσεκτική συντήρηση και ανακύκλωση. Πολλές γλώσσες προγραμματισμού σήμερα επιτρέπουν την εκχώρηση και την ανάκτηση μνήμης από τον προγραμματιστή για δεδομένα των οποίων η διάρκεια ζωής δεν καθορίζεται από τη λεκτική εμβέλεια τους. Λέμε πώς τα δεδομένα αυτά εκχωρούνται δυναμικά. Η διαχείριση της δυναμικής μνήμης μπορεί να γίνεται ρητώς από τον προγραμματιστή,μέσω κλήσεων διαδικασιών ενσωματωμένων στο σύστημα εκτέλεσης ή διαδικασιών βιβλιοθήκης που εκχωρούν αποθηκευτικό χώρο και τον ελευθερώνουν όταν αυτός δεν είναι πλέον απαραίτητος. Η χειρωνακτική ανάκτηση της δυναμικά διαχειριζόμενης μνήμης συχνά δεν είναι ικανοποιητική. Εναλλακτικά, η ευθύνη αυτής της διαχείρισης μπορεί να μεταβιβασθεί στο σύστημα εκτέλεσης του προγράμματος. Ο προγραμματιστής εξακολουθεί να πραγματοποιεί δυναμικά αιτήματα εκχώρησης μνήμης, χωρίς όμως πλέον να χρειάζεται να καθορίσει πότε αυτή η μνήμη δεν είναι πλέον απαραίτητη: αυτή ανακυκλώνεται αυτόματα. H συλλογή απορριμμάτων, που αποτελεί το κεντρικό θέμα αυτής της εργασίας, είναι ακριβώς η αυτόματη διαχείριση δυναμικά εκχωρούμενου χώρου αποθήκευσης. Σκοπός αυτής της εργασίας είναι να αποτελέσει σημείο αναφοράς για τους αναγνώστες που ενδιαφέρονται να μάθουν σχετικά με την αυτόματη διαχείριση μνήμης. Το εισαγωγικό κεφάλαιο αρχικά εξετάζει και συγκρίνει την αυτόματη διαχείριση μνήμης και τη ρητή διαχείριση μνήμης, στη συνέχεια παρουσιάζει τις μετρικές με βάση τις οποίες συγκρίνονται τα διάφορα σχήματα συλλογής απορριμμάτων και τέλος ορίζει τις έννοιες του εκχωρητή, του συλλέκτη και του τροποποιητή. Το υπόλοιπο της εργασίας οργανώνεται σε δύο τμήματα. Στο πρώτο αρχικά συζητώνται οι κλασσικές προσεγγίσεις συλλογής απορριμμάτων: σήμανση και εκκαθάριση, σήμανση και συμπύκνωση, αντιγραφή και καταμέτρηση αναφορών, και στη συνέχεια γίνεται μία σύγκριση μεταξύ αυτών. Το δεύτερο τμήμα επικεντρώνεται σε πιο προηγμένες τεχνικές συλλογής απορριμμάτων: γενεαλογική, παράλληλη και ταυτόχρονη συλλογή απορριμμάτων. Τέλος δίνεται μια εισαγωγή στη συλλογή απορριμμάτων πραγματικού-χρόνου. Η εργασία αυτή βασίζεται σε μετάφραση και προσαρμογή στα ελληνικά τμημάτων του βιβλίου "The Garbage Collection Handbook: The Art of Automatic Memory Management", των R.Jones, A.Hosking και E.Moss. el
heal.abstract Whereas it was once confined to the realm of Lisp and functional languages, today garbage collection is an important part of the memory management system of many modern programming languages, imperative as well as declarative. Although garbage collection has had a reputation for sloth and for disrupting interactive programs, modern implementation techniques have reduced its overheads substantially, to the point where garbage collected heaps are a realistic option even for traditional languages like C. Despite the rapid growth in memory sizes of even the most modest computers, the supply of storage is not inexhaustible. Like all limited resources it requires careful conservation and recycling. Many programming languages today allow the programmer to allocate and reclaim memory for data whose lifetimes are not determined by lexical scope. Such data is said to be dynamically allocated. Dynamic memory may be managed explicitly by the programmer through invocations of built-in or library procedures that allocate storage and that dispose or free that storage when it is no longer needed. Manual reclamation of dynamically managed storage is often unsatisfactory. The alternative is to devolve responsibility for dynamic memory management to the program's run-time system. The programmer must still request dynamically allocated storage to be reserved but no longer needs to determine when that memory is no longer required: it is recycled automatically. Garbage collection, the main topic of this thesis, is precisely this: the automatic management of dynamically allocated storage. The purpose of this thesis is to become a point of reference for readers interested in learning about automatic memory management. The introductory chapter first examines and compares automatic memory management and explicit memory management, then presents the metrics under which different garbage collection schemes are compared and finally defines the notion of the allocator, collector and mutator. The rest of the thesis is organized in two parts. The first initially discusses the classical garbage collection approaches. We examine mark-sweep, mark-compact, copying and reference counting and then give a comparison between them. The second part focuses on more advanced garbage collection techniques. We examine generational, parallel and concurrent garbage collection. Finally, an introduction to real-time garbage collection is given. This thesis is based on the translation and adaptation to Greek of parts of the book "The Garbage Collection Handbook: The Art of AutomaticMemory Management", by R.Jones, A.Hosking and E.Moss. en
heal.advisorName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Σαγώνας, Κωνσταντίνος el
heal.committeeMemberName Κοντογιάννης, Κωνσταντίνος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού el
heal.academicPublisherID ntua
heal.numberOfPages 193 σ.
heal.fullTextAvailability true


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα