[so] [Tema3][Linux] Probleme testul 5 BSS

Razvan Crainea razvan.crainea at gmail.com
Tue Apr 16 10:09:18 EEST 2019


Salut, Alex!

Logica ta de rezolvare este bună.
Este ok să mapezi fișierul direct la adresele virtuale, doar că asta
s-ar putea să nu funcționeze întotdeauna. Mai exact cred că ai avea
probleme la cazul în care ar trebui să mapezi date de dimensiune mai
mică decât o pagină. Ba mai mult, la bss nu ai ce mapa :).
Încearcă să faci puțin debugging și să vezi la ce adresă ar trebui să
înceapă zona de bss și să te asiguri că mapezi ce trebuie acolo.

Numai bine,
Răzvan


On Mon, Apr 15, 2019 at 3:25 PM Alex Cosmin Mihai via so
<so at cursuri.cs.pub.ro> wrote:
>
> Salut,
>
> Intampin probleme cu testul 5, mai exact cu verificarea ca octetii care sunt in bss sunt initializati cu 0.
>
> Nu reusesc sa-mi dau seama unde anume nu setez cu 0 si ar trebui sa o fac.
>
> In principiu, calculez adresa de inceput a paginii in care se afla adresa care genereaza SIGSEGV folosind ALIGN_DOWN, aflu in care segment se afla si verific
> - daca este in totalitate in portiunea cuprinsa in executabil => mapez din fisierul de la offsetul corespunzator la acea adresa page_size octeti
> - daca este partial in executabil, partial in portiunea dintre file_size si mem_size ale segmentului => mapez din fisier doar portiunea cuprinsa in interior si restul las mapat la o zona plina cu 0 din memoria fizica
> - daca este in totalitate in afara fisierului => mapez adresa de inceput a paginii la un frame plin de 0
>
> Este ok daca mapez direct fisierul la adresele virtuale? Practic tot se copiaza pana la urma in memoria fizica continutul fisierului.
>
> Daca ati putea sa va uitati peste codul urcat pe GitLab (alexandru.mihai1708), v-as fi foarte recunoscator!
>
> Numai bine,
> Alexandru Mihai
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii



--
Răzvan Crainea


More information about the so mailing list