Deși este teoretic posibil să se reducă numărul de cadre de proces la un nivel minim, există un număr de pagini utilizate în mod activ, fără de care procesul generează adesea defecte de pagină. O frecvență ridicată a încălcărilor paginii se numește trashing (uneori folosind termenul rusesc "alunecare", vezi Figura 10.3). Procesul este în starea de tăiere. dacă în timpul funcționării sale mai mult timp este cheltuit în paginile paginilor, mai degrabă decât în execuția comenzilor. O astfel de situație critică apare indiferent de algoritmii de substituție specifici.
Fig. 10.3. Frecvența defecțiunilor de pagină, în funcție de numărul de cadre alocate procesuluiAdesea, rezultatul unei încercări este o scădere a performanței sistemului informatic. Unul dintre scenariile nedorite poate arăta astfel. Cu un algoritm de substituție global, un proces lipsit de cadre începe să selecteze cadre de la alte procese, care la rândul lor încep să facă același lucru. Ca rezultat, toate procesele intră în coada cererilor către dispozitivul de stocare secundar (în starea de așteptare), iar coada proceselor în stare gata este golită. Utilizarea procesorului este redusă. Sistemul de operare răspunde la aceasta prin creșterea gradului de multiprogramare, ceea ce duce la un prag și mai mare și la scăderea în continuare a sarcinii procesorului. Astfel, debitul sistemului scade din prindere.
Efectul trilului. apărute atunci când se folosesc algoritmi globali, poate fi limitată prin aplicarea algoritmilor locali de înlocuire. Cu algoritmi locali de înlocuire, dacă chiar unul dintre procese a intrat în procesare. acest lucru nu afectează alte procese. Cu toate acestea, el petrece mult timp în coada de așteptare la dispozitivul de descărcare, ceea ce face dificilă paginarea paginilor altor procese.
O situație critică, cum ar fi un trishing, are loc indiferent de algoritmii specifici de substituție. Singurul algoritm care teoretic garantează că nu există nici un raționament. Algoritmul optim considerat mai sus nu este realizat în practică.
Deci, trasarea este o frecvență ridicată a încălcărilor paginilor. Este necesar să o controlați. Când este mare, procesul are nevoie de cadre. Puteți seta defectele de frecvență dorite. Ajustați mărimea procesului prin adăugarea sau scăderea cadrelor din acesta. Ar putea fi oportună descărcarea întregului proces. Ramele libere sunt alocate altor procese cu defecte de frecvență ridicată.
Pentru a preveni trilul, trebuie să alocați cât mai multe cadre procesului de care aveți nevoie. Dar cum știi cât de mult are nevoie? Este necesar să încercați să aflați câte cadre procesul utilizează în realitate. Pentru a rezolva această problemă, Denning a folosit modelul setului de lucru. care se bazează pe aplicarea principiului localității.
Set de set de lucru
Să analizăm comportamentul proceselor reale.
Procesele încep să funcționeze fără a avea paginile necesare în memorie. Ca urmare, prima instrucțiune a mașinii are ca rezultat o eroare a paginii. care necesită schimbarea unei porțiuni din cod. Următoarea eroare apare atunci când variabilele globale sunt localizate și încă o dată - când se alocă memoria pentru stivă. După ce procesul a adunat majoritatea paginilor necesare, paginile sunt rare.
Astfel, există un set de pagini (P1, P2, Pn) utilizate în mod activ, care permite procesului într-un timp t pentru o anumită perioadă de timp să funcționeze eficient, evitând un număr mare de defecte de pagină. Acest set de pagini se numește setul de lucru W (t, T) (setul de lucru) al procesului. Numărul de pagini din setul de lucru este determinat de parametrul T, este o funcție nondecreasing a lui T și este relativ mică. Uneori se numește dimensiunea ferestrei setului de lucru, prin care procesul este monitorizat (a se vedea figura 10.4).
Fig. 10.4. Un exemplu de set de lucru
Când procesul este executat, acesta se deplasează de la un set de lucru la altul. Programul constă de obicei din mai multe seturi de lucru care se pot suprapune. De exemplu, atunci când se numește o procedură, ea definește un nou set de lucru format din pagini care conțin instrucțiuni de procedură, variabilele locale și globale. După terminarea procesului, procesul se lasă din acest set de lucru, dar se poate reveni la acesta atunci când se face o nouă procedură. Astfel, setul de lucru este determinat de codul și datele programului. Dacă procesul alocă mai puține cadre decât este necesar pentru a suporta setul de lucru, acesta va fi într-o stare de trilling.
Principiul localizării legăturilor împiedică schimbările frecvente în seturile de procese de lucru. Formal, acest lucru poate fi exprimat după cum urmează. În cazul în care programul se adresează stranitsamW (t, T), atunci pentru un vyboreTs adecvat probabil acest program va avea acces la aceleași pagini în perioada de timp (t, t + T), în perioada de timp (t-T, t). Cu alte cuvinte, principiul localității afirmă că dacă nu te uiți prea departe în viitor, o poți prezice cu exactitate din trecut. Este clar că, în timp, setul de lucru al procesului se poate schimba (atât în compoziția paginilor, cât și în numărul acestora).
Cea mai importantă proprietate a unui set de lucru este dimensiunea sa. OS ar trebui să aloce fiecărui proces un număr suficient de cadre pentru a se potrivi setului său de lucru. Dacă cadrele sunt încă acolo, atunci poate fi inițiat un alt proces. Dacă seturile de procese de lucru nu sunt stocate în memorie și trshing începe. apoi unul dintre procese poate fi descărcat pe disc.
O altă modalitate de a implementa această abordare se poate baza pe urmărirea numărului de încălcări ale paginilor. cauzate de proces. Dacă procesul generează adesea defecte de pagină și memoria nu este prea plină, atunci sistemul poate crește numărul de cadre alocate. Dacă procesul nu produce excepții de ceva timp și nivelul de generare este sub un anumit prag, numărul de cadre de proces poate fi tăiat. Această metodă reglementează numai dimensiunea setului de pagini aparținând procesului și trebuie completată de orice strategie de înlocuire a paginii. În ciuda faptului că sistemul poate fi blocat în timpul trecerii de la un set de lucru la altul, soluția propusă este capabilă să asigure cea mai bună performanță pentru fiecare proces, fără a necesita nicio configurație suplimentară a sistemului.