Különbség a lapozás és a szegmentálás között

A memóriakezelés az operációs rendszer egyik alapvető funkciója. A modern operációs rendszerek lehetővé teszik, hogy minden egyes folyamat több virtuális memóriát szerezzen, mint egy adott számítógépes rendszer tényleges (fizikai) memóriája. A memóriakezelés fő célja, hogy a nagyobb, de lassú memória és a kis, de nagysebességű memória kombinálásával elérje a nagyobb nagysebességű memória hatását.

Mi a lapozás??

A rögzített és a változó particionálás közötti szétválasztás a memória felhasználása szempontjából nem hatékony, mivel a rögzített particionálás belső, míg a külső fragmentáció dinamikus eredményeket eredményez. A széttöredezettség problémájának lehetséges megoldása az, ha a folyamatot nem szabad folyamatos memóriablokkba írni. A program tetszőlegesen szétszórható a memóriában. Ebben az esetben a munkamemóriát kisebb méretű, rögzített méretű blokkokra osztják, amelyeket kereteknek hívnak. A program logikai címterét ugyanolyan méretű blokkokra osztják, azaz oldalakat. Amikor egy programot beírnak a memóriába, az oldalak szabad memória keretbe kerülnek. A programok lemezről a munkamemóriába történő átvitelének megkönnyítése érdekében a lemezt a memóriakeretekkel azonos méretű keretekre osztják. Így a lemezen lévő egy kép a munkamemória egy keretébe kerül. A lapozórendszer a következőképpen működik: amikor a programot végrehajtásra elfogadják, kiszámítják annak méretét, amelyet a szükséges oldalak számával fejeznek ki. Ha elegendő számú képkocka van szabadon, akkor a folyamatot a memória oldalon rögzítik oldalanként. Ugyanakkor a kerettáblázatba beírja az egyes oldalak írásának keretét.

Mi az a szegmentálás??

A felhasználói program és a hozzá kapcsolódó adatok több szegmensre oszthatók. Az összes program szegmenseinek nem kell, hogy azonos méretűek legyenek, bár van egy maximális szegmenshossz. A lapozáshoz hasonlóan a szegmentálást használó logikai cím két részből áll, ebben az esetben a szegmensek számából és a szegmensen belüli diszlokációkból. A különböző méretű szegmensek használata miatt a szegmentálás hasonló a dinamikus particionáláshoz. Átfedési séma vagy a virtuális memória használata hiányában a végrehajtáshoz minden programszegmenst be kell tölteni a memóriába. A dinamikus particionáláshoz képest az a különbség, hogy a szegmentálás egynél több partíciót igénybe vehet, és a partíciónak nem kell szomszédosnak lennie. A szegmentálás megoldja a belső fragmentáció problémáját, de a dinamikus particionálás mellett a külső fragmentáció problémája továbbra is fennáll. Mivel azonban a folyamat több kisebb részre oszlik, a külső töredezettség általában kisebb. A programozó számára láthatatlan lapozással ellentétben a szegmentálás általában látható és alkalmas a programok és adatok szervezésére. A moduláris programozás céljából a programot vagy az adatokat tovább lehet osztani több kisebb szegmensre. Ennek a technikanak az a hátránya, hogy a programozónak ismernie kell a maximális szegmens méret korlátozásait. A különféle méretű szegmensek használatának következő kényelme az, hogy nincs logikus és fizikai cím közötti kapcsolat. A lapozáshoz hasonlóan az egyszerű szegmentálási technika szegmenstáblát használ minden folyamathoz és a fő memóriában rendelkezésre álló blokkok listáját.

Különbség a lapozás és a szegmentálás között

1. A lapozás és a szegmentálás fogalma

A lapozás virtuális és fizikai címteret, valamint másodlagos memóriaterületet biztosít azonos hosszúságú blokkokon (oldalak). Ez lehetővé teszi a folyamatos virtuális címtér hozzárendelését a diszperziós folyamathoz (nem feltétlenül folyamatosan elosztva) a valós címtérben és a másodlagos memóriában. Még az oldal kifejezésként inkább a memóriára utal, mint a program szintjén látható logikai objektumokra. A szegmentálás virtuális címet biztosít a blokkokon (szegmenseken), amelyek közvetlenül megfelelnek az objektumoknak a program szintjén. Emiatt a szegmensnek nincs rögzített hossza, így a szegmens mérete megváltoztatható a program végrehajtása során. Ezért a védelem és a megosztás objektumszinten lehetséges, és vannak olyan folyamatok, ahol a szegmentálás történik.

2. A lapozás és a szegmentálás jellemzői

Az alkalmazásfejlesztőnek nincs tudomása a lapozásról. Úgy írja a programokat, mintha a memória lineáris lenne, és az operációs rendszert és a processzort aggódik a partíciója és a virtuális címekké konvertálás. A szegmentációs rendszerek programozója azonban felsorolja a cím, a szegmens és az oldal két részét a programjában. Az összes oldal azonos méretű, míg a szegmensek eltérőek. A szegmentálásnak több lineáris címtere van, és csak egy lapozzon. A szegmensek lehetővé teszik az alkalmazás összetevőinek logikai particionálását és védelmét, az oldalak pedig nem.

3. A lapozás és a szegmentálás előnyei

A programozó számára átlátható lapozás kiküszöböli a külső fragmentációt, és ezzel biztosítja a fő memória hatékony felhasználását. A fő memóriába be és ki mozgó darabok rögzítettek és azonos méretűek, így kifinomult memóriakezelési algoritmusokat lehet kifejleszteni, amelyek kihasználják a program viselkedését. A szegmentálás látható a fejlesztő számára, és képes kezelni az adatszerkezet növekedését, a moduláris működést, valamint támogatni tudja az adatcserét és a védelmet.

Lapozás vs. szegmentálás: összehasonlító táblázat

személyhívó

szegmentálás

rögzített oldalméret a szegmensek mérete nem rögzített
láthatatlan a programozó számára látható a programozó számára
egy lineáris címtér több lineáris címtér
nem engedélyezi az alkalmazás összetevőinek logikai particionálását és védelmét lehetővé teszi

A lapozás és a szegmentálás összefoglalása

  • A lapozás a teljes címtér eloszlásán alapszik rögzített hosszúságú blokkokon, amelyeket memóriakvantumokként működtetnek. Szükséges továbbá olyan eszköz rendelkezésre bocsátása a rendelkezésre álló memória megjelölésére, amely az oldal állapotát jelző „fejléc” jelenlétével hajtható végre (globálisan összekapcsolt lista, ahol minden csomópont a következő szabad oldalra mutat), vagy az ingyenes oldalcím elhelyezése a globális tömbben, ami általában a legrosszabb megoldás.
  • A szegmentálás azt jelenti, hogy a címtartományt fel kell osztani olyan szegmensekre, amelyek egyértelműen meghatározták az MMU processzor hozzáférési jogát. A szegmensen belül a folyamatok pontosan annyi memóriát foglalnak el, amennyire szükségük van, de a memóriakezelés problémája az, hogy hogyan biztosítsunk egy ilyen allokációt, ahol képes megőrizni egy elég nagy folyamatos blokkmemóriát, amelyre szükség lehet egy ideig.