Suositeltava, 2024

Toimituksen Valinta

Ero vierekkäisen ja epäsuhtaisen muistin jakamisen välillä

Muisti on suuri joukko tavuja, joissa jokaisella tavulla on oma osoite. Muistin allokointi voidaan luokitella kahteen menetelmään, jotka ovat peräkkäisiä muistin allokointia ja ei-vierekkäistä muistin allokointia. Suurin ero vierekkäisen ja epäsuhtaisen muistin allokointiin on se, että vierekkäinen muistin allokointi määrää muistin peräkkäiset lohkot muistia pyytävälle prosessille, kun taas ei-yhteensopiva muistin allokointi määrittää erilliset muistilohkot eri sijainnissa muistitilassa ei-peräkkäisesti tavalla prosessi, joka pyytää muistia. Seuraavassa esitetyn vertailukaavion avulla keskustelemme joistakin eroista toisistaan ​​poikkeavien ja ei-vierekkäisten muistin jakamisen välillä.

Vertailukaavio

Vertailu perustuuYhteensopiva muistin jakaminenMuistiton muistin jakaminen
perustiedotMäärittää peräkkäiset muistilohkot prosessiin.Määrittää erilliset muistilohkot prosessiin.
kiinteät kustannuksetToisen muistin allokoinnilla ei ole osoitteen kääntämistä, kun prosessia suoritetaan.Ei-yhteensopivalla muistin allokaatiolla on osoitteen kääntäminen, kun prosessia suoritetaan.
ToteutusasteProsessi suorittaa fatser-toiminnon viereisessä muistin allokoinnissaProsessi suorittaa melko hitaammin verrattaessa ei-yhteensopivaa muistin allokointia.
RatkaisuMuistitila on jaettava kiinteän kokoiseen osioon ja jokainen osio on allokoitu vain yhdelle prosessille.Jaa prosessi useisiin lohkoihin ja sijoita ne muistin eri osiin käytettävissä olevan muistitilan mukaan.
PöytäTaulukkoa ylläpitää käyttöjärjestelmä, joka ylläpitää muistitilassa käytettävissä olevien ja käytössä olevien osioiden luetteloaJokaista prosessia varten on säilytettävä taulukko, joka sisältää kunkin lohkon perusosoitteet, jotka on hankittu muistin prosessissa.

Määritelmä vierekkäisen muistin allokointiin

Käyttöjärjestelmä ja käyttäjän prosessit on sijoitettava päämuistiin. Tällöin päämuisti on jaettu kahteen osioon: toisessa osiossa käyttöjärjestelmä sijaitsee ja muuten käyttäjän prosessit sijaitsevat. Tavanomaisissa olosuhteissa useiden käyttäjäprosessien täytyy sijaita muistissa samanaikaisesti, ja siksi on tärkeää harkita muistin kohdentamista prosesseihin.

Yhteensopiva muistin allokointi on yksi muistin allokointimenetelmistä. Kun muistiin kohdistetaan prosessipyyntöjä, muistissa on yhtenäinen muistinlohkojen yhtenäinen osa, joka vaaditaan prosessissa sen vaatimuksen mukaisesti.

Jatkuva muistin allokointi voidaan saavuttaa jakamalla muisti kiinteäkokoiseen osioon ja allokoimalla kukin osio vain yhdelle prosessille. Mutta tämä aiheuttaa moniohjelman asteen, joka rajoittuu muistiin tehdyn kiinteän osion määrään. Jatkuva muistin allokointi johtaa myös sisäiseen fragmentoitumiseen . Kuten, jos prosessille varattu kiinteän kokoinen muistilohko on hieman suurempi kuin sen vaatimus, niin lohkon vasemmanpuoleista muistitilaa kutsutaan sisäiseksi fragmentoinniksi. Kun osiossa oleva prosessi lopettaa osion, se on käytettävissä toiselle prosessille.

Muuttujaosiointijärjestelmässä käyttöjärjestelmä ylläpitää taulukkoa, joka osoittaa, mikä muistin osio on vapaa ja jota prosessit käyttävät. Jatkuva muistin allokointi vahvistaa prosessin suorittamisen vähentämällä osoitteen kääntämisen yleiskustannuksia.

Määritelmä Ei-vierekkäinen muistin jakaminen

Ei-vierekkäinen muistin allokointi sallii prosessin hankkia useita muistilohkoja muistin eri sijainnista sen vaatimuksen mukaisesti. Ei-yhteensopiva muistin allokointi vähentää myös sisäisen ja ulkoisen pirstoutumisen aiheuttamaa muistin tuhlausta . Koska se hyödyntää sisäisen ja ulkoisen pirstoutumisen aikana luotuja muistiaukkoja.

Hakeminen ja segmentointi ovat kaksi tapaa, joiden avulla prosessin fyysinen osoitetila voi olla ei-vierekkäinen. Muissa kuin vierekkäisissä muistin allokoinneissa prosessi on jaettu lohkoihin (sivuja tai segmenttejä), jotka sijoitetaan muistitilan eri alueelle muistin saatavuuden mukaan.

Ei-yhteensopivalla muistin allokoinnilla on etu vähentää muistin tuhlausta, mutta se lisää osoitteen kääntämisen yleiskustannuksia . Koska prosessin osat sijoitetaan muuhun paikkaan muistissa, se hidastaa muistin suorittamista, koska aika kuluu osoitteen muuntamisessa.

Tässä käyttöjärjestelmä tarvitsee ylläpitää taulukkoa kullekin prosessille, joka sisältää kunkin lohkon perusosoitteen, jonka prosessi hankkii muistitilassa.

Keskeiset erot vierekkäisen ja epäsuhtaisen muistin jakamisen välillä

  1. Periaatteellinen ero vierekkäisen ja epäsuhtaisen muistin allokointiin on, että vierekkäinen allokointi jakaa prosessille yhden yhtenäisen muistilohkon, kun taas ei-yhteensopiva allokointi jakaa prosessin useisiin lohkoihin ja sijoittaa ne muistin eri osoitetilaan eli ei-toisiinsa. .
  2. Jatkuvassa muistin allokoinnissa prosessi tallennetaan viereiseen muistitilaan; joten ei ole ylimääräistä osoitteen kääntämistä suorituksen aikana. Mutta ei-yhteensopivassa muistin allokaatiossa on osoitteen muuntaminen, kun prosessi suoritetaan, kun prosessilohkot leviävät muistitilaan.
  3. Jatkuvaan muistiin tallennettu prosessi suorittaa nopeammin verrattuna ei-yhteensopivaan muistitilaan tallennettuun prosessiin.
  4. Ratkaisu vierekkäiselle muistin allokointiin on jakaa muistitila kiinteän kokoiseen osioon ja jakaa osio vain yhdelle prosessille. Toisaalta prosessi on jaettu useaan lohkoon, ja jokainen lohko asetetaan muistiin eri paikkoihin muistin saatavuuden mukaan.
  5. Jatkuvassa muistin allokoinnissa käyttöjärjestelmän on ylläpidettävä taulukkoa, joka osoittaa, mikä osio on käytettävissä prosessissa ja jota prosessi käyttää. Ei-yhteensopivassa muistin allokaatiossa ylläpidetään taulukkoa kullekin prosessille, joka ilmaisee muistipaikalle sijoitetun prosessin jokaisen lohkon perusosoitteen.

johtopäätös:

Yhdenmukaista muistin allokointia ei synny mitään yleiskustannuksia ja vahvistetaan prosessin suoritusnopeus, mutta lisää muistin tuhlausta . Kääntymättömän muistin allokointi puolestaan ​​luo osoitteen muuntamisen yleiskustannuksia, vähentää prosessin suoritusnopeutta, mutta lisää muistin käyttöä . Joten molemmat jakomenetelmät ovat hyviä ja huonoja.

Top