Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Silizium185

Praktikant

  • "Silizium185" started this thread

Posts: 4

Date of registration: Oct 18th 2010

1

Monday, October 18th 2010, 10:35pm

Fragmentierter Adressraum und Adresstypen von Von Neumann

Hallo,

ich brauche mal ein paar Hilfestellungen.
Es geht um die Von Neumann Architektur und ich such jetzt schon seit 2 std nach einer passenden Antwort und wende mich jetzt mal nach euch.

Also mein Prof hat mir folgenden Aufgabezettel gegeben:
Thema: Adressraum
Der sog. Von-Neumann-Rechner benutzt für Code und Daten einen gemeinsamen Speicher, weil jede Speicherstelle über eine Adresse verfügt. Dabei ist der Adressraum die Menge aller möglichen Adressen.
Aufgabe 1: Welche Adressraumtypen können Sie benennen?
Stichwort: Erweiterter von-Neumann-Rechner.
Sind auch getrennte Adressräume denkbar?


Aufgabe 2: Was ist ein fragmentierter Adressraum?

Zu der ersten Frage hab ich lediglich nur lose infos gefunden. Wie z.B. dass der Speicher in gleichgroße Zellen unterteilt ist, die fortlaufend durchnummeriert sind. über die Nummer (Adresse) einer Speicherzelle kann deren Inhalt abgerufen oder verändert werden. Aber das ist ja nicht wirklich, dass was der Prof hören will :-(

Zu der Frage "Sind auch getrennte Adressräume denkbar" habe ich mir gedacht, dass das nicht funktionieren kann, weil die von Neumann Architektur sequentiell arbeitet. Das bedeutet, dass die Daten aus dem Speicher nicht getrennt werden dürfen. Lieg ich zumindest da richtig??

Naja vlt kann mir ja einer von euch helfen.

Schonmal danke

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

2

Tuesday, October 19th 2010, 12:44am

Also ich würd dir gern helfen, aber mit den bisherigen Infos ist das etwas schwierig. Um welches Fach geht es denn hier? Wie detailliert soll die Antwort sein? Wenn es um eine mündliche Prüfung geht, dann kannst du solche Fragen stellen, falls du die Aufgabenstellung nicht verstehst.

Gibt es denn von deinem Prof (wer eigentlich?) kein Skript zu dem Thema, wo solche Dinge erläutert sind?


Aufgabe 1: Welche Adressraumtypen können Sie benennen?
Gegenfrage: Was sind "Addressraumtypen"? Ein Von-Neumann-Rechner hat nur genau einen Adressraum. Es gibt verschiedene Adressierungsmodi: Byteadressierung, Wortadressierung. Möglicherweise ist hier auch Programmadressraum (Programmspeicher) und Datenadressraum (Datenspeicher) gemeint. Weiterhin kann es noch einen High- oder Low-Adressbereiche oder I/O-Adressbereiche geben, aber das ist seeeehr architekturspezifisch und daher wahrscheinlich nicht das was gemeint ist. Vielleicht sowas?

Stichwort: Erweiterter von-Neumann-Rechner.
Hab ich noch nie von gehört. Wie soll der erweitert sein?

Sind auch getrennte Adressräume denkbar?
Was soll getrennt werden? Ist aus der Frage allein nicht ersichtlich. Falls Daten und Instruktionen getrennt werden soll: ja, das ist möglich -- heißt dann Harvard-Architektur.

Aufgabe 2: Was ist ein fragmentierter Adressraum?
Sagt mir nicht viel... das Einzige was mir dazu einfällt ist die Fragmentierung die beim dynamischen Erzeugen und Zerstören von vielen Datenstrukturen im Speicher entsteht. Das ist aber ein Implementierungsproblem und hat nichts mit Architekturen oder Adressräumen zu tun.

Das bedeutet, dass die Daten aus dem Speicher nicht getrennt werden dürfen.
Was soll nicht getrennt werden? Die Daten? Wovon? Ergibt das Sinn? Siehe oben, getrennte Adressbereiche für Daten und Instruktionen sind möglich.

sasa

Junior Schreiberling

  • "sasa" is male

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

3

Tuesday, October 19th 2010, 10:02am


Aufgabe 2: Was ist ein fragmentierter Adressraum?
Sagt mir nicht viel... das Einzige was mir dazu einfällt ist die Fragmentierung die beim dynamischen Erzeugen und Zerstören von vielen Datenstrukturen im Speicher entsteht. Das ist aber ein Implementierungsproblem und hat nichts mit Architekturen oder Adressräumen zu tun.

Wenn wirklich nur nach der Definition eines fragmentierten Adressraums gefragt ist, muss man ja eigentlich noch keine bestimmte Implementierung betrachten (auch wenn es dadurch erst zu diesem Problem kommt).

Also wenn man annimmt, dass ein Adressraum eine Menge (beliebiger) Speicheradressen sein kann, dann würde ich sagen, ein nicht-fragmentierter Adressraum ist zusammenhängend (das heißt der Adressraum deckt ein bestimmtes Intervall von Adressen vollständig ab) und ein fragmentierter ist entsprechend nicht zusammenhängend (eben wie eine fragmentierte Datei auf der Festplatte).

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

4

Tuesday, October 19th 2010, 10:18am

Wenn wirklich nur nach der Definition eines fragmentierten Adressraums gefragt ist, muss man ja eigentlich noch keine bestimmte Implementierung betrachten (auch wenn es dadurch erst zu diesem Problem kommt).

Also wenn man annimmt, dass ein Adressraum eine Menge (beliebiger) Speicheradressen sein kann, dann würde ich sagen, ein nicht-fragmentierter Adressraum ist zusammenhängend (das heißt der Adressraum deckt ein bestimmtes Intervall von Adressen vollständig ab) und ein fragmentierter ist entsprechend nicht zusammenhängend (eben wie eine fragmentierte Datei auf der Festplatte).
Das was du beschreibst ist nicht das was ich meinte. Bei dem Phänomen, dass man lauter Datenstrukturen über den Speicher verstreut hat, mit freiem Speicherplatz dazwischen, ist jede Datenstruktur für sich gesehen immer noch zusammehängend. Eben nicht wie bei einer Datei auf einer Festplatte... das ginge zwar, wäre aber ziemlich ineffizient weil man entweder für jede Speicheradresse auch speichern müsste wo sie eigentlich liegt, oder ein großes Dictionary bräuchte das Informationen zu allen Fragmenten jeder Datenstruktur hält. Das tut meines wissens nach keine einzige Implementierung -- ein Compacting Garbage Collector behebt das Problem zwar, aber durch einen komplett anderen Ansatz, so dass der Speicher hinterher eben nicht mehr fragmentiert ist.

Aber das Ganze hat dann immer noch absolut nichts mit Adressräumen auf Hardwareebene oder von-Neumann-Rechnern zu tun. Da liegen mindestens vier Abstraktionebenen dazwischen: die MMU, der Betriebssystemkern, der Compiler und die Laufzeitumgebung...

sasa

Junior Schreiberling

  • "sasa" is male

Posts: 133

Date of registration: Oct 24th 2005

Location: Celle

Occupation: Software Engineer

5

Tuesday, October 19th 2010, 10:49am

Wenn wirklich nur nach der Definition eines fragmentierten Adressraums gefragt ist, muss man ja eigentlich noch keine bestimmte Implementierung betrachten (auch wenn es dadurch erst zu diesem Problem kommt).

Also wenn man annimmt, dass ein Adressraum eine Menge (beliebiger) Speicheradressen sein kann, dann würde ich sagen, ein nicht-fragmentierter Adressraum ist zusammenhängend (das heißt der Adressraum deckt ein bestimmtes Intervall von Adressen vollständig ab) und ein fragmentierter ist entsprechend nicht zusammenhängend (eben wie eine fragmentierte Datei auf der Festplatte).
Das was du beschreibst ist nicht das was ich meinte. Bei dem Phänomen, dass man lauter Datenstrukturen über den Speicher verstreut hat, mit freiem Speicherplatz dazwischen, ist jede Datenstruktur für sich gesehen immer noch zusammehängend. Eben nicht wie bei einer Datei auf einer Festplatte... das ginge zwar, wäre aber ziemlich ineffizient weil man entweder für jede Speicheradresse auch speichern müsste wo sie eigentlich liegt, oder ein großes Dictionary bräuchte das Informationen zu allen Fragmenten jeder Datenstruktur hält. Das tut meines wissens nach keine einzige Implementierung -- ein Compacting Garbage Collector behebt das Problem zwar, aber durch einen komplett anderen Ansatz, so dass der Speicher hinterher eben nicht mehr fragmentiert ist.

Aber das Ganze hat dann immer noch absolut nichts mit Adressräumen auf Hardwareebene oder von-Neumann-Rechnern zu tun. Da liegen mindestens vier Abstraktionebenen dazwischen: die MMU, der Betriebssystemkern, der Compiler und die Laufzeitumgebung...

ok, solange wir nicht wissen um welche Abstraktionsebene es geht, macht die Diskussion vermutlich nicht allzu viel Sinn...

Ich dachte, es ginge um die physischen Adressen.

EDIT: Ich habe gerade noch mal eine Folie aus der Betriebssysteme-Vorlesung rausgesucht. Die beschreibt ganz gut was ich im Sinn hatte:

This post has been edited 1 times, last edit by "sasa" (Oct 19th 2010, 11:18am)


Silizium185

Praktikant

  • "Silizium185" started this thread

Posts: 4

Date of registration: Oct 18th 2010

6

Tuesday, October 19th 2010, 10:44pm

Hi,
also die Vorlesung heißt Betriebssysteme und der Prof heißt Brosig. Mit den könnt ihr wahrscheinlich nicht viel anfangen, weil er an einer FH im Norden Vorlesungen gibt ;-)
Sein Skript ist nicht alzutoll. Also da steht nicht wirklich was drin, was ich verwenden kann. Folien die auf die Lösung der Fragen hätten schließen können, nimmt er raus. Naja aber was solls. Nee keine mündliche Prüfung, aber bewertete Übungen.
Vom erweiteren Neumann hatte ich auch noch nichts gehört. Hatte gegoogelt, kommt aber nichts vernünftiges raus und dachte, dass es euch bekannt sein könnte.

Ich hatte sowas mir gedacht mit dem trennen von Daten:
Also die Daten/Prozesse werden doch vollständig in den Speicher geladen. Der Speicher muss aber genügend Platz haben. Hat er genügend Platz, ist das alles kein Problem. Hat der Speicher keinen Platz, so muss dieser den Prozess z.B. auf die Festplatte auslagern.
Stellen wir uns den Speicher nun als eine 5 Kammer Einheit vor, wovon 2,3,4 belegt sind und jetzt ein neuer Prozess gestartet wird, der zwei Einheiten benötigt, so kann der Prozess nicht getrennt werden. Also das eine Einheit in die erste Kammer gespeichert und die zweite Einheit in die 5 Einheit.

Ich hoffe ich schreib hier grad total keinen blödsinn. Das Thema ist noch relativ neu für mich und fühle mich da auch noch nicht ganz sicher.

jab

Würstchen- und Bierschnorrer

  • "jab" is male

Posts: 149

Date of registration: Oct 26th 2007

7

Tuesday, October 19th 2010, 10:56pm

Hi,

ich schätze mal es geht um Memory Address Translation oder? Dazu findest du in Wikipedia recht viel: http://en.wikipedia.org/wiki/Virtual_address_space oder http://en.wikipedia.org/wiki/Virtual_memory.


Gruß,
Jan
:thumbup:

Silizium185

Praktikant

  • "Silizium185" started this thread

Posts: 4

Date of registration: Oct 18th 2010

8

Wednesday, October 20th 2010, 5:51pm

ja diese beiden Begriffe sagen mir was ;-)
Die Artikel kann ich mir ja gleich mal durchlesen.


Andere Frage. Kann mit der Frage "Welche Adressraumtypen können Sie benennen" auch der RAM und ROM gemeint sein?? Oder fallen diese beiden Begriffe nicht unter Adressraumtypen?

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

9

Wednesday, October 20th 2010, 5:57pm

Andere Frage. Kann mit der Frage "Welche Adressraumtypen können Sie benennen" auch der RAM und ROM gemeint sein?? Oder fallen diese beiden Begriffe nicht unter Adressraumtypen?
Das sind eher (sehr grobe) Oberbegriffe für verschiedene Arten von Datenspeichern. Mit der Art der Adressierung hat das nichts zu tun.

EDIT: Nach dem Link von Jab: vielleicht sind hier "virtueller" und "realer/physischer" Adressraum gemeint?

This post has been edited 2 times, last edit by "Schokoholic" (Oct 20th 2010, 5:58pm)


Silizium185

Praktikant

  • "Silizium185" started this thread

Posts: 4

Date of registration: Oct 18th 2010

10

Monday, October 25th 2010, 11:08am

So nachdem ich nun bissel mehr mal gelesen habe, weiß ich jetzt, was mein Professor hören will.

Welche Arten von Adressraum gibt es?

Er will dort nur hören, dass wir einen klassischen Von Neumann haben, wo Daten/Prozesse und E/A in einem Speicher sind.
Erweiterter Von Neumann: Die E/A ist ausgegliedert. Daten und Prozesse sind weiterhin in einem Speicher.
Harvard: Daten, Programme und E/A sind seperat

So mal schauen was er sich mein Prof. sich in den nächsten Wochen einfallen lässt ;-)