logo

Muistinhallinta käyttöjärjestelmässä (OS)

Tässä artikkelissa ymmärrämme muistinhallinnan yksityiskohtaisesti.

Mitä tarkoitat muistinhallinnalla?

Muisti on tärkeä osa tietokonetta, jota käytetään tietojen tallentamiseen. Sen hallinta on kriittinen tietokonejärjestelmälle, koska tietokonejärjestelmän käytettävissä olevan päämuistin määrä on hyvin rajallinen. Aina monet prosessit kilpailevat siitä. Lisäksi suorituskyvyn lisäämiseksi suoritetaan useita prosesseja samanaikaisesti. Tätä varten meidän on säilytettävä useita prosesseja päämuistissa, joten on vielä tärkeämpää hallita niitä tehokkaasti.

Muistin hallinta

Muistinhallinnan rooli

Seuraavat ovat muistinhallinnan tärkeät roolit tietokonejärjestelmässä:

  • Muistinhallintaa käytetään muistipaikkojen tilan seuraamiseen, onko se vapaa vai varattu. Se käsittelee ensisijaista muistia tarjoamalla abstraktioita niin, että ohjelmisto havaitsee, että sille on varattu suuri muisti.
  • Muistinhallinnan avulla tietokoneet, joissa on pieni määrä päämuistia, voivat suorittaa ohjelmia, jotka ovat suurempia kuin käytettävissä olevan muistin koko tai määrä. Se tekee tämän siirtämällä tietoa edestakaisin ensisijaisen muistin ja toissijaisen muistin välillä käyttämällä vaihtokonseptia.
  • Muistinhallintaohjelma on vastuussa kullekin prosessille varatun muistin suojaamisesta toisen prosessin vioittumiselta. Jos tätä ei varmisteta, järjestelmä saattaa käyttäytyä arvaamattomalla tavalla.
  • Muistinhallintaohjelmien tulisi mahdollistaa muistitilan jakaminen prosessien välillä. Näin ollen kaksi ohjelmaa voi sijaita samassa muistipaikassa, vaikkakin eri aikoina.

Muistinhallintatekniikat:

Muistinhallintatekniikat voidaan luokitella seuraaviin pääkategorioihin:

  • Vierekkäiset muistinhallintamallit
  • Ei-jatkuvat muistinhallintamallit
Muistin hallinta

Vierekkäiset muistinhallintamallit:

Jatkuvassa muistinhallintamallissa kukin ohjelma varaa yhden peräkkäisen tallennuspaikkojen lohkon, ts. joukon muistipaikkoja, joilla on peräkkäiset osoitteet.

Yksittäiset vierekkäiset muistinhallintamallit:

Single contiguous memory management -malli on yksinkertaisin muistinhallintamalli, jota käytetään tietokonejärjestelmien aikaisimmassa sukupolvessa. Tässä mallissa päämuisti on jaettu kahteen vierekkäiseen alueeseen tai osioon. Käyttöjärjestelmät sijaitsevat pysyvästi yhdessä osiossa, yleensä alemmassa muistissa, ja käyttäjäprosessi ladataan toiseen osioon.

Yksittäisten vierekkäisten muistinhallintajärjestelmien edut:

jos muuten jos muuten jos java
  • Yksinkertainen toteuttaa.
  • Helppo hallita ja suunnitella.
  • Yhden vierekkäisen muistin hallintamallissa, kun prosessi on ladattu, sille annetaan täysi prosessorin aika, eikä mikään muu prosessori keskeytä sitä.

Yksittäisten vierekkäisten muistinhallintajärjestelmien haitat:

  • Muistitilan hukkaa käyttämättömästä muistista, koska prosessi ei todennäköisesti käytä kaikkea käytettävissä olevaa muistitilaa.
  • Prosessori pysyy käyttämättömänä ja odottaa, että levy lataa binaarikuvan päämuistiin.
  • Sitä ei voida suorittaa, jos ohjelma on liian suuri mahtumaan koko käytettävissä olevaan päämuistitilaan.
  • Se ei tue moniohjelmointia, eli se ei voi käsitellä useita ohjelmia samanaikaisesti.

Useita osiointia:

Yksi vierekkäinen muistinhallintajärjestelmä on tehoton, koska se rajoittaa tietokoneita suorittamaan vain yhtä ohjelmaa kerrallaan, mikä johtaa muistitilan ja suorittimen ajan hukkaan. Tehon suorittimen käytön ongelma voidaan ratkaista käyttämällä moniohjelmointia, joka sallii useamman kuin yhden ohjelman ajamisen samanaikaisesti. Kahden prosessin välillä vaihtamiseksi käyttöjärjestelmien on ladattava molemmat prosessit päämuistiin. Käyttöjärjestelmän on jaettava käytettävissä oleva päämuisti useisiin osiin ladatakseen useita prosesseja päämuistiin. Päämuistissa voi siis olla useita prosesseja samanaikaisesti.

Useita osiointimalleja voi olla kahta tyyppiä:

  • Kiinteä osiointi
  • Dynaaminen osiointi

Kiinteä osiointi

Päämuisti on jaettu useisiin kiinteän kokoisiin osioihin kiinteän osion muistin hallintamallissa tai staattisessa osituksessa. Nämä väliseinät voivat olla samankokoisia tai erikokoisia. Jokainen osio voi sisältää yhden prosessin. Osioiden määrä määrittää moniohjelmoinnin asteen, eli muistissa olevien prosessien enimmäismäärän. Nämä osiot tehdään järjestelmän luomisen yhteydessä ja pysyvät kiinteinä sen jälkeen.

Kiinteän osioinnin muistinhallintajärjestelmien edut:

  • Yksinkertainen toteuttaa.
  • Helppo hallita ja suunnitella.

Kiinteän osioinnin muistinhallintajärjestelmien haitat:

  • Tämä järjestelmä kärsii sisäisestä pirstoutumisesta.
  • Osioiden määrä määritetään järjestelmän luomisen yhteydessä.

Dynaaminen osiointi

Dynaaminen osiointi on suunniteltu ratkaisemaan kiinteän osiointijärjestelmän ongelmat. Dynaamisessa osiointimallissa kukin prosessi vie vain niin paljon muistia kuin se vaatii, kun se ladataan käsittelyä varten. Pyydetyille prosesseille varataan muistia, kunnes koko fyysinen muisti on käytetty loppuun tai jäljellä oleva tila ei riitä pyyntöprosessin säilyttämiseen. Tässä mallissa käytetyt osiot ovat vaihtelevan kokoisia, eikä osioiden lukumäärää ole määritelty järjestelmän luomishetkellä.

Dynaamisen osioinnin muistinhallintajärjestelmien edut:

  • Yksinkertainen toteuttaa.
  • Helppo hallita ja suunnitella.

Dynaamisen osioinnin muistinhallintajärjestelmien haitat:

  • Tämä järjestelmä kärsii myös sisäisestä pirstoutumisesta.
  • Osioiden määrä määritetään järjestelmän segmentoinnin yhteydessä.

Ei-jatkuvat muistinhallintamallit:

Non-Contiguous-muistinhallintamallissa ohjelma jaetaan eri lohkoihin ja ladataan muistin eri osiin, joiden ei välttämättä tarvitse olla vierekkäin. Tämä menetelmä voidaan luokitella riippuen lohkojen koosta ja siitä, ovatko lohkot päämuistissa vai eivät.

Mitä on sivutus?

Haku on tekniikka, joka eliminoi päämuistin jatkuvan varauksen vaatimukset. Tässä päämuisti on jaettu kiinteän kokoisiin fyysisen muistin lohkoihin, joita kutsutaan kehyksiksi. Kehyksen koko tulee pitää samana kuin sivun koko päämuistin maksimoimiseksi ja ulkoisen pirstoutumisen välttämiseksi.

Sivuttamisen edut:

  • Sivut vähentävät ulkoista pirstoutumista.
  • Yksinkertainen toteuttaa.
  • Muisti tehokas.
  • Kehysten samankokoisen koon ansiosta vaihtaminen on erittäin helppoa.
  • Sitä käytetään tietojen nopeampaan käyttöön.

Mikä on segmentointi?

Segmentointi on tekniikka, joka eliminoi päämuistin jatkuvan varauksen vaatimukset. Tässä päämuisti on jaettu muuttuvan kokoisiin fyysisen muistin lohkoihin, joita kutsutaan segmenteiksi. Se perustuu tapaan, jolla ohjelmoija rakensi ohjelmiaan. Segmentoidun muistin allokoinnin avulla jokainen työ on jaettu useisiin erikokoisiin segmentteihin, yksi kutakin moduulia kohti. Funktiot, aliohjelmat, pino, taulukko jne. ovat esimerkkejä tällaisista moduuleista.