New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Gestore della memoria - Wikipedia

Gestore della memoria

Da Wikipedia, l'enciclopedia libera.

Attenzione – L'utente Quoniam ¿? ha chiesto di verificare che questa voce non costituisca una violazione di copyright perché Chiedo verifica di questa revisione. La voce è stata inserita nella categoria "Da controllare per copyright - tecnologia e scienze applicate".

  • Se puoi, contribuisci adesso a verificarne la compatibilità con la licenza GFDL (vedi Aiuto:Copyright per maggiori dettagli).
  • Per eventuali note usa la pagina di discussione.
  • Avvisa l'autore con il messaggio {{Avvisocontrolcopy|voce=Gestore della memoria}}--~~~~
Stub Questa voce di informatica è solo un abbozzo: contribuisci a migliorarla secondo le convenzioni di Wikipedia.

Il gestore della memoria (memory manager in inglese) è un componente del sistema operativo dedito alla gestione della memoria disponibile sul computer. Il gestore si preoccupa di allocare, deallocare e gestire la memoria che viene assegnata agli applicativi e allo stesso sistema operativo.

Tutti i moderni sistemi operativo sono dotati di memoria virtuale. Il gestore della memoria si preoccupa di decidere quali blocchi di memoria sono poco utilizzati dal sistema e quindi possono essere spostati sull'unità a disco senza deprimere eccessivamente le prestazioni del sistema.

Altri compiti molto importanti di questo modulo sono:

garantire la protezione
generalmente in memoria centrale e piu precisamente in un sistema multiprogrammato coesistono piu processi nella stessa memoria. Resta il fatto quindi che ogni processo deve avere la sua specifica partizione e non deve andare ad interferire con gli altri processi utente o nel caso peggiore della partizione relativa al sistema operativo.
garantire trasparenza
questo è un aspetto fondamentale perché permette al processo di esternarsi dalla normale routine di questo modulo cioè il processo che entra in memoria RAM, è indipendente dalla posizione dello spazio degli indirizzi assegnatogli in memoria.
garantire allocazione logica
in pratica è lo stesso concetto del punto precedente
condivisione del codice
in un sistema multiprogrammato, più utenti possono utilizzare contemporaneamente gli stessi programmi quindi occorre un sistema che permetta di condividere il codice (gli applicativi software) ma tenere separati i dati.

[modifica] Tipi di allocazione

L'allocazione a singola partizione prevede che la memoria centrale viene suddivisa in due partizioni principali:

  • una relativa al sistema operativo (kernel space)
  • una relativa allo spazio per i programmi degli utenti (user space)

Questa tecnica non è però mai stata presa in forte considerazione poiché permette di far caricare in memoria un solo programma, oltra al sistema operativo. Già dai primi sistemi si è pensato di introdurre delle partizioni anche nello user space. Una prima soluzione fu quella delle partizioni fisse o statiche. Con questa tecnica, lo user space veniva diviso in un numero prefissato di partizioni, di uguale dimensione o di dimensioni diverse e ad ogni processo viene assegnato, in modo esclusivo, una partizione. Anche questa tecnica presenta forti limiti. Infatti, lo spazio lasciato libero da un processo non potrà mai essere utilizzato da altri, rimanendo inutilizzato. Nel contempo, processi più pesanti della partizione più amplia non possono essere caricati e quindi eseguiti. Successivamente, si è pensato di modificare questa tecnica creando delle partizioni dinamiche. In questa organizzazione, non esistono partizioni di dimensioni predefinite; nuove partizioni vengono create in base alla richiesta dei processi, prelevandole da una tabella delle partizioni di memoria libere. Se esistono due partizioni libere attigue vengono fuse in un'unica partizione. In pratica, all'arrivo di un processo di una certa dimensione, viene caricato in memoria in una partizione libera, ma lo spazio che avrà lasciato potrà essere usato da un'altro processo. Per decidere la partizione in cui un processo sarà caricato, esistono tre strategie: la first fit, la best fit e la worst fit. La strategia first fit mette il processo nella prima partizione libera in memoria centrale grande abbastanza per contenerlo. Questa strategia può però lasciare dei frammenti, ovvero parti di memoria non utilizzata, piuttosto numerosi. La strategia best fit prevede che il nuovo processo venga inserito nella partizione con dimensione più vicina alla dimensione del processo. In questo modo, si tende a lasciare frammenti sempre più piccoli. L'ultima strategia, la worst fit, è invece meglio funzionante. Essa prevede che il nuovo processo venga allocato nella partizione di memoria più grande disponibile. Questo è giustificato dal fatto che nei frammenti lasciati, che saranno di grandi dimensioni, potranno essere allocati altri processi.

[modifica] La memoria virtuale

Con il passare del tempo, tuttavia, i processi da eseguire diventavano sempre più pesanti e le memorie centrali non bastavano più a contenerli. È nata dunque la memoria virtuale, ossia uno spazio di memoria di massa che viene utilizzato come se fosse una parte della memoria centrale. Essa può essere allocata in una partizione del disco fisso dedicata a questo, come avviene in Linux, oppure può essere una parte della partizione del sistema operativo, come succede in Windows con il file di paging. Con l'avvento della memoria virtuale sono state ideate altre due tecniche che permettono di sfruttare al meglio questa tecnica: la paginazione e la segmentazione. Secondo la tecnica della paginazione, la memoria centrale, compresa anche quella virtuale, è divisa in blocchi di uguale dimensioni, solitamente abbastanza piccole, mentre i processi in arrivo vengono divisi in pagine della stessa dimensione dei blocchi. In questo modo, il processo viene allocato in diversi blocchi che, per la prima volta, possono essere anche non contigui. Se una pagina di cui si ha bisogno per l'elaborazione è caricata in memoria virtuale, essa viene spostata in memoria centrale. nel caso non ci siano pagine libere, viene presa una pagina caricata in memoria centrale e scambiata con quella da usare. Quest'operazione è chiamata di swapping.

Altre lingue

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu