Haku sisään Operating System (OS): Mikä on, edut, esimerkki

⚡ Älykäs yhteenveto

Sivutus on muistinhallintatekniikka, joka tallentaa prosessit kiinteän kokoisille sivuille ja lataa ne samankokoisiin fyysiseen muistikehyksiin, jolloin käyttöjärjestelmä voi käyttää erillistä muistia, välttää ulkoista pirstoutumista ja käyttää tietoja nopeammin.

  • 📄 Määritelmä: Sivutus jakaa loogisen muistin kiinteän kokoisiin sivuihin ja fyysisen muistin yhtä suuriin kehyksiin, mapping yksi sivu yhteen kehykseen.
  • 🗺️ Sivutaulukko: Käyttöjärjestelmä käyttää sivutaulukkoa kääntääkseen jokaisen loogisen sivunumeron fyysiseksi kehysosoitteeksi.
  • 🛡️ suojaus: Jokaisessa sivutaulukon merkinnässä oleva kelvollinen/kelvoton-bitti suojaa muistia ja merkitsee, mille sivuille prosessi voi käyttää.
  • edut: Sivutus poistaa ulkoisen fragmentoitumisen ja tekee swap-toiminnonping samankokoisten sivujen ja kehysten välillä yksinkertaista ja nopeaa.
  • ⚠️ Kompromissit: Sivutus voi aiheuttaa sisäistä pirstoutumista ja sivutaulukoiden ylimääräistä kuormitusta, kun taas segmentointi käyttää sen sijaan muuttuvan kokoisia segmenttejä, jotka vastaavat ohjelman rakennetta.
  • 🤖 Tekoälyn kulma: Koneoppiminen hienosäätää sivunkorvauspäätöksiä, ja Copilot auttaa sivutus- ja osoitteenkäännöskoodin kirjoittamisessa.

Haku sisään Operating System

Mitä on sivutus käyttöjärjestelmässä?

Hakulaite 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 pidetään samana kuin sivun, jotta päämuistia voidaan hyödyntää mahdollisimman tehokkaasti ja välttää ulkoista pirstoutumista. Sivutusta käytetään tiedon nopeampaan käyttöön, ja se on looginen käsite.

Esimerkki sivutuksesta käyttöjärjestelmässä

Ymmärtääksemme, miten sivut liittyvät kehyksiin, tarkastellaan yksinkertaista esimerkkiä. Jos päämuistin koko on 16 kt ja kehyksen koko on 1 kt, päämuisti on jaettu 16 kehyksen kokoelmaan, joista jokainen on kooltaan 1 kt.

Järjestelmässä on neljä erillistä prosessia, A1, A2, A3 ja A4, jotka ovat kooltaan 4 kt kukin. Tässä kaikki prosessit on jaettu 1 kt:n kokoisiin sivuihin, jotta käyttöjärjestelmä voi tallentaa yhden sivun yhteen kehykseen.

Prosessin alussa kaikki kehykset pysyvät tyhjinä, joten prosessien kaikki sivut tallennetaan yhtenäisellä tavalla.

Esimerkki sivutuksesta käyttöjärjestelmässä, jossa sivut ladataan vierekkäin

Tässä esimerkissä näet, että A2 ja A4 siirtyvät odotustilaan jonkin ajan kuluttua. Näin ollen kahdeksan kehystä tyhjenee, ja näihin tyhjiin lohkoihin voidaan ladata muita sivuja. Prosessi A5, jonka koko on 8 sivua (8 kt), odottaa valmiusjonossa.

Esimerkki sivutuksesta käyttöjärjestelmässä, jossa prosessi on ladattu erillisiin kehyksiin

Muistissa on nyt kahdeksan erillistä kehystä, ja sivutus tarjoaa joustavuutta tallentaa prosessit eri paikkoihin. Tämä sallii käyttöjärjestelmän ladata prosessin A5 sivut A2:n ja A4:n sijaan.

Mikä on hakusuojaus?

Sivutusprosessi suojataan lisäämällä ylimääräinen bitti, jota kutsutaan kelvollinen/kelvoton-bitiksi. Muistin suojaus sivutuksessa saavutetaan liittämällä suojausbittejä jokaiseen sivuun. Nämä bitit liittyvät jokaiseen sivutaulukon merkintään ja määrittävät vastaavalla sivulla sallitun suojauksen.

Hakutoiminnon edut

Sivutusmenetelmän käytön edut ovat seuraavat:

  • Se on helppokäyttöinen Muistinhallinta algoritmi.
  • Ulkoista fragmentointia ei tarvita.
  • Vaihtaaping on helppoa samankokoisten sivujen ja sivukehysten välillä.

Hakujen haitat

Tässä ovat sivuttamisen haitat ja haitat:

  • Se voi aiheuttaa sisäistä hajoamista.
  • Sivutaulukot kuluttavat enemmän muistia.
  • Monitasoinen haku voi johtaa muistin viitemäärään.

Mikä on segmentointi?

Segmentointi 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ääfunktion, tietorakenteet, apufunktiot ja niin edelleen. Käyttöjärjestelmä ylläpitää segmenttikarttataulukkoa kaikille prosesseille. Se sisältää myös luettelon vapaista muistilohkoista sekä niiden koosta, segmenttinumeroista ja muistipaikoista päämuistissa tai virtuaalimuistin.

Segmentoinnin edut

Tässä ovat segmentoinnin hyvät ja huonot puolet:

  • Se tarjoaa suojaa segmenttien sisällä.
  • Voit saavuttaa jakamisen käyttämällä segmenttejä, jotka viittaavat useisiin prosesseihin.
  • Se ei aiheuta sisäistä hajoamista.
  • Segmenttitaulukot käyttävät vähemmän muistia kuin sivutus.

Segmentoinnin haitat

Tässä ovat segmentoinnin haitat ja haitat:

  • Segmentointimenetelmässä prosessit ladataan ja poistetaan päämuistista. Näin vapaa muistitila jaetaan pieniksi paloiksi, mikä voi aiheuttaa ulkoisen fragmentoitumisongelman.
  • Se on kallis muistinhallinta-algoritmi.

UKK

Sivuvirhe tapahtuu, kun prosessi pyytää sivua, jota ei ole tällä hetkellä päämuistissa. Käyttöjärjestelmä keskeyttää prosessin, hakee sivun toissijaisesta tallennustilasta vapaaseen kehykseen ja jatkaa sitten suoritusta.

Sivutaulukko on käyttöjärjestelmän ylläpitämä tietorakenne kullekin prosessille. Se yhdistää jokaisen loogisen sivunumeron fyysiseen kehykseen, joka sisältää kyseisen sivun, mikä mahdollistaa oikean osoitemuunnoksen suorituksen aikana.

TLB on pieni ja nopea välimuisti, joka tallentaa viimeisimmät sivulta kehykseen tehdyt kartat.pings. Se nopeuttaa osoitteenkäännöstä välttämällä koko sivutaulukon haun muistista usein käytettyjen sivujen kohdalla.

Sivu on kiinteän kokoinen prosessin lohko loogisessa muistissa, kun taas kehys on saman kokoinen lohko fyysistä muistia. Sivutus lataa jokaisen sivun täsmälleen yhteen vapaaseen kehykseen.

Vaatimuspohjainen sivutus lataa sivun muistiin vain silloin, kun prosessi todella viittaa siihen, sen sijaan, että koko prosessi ladattaisiin etukäteen. Tämä säästää muistia ja nopeuttaa prosessin käynnistymistä.

Sisäinen fragmentointi tuhlaa tilaa varatun kehyksen sisällä, kun sivu ei täytä sitä kokonaan. Ulkoinen fragmentointi jättää hajanaisia ​​vapaita aukkoja allokointien väliin. Sivutus poistaa ulkoisen fragmentoinnin, mutta voi silti aiheuttaa sisäistä fragmentointia.

Koneoppimismallit ennustavat tulevia sivuviittauksia sivujen korvaamista ja esilatausta koskevien päätösten tueksi. Näiden tekoälytekniikoiden tavoitteena on alentaa sivuvirheiden määrää ja parantaa muistin käyttöä datakeskuksissa ja pilvijärjestelmissä.

Kyllä. GitHub Copilot voi luoda FIFO-, LRU- ja optimaalisen sivunkorvauskoodin sekä sivutussimulaatioita C-kielellä. Javatai PythonTarkista aina vikamäärät ja reunatapaukset ennen kuin luotat lähtöön.

Tiivistä tämä viesti seuraavasti: