a.Fork оntr-un sist.de paginare

[ ]
Nucleul duplic fiecare regiune a procesului-printe pe timpul apelului sistem fork ?i le ata?eaz procesului-fiu. De obicei, nucleul sistemului face o copie fizic a spaiului de adres al printelui, ceea ce reprezint o operaie 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, intrrilor din tabelele de pagin ?i intrrilor 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 printelui: dac este o pagin valid, incrementeaz contorul de referin n intrarea din pfdata, indicnd numrul 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 pn ce un proces scrie n ea. Nucleul copiaz apoi pagina astfel inct 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-printe ?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-printe. Admind mbuntirea performanelor prin faptul c nu s-ar realiza, totu?i, sistemul BSD conine ?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 dect apelul sistem fork din implementarea System V.

:

Network | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | () | | | | | | | | | | | | | | | | () | Assembler | Basic, VB | Pascal | , ++ |