Suojattu tila (suojattu virtuaalinen osoitetila) - x86-yhteensopivien prosessorien toimintatila . Se oli osittain toteutettu jo 80286-prosessorissa , mutta tapa työskennellä muistin kanssa oli siellä merkittävästi erilainen, koska prosessorit olivat edelleen 16-bittisiä eikä muistin hakua ollut toteutettu . Ensimmäinen suojatun tilan 32-bittinen toteutus on Intel 80386 -prosessori . Käytetään muiden valmistajien yhteensopivissa prosessoreissa. Tätä tilaa käytetään nykyaikaisissa moniajokäyttöjärjestelmissä, Windowsissa , Linuxissa ja macOS :ssä .
Digital Equipment (DEC) käytti samanlaista tilaa 32-bittisille tietokoneille: VAX-11 .
80286 - prosessorissa todellisen tilan lisäksi toteutettiin myös suojattu tila. Suojatussa tilassa prosessori voi osoittaa jopa 16 Mt fyysistä muistia ja 1 Gt virtuaalimuistia (16384 segmenttiä, kukin 64 kt) vaihtamalla osoitemekanismia. Siirtyminen reaalitilasta suojattuun tilaan tapahtuu ohjelmistossa ja on suhteellisen yksinkertaista, mutta takaisin vaihtaminen vaatii prosessorin laitteiston nollauksen. Machine Status Word (MSW) -rekisteriä käytetään seuraamaan prosessorin nykyistä toimintatilaa. Reaalitilan ohjelmat eivät voi toimia suojatussa tilassa ilman muutoksia, kuten koneen BIOS -ohjelmat.
Suojatun tilan olemus on seuraava: ohjelmoija ja hänen kehittämänsä ohjelmat käyttävät loogista osoiteavaruutta, jonka koko voi olla 1 gigatavu. Muistinhallintayksikkö (MMU) muuntaa loogisen osoitteen automaattisesti fyysiseksi osoitteeksi . Tässä tapauksessa segmenttirekisterin sisältö ei liity suoraan fyysiseen osoitteeseen, vaan se on segmentin numero vastaavassa taulukossa. Suojatun tilan ansiosta vain se osa ohjelmasta, joka tällä hetkellä tarvitaan, voidaan tallentaa muistiin ja loput voidaan tallentaa ulkoiseen muistiin (esimerkiksi kiintolevylle). Jos käytetään ohjelman osaa, joka ei ole tällä hetkellä muistissa, käyttöjärjestelmä voi keskeyttää ohjelman, ladata tarvittavan koodiosan ulkoisesta muistista ja jatkaa ohjelman suorittamista. Tämän seurauksena ohjelmat, jotka ovat suurempia kuin käytettävissä olevan muistin määrä, tulevat voimaan, ja käyttäjä kokee työskentelevänsä suuremmalla muistilla kuin hän todellisuudessa on.
Fyysinen osoite muodostetaan seuraavasti. Segmenttirekisterit tallentavat valitsimen , joka sisältää deskriptori - indeksin deskriptoritaulukossa (13 bittiä), 1 bitin, joka määrittää, mihin kuvaajataulukkoon päästään (paikallinen tai globaali) ja 2 bittiä pyydetystä käyttöoikeustasosta. Seuraavaksi päästään vastaavaan deskriptoritaulukkoon ja vastaavaan kuvaajaan, joka sisältää alkuperäisen 24-bittisen segmentin osoitteen, segmentin koon ja käyttöoikeudet, minkä jälkeen lasketaan tarvittava fyysinen osoite lisäämällä segmentin osoite poikkeuksella 16-bittisestä. rekisteröidy.
Intelin 32-bittisten 80386-suorittimien myötä prosessorit voivat toimia kolmessa tilassa: todellinen , suojattu ja virtuaalinen 8086-prosessori.
Suojatussa tilassa käytetään 32-bittisen prosessorin kaikkia ominaisuuksia - tarjotaan suora pääsy 4 Gt:n fyysiseen osoiteavaruuteen ja moniajo useiden ohjelmien ( prosessien ) rinnakkaisella suorittamisella. Tarkkaan ottaen moniajotila on järjestetty moniajokäyttöjärjestelmän toimesta, mutta mikroprosessori tarjoaa luotettavan mekanismin, joka tarvitaan tähän tilaan tehtävien suojaamiseksi toisiltaan nelitasoisen käyttöoikeusjärjestelmän avulla . Myös tässä tilassa on käytettävissä hakumuisti, mikä lisää tehtävien suojaustasoa toisiltaan ja niiden suorittamisen tehokkuutta.
Intel ymmärsi i386-prosessorin paremman reaalitilan tuen tarpeen, koska ohjelmisto ei ollut täysin valmis toimimaan suojatussa tilassa sen julkaisuhetkellä. Siksi esimerkiksi i386:ssa on mahdollista vaihtaa suojatusta tilasta takaisin reaalitilaan (80286:n kehittämisen aikana katsottiin, että tätä ei vaadita, joten tietokoneissa, joissa on 80286-prosessori, paluu reaalitilaan on suoritetaan piirien avulla - prosessorin nollauksen kautta).
Kun mikroprosessori kytketään päälle, todellinen osoitetila asetetaan siihen automaattisesti. Siirtyminen suojattuun tilaan suoritetaan ohjelmallisesti suorittamalla sopiva komentosarja. Suojattuun tilaan tarkoitetut ohjelmat on kirjoitettava erityisellä tavalla. Tämä tarkoittaa, että todellinen ja suojattu tila eivät ole yhteensopivia.
Kaikki fyysinen muisti on jaettu kiinteän kokoisiin sivuihin ( 4K tavua , 2 Mt tai 4 Mt, x86_64 myös 1 Gt). Jokainen sivu koosta riippumatta on tasattu 4K- tavun rajalle .
Pääideana on muistikuvaustaulukoiden muodostaminen, jotka määrittävät sen yksittäisten segmenttien/sivujen tilan jne. Jos muistista on pulaa, käyttöjärjestelmä voi purkaa osan tiedoista RAM-muistista levylle ja syöttää ilmoitus tämän tiedon puuttumisesta muistista kuvaustaulukossa. Kun yrittää päästä käsiksi puuttuviin tietoihin, prosessori luo #PF-poikkeuksen (eräänlainen keskeytys) ja antaa hallinnan käyttöjärjestelmälle, joka palauttaa tiedot muistiin ja palauttaa sitten ohjauksen ohjelmalle. Siten ohjelmien osalta tietojen vaihtaminen levyiltä jää huomaamatta.
Lineaarinen muistiosoite on suojatun tilan tietokoneen muistin osoitusjärjestelmä (alkaen Intel 80386 :sta ja muista yhteensopivista x86-prosessoreista). Useimmat nykyaikaiset moniajokäyttöjärjestelmät käyttävät.
Lineaarisen osoitemekanismin ansiosta voit luoda minkä tahansa (vain RAM-muistin koon rajoittaman ) määrän itsenäisiä virtuaalisia osoiteavaruuksia . Lisäksi jokainen lineaarisen osoiteavaruuden sivu voidaan sijoittaa mihin tahansa fyysiseen osoitteeseen tai jopa sivuttaa levylle.
Lineaarista osoitetta käytettäessä 32- bittinen looginen osoite on jaettu kolmeen osaan:
Käytettäessä 4 M tavun sivuja, toinen osa puuttuu. Sivun siirtymä määritetään biteillä 21-0 (22 bittiä).
Lineaarisen osoitteen ottamiseksi käyttöön sinun on suojatussa tilassa asetettava PG - bitti CR0 -rekisteriin . Ensin tulee luoda muistiin sivuhakemisto ( englanniksi Page Directory , PD) ja sivutaulukko ( englanniksi Page Table , PT) ja ladata sitten sivuhakemiston fyysinen osoite CR3-rekisteriin .
Molemmat rakenteet ovat hakemistomerkintöjen taulukoita ja sivutaulukoita ( englanninkielinen Page Directory Entry , PDE ja englantilainen Page Table Entry , PTE) muistisivuja, joiden koko on 4 kt .
Molemmat elementit ovat 4 tavua (32 bittiä ) pitkiä ja niillä on samanlainen rakenne:
Keltaiset kentät (Sivutaulukon osoite, Sivun osoite) sisältävät sivutaulukon ylemmän 20 bittiä ja sivun osoitteen vastaavasti (fyysisen osoitteen alemmat 12 bittiä ovat aina nollia - kohdistamista ei pidä unohtaa).
Kolme Avl-bittiä ovat järjestelmälle annettuja bittejä . Niihin voi kirjoittaa mitä tahansa.
Kuvaus lipuista:
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
muu | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |