Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- Berechnung des virtuellen Speichers (http://www.informatikerboard.de/board/thread.php?threadid=3380)


Geschrieben von freaksdd am 06.01.2017 um 15:13:

  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:


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



Geschrieben von eulerscheZahl am 06.01.2017 um 15:51:

 

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.



Geschrieben von freaksdd am 09.01.2017 um 11:03:

 

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?



Geschrieben von freaksdd am 12.01.2017 um 13:09:

 

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.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH