SHPORA.net :: PDA

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

Main
FAQ

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

a.Exec оntr-un sis cu paginare

Când un proces apelează funcția sistem exec, nucleul cite?te fi?ierul executabil în memorie din sistemul de fi?iere. Într-un sistem cu paginare la cerere, fi?ierul executabil poate fi totu?i prea mare ca să încapă în memoria principală. De aceea, nucleul nu preasignează memorie fi?ierului executabil, dar îl întrerupe,asignându-i câtă memorie are nevoie.Acesta asignează mai întâi tabele de pagină ?i descriptori de bloc disc pentru fi?ierul executabil, marcând intrările în tabela de pagină "demand fill" (pentru date non-BSS) sau "demand zero" (pentru date BSS ). Urmând o variantă a algoritmului read pentru citirea fi?ierului în memorie, procesul crează o întrerupere de validare la citirea fiecărei pagini.
Rutina de tratare a întreruperii reține dacă pagina este "demand fill", însemnând că imediat va fi rescris conținutul său cu conținutul fi?ierului executabil, astfel încât nu este necesară ?tergerea sa, sau dacă este "demand zero", situație în care conținutul său va fi ?ters.
Această schemă prezintă ?i unele dificultăți. În primul rând, un proces produce o întrerupere de pagină când cite?te fiecare pagină a fi?ierului executabil, chiar dacă nu va trebui să acceseze niciodată pagina respectivă. În al doilea rând, swapper-ul trebuie să evacueze pagini din memorie înainte de terminarea apelului sistem exec, rezultând în plus două operații de swap per pagină dacă procesul necesită rapid pagina respectivă. Pentru a face exec mai eficient, nucleul poate solicita pagini direct din fi?ierul executabil. Totu?i, folosirea algoritmilor standard pentru accesarea unui fi?ier ar face prea costisitoare paginarea la cerere prin blocurile de indirectare din cauza acceselor multiple la bufferele cache necesare pentru citirea unui bloc. Nucleul setează diferiții parametri de I/O in uarea pe timpul apelului sistem read. Dacă un proces provoacă o întrerupere de pagină pe timpul unui apel sistem read, când încearcă să copieze datele în spațiul user, acesta dore?te să rescrie aceste câmpuri în uarea pentru a citi pagina din sistemul de fi?iere.