SHPORA.net :: PDA

Login:
đćăèńòđàöèÿ

Main
FAQ

ăóìàíèòàđíûć íàóêè
ćńòćńòâćííûć íàóêè
ìàòćìàòèśćńêèć íàóêè
òćőíèśćńêèć íàóêè
Search:
Title: | Body:

a.Evacuarea proces

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.