Bonjour a tous! Je suis nouveau sur le forum mais egalement nouveau en C. Dans un de mes cours, je dois coder une petite librairie de gestion de memoire par region dans ce meme langage. Oui mais voila, je recontre quelques petits problemes (de conceptualisation surtout) qui m'empechent d'avancer.
En fait, on nous oblige a utiliser la fonction : mmap (NULL, nbytes, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)
pour notre allocation de memoire "bas-niveau". J'ai lu la doc sur mmap et c'est pas la que le probleme ce pose.
On nous demande dans l'enonce que :
"mmap ne peut allouer que des multiples de pages (i.e. des multiples de 4KB par exemple). Pour des regions de grande taille ou de taille illimitee, on peut sans autres dedier chaque page a une region. Mais pour des regions de petite taille (e.g. qui ne contiennent que un ou deux objects de quelques bytes), cela peut entraıner un gaspillage inacceptable, donc il faudra s’arranger pour partager des pages entre plusieurs de ces petites regions."
Et c'est la que mon probleme se pose. Il est possible d'allouer uniquement des pages entieres de memoire donc, lorsque nous creons notre premiere region, aussi petite soit-elle, nous allouons une premiere page. Maintenant, lorsque l'on decide d'allouer une autre region de taille inferieur a la taille de la page moins la taille de la region precedent, comment recuperer la page deja allouee pour y inserer la nouvelle region?
A vous tous merci!
PS : voici l'enonce du probleme : http://www.iro.umontreal.ca/~monnier/2035/tp2/tp2.pdf
et voici le code qu'on nous fournit a la base :
et pour finir, le code rgn.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Encore une fois merci!
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

 

 
		
		 
        

 
			
			



 Gestion memoire par region et mmap
 Gestion memoire par region et mmap
				 Répondre avec citation
  Répondre avec citation
Partager