Salut, Atât adresa (primul parametru) cât și offsetul trebuie să fie multipli de pagină:
Din manual: "MAP_FIXED: Don't interpret addr as a hint: place the mapping at exactly that address. addr must be a multiple of the page size." respectiv "offset must be a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE)" On Tue, 16 Apr 2019 at 15:38, Paul-Stelian Olaru via so <[email protected]> wrote: > > Nu văd unde specifică în acea pagină de manual că dimensiunea poate fi mai > mică decât o pagină. Ba chiar, este imposibil ca mmap (sau echivalentul de pe > orice sistem de operare cu memorie virtuală) să mapeze jumătăți de pagină – > nu există suport hardware pentru așa ceva. mmap va mapa întotdeauna o pagină > întreagă; tu folosește-l ca atare. > > > > Sent from Mail for Windows 10 > > > > From: Valentin Mocanu via so > Sent: Tuesday, April 16, 2019 3:35 PM > To: [email protected] > Subject: [so] [Tema3][Linux] Probleme testele 4 și 5 > > > > Salut, > > > > Am niște probleme cu testele 4 și 5 și nu-mi dau seama ce se întâmplă. > > Am ales să încarc datele în memorie cu mmap. Conform [1], dacă folosim > > MAP_FIXED ar trebui să putem mapa date de dimensiune mai mică decât > > o pagină. În cazul bss, se poate apela mmap cu alți parametri. > > > > Am făcut debugging și paginile par populate corect. > > În cazul testului 4 execuția se termină cu SEGFAULT la adresa 0x28170000 > > și nu am reușit să identific ce date ar trebui să fie la această adresă sau > cine > > o citește/scrie. > > La testul 5 execuția se termină cu SEGFAULT la adresa 0x804a023 pe care > > ar fi trebuit să o prindă handler-ul, dar dintr-un motiv necunoscut mie, nu se > > întâmplă asta. > > > > [1]: http://man7.org/linux/man-pages/man2/mmap.2.html > > > > Mulțumesc! > > > > _______________________________________________ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
