Muistinhallinta käyttöjärjestelmässä: jatkuva, vaihto, pirstoutuminen
Mitä on muistinhallinta?
Muistinhallinta on prosessi, jolla ohjataan ja koordinoidaan tietokoneen muistia, jakamalla lohkoiksi kutsuttuja osia eri käynnissä oleville ohjelmille järjestelmän yleisen suorituskyvyn optimoimiseksi.
Se on käyttöjärjestelmän tärkein toiminto, joka hallitsee ensisijaista muistia. Se auttaa prosesseja liikkumaan edestakaisin päämuistin ja suorituslevyn välillä. Se auttaa käyttöjärjestelmää seuraamaan jokaista muistipaikkaa riippumatta siitä, onko se varattu jollekin prosessille vai jääkö se vapaaksi.
Miksi käyttää muistinhallintaa?
Tässä on syitä käyttää muistinhallintaa:
- Sen avulla voit tarkistaa, kuinka paljon muistia on varattava prosesseille, jotka päättävät, mikä prosessori saa muistia mihin aikaan.
- Seuraa aina, kun varasto vapautetaan tai sitä ei kohdisteta. Sen mukaan tila päivitetään.
- Se varaa tilaa sovellusrutiineille.
- Se myös varmistaa, että nämä sovellukset eivät häiritse toisiaan.
- Auttaa suojaamaan erilaisia prosesseja toisiltaan
- Se sijoittaa ohjelmat muistiin niin, että muistia käytetään täysimääräisesti.
Muistinhallintatekniikat
Tässä on joitain tärkeimpiä muistinhallintatekniikoita:
Yksi vierekkäinen allokaatio
Se on helpoin muistinhallintatekniikka. Tässä menetelmässä kaikki tietokoneen muistityypit lukuun ottamatta pientä käyttöjärjestelmälle varattua osaa on 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.
Osioitu allokointi
Se jakaa ensisijaisen muistin useisiin muistiosioihin, jotka ovat enimmäkseen vierekkäisiä muistialueita. Jokainen osio tallentaa kaikki tiedot tiettyä tehtävää tai työtä varten. Tämä menetelmä koostuu osion varaamisesta työlle sen alkaessa ja osion varaamisesta sen päättyessä.
Sivutetun muistin hallinta
Tämä menetelmä jakaa tietokoneen päämuistin kiinteän kokoisiin yksiköihin, joita kutsutaan sivukehyksiksi. Tämä laitteiston muistinhallintayksikkö kartoittaa sivut kehyksiksi, jotka tulee allokoida sivukohtaisesti.
Segmentoitu muistinhallinta
Segmentoitu muisti on ainoa muistinhallintamenetelmä, joka ei tarjoa käyttäjän ohjelmalle lineaarista ja yhtenäistä osoiteavaruutta.
Segmentit tarvitsevat laitteistotuen segmenttitaulukon muodossa. Se sisältää muistissa olevan osan fyysisen osoitteen, koon ja muita tietoja, kuten pääsysuojabitit ja tilan.
Mitä on vaihto?
Vaihtaminen on menetelmä, jossa prosessi tulee vaihtaa väliaikaisesti päämuistista taustamuistiin. Se tuodaan myöhemmin takaisin muistiin suoritusta varten.
Taustavarasto on kiintolevy tai jokin muu toissijainen tallennuslaite, jonka tulee olla riittävän suuri, jotta siihen mahtuu kopiot kaikista muistikuvista kaikille käyttäjille. Se pystyy myös tarjoamaan suoran pääsyn näihin muistikuviin.
Vaihtamisen edut
Tässä on tärkeimmät vaihdon edut/edut:
- Se tarjoaa korkeamman asteen moniohjelmointia.
- Mahdollistaa dynaamisen siirron. Jos esimerkiksi käytetään osoitteen sidontaa suoritusaikana, prosesseja voidaan vaihtaa eri paikoissa. Muussa tapauksessa käännös- ja latausaikasidosten tapauksessa prosessit tulisi siirtää samaan paikkaan.
- Se auttaa käyttämään muistia paremmin.
- Suorittimen ajanhukkaa minimaalinen 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 tyyppiseen osioon
- Muisti vähissä - Operating-järjestelmä sijaitsee tämän tyyppisessä muistissa.
- Korkea muisti– Käyttäjäprosessit säilytetään korkealla muistilla.
Osion allokointi
Muisti on jaettu eri lohkoihin tai osioihin. Jokainen prosessi allokoidaan tarpeen mukaan. Osioiden allokointi on ihanteellinen tapa välttää sisäinen pirstoutuminen.
Alla on erilaisia osion allokointijärjestelmiä:
- Ensimmäinen sovitus: Tässä tyypissä sovitetaan osio, joka on ensimmäinen riittävä lohko päämuistin alusta.
- Parhaiten sopiva: Se varaa prosessin osioon, joka on ensimmäinen pienin osio vapaista osioista.
- Huonoin istuvuus: Se osoittaa prosessin osio, joka on suurin riittävä vapaasti käytettävissä oleva osio päämuistissa.
- Seuraava sovitus: Se on enimmäkseen samanlainen kuin ensimmäinen Fit, mutta tämä Fit etsii ensimmäistä riittävää osiota viimeisestä allokaatiopisteestä.
Mikä on sivutus?
Haku on tallennusmekanismi, jonka avulla käyttöjärjestelmä voi hakea prosesseja toissijaisesta tallennustilasta päämuistiin sivujen muodossa. Hakumenetelmässä päämuisti jaetaan pieniin kiinteän kokoisiin fyysisen muistin lohkoihin, joita kutsutaan kehyksiksi. Kehyksen koko tulee pitää samana kuin sivun koko, jotta päämuistia hyödynnetään mahdollisimman hyvin ja vältetään ulkoinen pirstoutuminen. Hakulaite käytetään tiedon nopeampaan käyttöön, ja se on looginen käsite.
Mitä on pirstoutuminen?
Prosessit tallennetaan ja poistetaan muistista, mikä luo vapaata muistitilaa, joka on liian pieni muiden prosessien käyttöön.
Joskus sen jälkeen, kun prosesseja ei pysty allokoimaan muistilohkoille, koska sen pieni koko ja muistilohkot jäävät aina käyttämättä, kutsutaan pirstoutumiseksi. Tämän tyyppinen ongelma ilmenee dynaamisen muistinvarausjärjestelmän aikana, kun vapaat lohkot ovat melko pieniä, joten se ei pysty täyttämään mitään pyyntöä.
Kahden tyyppisiä fragmentointimenetelmiä ovat:
- Ulkoinen sirpaloituminen
- Sisäinen pirstoutuminen
- Ulkoista pirstoutumista voidaan vähentää järjestämällä muistin sisältö uudelleen sijoittamalla kaikki vapaa muisti yhteen lohkoon.
- Sisäistä pirstoutumista voidaan vähentää osoittamalla pienin osio, joka on silti tarpeeksi hyvä kuljettamaan koko prosessin.
Mikä on segmentointi?
Segmentointimenetelmä toimii lähes samalla tavalla kuin sivutus. Ainoa ero näiden kahden välillä on se, että segmentit ovat vaihtelevan pituisia, kun taas sivutusmenetelmässä sivut ovat aina kiinteän kokoisia.
Ohjelmasegmentti sisältää ohjelman päätoiminnon, tietorakenteet, aputoiminnot jne. Käyttöjärjestelmä ylläpitää segmenttikarttataulukkoa kaikille prosesseille. Se sisältää myös luettelon vapaista muistilohkoista sekä niiden koon, segmenttien numerot ja muistipaikat päämuistissa tai virtuaalimuistin.
Mikä on dynaaminen lataus?
Dynaaminen lataus on ohjelman rutiini, jota ei ladata ennen kuin ohjelma kutsuu sitä. Kaikkien rutiinien tulee olla levyllä siirrettävässä latausmuodossa. Pääohjelma ladataan muistiin ja suoritetaan. Dynaaminen lataus parantaa myös muistitilan käyttöä.
Mitä on dynaaminen linkitys?
Linkitys on menetelmä, joka auttaa käyttöjärjestelmää keräämään ja yhdistämään erilaisia koodi- ja datamoduuleja yhdeksi suoritettavaksi tiedostoksi. Tiedosto voidaan ladata muistiin ja suorittaa. Käyttöjärjestelmä voi linkittää järjestelmätason kirjastot ohjelmaksi, joka yhdistää kirjastot latausaikana. Dynaamisessa linkitysmenetelmässä kirjastot linkitetään suorituksen aikana, joten ohjelmakoodin koko voi pysyä pienenä.
Ero staattisen ja dynaamisen latauksen välillä
Staattinen lataus | Dynaaminen lataus |
---|---|
Staattista latausta käytetään, kun haluat ladata ohjelman staattisesti. Sitten käännöshetkellä koko ohjelma linkitetään ja käännetään ilman ulkoista moduulia tai ohjelmariippuvuutta. | Dynaamisesti ladatussa ohjelmassa tarjotaan viitteitä ja lataus tapahtuu suorituksen yhteydessä. |
Lataushetkellä koko ohjelma ladataan muistiin ja sen suorittaminen alkaa. | Kirjaston rutiinit ladataan muistiin vain silloin, kun niitä tarvitaan ohjelmassa. |
Ero staattisen ja dynaamisen linkityksen välillä
Tässä on tärkein ero staattisen ja dynaamisen linkityksen välillä:
Staattinen linkitys | Dynaaminen linkitys |
---|---|
Staattista linkitystä käytetään yhdistämään kaikki muut ohjelman tarvitsemat moduulit 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 toimitettiin käännös- ja linkityshetkellä. |
Yhteenveto
- Muistinhallinta on prosessi, jossa ohjataan ja koordinoidaan tietokoneen muistia ja määritetään lohkoiksi kutsuttuja osia eri käynnissä oleville ohjelmille järjestelmän yleisen suorituskyvyn optimoimiseksi.
- Sen avulla voit tarkistaa, kuinka paljon muistia on varattava prosesseille, jotka päättävät, mikä prosessori saa muistia mihin aikaan.
- Yksittäisessä jatkuvassa allokoinnissa kaikki tietokoneen muistityypit lukuun ottamatta pientä käyttöjärjestelmälle varattua osaa on käytettävissä yhdelle sovellukselle
- Osioitu allokointimenetelmä jakaa ensisijaisen muistin eri muistiosioiksi, jotka ovat enimmäkseen vierekkäisiä muistialueita
- Paged Memory Management -menetelmä jakaa tietokoneen päämuistin kiinteän kokoisiin yksiköihin, joita kutsutaan sivukehyksiksi
- Segmentoitu muisti on ainoa muistinhallintamenetelmä, joka ei tarjoa käyttäjän ohjelmalle lineaarista ja yhtenäistä osoiteavaruutta.
- Vaihtaminen on menetelmä, jossa prosessi tulee vaihtaa väliaikaisesti päämuistista taustamuistiin. Se tuodaan myöhemmin takaisin muistiin suoritusta varten.
- Muistin allokointi on prosessi, jolla tietokoneohjelmille osoitetaan muistia tai tilaa.
- Haku on tallennusmekanismi, jonka avulla käyttöjärjestelmä voi hakea prosesseja toissijaisesta tallennustilasta päämuistiin sivujen muodossa.
- Fragmentointi viittaa levyn tilaan, jossa tiedostot on jaettu levyn ympärille hajallaan oleviin osiin.
- Segmentointimenetelmä toimii lähes samalla tavalla kuin sivutus. Ainoa ero näiden kahden välillä on se, että segmentit ovat vaihtelevan pituisia, kun taas sivutusmenetelmässä sivut ovat aina kiinteän kokoisia.
- Dynaaminen lataus on ohjelman rutiini, jota ei ladata ennen kuin ohjelma kutsuu sitä.
- Linkitys on menetelmä, joka auttaa käyttöjärjestelmää keräämään ja yhdistämään erilaisia koodi- ja datamoduuleja yhdeksi suoritettavaksi tiedostoksi.