[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