Muistinhallinta käyttöjärjestelmässä: Yhtenäinen, swapping, Pirstaloituminen
⚡ Älykäs yhteenveto
Muistinhallinta on käyttöjärjestelmän prosessi, joka ohjaa ja koordinoi tietokoneen muistia ja määrittää lohkoja käynnissä oleville ohjelmille suorituskyvyn optimoimiseksi. tractunnistaa jokaisen muistipaikan, siirtää prosesseja päämuistin ja levyn välillä ja suojaa prosesseja toisiltaan.
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ää pysymään track jokaisesta muistipaikasta riippumatta siitä, onko se varattu jollekin prosessille vai pysyykö se vapaana.
Miksi käyttää muistinhallintaa?
Tässä on syitä muistinhallinnan käyttöön:
- Sen avulla voit tarkistaa, kuinka paljon muistia on varattava prosesseille, jotka päättävät, mikä prosessori saa muistia mihin aikaan.
- Tracks aina, kun varastoa vapautetaan tai kohdennetaan, ja päivittää tilan vastaavasti.
- Se varaa tilaa sovellusrutiineille.
- Se varmistaa myös, että nämä sovellukset eivät häiritse toisiaan.
- Auttaa suojaamaan eri prosesseja toisiltaan.
- Se sijoittaa ohjelmat muistiin niin, että muistia käytetään täysimääräisesti.
Muistinhallintatekniikat
Tässä on joitakin tärkeimmistä muistinhallintatekniikoista:
Yksi vierekkäinen allokaatio
Se on helpoin muistinhallintatekniikka. Tässä menetelmässä kaikki tietokoneen muistityypit, lukuun ottamatta pientä osaa, joka on varattu käyttöjärjestelmälle, ovat käytettävissä yhdelle sovellukselle. Esimerkiksi MS-DOS-käyttöjärjestelmä varaa muistia tällä tavalla. Myös sulautettu järjestelmä toimii yhdellä sovelluksella.
Osioitu allokointi
Se jakaa päämuistin useisiin muistiosioihin, jotka ovat enimmäkseen yhtenäisiä muistialueita. Jokainen osio tallentaa kaikki tiedot tiettyä tehtävää tai työtä varten. Tässä menetelmässä osio varataan työlle sen käynnistyessä ja se vapautetaan 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.
Mikä on swap-palveluping?
Vaihtaaping on menetelmä, jossa prosessi tulisi siirtää väliaikaisesti päämuistista taustamuistiin. Se tuodaan myöhemmin takaisin muistiin jatkuvaa suoritusta varten.
Taustatallennuslaite on kiintolevy tai muu toissijainen tallennuslaite, jonka tulisi olla riittävän suuri kaikkien käyttäjien kaikkien muistikuvien kopioiden tallentamiseen. Sen on myös kyettävä tarjoamaan suora pääsy näihin muistikuviin.
Swapin edutping
Tässä ovat swapin tärkeimmät edut/hyvät puoletping:
- Se tarjoaa korkeamman asteen moniohjelmointia.
- Sallii dynaamisen uudelleensijoittamisen. Jos esimerkiksi käytetään suoritusaikaista osoitesidontaa, prosessit voidaan vaihtaa eri sijainteihin. Muussa tapauksessa käännös- ja latausaikaisten sidontojen tapauksessa prosessit tulisi siirtää samaan sijaintiin.
- Se auttaa käyttämään muistia paremmin.
- Minimaalinen prosessoriajan hukka valmistuttua, joten sitä voidaan helposti soveltaa prioriteettipohjaiseen ajoitusmenetelmään sen suorituskyvyn parantamiseksi.
Mikä on muistin allokointi?
Muistin allokointi on prosessi, jolla tietokoneohjelmille osoitetaan muistia tai tilaa.
Tässä päämuisti on jaettu kahteen osioon:
- Muisti vähissä - Operating-järjestelmä sijaitsee tämän tyyppisessä muistissa.
- Korkea muisti – Käyttäjäprosesseja säilytetään korkeassa muistissa.
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 lueteltu erilaiset osioiden allokointijärjestelmät:
- Ensimmäinen sovitus: Tällaisessa sovituksessa allokoidaan osio, joka on ensimmäinen riittävä lohko päämuistin alusta.
- Parhaiten sopiva: Se allokoi prosessin osiolle, joka on vapaiden osioiden joukossa pienin riittävä osio.
- Huonoin istuvuus: Se allokoi prosessin osiolle, joka on riittävän suuri vapaasti käytettävissä oleva osio päämuistissa.
- Seuraava sovitus: Se on enimmäkseen samanlainen kuin ensimmäinen sovitus, mutta tämä sovitus etsii ensimmäistä riittävää osiota viimeisestä allokointipisteestä.
Mikä on sivutus?
Sivutus on tallennusmekanismi, jonka avulla käyttöjärjestelmä voi hakea prosesseja toissijaisesta tallennustilasta päämuistiin sivujen muodossa. Sivutusmenetelmässä päämuisti jaetaan pieniin kiinteän kokoisiin fyysisen muistin lohkoihin, joita kutsutaan kehyksiksi. Kehyksen koko tulisi pitää samana kuin sivun koko, jotta päämuistia voidaan hyödyntää mahdollisimman tehokkaasti ja välttää ulkoista pirstoutumista. Hakulaite käytetään tiedon nopeampaan käyttöön, ja se on looginen käsite.
Mitä on pirstoutuminen?
Prosesseja tallennetaan muistiin ja poistetaan muistista, mikä luo vapaata muistitilaa, joka on liian pieni muiden prosessien käytettäväksi.
Jonkin ajan kuluttua näitä prosesseja ei voida enää allokoida muistilohkoille niiden pienen koon vuoksi, ja muistilohkot pysyvät aina käyttämättöminä. Tätä kutsutaan fragmentoitumiseksi. Tämän tyyppinen ongelma esiintyy dynaamisessa muistin allokointijärjestelmässä, kun vapaat lohkot ovat melko pieniä, eivätkä ne pysty täyttämään yhtäkää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ää varaamalla pienin osio, joka on silti riittävän hyvä koko prosessin suorittamiseen.
Mikä on segmentointi?
Segmentointimenetelmä toimii lähes samalla tavalla kuin sivutus. Ainoa ero näiden kahden välillä on, 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ä. Kaikki rutiinit tulisi sijoittaa levylle uudelleensijoitettavassa latausmuodossa. Pääohjelma ladataan muistiin ja suoritetaan. Dynaaminen lataus parantaa myös muistitilan käyttöä.
Mitä on dynaaminen linkitys?
Linkittäminen on menetelmä, jonka avulla käyttöjärjestelmä voi kerätä ja yhdistää erilaisia koodi- ja datamoduuleja yhdeksi suoritettavaksi tiedostoksi. Tiedosto voidaan ladata muistiin ja suorittaa. Käyttöjärjestelmä voi linkittää järjestelmätason kirjastoja 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 ohjelmasi staattisesti. Tällöin koko ohjelma linkitetään ja käännetään käännöksen yhteydessä ilman ulkoisia moduuleja tai ohjelmariippuvuuksia. | Dynaamisesti ladatussa ohjelmassa viitteet annetaan ja lataus tehdään suorituksen aikana. |
| 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ä ovat tärkeimmät erot 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 ajonaikaiset riippuvuudet. | Dynaamista linkitystä käytettäessä varsinaista moduulia tai kirjastoa ei tarvitse linkittää ohjelmaan. Sen sijaan käytetään viittausta dynaamiseen moduuliin, joka annetaan kääntämisen ja linkityksen yhteydessä. |


