Virtuelle Adressbereich eines Prozesses

Kurz gesagt: ist der virtuelle Adressraum eines Prozesses zusammenhängenden?

Ich muss wissen, etwas über eine virtuelle Adresse zugeordnet Prozess, durch den kernel. Bitte korrigieren Sie mich, wenn ich falsch bin, wie ich gehen.

Auf die Prozess-Erstellung, der kernel zugewiesenen virtuellen Speicher für den Prozess und speichert die beginnt und endet der virtuellen Adressen der verschiedenen Segmente des Prozesses in der mm_struct im task_struct.

Nun sagen die einen Prozess ausgeführt hat, den heap und die Erhöhung der heap-Größe.Anrufe brk().

Wenn der virtuelle Adressbereich zusammenhängend ist, ist die neu zugewiesenen Stück heap zur Verfügung gestellt von außerhalb der Bandbreite reserviert wurde ursprünglich für diesen Prozess? Oder ist es auf eine Weise verteilt, dass das neue Stück ist neben dem original ein. Was, wenn kein Platz vorhanden ist für Sie, dass (weil die memory-mapped-segment liegt dort). wie ist es im Auge behielten?
Wenn der virtuelle Adressbereich nicht zusammenhängend ist, wie funktioniert das vm_struct verfolgen der verschiedenen Abschnitte der Adresse reicht für den heap (oder einem anderen segment)?

Können Sie bitte löschen Sie mein Konzept auf?

InformationsquelleAutor suppie | 2011-05-08
Schreibe einen Kommentar