Trimite munca ta bună baza de cunoștințe cu ușurință. Foloseste formularul de mai jos
Elevii, studenții absolvenți, tineri oameni de știință, folosind baza de cunoștințe în studiile și munca lor va fi foarte recunoscător.
1. Segmentarea memoriei. Punerea în aplicare a segmentării
sistem de memorie virtuală poate fi împărțită în două clase:
sisteme cu blocuri de dimensiune fixă numite pagini și sisteme cu blocuri de dimensiuni variabile, numite segmente.
Concepte de bază de segmentare.
Dezavantajele acestui sistem:
O porțiune poate fi umplută complet, dar rămân site-uri gratuite. Puteți muta cu siguranță secțiuni, dar este foarte dificil.
Luați în considerare același exemplu folosind segmentele:
Fiecare segment poate crește sau psihiatru independent.
Segment - o entitate logică.
o număr de segment
O segmente nu interferează unele cu altele.
o Facilitează schimbul de proceduri și date.
o protecție separată a fiecărui segment (a se citi, a scrie).
În cazul în care paginile au o dimensiune fixă, segmentele nu sunt.
În segmentele precum și în paginile, există problema fragmentării.
pentru că Memoria este de multe ori nu este suficient pentru a utiliza oțel segmentul paginabilă în care numai o parte a segmentului poate fi în memorie.
2. Segmentarea folosind pagini: Multics.Apoi
Într-una dintre primele în care a fost a fost utilizat sistemul de segmentare Multics.Gaseau paginate.
Fiecare aplicație oferă până la 2 ^ 18 segmente (peste 250.000), fiecare dintre acestea ar putea fi de până la 65.536 (36 biți) cuvinte lungi.
segmente de masă - stochează un descriptor pentru fiecare segment. Fiecare program are propriul tabel.
pentru că Intrările în tabelul de mai mult de 250 000 ea este împărțită în pagini.
Tabelul de sine este un segment separat.
puncte de masă descriptor segment de pagini pentru fiecare segment
dimensiunea normală pagină este de 1024 de cuvinte. În cazul în care un segment este mai mic de 1024, atunci fie că nu este împărțit în pagini, sau defalcate în pagina 64-cuvânt.
Atunci când un acces de memorie, face următoarele:
1. În numărul de segment este descriptorul de segment.
2. Verifică dacă tabela de pagini este în memorie. În cazul în care memoria este determinată de locația sa. În cazul în care nu, segmentul se numește o întrerupere.
3. Verifică dacă pagina este păstrată în memorie. În cazul în care memoria este determinată de localizarea în memorie. Dacă nu există nici o memorie, numită eroare de pagină.
5. Există o citire sau scriere.
Segmentarea folosind pagini: Intel Pentium
Fiecare program este oferit la 16K segmente, dintre care fiecare poate fi de până la 1 mldr lungime cuvânt de 36 biți.
Sistem Pentium Baza de memorie virtuală este format din două tabele:
o LDT tabel descriptor local (Descriptor locală Tabelul) - au fiecare program, și descrie segmentele de program.
O Global descriptori de masă GDT (Global Descriptor Table) - unul pentru toate programele, și descrie segmentele de sistem (inclusiv sistemul de operare în sine).
Fiecare selector (arătând spre descriptor) este un număr de 16 biți.
4. Sistemul de selectare a unui Pentium
13 biți definesc numărul de intrări în tabelul descriptor, și, prin urmare, aceste tabele sunt limitate, fiecare conținând 8K (2 ^ 13) descriptorul segment.
1 bit indică tipul folosit tabelul descriptor LDT sau GDT.
5. Nivelurile Privilege din sistem Pentium
nivelurile de privilegiu interzic codul executabil pentru a aplica la nivelul inferior.
Software Descriptor (nu date) sistem segment Pentium (total 8 octeți (64 biți)).
Size (Limit) - dimensiunea segmentului (20 biți), este distanțată în două părți.
În cazul în care dimensiunea segmentului specificat în pagini, acesta poate fi de până la 2 ^ 32 bytes (2 ^ 20 * 4Kbayt (2 ^ 12) (dimensiunea paginii în Pentium)).
1. Selectorul este încărcat într-un registru (pentru comenzile segmentului CS, un segment de date DS).
2. Determinarea unui segment global sau local (LDT sau GDT).
3. Descriptorul extras din LDT sau GDT și stocate într-un registre microprogram.
4. În cazul în care descriptorul în memorie, iar diferența este în cadrul segmentului, programul poate continua, dacă nu, o întrerupere apare.
Prin urmare, folosind un afișaj cu două niveluri (creat de masă (pagina de catalog), care conține o listă de 1024 pagini de tabele), astfel încât numărul de intrări în tabela de pagini poate fi redusă la 1024.
În acest caz, un segment de 4 MB (1024 record de pagini de 4 KB) va avea directorul de pagină cu doar o singură înregistrare (și tabelul pagina 1024) în loc de 1 milion de o singură masă.
7. Detalii de implementare pe UNIX
În sistemul lunix pe mașină pe 32 de biți, fiecare proces primeste 3 GB spatiu virtual pentru sine și pentru 1 Gb tabelele de pagini și alte date de nucleu.
Pe calculatoarele Pentium, utilizați tabelul de pagini pe două nivele și dimensiunea paginii este fixă 4Kbayta
Pe computerele alfa, utilizate pe trei niveluri de masă pagină și dimensiunea paginii este fixă 8Kbayt
Pentru fiecare program este alocat 3 segmente:
1. Codul de program (read-only)
8. Punerea în aplicare a segmentării
Segmentarea poate fi implementat într-unul din cele două moduri: de pompare de pagini de memorie segment și partiție. În prima abordare în memorie este un set de segmente. Dacă există un apel la un segment care nu este în memorie, segmentul este transferat în memoria. În cazul în care nu are loc în memoria unuia sau mai multor segmente ale primei scrise pe disc (dacă aveți deja o copie a acestora pe segmentele de disc sunt pur și simplu eliminate din memorie). Într-un sens, segmentul de pompare este foarte similar cu paginile de apel la cerere: segmentele sunt încărcate și îndepărtate numai dacă este necesar.
Cu toate acestea, segmentarea este, în esență diferită de paginația următoarele: o dimensiune de pagină fixă, iar dimensiunea segmentelor - nr. Fig. 6,8 și prezintă un exemplu de memorie fizică, care inițial conține 5 segmente.
Să vedem ce se întâmplă în cazul în care segmentul 1 este îndepărtat, iar segmentul 7, care este mai mic în dimensiuni, este pus în locul său. Rezultatul este configurația ilustrată în Fig. 6.8 b. Între segmentul de 7 și segmentul 2 este nefolosit ( „martor“) regiune.
Apoi segmentul 4 se înlocuiește cu segmentul de 5 (Fig 6.8 in.), În timp ce segmentul de 3 - 6 segment (vezi Figura 6.8 g.).
După ceva timp, memoria este împărțită în mai multe zone, dintre care unele vor conține segmentele și cealaltă - golurile. Aceasta se numește fragmentare externă (ca spațiu nefolosit nu adjudecate în segmente, iar golurile dintre ele, adică procesul se întâmplă pe segmente).
Uneori, fragmentarea externă numită defalcare pe celule întregi (checkerboarding).
Fig. 6.8. Fragmentarea externă Dinamica (a, b, c, d); defragmentarea prin sigilii (d)
Să vedem ce se întâmplă în cazul în care programul va apela la un segment de 3, atunci când memoria este fragmentată (vezi. Fig. 6,8 g). Spațiul total al golurilor este de 10 KB, și în timp ce este mai mult decât este necesar pentru un segment de 3, segmentul 3 nu se potrivește, pentru că spațiul este împărțit în fragmente mici. În schimb, trebuie să ștergeți mai întâi celălalt segment.
O altă listă populare goluri algoritm doar vizualizat într-un cerc și selectat primul fragment liber de dimensiuni corespunzătoare pentru acest segment. Surprinzător, ultimul algoritm în ceea ce privește performanța globală este mult mai bine decât cel mai bun algoritm de montare, deoarece acesta din urmă dă naștere la o mulțime de cavități mici [114].
Ambii algoritmi reduce dimensiunea medie a fragmentului liber. De fiecare dată când un segment este plasat în fragmentul liber, depășind mărimea acestui segment, care este aproape întotdeauna (exact lovit destul de rare), fragment liber este împărțit în două părți. Segment ocupă o parte și a doua parte este transformată într-un nou fragment liber, care prin definiție este mai mică decât prima. Fără Defrag (conversia tuturor mici golurile într-o singură mare), ambii algoritmi vor duce în cele din urmă la umplerea golurilor de memorie, este prea mic chiar și pentru cel mai mic segment.
Vom descrie acum un astfel de proces. De fiecare dată când un segment este eliminat din memorie și una sau ambele zone adiacente ale segmentului - fără segmente și goluri golurile adiacente pot fi combinate. Dacă în fig. 6,8 g șterge segmentul 5, cele două cavități adiacente, unite cu o dimensiune fragment de 4 Kbytes, care are loc segment la distanță va avea ca rezultat un fragment liber are 11 Kbytes.
9. Segment și memorie paginată segmente
În sistemele în care segmentele sunt suportate de hardware-ul, acești parametri sunt stocate, în general, într-un tabel descriptor de segment, aprogramma se adresează acestor descriptori de către selectorul de număr. În cadrul fiecărui proces include un set de registre segment cuprinzând selectoare segmentul curent de cod, o stivă, de date, și așa mai departe. D. și determinarea ce segmente vor fi utilizate pentru diferite tipuri de accese la memorie. Acest lucru permite procesorului este deja la nivel de hardware pentru a determina admisibilitatea de accesări ale memoriei, simplificarea punerii în aplicare a protecției informațiilor împotriva deteriorării și a accesului neautorizat.
Suport hardware extins segmente mici (în principal, pe procesoare Intel). Cele mai multe nivel segmentatsiyarealizuetsya sistem de operare, independent de hardware-ul.
Segmente paginat și organizarea de memorie paginată face ușor de a organiza schimbul de aceleași date și un cod de sarcini diferite. În acest scop, diferite procese diferite blocuri de memorie logice sunt mapate la aceeași unitate de memorie fizică, care găzduiește piesa partajată de cod sau date.
Plasat pe Allbest.ru
documente similare
Conceptul de memorie virtuală, punerea sa în aplicare. Caracteristici de paginare la cerere. etape de prelucrare în cazul în care nu există pagini în memorie. Strategii (algoritmi) pagina de înlocuire. Caracteristici Unele sisteme de operare: Windows NT și Solaris.
Dezvoltarea unui driver Linux, care urmărește alocarea și Dealocarea proceselor de memorie virtuală și alocarea de pagini fizice cu pagina-defecte. Compilarea șoferului și să lucreze cu el. Verificarea experimentală a performanțelor conducătorului auto.
arhitectura de calculator și de gestionare a memoriei capabilități ale sistemului de operare. Esența conceptului de memorie virtuală. instrumente de gestionare a memoriei virtuale dependente de dispozitiv dispozitiv independent și. Segment-paginate memorie virtuală.
Dezvoltarea de aplicații software în C #, recunoscând litere și numere din fotografiile de înmatriculare. Algoritmul funcționează cu imaginea: corectarea luminozității, eliminarea zgomotului aparat de fotografiat, ascuțirea Edge, binarizarea, segmentare și recunoaștere.
Volumul de memorie dual-port situat în on-chip pentru stocarea programelor și datelor procesoare ADSP-2106x. Metoda de memorie de acces dual. Comenzile memoriei cache și conflictele la accesarea datelor de pe magistrala de memorie. memorie spațiu de sistem multiprocesor.