Many programming languages utilize reference pointers in computer code. Furthermore, some of these programming languages perform memory management in the form of garbage collection. Once such language is Java. During the execution of a garbage collection routine, the computer may need to locate all the variables containing reference values. The present invention introduces a method for run-time tracking of object references in computer code and determining which variables contain references to objects at garbage collection sites. The method of the present invention first creates a bit vector in memory. The bit vector is then initialized. Second, each variable declared in the computer program that may be used to store a reference value is assigned a unique bit within this bit vector. Each bit is maintained to indicate whether the variable it is assigned to is currently storing a reference value. Specifically, when a variable is assigned a reference value, the corresponding bit in the bit vector is set. When a variable is assigned a non-reference value, the corresponding bit in the bit vector is cleared.

Πολλές γλώσσες προγραμματισμού χρησιμοποιούν τους δείκτες αναφοράς στον κώδικα υπολογιστών. Επιπλέον, μερικές από αυτές τις γλώσσες προγραμματισμού εκτελούν τη διαχείριση μνήμης υπό μορφή συλλογής απορριμάτων. Μόλις τέτοια γλώσσα είναι Ιάβα. Κατά τη διάρκεια της εκτέλεσης μιας ρουτίνας συλλογής απορριμάτων, ο υπολογιστής μπορεί να πρέπει να εντοπίσει όλες τις μεταβλητές που περιέχουν τις τιμές αναφοράς. Η παρούσα εφεύρεση εισάγει μια μέθοδο για την καταδίωξη χρόνου εκτέλεσης των αναφορών αντικειμένου στον κώδικα υπολογιστών και τον καθορισμό ποιου μεταβλητές περιέχουν τις αναφορές στα αντικείμενα επί των τόπων συλλογής απορριμάτων. Η μέθοδος της παρούσας εφεύρεσης δημιουργεί αρχικά λίγο διανυσματικό στη μνήμη. Το διάνυσμα κομματιών μονογράφεται έπειτα. Δεύτερον, σε κάθε μεταβλητή που δηλώνεται στο πρόγραμμα υπολογιστών που μπορεί να χρησιμοποιηθεί για να αποθηκεύσει μια αξία αναφοράς ορίζεται ένα μοναδικό κομμάτι μέσα σε αυτό το διάνυσμα κομματιών. Κάθε κομμάτι διατηρείται για να δείξει εάν η μεταβλητή που ορίζεται αποθηκεύει αυτήν την περίοδο μια αξία αναφοράς. Συγκεκριμένα, όταν ορίζεται σε μια μεταβλητή μια αξία αναφοράς, το αντίστοιχο κομμάτι στο διάνυσμα κομματιών τίθεται. Όταν σε μια μεταβλητή ορίζεται μια αξία μη-αναφοράς, το αντίστοιχο κομμάτι στο διάνυσμα κομματιών καθαρίζεται.

 
Web www.patentalert.com

< (none)

< Real time processor optimized for executing JAVA programs

> Process for transparently enforcing protection domains and access control as well as auditing operations in software components

> (none)

~ 00020