8-ámeliy jumısı
Operacion sistemada yad menen islew
Jumıstın maqseti: Operacion sistemada yad menen islesiwdi úyreniw.
Teoriyalıq bólim
Fizikalıq (RAM) yad bayt qatarı sıpatında usınıs etiliwi múmkin. Proсessor yad yasheykası indeksinde (fizikalıq mánzil) bul qatardaǵı maǵlıwmatlarǵa múrájáát etiw qábiletine iye. Eski processorlarda (mısalı, i8086), hár bir process processor buyrıqların RAM ǵa fizikalıq múrájáát etiw ushın isletgen, bul, álbette, nadurıs (yamasa zıyanlı) yad menen islewde júdá kóp qátelerge alıp keldi. Fizikalıq yadqa túrli proceslerge kiriwdi ajıratıwǵa urınıslar i80286 processorlarında qorǵalǵan rejim (protected mode) payda bolıwına alıp keldi. I80386 processorında qáwipsiz rejim betti mánzillew mexanizmi menen keńeytirildi, bul bolsa búgingi kúnde proceslerdiń yad izolyaciyasınıń tiykarǵı mexanizmi esaplanadı.
Bul mexanizm shama menen sonday isledi: hár bir process hár qanday yad kamerasına aralıqtan múrájáát etiwi múmkin edi [0, 2^32 - 1] (bul aralıq virtual mánzil maydanı dep ataladı). Mánzil maydanı (virtual hám fizikalıq) shártli túrde 4 KB tárepinen bloklarǵa (betlerge) bólingen, sol sebepli kletka adresi (32-bıyt nomeri) tábiy juplıq (bet indeksi (20 bıyt), bette ofset (12 bıyt)).
Mánzil maydanı betleri
Mánzil bet indeksine hám ofsetga bólinedi
Yad yasheykasına (p, o) múrájáát qılıwdı sorap, processor hár bir process ushın kem ushraytuǵın kestege múrájáát etdi (birinshi jandasıwda 2^20 32-bit nomerleri qatarı dep esaplanıwı múmkin) bet indeksine kóre p bul kestede procestiń virtual mánzil maydanınıń barlıq betleri ushın fizikalıq yad betleri indeksleri (20 -bit nomeri) hám ayrım xızmet maǵlıwmatları (12-bit nomeri: fizikalıq yaddaǵı bet bar ekenligi bayraǵina (ámeldegi bayraq). Eger bet fizikalıq yadta tabılǵan bolsa, processor kerekli yasheykanıń fizikalıq adresin esaplap, bettiń basına salıstırǵanda ofset aldı. Eger kerekli bet fizikalıq yaddaǵı betke uyqas kelmese, processor operacion sistema tárepinen uslanǵan page fault esaptan tısqarısın tasladı. Álbette, hár bir process ushın 4 mb resursların joytıw bolıp tabıladı, sol sebepli qatar ornına ekinshi dárejeli terek isletilgen. 2^20 elementlerdiń qatarı shártli túrde 2^10 blokǵa bólingen. Eger blok tolıq fizikalıq yaddan joǵalǵan betlerden ibarat bolsa, onı óz ishine alǵan bet joq bolar edi. 2^10 blokları dizimi arnawlı bette bar.
Keste ekinshi dárejeli terek bolıp tabıladı
Shama menen, bul bet adresi hám zamanagóy processorlarda isleydi. Virtual mánzil maydanı kestesi qanday toldırıladı? Operacion sistema sizdiń API-den paydalanıp, betlerdi virtual mánzil maydanına rezervlew hám bosatıw imkaniyatın beredi hám bul betlerge fizikalıq yad menen sáykes keledi. Álbette, eger barlıq procesler fizikalıq yadtı alıwdı baslasa, erteli-kesh sistema fizikalıq yadta biypul betti taba almaydı. Bunday halda, ol disk yad faylın (yamasa Linuxda bolǵanı sıyaqlı qattı disk bólegin) isletiwdi baslaydı. Birinshi jantasıwda bul mexanizm sonday isleydi: OS uzaq waqıt dawamında isletilmegen betti tańlaydı hám eger ol ózgertirilgen bolsa (dirty bayraǵına ornatılǵan) yamasa onıń súwreti disk yad faylında bolmasa, betti disk yad faylına saqlaydı. Bunnan tısqarı, OS bul betten paydalanǵan proceslerdiń virtual mánzil jayları kestelerindegi jazıwlardı ózgertiredi, házirgi bayraqtı tikleydi. Bul bettiń ornına disk yad faylınan bet jaylastırıladı (eger process bir márte isletilgen betke múrájáát etetuǵın bolsa) yamasa ol tek nol menen toldırıladı. Betler tek disk yad faylınan júklep alınıwı múmkin-process kodı hám onıń barlıq baylanıslılıqları kodı mánzil maydanına júklenedi. Qattı disktan fayldı mánzil maydanına kiritiw múmkin. Bunday jaǵdaylarda betler tiyisli fayllardan júklep alınıwı múmkin.
Do'stlaringiz bilan baham: |