Muistin hallinta käyttöjärjestelmässä: vierekkäinen, vaihtaminen, sirpaloituminen

Sisällysluettelo:

Anonim

Mikä on muistin hallinta?

Muistinhallinta on prosessia, jolla ohjataan ja koordinoidaan tietokoneen muistia, osoitetaan lohkoina tunnettuja osia eri käynnissä oleville ohjelmille järjestelmän yleisen suorituskyvyn optimoimiseksi.

Se on ensisijaista muistia hallinnoivan käyttöjärjestelmän tärkein tehtävä. Se auttaa prosesseja siirtymään edestakaisin päämuistin ja suorituslevyn välillä. Se auttaa käyttöjärjestelmää seuraamaan jokaista muistipaikkaa riippumatta siitä, onko se varattu jollekin prosessille vai onko se edelleen vapaa.

Tässä käyttöjärjestelmän opetusohjelmassa opit:

  • Mikä on muistin hallinta?
  • Miksi käyttää muistinhallintaa?
  • Muistinhallintatekniikat
  • Mikä on vaihtaminen?
  • Mikä on muistin allokointi?
  • Mikä on henkilöhaku?
  • Mikä on sirpaloitumismenetelmä?
  • Mikä on segmentointi?
  • Mikä on dynaaminen lataus?
  • Mikä on dynaaminen linkitys?
  • Staattisen ja dynaamisen kuormituksen ero
  • Staattisen ja dynaamisen linkityksen välinen ero

Miksi käyttää muistinhallintaa?

Tässä on syitä muistinhallinnan käyttöön:

  • Sen avulla voit tarkistaa, kuinka paljon muistia on allokoitava prosesseille, jotka päättävät, minkä prosessorin pitäisi saada muistia milloin tahansa.
  • Seuraa aina, kun varasto vapautuu tai kohdennetaan. Sen mukaan se päivittää tilan.
  • Se jakaa tilan sovellusten rutiineille.
  • Se varmistaa myös, etteivät nämä sovellukset häiritse toisiaan.
  • Auttaa suojaamaan erilaisia ​​prosesseja toisiltaan
  • Se sijoittaa ohjelmat muistiin siten, että muistia hyödynnetään täysimääräisesti.

Muistinhallintatekniikat

Tässä on joitain tärkeimpiä muistinhallintatekniikoita:

Yksittäinen vierekkäinen jakaminen

Se on helpoin muistinhallintatekniikka. Tässä menetelmässä kaikentyyppiset tietokoneen muistit, paitsi pieni käyttöjärjestelmälle varattu osa, ovat käytettävissä yhdelle sovellukselle. Esimerkiksi MS-DOS -käyttöjärjestelmä varaa muistia tällä tavalla. Sulautettu järjestelmä toimii myös yhdessä sovelluksessa.

Jaettu jakaminen

Se jakaa primäärimuistin erilaisiin muistiosioihin, jotka ovat enimmäkseen vierekkäisiä muistialueita. Jokainen osio tallentaa kaikki tietyn tehtävän tai työn tiedot. Tämä menetelmä koostuu osion jakamisesta työhön, kun se käynnistyy, ja varauksesta, kun se lopetetaan.

Sivutettu muistinhallinta

Tämä menetelmä jakaa tietokoneen päämuistin kiinteäkokoisiksi yksiköiksi, joita kutsutaan sivukehyksiksi. Tämä laitteiston muistinhallintayksikkö kartoittaa sivut kehyksiksi, jotka tulisi allokoida sivupohjalta.

Segmentoitu muistinhallinta

Segmentoitu muisti on ainoa muistinhallintamenetelmä, joka ei tarjoa käyttäjän ohjelmalle lineaarista ja vierekkäistä osoiteavaruutta.

Segmentit tarvitsevat laitteistotukea segmenttitaulukon muodossa. Se sisältää muistissa olevan osan fyysisen osoitteen, koon ja muut tiedot, kuten pääsysuojabitit ja tilan.

Mikä on vaihtaminen?

Vaihto on menetelmä, jossa prosessi tulisi vaihtaa väliaikaisesti päämuistista taustamuistiin. Se tuodaan myöhemmin takaisin muistiin jatkamista varten.

Taustatallennus on kiintolevy tai jokin muu toissijainen tallennuslaite, jonka on oltava riittävän suuri tilaamaan kopiot kaikista muistikuvista kaikille käyttäjille. Se pystyy myös tarjoamaan suoran pääsyn näihin muistikuviin.

Vaihdon edut

Tässä on vaihtamisen tärkeimmät edut / edut:

  • Se tarjoaa korkeamman moniohjelmoinnin.
  • Sallii dynaamisen siirtämisen. Jos esimerkiksi käytetään osoitteen sidontaa suorituksen aikana, prosessit voidaan vaihtaa eri paikkoihin. Muutoin käännösten ja latausaikojen sidosten tapauksessa prosessit tulisi siirtää samaan paikkaan.
  • Se auttaa hyödyntämään muistia paremmin.
  • CPU-ajan vähäinen tuhlaaminen valmistumisen jälkeen, jotta sitä voidaan helposti soveltaa prioriteettipohjaiseen ajoitusmenetelmään suorituskyvyn parantamiseksi.

Mikä on muistin allokointi?

Muistin allokointi on prosessi, jolla tietokoneohjelmille osoitetaan muistia tai tilaa.

Tässä päämuisti on jaettu kahteen osioon

  1. Vähäinen muisti - Käyttöjärjestelmä on tämän tyyppisessä muistissa.
  2. Suuri muisti - Käyttäjäprosessit pidetään suuressa muistissa.

Osioiden jakaminen

Muisti on jaettu eri lohkoihin tai osioihin. Jokainen prosessi jaetaan vaatimusten mukaan. Osioiden allokointi on ihanteellinen menetelmä sisäisen pirstoutumisen välttämiseksi.

Alla on eri osioiden allokointijärjestelmät:

  • Ensimmäinen sovitus : Tämän tyyppisessä sovituksessa osio varataan, mikä on ensimmäinen riittävä lohko päämuistin alusta.
  • Paras sovitus: Se kohdistaa prosessin osioon, joka on ensimmäinen pienin osio ilmaisten osioiden joukossa.
  • Pahin sovitus: Se allokoi prosessin osioon, joka on riittävän suuri vapaasti käytettävissä oleva osio päämuistissa.
  • Seuraava Fit: Se on enimmäkseen samanlainen kuin ensimmäinen Fit, mutta tämä Fit etsii ensimmäistä riittävää osiota viimeisestä kohdepisteestä.

Mikä on henkilöhaku?

Sivutus on tallennusmekanismi, jonka avulla käyttöjärjestelmä voi hakea prosesseja toissijaisesta muistista päämuistiin sivuina. Paging-menetelmässä päämuisti on jaettu pieniin kiinteäkokoisiin fyysisen muistin lohkoihin, joita kutsutaan kehyksiksi. Kehyksen koko on pidettävä samana kuin sivun koko, jotta päämuisti voidaan hyödyntää mahdollisimman hyvin ja jotta vältetään ulkoinen sirpaloituminen. Hakua käytetään tietojen nopeampaan käyttöön, ja se on looginen käsite.

Mikä on sirpaloituminen?

Prosessit tallennetaan ja poistetaan muistista, mikä luo vapaata muistitilaa, joka on liian pieni käytettäväksi muissa prosesseissa.

Toisinaan sitä prosessia, jota ei voida kohdistaa muistilohkoille, koska sen pieni koko ja muistilohkot ovat aina käyttämättömiä, kutsutaan pirstoutumiseksi. Tämän tyyppinen ongelma tapahtuu dynaamisen muistin allokointijärjestelmän aikana, kun vapaat lohkot ovat melko pieniä, joten se ei pysty täyttämään mitään pyyntöä.

Kahden tyyppisiä sirpaloitumismenetelmiä ovat:

  1. Ulkoinen sirpaloituminen
  2. Sisäinen pirstoutuminen
  • Ulkoista pirstoutumista voidaan vähentää järjestämällä muistin sisältö uudelleen vapaan muistin sijoittamiseksi yhteen lohkoon.
  • Sisäistä pirstoutumista voidaan vähentää osoittamalla pienin osio, joka on silti riittävän hyvä koko prosessin kuljettamiseen.

Mikä on segmentointi?

Segmentointimenetelmä toimii melkein samalla tavalla kuin henkilöhaku. Ainoa ero näiden kahden välillä on, että segmentit ovat vaihtelevaa pituutta, kun taas sivutusmenetelmässä sivut ovat aina kiinteitä.

Ohjelmasegmentti sisältää ohjelman päätoiminnon, tietorakenteet, apuohjelmatoiminnot jne. Käyttöjärjestelmä ylläpitää segmenttikartta taulukkoa kaikille prosesseille. Se sisältää myös luettelon vapaista muistilohkoista sekä sen koon, segmenttien numerot ja muistipaikat päämuistissa tai virtuaalimuistissa.

Mikä on dynaaminen lataus?

Dynaaminen lataus on ohjelman rutiini, jota ei ladata ennen kuin ohjelma soittaa siihen. Kaikkien rutiinien tulisi olla levyllä siirrettävässä latausmuodossa. Pääohjelma ladataan muistiin ja suoritetaan. Dynaaminen lataus tarjoaa myös paremman muistitilan käytön.

Mikä on dynaaminen linkitys?

Linkittäminen on menetelmä, joka auttaa käyttöjärjestelmää keräämään ja yhdistämään useita moduuleja koodia ja tietoja yhdeksi suoritettavaksi tiedostoksi. Tiedosto voidaan ladata muistiin ja suorittaa. Käyttöjärjestelmä voi linkittää järjestelmätason kirjastot ohjelmaan, joka yhdistää kirjastot lataushetkellä. Dynaamisessa linkitystavassa kirjastot linkitetään suorituksen aikana, joten ohjelmakoodikoko voi pysyä pienenä.

Staattisen ja dynaamisen kuormituksen ero

Staattinen lataus Dynaaminen lataus
Staattista latausta käytetään, kun haluat ladata ohjelman staattisesti. Sitten koko ohjelma linkitetään ja käännetään ilman ulkoista moduulia tai riippuvuutta ohjelmasta. Dynaamisesti ladatussa ohjelmassa annetaan viitteet ja lataus suorituksen yhteydessä.
Lataushetkellä koko ohjelma ladataan muistiin ja käynnistetään. Kirjaston rutiinit ladataan muistiin vain, kun niitä tarvitaan ohjelmassa.

Staattisen ja dynaamisen linkityksen välinen ero

Tässä on tärkein ero staattisen ja dynaamisen linkityksen välillä:

Staattinen linkitys Dynaaminen linkitys
Staattista linkitystä käytetään kaikkien muiden ohjelman edellyttämien moduulien yhdistämiseen yhdeksi suoritettavaksi koodiksi. Tämä auttaa käyttöjärjestelmää estämään ajonaikaisen riippuvuuden. Kun käytetään dynaamista linkitystä, sen ei tarvitse linkittää varsinaista moduulia tai kirjastoa ohjelmaan. Käytä sen sijaan viittausta dynaamiseen moduuliin, joka on annettu käännöksen ja linkityksen yhteydessä.

Yhteenveto:

  • Muistin hallinta on prosessi, jolla ohjataan ja koordinoidaan tietokoneen muistia, osoitetaan lohkoiksi kutsuttuja osia eri käynnissä oleville ohjelmille järjestelmän yleisen suorituskyvyn optimoimiseksi.
  • Sen avulla voit tarkistaa, kuinka paljon muistia on allokoitava prosesseille, jotka päättävät, minkä prosessorin pitäisi saada muistia milloin tahansa.
  • Yhden vierekkäisen kohdistuksen yhteydessä kaiken tyyppiset tietokoneen muistit, paitsi pieni käyttöjärjestelmälle varattu osa, ovat käytettävissä yhdelle sovellukselle
  • Partitioned Allocation -menetelmä jakaa primäärimuistin useiksi muistiosioiksi, jotka ovat enimmäkseen vierekkäisiä muistialueita
  • Paged Memory Management -menetelmä jakaa tietokoneen päämuistin kiinteäkokoisiksi yksiköiksi, joita kutsutaan sivukehyksiksi
  • Segmentoitu muisti on ainoa muistinhallintamenetelmä, joka ei tarjoa käyttäjän ohjelmalle lineaarista ja vierekkäistä osoiteavaruutta.
  • Vaihto on menetelmä, jossa prosessi tulisi vaihtaa väliaikaisesti päämuistista taustamuistiin. Se tuodaan myöhemmin takaisin muistiin jatkamista varten.
  • Muistin allokointi on prosessi, jolla tietokoneohjelmille osoitetaan muistia tai tilaa.
  • Sivutus on tallennusmekanismi, jonka avulla käyttöjärjestelmä voi hakea prosesseja toissijaisesta muistista päämuistiin sivuina.
  • Hajanaisuus viittaa levyn tilaan, jossa tiedostot on jaettu levyn ympäri hajautettuihin paloihin.
  • Segmentointimenetelmä toimii melkein samalla tavalla kuin henkilöhaku. Ainoa ero näiden kahden välillä on, että segmentit ovat vaihtelevaa pituutta, kun taas sivutusmenetelmässä sivut ovat aina kiinteitä.
  • Dynaaminen lataus on ohjelman rutiini, jota ei ladata ennen kuin ohjelma soittaa siihen.
  • Linkittäminen on menetelmä, joka auttaa käyttöjärjestelmää keräämään ja yhdistämään useita moduuleja koodia ja tietoja yhdeksi suoritettavaksi tiedostoksi.