Objekt

 Documents

 31 views
of 10
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
11 Speicherverwaltung verwaltendes System verwalteter Speicher enthält Laufzeitsystem Adreßraum Codebereich Instruktionen Keller temporäre Variable Halde…
Share
Transcript
11 Speicherverwaltung verwaltendes System verwalteter Speicher enthält Laufzeitsystem Adreßraum Codebereich Instruktionen Keller temporäre Variable Halde Objekte Betriebssystem Arbeitsspeicher Seiten/Segmente Externer Speicher Blöcke 11.1 Explizite Speicherfreigabe auf der Halde - z.B. in Pascal, Modula, C, C++, ... VAR x,y,z: POINTER TO T; a,b: T; BEGIN NEW(x); y := x; ... DISPOSE(x); bewirkt Speicherfreigabe und x=nil ... NEW(z); a := y^; liefert eventuell Müll y^:= b; zerstört eventuell z ... Speicherfreigabe  y enthält hängenden Verweis (dangling reference) Unterlassene Speicherfreigabe  Speicherleck (memory leak) 11.2 Automatische Speicherfreigabe für nicht mehr erreichbare Objekte im Keller ohnehin; auf der Halde: Verweiszähler (reference counts) versagt bei zyklischen Geflechten Speicherbereinigung (garbage collection), sobald die Halde überläuft (aber auch nebenläufig möglich): alle nicht vom Keller aus erreichbaren Objekte werden gelöscht, d.h. der von ihnen belegte Platz wird freigegeben Klassische Speicherbereinigung in 2 Phasen: Mark & Sweep 1. Mark: Ermittlung aller erreichbaren Objekte: Ausgehend von den Verweisen im Keller werden alle über Verweise erreichbaren Objekte markiert (= Graph-Traversierung in Präordnung!) 2. Sweep: Speicherfreigabe Die nicht markierten Objekte werden gelöscht, bei den markierten Objekten werden die Marken gelöscht 11.3 Freispeicherverwaltung durch unsichtbare Operationen allocate und deallocate interface Storage {// Modell: Bitliste s (0 = „frei“, 1 = „belegt“) int allocate(int size); // Vor.: s enthält einen freien Abschnitt der Länge size. // Eff.: Dieser Abschnitt ist jetzt belegt; dessen Index wird als // Ergebnis geliefert und ist als Adresse eines neu // zugeteilten Speicherbereichs verwendbar. void deallocate(int address, int size); // Vor.: - // Eff.: Der bei address beginnende Abschnitt der Länge size // ist frei. } Implementierung: Repräsentation der Freispeicherliste als 1 Bitliste oder durch 2 Blockverkettung oder mit 3 Buddy System Suchstrategie bei 1, 2 für allocate : + First-Fit - Best-Fit - Worst-Fit 11.4 Persistente Objekte Unterschiedliche Lebensdauern von Objekten: kurzlebig Keller transient Halde Betriebssystem-Kern Dateisystem, Datenbanksystem persistent Archivsystem langlebig wünschenswert: Identifizierung der Begriffe Objekt und Datei: Table myPhones = new HashTable(); ... Table allPhones = get Table from „~telekom/berlin“; // eventuell Ausnahme ... ... myPhones.enter(„Rojas“, allPhones.lookup(„Rojas“)); ... put myPhones to „~lohr/phonebook“; ... Rückblick ALP III Datenabstraktion und objektorientierte Programmierung Klassen, Vererbung, Datenabstraktion, Spezifikation, Verifikation Datenstrukturen und Algorithmen Folgen, Bäume, Mengen, Relationen, Graphen Datenspeicherung Speicherverwaltung, Persistenz Vorschau: anknüpfende Veranstaltungen SS Software-Praktikum ( div. Java-Bibliotheken) WS Entwurf und Analyse von Algorithmen Nichtsequentielle Programmierung Softwaretechnik und natürlich viele andere ... Viel Spaß! Viel Erfolg!
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks