Assembler proqramlaşdırma dili

Mühafizə olunan yaddaş rejimi

Mühafizə olunan yaddaş rejimi

Mühafizə olunan rejim (Protected Mode) 32 bitli MP-lərin əsas iş rejimi olub 64 QB-a (Pentium Pro-da 64 TB) fiziki yaddaş həcmini ünvanlaşdırmağa imkan verir. Intel 8086 prosessorunun virtual rejimi (Virtual 8086 Mode yaxud V86) dedikdə mühafizə olunan rejimin xüsusi halı nəzərdə tutulur. Bu halda prosessor 8086 modeli kimi işləyir, lakin 32 bitli verilənlər və ünvan kodundan istifadə edilir.

Mühafizə olunan rejim Intel 80286 arxitekturundan başlayaraq mövcud olmuşdur. Bu rejim 1 ədəd prosessor daxilində bir neçə məsələni bir-birindən asılı olmayaraq yerinə yetirməyə imkan verir. Bunun üçün hər bir məsələnin resursları (proqram və aparat vasitələri) digər məsələ tərəfindən müdaxilə edilməsi təhlükəsindən mühafizə edilir.

Əsas mühafizə edilən resurs kimi proqramların, verilənlərin, müxtəlif sistemli cədvəllərin (məsələn, kəsilmə cədvəlləri) saxlandığı yaddaş hesab edilir. Bundan əlavə müxtəlif məsələlər tərəfindən birgə istifadə edilən aparat təchizatı da mühafizə edilir. Bu vasitələrə giriş-çıxış və kəsilmə əməliyyatları ilə mürajiət edilə bilər.

Yaddaşın mühafizəsi seqmentləşdirmə məfhumuna əsaslanır. Seqment dedikdə müəyyən həjmli yaddaş sahəsi nəzərdə tutulur. Seqmentin maksimal həjmi 4 QB-dır (Intel 8086, 80286 proses­sorları üçün 64 KB olmuşdur). Hər bir məsələ üçün seqment əməliyyat sistemi tərəfindən ayrılır. Lakin real yaddaş rejimində seqment registrlərinin məzmunu dəyişdirilməklə digər məsələ üçün ayrılmış yaddaş sahəsinə müdaxilə etmək təhlükəsi qalır. Mühafizə olunan rejimdə seqmentlər məsələ üçün ƏS tərəfindən ayrılır və hər bir tətbiqi proqram yalnız onun üçün ayrılmış seqmentlərdən istifadə edir.

Seqmentin yaddaşdakı yeri selektor vasitəsilə təyin edilir. Selektorlar qabaqcadan tərtib edilmiş seqment deskriptorları cədvəlindən deskriptoru seçilir. Prosessor yalnız deskriptorları cədvəldə olan seqmentlərə müraciət edir. 16 bitli selektor kodu əvvəlcədən proqram vasitəsilə seqment registlərinə yüklənir. Selektorun formatı aşağıdakı kimidir:

Burada TI cədvəl indiqatorudur ki, TI=1 olduqda lokal, TI=0 olduqda isə qlobal deskriptorlar cədvəlini işarə edir. İndeks kodu TI ilə birlikdə uyğun cədvəldən deskriptoru seçməyə imkan verir. PRL sahəsi tələb olunan üstünlük səviyyəsini göstərir. Deskriptorlar 8 baytlı verilənlər strukturu olub proqram elementlərinin (seqmentlərin, cədvəllərin) xüsusiyyətlərini təyin etmək üçün istifadə edilir. Deskriptor yaddaş elementinin mövqeyini, sahəsinin ölçüsünü, onun təyinatını əks etdirir. Bütün deskriptorlar aparatla müraciət edilə bilən cədvəllərdə yadda saxlanılır.

Yaddaşın mühafizəsi seqmentləşdirmə yolu ilə aşağılakıları qadağan edir:

-seqmentin öz təyinatına uyğun olmayan şəkildə istifadə edilməsi (məsələn, verilənlər sahəsini proqram sahəsi kimi istifadə etmək);

-müraciət qaydasının pozulması (yalnız oxuma rejimi üçün nəzərdə tutulmuş seqmentin məzmununun dəyişdirilməsi, yaxud üstünlük dərəcəsi kifayət etməyən halda seqmentə müraciət cəhdləri);

-seqment sərhəddindən kənarda olan elementlərin ünvan­laş­dırılması;

-kifayət qədər üstünlüyə malik olmadığı halda deskriptorlar cədvəlinin məzmununun dəyişdirilməsi.

Mühafizə olunan rejim vasitəsilə bir məsələdən digər məsələyə keçid təmin edilir. Hər bir məsələnin vəziyyət (registrlərin məzmunu) xüsusi olaraq ayrılmış məsələnin vəziyyətləri seqmentində TSS-də yadda saxlanılır. TSS-in ünvanı məsələnin TR registrindəki selektoru ilə müəyyən edilir.

4 səviyyəli ierarxik üstünlük sistemi yüksək üstünlüyə malik əmrlərin və deskriptorlara müraciətin idarəsi üçündür. Üstünlük səviyyələri 0-dan 3-ə qədər nömrələnir. 0-cı səviyyə maksimal müraciət imkanlarına malik olub əməliyyat sisteminin nüvəsi üçün ayrılır. 3-cü səviyyə isə daha məhdud imkanlara malikdir və tətbiqi məsələlər üçün nəzərdə tutulur.

Virtual yaddaş mexanizmi ixtiyari məsələ üçün 64 QB-a qədər məntiqi ünvanlaşdırılan yaddaş sahəsindən istifadə etmək imkanını verir. Bunun üçün hər bir seqment öz deskriptorunda xüsusi bitlə göstərilən əlamətə malik olur. Bu əlamət həmin seqmentin baxılan zaman anında operativ yaddaşda olmasını müəyyən edir. İstifadə edilməyən seqment (bu halda deskriptorda məlumat göstərilir) operativ yaddaşdan diskə köçürülür və azad olan sahəyə digər seqment yüklənir. Bundan sonra seqmentin yaddaşda olması haqqında məlumat deskriptora qeyd edilir.

Mühafizə olunan rejimdə ünvanlaşdırılma. Yaddaşın mühafizə olunan rejimi yalnız 80286-80486 və Pentium arxitekturları üçün mövcuddur. Bu rejimdə yaddaşın birinci 1 MB-lıq sahəsindən kənardakı xanaları ünvanlaşdırmağa imkan verir. Real rejimin ünvanlaşdırma sxemindən fərqli olaraq, seqment ünvanı əvəzinə seqment registrində yerləşən seqment selektorundan istifadə edilir. Seqment selektoru diskriptoru seçir ki, burada seqmentin yaddaşdakı ünvanı, onun uzunluğu və ondan məlumatın seçilmə qaydası təyin edilir.

Real yaddaş rejimi üçün yazılmış proqramların əksəriyyəti mühafizə olunan rejimdə yerinə yetirilə bilir. Bunun üçün seqment registrindən istifadə edilir.

Seqment registrində saxlanılan selektor 8192 deskrip­torlardan birini 2 müxtəlif diskriptorlar cədvəlindən birində seçir(GDTR və ya LDTR ilə təyin edilən). Deskriptorlar cədvəli qlobal və lokal olmaqla 2 qrupa ayrılır. Qlobal deskriptor bütün proqramlar üçün yararlı ola biləcək seqmenti təyin edir. Lokal deskriptor isə hər bir tətbiqi proqram üçün fərdidir.

Şəkil 6-da 80286-80486 və Pentium MP üçün deskriptorun formatı təsvir edilmişdir. Hər bir deskriptorun uzunluğu 8 baytdır, çünki qlobal və lokal deskriptorlar cədvəlinin uzunluğu 64 KB-a qədərdir.

Deskriptorun əsas ünvan sahəsi (baza) seqmentin yaddaşdakı başlanğıc ünvanını təyin edir. 80286 üçün baza ünvanı 24 mərtəbəlidir, çünki seqment 16 MB-lıq yaddaş sahəsinin oyuqlarından birindən başlaya bilər. 80386-80486 və Pentium arxitekturları 32 mərtəbəli baza ünvanından istifadə edilir. Bu MP üçün sürüşmə ünvanı 16 mərtəbəlidir.