Berechnung des virtuellen Speichers

Neue Frage »

Auf diesen Beitrag antworten »
freaksdd Berechnung des virtuellen Speichers

Hallo Wink ,

ich hab mich kurzerhand hier mal angemeldet, da ich hoffe ich die richtige Antwort zu finden. Viele Google Suchen und Recherchen später, kamen meine Kommilitonen und ich zu keinem konkreten Ergebnis.
Ich hab hier eine Prüfungsfrage die es zu beantworten gilt:

61. Welcher virtuelle (byte-orientierte) Adressraum steht einem Programm in einem 64-Bit-Doppelprozessorsystem mit 256 MByte Hauptspeicher zur Verfügung, wenn dieses gleichzeitig noch 15 weitere Programme ausführt? Begründen Sie Ihre Aussage!

Was wir herausgefunden haben:
  • Der virtuelle Adressraum der zur Verfügung steht ist vom vorhandenen physischen Speicher unabhängig.
  • 2^64 Byte ist der maximale Adressraum
  • mit zwei Kernen (CPU's) können maximal nur 2 Prozesse parallel abgearbeitet werden, satt weiteren 15


Uns ist bekannt, dass der Professor Lehrer gerne auch mal eine "Fun"-Frage mit einbaut. Leider finden wir keine Berechnung im Script. Von daher vermuten wir das es sich hier um solche eine Frage handelt.

Könnt ihr uns helfen die Frage zu beantworten?

Danke schon mal Augenzwinkern
 
Auf diesen Beitrag antworten »
eulerscheZahl

Ich kann die Frage leider auch nicht beantworten. Aber ich kann dir widersprechen.
Der Speicher wird nicht byteweise adressiert, sondern in Blöcken von 64 Bit (da 64 Bit Prozessor, sonst könntest du ja das selbe Byte mit verschiedenen Adressen auslesen). Also 8 * 2^64 Byte.

Man kann auch mehr als zwei Prozesse gleichzeitig ausführen, das ist auch üblich. Die Prozesse kriegen dann nicht alle gleichzeitig CPU Zeit zur Verfügung, sondern werden immer wieder pausiert, damit ein anderer Prozess laufen kann. Aber die Programme können trotzdem alle gleichzeitig Arbeitsspeicher verwenden.
Auf diesen Beitrag antworten »
freaksdd

Danke erstmal für deine schnelle Antwort.

nach ein wenig mehr Recherche ist mir eine Folie Uni in Paderborn ins Auge gefallen, welche schon eine fertige Berechnung zeigt: (siehe Angang, wenn es denn geklappt hat)
Quelle: w_w_w2.cs.uni-paderborn_de/cs/ag-kao/de/teaching/ss05/bs1/script/BS_SS05_ka
p3_2seiten.pdf
Folienseite: 3/15 (leider sagt mir das Forum das ich noch keine URL einfügen darf)

Da wird dargestellt das ein 32-Bit-System 3 GB virtuellen Adressraum verwalten kann.
Alles ist in Abhängigkeit der Seiten (Paging).
Da mir leider keine weiteren Daten zur Größe der Seiten-Größe vorliegen, kann ich dementsprechend nur davon ausgehen, was ein Prozessor an Speicher verwalten kann, unabhängig von der Größe die real vorhanden ist!? ist das korrekt!?

Da Prozessoren, je nach System, eigentlich immer den selben Speicher nutzen (Cache), ist es ja eigentlich egal wieviel Kerne das System besitzt. Beide nutzen den selben Adressraum.

Wegen den anderen Programmen. Es geht ja hier um einen einzigen Moment. Wir wissen weder Wie groß die Programme sind weder ob diese gerade im virtuellen Adressraum liegen. Der Prozessor, bzw die MMU, legt ja nur die Informationen in den virtuellen Speicher, die gerade Abgearbeitet werden müssen. Sprich, wenn das eine Programm die absolute Priorität besitzt, können die anderen Programme vernachlässigt werden.
So haben ich das zumindest in der Vorlesung verstanden. Ist das denn so korrekt?
Auf diesen Beitrag antworten »
freaksdd

Ich hab die Frage jetzt offiziell meinem Professor gestellt und ohne weitere Begründung war die Lösung:

2^64 Byte ist der verfügbare virtuelle Adressraum!

Unabhängig von:
- Mehrkern-Systemen, weil die alle den selben Adressraum verwenden
- 256 MB Hauptspeicher, da physikalischer Speicher
- zusätzlich arbeitenden Prozessen, da Priorität eines Prozesses gesetzt werden kann. (der Rest liegt im Hauptspeicher/Cache und wird nachgeladen bei Gebrauch) Somit kann einem Prozess der ganze virtuelle Raum zu Verfügung gestellt werden.
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »