Betriebssysteme (17) - virtual memory (virtueller Hauptspeicher) by ozelot47

View this thread on steempeak.com
· @ozelot47 ·
$3.96
Betriebssysteme (17) - virtual memory (virtueller Hauptspeicher)
In diesem Abschnitt möchte ich die Technik des sogenannten **virtuellen Speichers (virtual memory)** zur Hauptspeicherverwaltung darstellen, die heute große Bedeutung erlangt hat und das in praktisch allen modernen Betriebssystemen implementiert ist.

Für die Programmierer ist die Verwendung virtuellen Speichers sehr angenehm: Sie können beliebig große logische Adressräume verwenden, ohne auf mögliche physische Grenzen achten zu müssen. Ein bereiter Prozess wird rechnend gemacht, auch wenn nicht alle seine Seiten in Seitenrahmen des Hauptspeichers stehen; die fehlenden Seiten stehen im Sekundärspeicher und sind in der Seitentabelle entsprechend markiert. Ein Zugriff auf eine Seite, die nicht im Hauptspeicher steht, wird als **Seitenfehler** bezeichnet.

Wie kann die MMU wissen, ob eine Seite im Hauptspeicher vorhanden ist, wenn sie in der Seitentabelle nach der Seitenrahmennummer sucht?
Dazu wird in der Seitentabelle für jeden Eintrag zusätzlich ein **present-Bit** angelegt, das zeigt, ob die Seite im Hauptspeicher vorliegt. Im Fall, dass die Seite nicht im Hauptspeicher vorhanden ist, löst die MMU eine Software-Unterbrechung aus; Die fehlende Seite wird von der Festplatte gelesen, danach kann der Prozess  weiterrechnen. Diese Technik wird als **demand paging** bezeichnet, bei der eine Seite erst in den Hauptspeicher eingelagert wird, wenn sie auch gebraucht wird.

Wenn für einen Prozess nur eine bestimmte Anzahl von Seitenrahmen reserviert sind, kann es beim Einlagern einer Seite vorkommen, dass kein Rahmen mehr frei ist. Dann muss eine andere Seite in den Sekundärspeicher ausgelagert werden. Für die Wahl der auszulagernden Seite gibt es verschiedene Strategien;

* Die **optimale Strategie** lagert diejenige Seite aus, die erst am weitesten in der Zukunft wieder benötigt wird, um künftige Seitenfehler möglichst zu vermeiden. Leider steht diese Information in der Regel nicht zur Verfügung. Man muss sich daher mit sub-optimalen Strategien begnügen.

* Die Strategie **LRU (least recently used)** lagert die Seite aus, deren letzte Benutzung am weitesten zurückliegt. LRU ist eine Annährung der optimalen Strategie.

* Es soll möglichst eine Seite ausgelagert werden, die seit der letzten Einlagerung nicht mehr verändert wurde. Der Vorteil in diesem Fall ist, dass die Seite nicht mehr auf den Sekundärspeicher zurückgeschrieben zu werden braucht. Dazu wird ein zusätzliches **dirty-Bit** zu jeder Seite in der Seitentabelle angelegt, das bei jeder Schreiboperation gesetzt wird. Dadurch kann festgestellt werden, ob die Seite verändert wurde.

Quelle

https://cseweb.ucsd.edu/classes/wi14/cse141/pdf/08/12_CSE141-MBT-Virtual-Memory.ppt.pdf, p. 3ff [letzter Zugriff: 20.11.2019, 16:44]
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 295 others
👎  , ,
properties (23)
post_id81,915,773
authorozelot47
permlinkbetriebssysteme-17-virtual-memory-virtueller-hauptspeicher
categoryde-stem
json_metadata{"tags":["de-stem","deutsch","steemstem","stem","palnet"],"links":["https:\/\/cseweb.ucsd.edu\/classes\/wi14\/cse141\/pdf\/08\/12_CSE141-MBT-Virtual-Memory.ppt.pdf"],"app":"steemit\/0.1","format":"markdown"}
created2019-11-21 11:19:18
last_update2019-11-21 11:19:18
depth0
children2
net_rshares14,934,034,564,239
last_payout2019-11-28 11:19:18
cashout_time1969-12-31 23:59:59
total_payout_value2.003 SBD
curator_payout_value1.954 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length2,718
author_reputation15,369,745,159,352
root_title"Betriebssysteme (17) - virtual memory (virtueller Hauptspeicher)"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (362)
@curationvoter ·
<sub>Danke für deinen Beitrag. Eine tolle Woche wünsch ich dir, vor allem wenig stress</sub>
👍  
properties (23)
post_id81,915,908
authorcurationvoter
permlinkre-betriebssysteme-17-virtual-memory-virtueller-hauptspeicher-20191121t112612z
categoryde-stem
json_metadata{"app":"beem\/0.20.16"}
created2019-11-21 11:26:12
last_update2019-11-21 11:26:12
depth1
children0
net_rshares11,529,418,942
last_payout2019-11-28 11:26:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length93
author_reputation11,162,919,111,508
root_title"Betriebssysteme (17) - virtual memory (virtueller Hauptspeicher)"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@steemstem ·
re-ozelot47-betriebssysteme-17-virtual-memory-virtueller-hauptspeicher-20191122t063254262z
<div class='text-justify'> <div class='pull-left'> <center> <br /> <img width='200' src='https://res.cloudinary.com/drrz8xekm/image/upload/v1553698283/weenlqbrqvvczjy6dayw.jpg'> </center>  <br/> </div> 

This post has been voted on by the **SteemSTEM curation team** and voting trail. It is elligible for support from @curie and @minnowbooster.<br /> 

If you appreciate the work we are doing, then consider supporting our witness [@stem.witness](https://steemconnect.com/sign/account_witness_vote?approve=1&witness=stem.witness). Additional witness support to the [curie witness](https://steemconnect.com/sign/account_witness_vote?approve=1&witness=curie) would be appreciated as well.<br /> 

For additional information please join us on the [SteemSTEM discord]( https://discord.gg/BPARaqn) and to get to know the rest of the community!<br />

Please consider using the <a href='https://www.steemstem.io'>steemstem.io</a> app and/or including @steemstem in the list of beneficiaries of this post. This could yield a stronger support from SteemSTEM.
👍  
properties (23)
post_id81,938,439
authorsteemstem
permlinkre-ozelot47-betriebssysteme-17-virtual-memory-virtueller-hauptspeicher-20191122t063254262z
categoryde-stem
json_metadata{"app":"steemstem-bot"}
created2019-11-22 06:32:57
last_update2019-11-22 06:32:57
depth1
children0
net_rshares11,765,646,437
last_payout2019-11-29 06:32:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,050
author_reputation229,673,617,633,863
root_title"Betriebssysteme (17) - virtual memory (virtueller Hauptspeicher)"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)