Tartalomjegyzék:
- Meghatározás - Mit jelent a szomszédos memória-allokáció?
- A Techopedia magyarázza a Szomszédos Memória Allokációt
Meghatározás - Mit jelent a szomszédos memória-allokáció?
A szomszédos memória allokáció egy klasszikus memória allokációs modell, amely folyamat egymást követő memória blokkokat rendel hozzá (azaz egymást követő címekkel rendelkező memória blokkokat).
A szomszédos memóriaelosztás az egyik legrégebbi memóriaelosztási séma. Ha egy folyamatot végre kell hajtani, akkor a memóriát a rendszer kéri. A folyamat méretét összehasonlítják a folyamat végrehajtásához rendelkezésre álló szomszédos főmemória mennyiségével. Ha elegendő szomszédos memória található, akkor a folyamatnak memóriát kell kiosztania a végrehajtás megkezdéséhez. Egyébként hozzáadódik a várakozási folyamatok sorához, amíg elegendő szabad folytonos memória áll rendelkezésre.
A Techopedia magyarázza a Szomszédos Memória Allokációt
A szomszédos memóriaelosztási séma az operációs rendszerekben megvalósítható két regiszter, az úgynevezett alap- és határregiszterek segítségével. Amikor egy folyamat végrehajtódik a fő memóriában, az alap regisztere tartalmazza annak a memóriahelynek a kezdőcímét, amelyben a folyamat végrehajtódik, míg a folyamat által felhasznált bájtok mennyisége a limit regiszterben van tárolva. A folyamat nem utal közvetlenül a megfelelő memóriahely tényleges címére. Ehelyett relatív címet használ az alap-regiszteréhez viszonyítva. A program által hivatkozott összes címet virtuális címnek kell tekinteni. A CPU előállítja a logikai vagy virtuális címet, amelyet a memóriakezelő egység (MMU) segítségével valódi címmé konvertál. Az alap címregisztert az MMU használja a címek fordítására. Így a fizikai címet a következőképpen kell kiszámítani:
-
Fizikai cím = Alap regisztrációs cím + Logikai cím / Virtuális cím
Ellenőrizzük a folyamat által hivatkozott memóriahelyek címeit, hogy azok nem utalnak-e a szomszédos folyamat címére. Ezt a feldolgozási biztonságot az alapul szolgáló operációs rendszer kezeli.
A szomszédos memóriaelosztás egyik hátránya, hogy a multi-programozás mértéke csökken a szabad memóriát váró folyamatok miatt.
