Seqmentləşdirmə

## Seqmentləşdirmə (bölünmə)
Bir üsulda varki addres yaddaşini bölüşdümə üçün istifadə olunu bu seqmentləşdirmə adlanır. Yükləmələrin gorsənməyən vaxti seqmentləşdirmə proqramçıya eniş addreslər yaddaşından istfadə etməyə imkan verir, seqmentləşdirmə proqram və verilənlər üçün rahat iş şəraiti yardır. Seqmentləşdirmə proqramçıya yaddaşa baxmağa imkan verir, hansılarki nəqliyyat adreslərindən seqmentlərdən təşkil olunub. Seqmentlə statik, dinamik, ölçülü olurlar . Bir qayda olaraq, proqramçı və ya Əməliyyat sistemi proqramları və verilənləri ayrı-ayrı seqmentlərdə yerləşdirəcək. Orda müxtəlif proqramlar üçün bir neçə proqram seqmenti, verilənlər seqmenti ola bilər. Hər bir seqmentə giriş icazəsi və işlətmə təyin edilə bilər. Yaddaşa müraciət təşkil olunub (seqmentlərin sayı, qarışıq) müraciət formalarından. Bunun Seqmentləşdirilməmiş usuldan bəzi üstünlükləri var :
* Bu böyük verilənlər üzərində əməliyyatları sadələşdirir. Əgər proqramçı əvvəlcədən nə qədər verilən olacığını bilmirsə təxmin eləməyə ehtiyac yoxdu. Məlumatın daxilində olabilərki ozünün seqmenti vardır və ƏS lazım olanda seqmenti genişləndirəcək və sıxacaq .
* İstifadəçi əgər proqramı dəyişdirib və kompliyasiya eliyirsə, bütün proqramı yenidən yekləmək lazım deyil . Yenədə, bu bir neçə seqmentin köməyi ilə yerinə yetirilir.
* proseslər öz arlarında bir-birini əvəz edir. Proqramçı utilit və ya lazımlı cədvəli başqa bir proses tərəfindən tutulmuş seqmentə yerləşdirə bilər.
* Qorunmasına cavabdehdi. Çünki seqment ola bilər ki yenidən qurulsun, lazimlı proqramları və məlumatları girişi proqramçı ozu hansı formada olacağını təyin edə bilər. Bu üstünlük pagingdə yoxdu, Hansı ki, proqramçıya görsənmir. Başqa tərəfdən biz gördük ki, paging yaddaşı idarə etmənin effektiv formasıdır. Hər ikisinin üstünlüklərini birləşdirmək üçün bəzi ƏS rinin apparat-proqram təminatı hər ikisini dəstəkləyir. Yaddaşın mühafizəsi seqmentləşdirmə məfhumuna əsaslanır. Seqment dedikdə müəyyən həcmli yaddaş sahəsi nəzərdə tutulur. Seqmentin maksimal həcmi 4QB-dir. 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 məsələ 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. Seqmentləşdirmə bloku şəkil 1.2-də göstərilən kimi xətti ünvanı hasil edir. Seqmentləşdirmə yolu ilə yaddaşın mühafizəsi aşağıdakıları qadağan edir:
* Seqmentin öz təyinatına uyğun olmayan şəkildə istifadə edilməsi (məs. verilənlər sahəsini program sahəsi kimi istifadə etmək);
* Müraciət qaydasının pozulması
* Seqment sərhəddinin kənarda olan elementlərin ünvanlaşdırılması
* Kifayət qədər üstünlüyə malik olmadığı halda deskriptorlar cədvəlinin məzmununun dəyişilmə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əti (registrlərin məzmunu) xüsusi olaraq ayrılmış məsələnin vəziyyətləri seqmentində TSS yadda saxlanılır. TSS- in ünvanı məsələnin TR registrindəki sellektoru ilə müəyyən edilir. 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ı 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 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ı haqda məlumat deskriptora qeyd edilir. Dikreptorlar 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. Deskreptor yaddaş elementinin mövqeyini, sahəsinin ölçüsünü, onun təyinatını əks etdirir. Bütün deskreptorlar aparatla müraciət edilə bilən cədvəllərdə yadda saxlanılır. 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 prosessorları üçü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.

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 ünvanlaş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 deskriptorlardan 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.