[so] [Lucrare curs] Nelămurire

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sat Apr 27 16:29:10 EEST 2013


Surdeanu Mihai <mihai.surdeanu at yahoo.com> writes:
> Bună ziua!
>
> Aș avea și eu o nelămurire vizavi de lucrarea 3 - nr. 2 dată la curs pentru 
> seria CC. În principiu este vorba despre întrebarea "Fie afirmația: “Un apel 
> fork() modifică numărul de pagini virtuale și numărul de pagini fizice alocate 
> într-un sistem.” Precizați și justificați valoarea de adevăr a afirmației."
> Nelămurirea mea este de ce cresc întotdeauna și numărul de pagini fizice? 
> Răspunsul oficial a fost că se alocă structuri interne în kernel, cum ar fi 
> PCB-ul. Am căutat și am găsit că acesta ar avea în jur de 3 KB - task struct-
> ul de pe Linux. Nu ar fi trebuit să aibă mai mult de 4 KB sau fix 4 KB pentru 
> a fi siguri că se alocă o nouă pagină fizică? 
>
> Răspunsul oficial precizează că sunt mai multe elemente care se alocă, dar dă 
> exemplu doar PCB-ul care nu are mai mult de 4 KB, deci nu s-ar aloca 
> întotdeauna o nouă pagină fizică. În acest sens, trebuia să se dea exemplu de 
> mai multe structuri care însumate să depășească 4 KB. Pe mine mă interesează 
> ce se alocă în plus față de PCB, pentru că eu în afară de PCB nu mai știu 
> altceva.

Salut, Mihai!

Este binevenită întrebarea. Nu ezitați să puneți întrebări și
clarificări. Nu se supără nimeni; dimpotrivă – cu cât înțelegi mai bine
ce se întâmplă, cu atât suntem mai mulțumiți.

Cel mai important lucru care se alocă după fork în noul proces este
tabela de pagini. Aia ocupă mult. Pentru un sistem cu paginare
non-ierarhică, ar ajunge la megabytes buni ocupați în RAM. Intrările
sunt aceleași ca pentru procesul părinte, dar tabela de pagini e nouă.

Răzvan


More information about the so mailing list