Allokation (Informatik)

Unter Allokation versteht man in der Informatik die Reservierung von Hauptspeicher oder anderen Ressourcen zur eigenen Verwendung.

Inhaltsverzeichnis

Hintergrund

Bei der Entwicklung eingebetteter Systeme ist Allokation neben der Partitionierung und dem Scheduling eine Teilaufgabe bei der Strukturierung von Software unter Berücksichtigung von nicht-funktionalen Anforderungen. Die Allokation ordnet Softwareeinheiten bestimmte Rechnerressourcen zu. Ziele einer Allokation sind unter anderem die Minimierung der Gesamtkosten der Anwendung und der Kommunikation zwischen den Prozessen. Allokationsprobleme kann man mit Flussproblem-Algorithmen oder mit heuristischen Ansätzen lösen.

Im Kontext verteilter Datenbanken bezeichnet man als Allokation die Zuordnung von Datenfragmenten zu einem oder mehreren Rechnersystemen (Datenbankknoten).

Zeitpunkt der Allokation

Ein wesentliches Merkmal ist der Zeitpunkt der Allokation, da in den seltensten Fällen der Adressbereich des allozierten Speichers von dem Programmteil bestimmt werden kann, der ihn benutzt, und so die Zugriffsadressen entsprechend angepasst werden müssen. Man unterscheidet hier drei grundsätzliche Fälle:

  • Kompilierzeit: hier werden schon während eines Kompilierens (genauer: Linkens) des Programms Adressen zugewiesen. Dies ist heute nur noch bei ECUs üblich und möglich, da hier ein Betriebssystem mit allen Programmteilen und Treibern auf einmal kompiliert wird, und zur Laufzeit in der Regel keine Teile des Arbeitsspeichers zur nachträglichen Allokation zur Verfügung stehen.
  • Ladezeit: Nach dem Kompilieren und Linken ist eine ausführbare Datei entstanden, die direkt von einem Betriebssystem geladen werden kann (also kein Skript). Diese Datei enthält außer dem Maschinencode des Programms auch Informationen über dessen Speicherbedarf, den das Betriebssystem beim Laden alloziert und dessen Adressen es in das Programm schreibt.[1]
  • Laufzeit: Ein Programm kann während seiner Laufzeit über die Betriebssystemschnittstelle Speicher allozieren. Der Zugriff des Programms muss dann über die Adresse erfolgen, die das Betriebssystem ihm beim allozieren mitteilt.

Grundsätzlich ist es auch möglich, eine Adressfestlegung mit der Variablendeklaration im Programmcode vorzunehmen, also ein händisches Allozieren zu Programmierzeit. Von der Möglichkeit wird heute allerdings kaum noch Gebrauch gemacht, da für sämtliche Programmteile, die auf einem Rechenknoten (PC, ECU, …) ausgeführt werden (und also auf den gleichen Speicher zugreifen), Überschneidungen ausgeschlossen werden müssen, anstatt diese Aufgabe Linkern bzw. Betriebssystemen zu überlassen.

Sprachliches

Das zugehörige Verb lautet allozieren. In der Informatik wird zunehmend häufiger auch das Verb allokieren verwendet, das direkt vom englischen „allocate“ abgeleitet wurde. Der Rechtschreibduden gestattet diese letztere Schreibweise jedoch nicht.

Das Gegenteil von Allokation, also das Freigeben von Ressourcen, ist die Deallokation bzw. das Deallozieren.

Einzelnachweise

  1. Andrew S. Tanenbaum, James R. Goodman: Kapitel 7.4: Linking and Loading. In: Structured Computer Organization. 4. Auflage. Prentice Hall of India, New Delhi 2001, ISBN 81-203-1553-7, S. 506ff.

Weblinks

Wiktionary Wiktionary: allokieren – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Allokation — Unter Allokation (von lat. locare, mlat. allocare ‚platzieren‘, im weiteren Sinne ‚zuteilen‘) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Insbesondere versteht man darunter: Reservieren von… …   Deutsch Wikipedia

  • Allokieren — Unter Allokation (lat.: locare, mlat.: allocare „platzieren“, im weiteren Sinne „zuteilen“) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Kennzeichnend ist, dass eine bereits allozierte Ressource… …   Deutsch Wikipedia

  • Allozierung — Unter Allokation (lat.: locare, mlat.: allocare „platzieren“, im weiteren Sinne „zuteilen“) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Kennzeichnend ist, dass eine bereits allozierte Ressource… …   Deutsch Wikipedia

  • Deallokieren — Unter Allokation (lat.: locare, mlat.: allocare „platzieren“, im weiteren Sinne „zuteilen“) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Kennzeichnend ist, dass eine bereits allozierte Ressource… …   Deutsch Wikipedia

  • Güterallokation — Unter Allokation (lat.: locare, mlat.: allocare „platzieren“, im weiteren Sinne „zuteilen“) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Kennzeichnend ist, dass eine bereits allozierte Ressource… …   Deutsch Wikipedia

  • Ressourcenallozierung — Unter Allokation (lat.: locare, mlat.: allocare „platzieren“, im weiteren Sinne „zuteilen“) versteht man allgemein die Zuordnung von beschränkten Ressourcen zu potentiellen Verwendern. Kennzeichnend ist, dass eine bereits allozierte Ressource… …   Deutsch Wikipedia

  • Media Oriented Systems Transport — Der MOST Bus (Media Oriented Systems Transport, (Daten )Transport in medien orientierten Systemen) ist ein Netzwerk für Multimediadaten. Es handelt sich dabei um ein serielles Bus system zur Übertragung von Audio , Video , Sprach und… …   Deutsch Wikipedia

  • Most-bus — Der MOST Bus (Media Oriented Systems Transport, (Daten )Transport in medien orientierten Systemen) ist ein Netzwerk für Multimediadaten. Es handelt sich dabei um ein serielles Bus system zur Übertragung von Audio , Video , Sprach und… …   Deutsch Wikipedia

  • Bitmaskierung — In der Informatik bezeichnet eine Bitmaske eine mehrstellige Binärzahl, mit der Informationen aus einer anderen Binärzahl gelesen oder gespeichert werden können. Inhaltsverzeichnis 1 Methoden 1.1 Bit auslesen 1.2 0 Bit setzen 1.3 1 Bit setzen …   Deutsch Wikipedia

  • .NET-Framework — Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”