a.Evacuarea proces

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


Nucleul evacueazг un proces dacг are nevoie de spaюiu оn memorie, aceastг necesitate apгrвnd оn unul din urmгtoarele cazuri :
1. Apelul sistem fork trebuie sг aloce spaюiu pentru un proces fiu;
2. Apelul sistem brk mгreste dimensiunea unui proces;
3. Un proces se mгre?te prin cre?terea naturalг a stivei sale;
4. Kernel-ul dore?te sг elibereze spaюiu оn memorie pentru procese pe care le-a scos anterior din memorie оn spaюiul de swap ?i pe care acum trebuie sг le readucг оn memorie.
Cazul lui fork iese din discuюie deoarece este singurul caz оn care memoria internг ocupatг anterior de cгtre proces nu este abandonatг.
Cвnd nucleul decide cг un proces poate fi ales pentru evacuarea din memoria principalг, el decrementeazг contorul de referinюг al fiecarei regiuni a procesului ?i evacueazг regiunea dacг contorul a ajuns la 0. Nucleul alocг spaюiu pe un dispozitiv (zona) de evacuare ?i blocheazг procesul оn memorie (pentru cazurile 1-3), оmpiedicвnd swapper-ul de a-l evacua cвt timp se deruleazг operaюia curentг de evacuare. Nucleul salveazг adresa de evacuare a regiunii оn intrarea din Region Table.
Nucleul transferг maximum de date posibile оn fiecare operaюie I/O direct оntre zona de swap ?i spaюiul de adrese al utilizatorului evitвnd memoria cache. Dacг hardware-ul nu poate transfera mai multe pagini оntr-o operaюie, software-ul nucleului trebuie sг transfere succesiv cвte o paginг. Rata de transfer a datelor ?i mecanismul sгu depind, printre alюi factori, ?i de capacitatea controlerului de disc si de implementarea gestiunii memoriei. De exemplu, dacг memoria este organizatг pe pagini, datele care trebuiesc evacuate este posibil sг nu fie contigue оn memoria fizicг. Nucleul trebuie sг obюinг adresele de paginг ale datelor de evacuat iar driverul de disc poate folosi mulюimea adreselor de paginг pentru a seta I/O. Swapper-ul a?teaptг terminarea fiecarei operaюii de I/O оnainte de a evacua alte date.