|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2007
Messaggi: 3
|
Help!!! Programma per gestione memoria
![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Una possibilità è questa: la quantità totale di memoria (8 MiB) la suddividi in blocchi della dimensione che puoi scegliere tu (ad esempio, come nel sistema di paging dei processori x86, 4 KiB cioè 4096 bytes). Quindi hai 2048 blocchi. Ogni blocco lo rappresenti con 1 byte di memoria, pertanto devi allocare un vettore di 2048 byte. Ogni byte indica se il blocco è libero o occupato, ad esempio: 0 libero, 1 occupato (primo blocco), 2 occupato (blocchi successivi). La differenziazione tra 1 e 2 serve poi semplicemente per poter liberare correttamente la memoria (se tu hai cinque valori 1 contigui come faresti a sapere se sono due blocchi da 2 e 3 o un blocco unico da 5???). A quel punto è facile, quando viene chiesto di allocare un tot di memoria, tu calcoli quanti blocchi sono necessari e poi cerchi nella tabella la prima sequenza di 0 che soddisfa la richiesta. Per la liberazione della memoria ti devono dare un indirizzo che corrisponde al primo blocco, ad esempio (qui si potrebbe discutere su cosa si deve poter passare). Essendo un esercizio di gestione "fittizia" della memoria, credo che possa andare bene.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jun 2007
Messaggi: 3
|
Grazie dellle informazioni, in effetti ripensando posso fare come dici tu, ora provo e poi vediamo cosa esce fuori. grazie
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:58.