SHPORA.net :: PDA

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

Main
FAQ

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

a.Fork оntr-un sist.de paginare

Nucleul duplică fiecare regiune a procesului-părinte pe timpul apelului sistem fork ?i le ata?ează procesului-fiu. De obicei, nucleul sistemului face o copie fizică a spațiului de adresă al părintelui, ceea ce reprezintă o operație greoaie în majoritatea cazurilor, deoarece procesele apelează adesea exec imediat după apelul lui fork ?i eliberează imediat memoria pe care tocmai a copiat-o.
La sistemul de paginare al System V, nucleul evită copierea paginii prin manipularea tabelelor de regiuni, intrărilor din tabelele de pagină ?i intrărilor din pfdata: pur ?i simplu este incrementat contorul de referință al regiunilor folosite în comun.
Pentru regiunile private, ca cele de date ?i stiva, acesta alocă totu?i o nouă intrare în tabela de regiuni ?i o nouă tabelă de pagină iar apoi examinează fiecare intrare din tabela de pagină a părintelui: dacă este o pagină validă, incrementează contorul de referință în intrarea din pfdata, indicând numărul de procese care folosesc în comun pagina prin intermediul unor regiuni diferite. Dacă pagina există pe dispozitivul de swap, incrementează contorul de referință al tabelei swap-use pentru pagina respectivă.
Pagina poate fi acum referită din ambele regiuni care folosesc în comun pagina până ce un proces scrie în ea. Nucleul copiază apoi pagina astfel incât fiecare regiune are propria versiune. Pentru aceasta, nucleul setează bitul "copy on write" pentru fiecare intrare din tabela de pagină din regiunile private ale procesului-părinte ?i procesului-fiu pe parcursul apelului sistem fork.
Pagină într-un proces care face fork:
--Implementarea apelului sistem fork în sistemul BSD face o copie fizică a paginilor procesului-părinte. Admițând îmbunătățirea performanțelor prin faptul că nu s-ar realiza, totu?i, sistemul BSD conține ?i apelul sistem vfork, care presupune că orice proces-fiu va invoca imediat apelul sistem exec la întoarcerea din apelul sistem vfork nu copiază tabele de pagină, deci este mai rapid decât apelul sistem fork din implementarea System V.