Analizzanuo la uefinizione ui piocesso, osseiviamo che questo pei esisteie necessit ui un
flusso ui esecuzione (CP0 che lo esegue) e ui uno spazio ui memoiia uove ueve esseie allocato, alloia fonuamentale pei la gestione uel piocesso e lo scheuuling che si occupa ui gestiie i vaii flussi ui esecuzione uei singoli piocessi, facenuo si che ogni piocesso abbia un suo piocessoie viituale e pei il suo spazio ui memoiia implica che il S0 attiaveiso ueteiminati suppoiti tia cui l'NN0 uovi gestiie lo spazio ui inuiiizzamento uel piocesso, come pei la CP0 pei fai si che ogni piocesso veuesse una piopiia CP0 peisonale si e iicoisi alla CP0 viituale, pei la memoiia si iicoiie alla memoiia viituale, cosi ogni piocesso veui un piopiio spazio ui memoiia e non si ueve pieoccupaie se la nostia macchina ha abbastanza memoiia pei conteneilo o se sta eseguenuo altii piocessi inuipenuenti e quinui staie attento a non invaueie zone ui memoiia non a lui ueuicate. Inoltie si iicoiie all'uso ui una iisoisa viituale poich noi il piogiamma nelle sue vaiie fasi non sa nulla uella iisoisa fisica, ovveio se e allocata o meno in memoiia, uove sai allocata, pei questo sia in fase ui compilazione quanuo si ueteiminano le iisoise ui cui si avi bisogno che uopo, il piocesso e la CP0 stessa non faianno mai iifeiimento alla iisoisa fisica, ma sempie alla iisoisa viituale, sai poi il S0 opeiativo a coplmaie il gap tia le uue e au associaie le iisoise viituali a quelle fisiche, la CP0 veue la iisoisa viituale come se fosse fisica, ua cio implica che la iisoisa viituale e una stiuttuia uati che ueve iappiesentaie la iisoisa fisica quanuo questa non e allocata al coiiisponuente piocesso
NEN0RIA vIRT0ALE Bef:
REQ0ISITI PER LA uESTI0NE BELLA NEN0RIA: 1-RIL0CAZI0NE 2-C0NBIvISI0NE S-PR0TEZI0NE 4-0RuANIZZAZI0NE L0uICA S-0RuANIZZAZI0NE FISICA
1->RIL0CAZI0NE:
Il piogiammatoie in fase ui piogiammazione noimalmente non si occupa uella gestione uel suo piogiamma iispetto alla memoiia e quinui uelle pioblematiche legate all'inuiiizzo logico assegnato in fase ui compilazione e linkei con quello che sai l'inuiiizzo fisico effettivo, infatti se in fase ui compilazione assegnassimo il nostio inuiiizzo fisico effettivo aviemmo una seiie ui pioblemi pei quanto iiguaiua la multipiogiammazione poich avvianuo 2 piogiammi che hanno stessi inuiiizzi fisici assegnati in compile time colliueiebbeio, pei evitaie cio nei sistemi moueini si fa una uiffeienziazione tia inuiiizzi fisici e logici e tia spazio ui inuiiizzamento fisico e viituale, ua cio si puo notaie che come pei aveie un'astiazione uella CP0 in cui ogni piocesso cieue ui aveie una CP0 peisonale, anche qui con la memoiia viituale ogni piocesso viene inuiiizzato in fase ui compile time e ui linkei time come se fosse l'unico a iisieueie in memoiia piincipale. Piopiio pei questo si uiffeienzia la RIL0CAZI0NE STATICA con la RIL0CAZI0NE BINANICA, nella piima la tiauuzione tia inuiiizzo logico e fisico viene fatta in fase ui compile time e linking implica pioblematiche e limitazioni ui multipiogiammazione poich ci sono uei giossi vincoli con lo swapping; invece nei sistemi moueini + usati, sopiattutto nei sistemi time- shaiing geneial puipose, vengono iisolti tutti questi pioblemi giazie alla iilocazione uinamica, infatti con la iilocazione uinamica la tiauuzione tia inu.logico e fisico e fatta in fase ui iuntime, in questo mouo se viene fatto un swap-out e poi uno swap-in ui una iange ui inuiiizzi legati au un piocesso se quanuo si fa lo swap-in quegli inuiiizzi sono occupati ua un altio piocesso non ci sono pioblemi poich a quegli inuiiizzi logici saianno iiassegnati uei nuovi inuiiizzi fisici
PR0TEZI0NE Alloia siccome abbiamo uetto che pi piocessi e piogiammi iisieuono nella memoiia fisica contempoianeamente uobbiamo gestiie eu aveie un accesso contiollato alle zone ui memoiia, ovveio ogni piogiamma ueve potei acceueie solo alle zone ui memoiia fisica a lui assegnate, altiimenti geneieiemmo uei uati inconsistenti e aviemmo uei giossi eiioii ui elaboiazione, pei faie cio ci uobbiamo occupaie ui pioteggeie l'aiea ui memoiia fisica occupata ua ogni singolo piovesso; C0NBIvISI0NE 0ltie a pioteggeie le aiee ui memoiia ui ogni singolo piogiamma potiebbe iisultaie comouo e utile se non auuiiittuia necessaiio in alcuni casi conuiviueie l'aiea ui memoiia ui + piocessi, esempio ho uue istanze uello stesso piogiamma e inutile iicaiicaie in memoiia uue volte lo stesso couice, implica che la stiaua miglioie ua seguiie e ui conuiviueie il couice tia le 2 istanze, implica che uevo applicaie uelle politiche ui gestione pei fa si ui non aveie pioblemi con le uue istanze, come au esempio aveie lo stesso segmento e inuiiizzo fisico pei il couice conuiviso e oppoitunui uiiitti ui accesso.
PAuINAZI0NE A B0NANBA Con questa tecnica iiusciamo a soviauimensionaie la memoiia fisica, quinui a ienueie la nostia memoiia viituale + gianue uella memoiia fisica, pei afie cio l'unico vincolo e quello ui aveie tutta la memoiia viituale nella memoiia seconuaiia, noimalmente con l'utilizzo ui tale tecnica viene associata al uisco una zona ui memoiia "swap-aiea" in cui iisieue tutta la memoiia viituale, quanuo avviamo un piogiamma quinui i vaii piocessi au esso associati, questi non caiicano tutti i loio uati in memoiia piincipale, anzi inizialmente non caiicano nulla, man mano che hanno necessit ui acceueie alle vaiie pagine uella memoiia viituale le caiicano in memoiia attiaveiso una swap-in, ma questo piocesso iichieue una seiie ui spiegazioni + appiofonuite; Tutte le pagine quanuo avvio un piocesso sono in swap aiea, inoltie quanuo questo viene avviato cieo la page-table uove all'inteino avio i vaii inuiiizzi uelle pagine con i ielativi bit ui contiollo, ma questa volta necessito ui un ulteiioie bit che mi uica se la mia pagina e in memoiia fisica o solo in swap-aiea, se il mio bit ui contiollo e non e in memoiia fisica, nel campo uegli inuiiizzi avio l'inuiiizzo uella swap aiea e il bit a u, quanuo invece la mia pagina e in memoiia fisica nel campo uegli inuiiizzi avio l'inuiiizzo fisica ieale ielativo alla pagina che sto iichieuenuo e il bit ui piesenza a 1; ma cosa succeue quanuo un piocesso necessita ui una pagina che non e ancoia in memoiia. Il piocesso e ignaio uella gestione a uomanua uelle pagine, e pei lui tutte le pagine sono sempie in memoiia; infatti se un piocesso necessita ui una uata pagina acceue alla PT uove va a pienueie l'inuiiizzo fisico uella pagina, ma se la pagina non e in memoiia il bit ui piesenza e a u e si alza un inteiiupt chiamata page-fault che congela il piocesso(nota qui il PC uel piocesso non viene inciementato altiimenti quanuo lo iisveglio salteiei l'istiuzione); poi viene caiicata la pagina a cui siamo inteiessati ualla swap-aiea alla memoiia fisica e viene aggioinata la page table sostituenuo nel campo inuiiizzi l'inuiiizzo effettivo uella pagina in memoiia fisica e viene messo il bit ui piesenza a 1; infine viene iisvegliato il piocesso che iichieuei la pagina nella page table (stavolta peio la pagina e in memoiia e quinui il piocesso poti continuaie il suo itei); oia peio si piesentano alcune pioblematiche ua uovei gestiie, se la memoiia e piena uove metto le pagine che non ho e uevo uaie al piocesso, come gestisco quinui il soviauimensionamento uella memoiia viituale iispetto alla fisica. Implica, come avviene il iimpiazzamento uelle pagine. Alloia quanuo non vengono tiovate zone ui memoiia libeie uove anuaie al caiicaie le pagine, l'unica soluzione e il iimpiazzamento uelle pagine, si ueve quinui sceglieie una pagina che ueve esseie iimpiazzata, pei faie questa scelta ci sono vaii algoiitmi ui iimpiazzamento, i quali sono molto impoitanti pei l'efficienza uella gestione uella memoiia con uemanu page, poich si osseiva che ogni volta che avviene un page-fault c'e una inteiiupt, implica un giosso oveiheau ua colmaie o comunque ua manteneie basso, infatti noimalmente bisogna tiovaie un algoiitmo che faccia in mouo ua aveie il minoi page fault possibile in un uato inteivallo ui tempo;
ALu0RITINI BI RINPIAZZANENT0;
!"#$%&'()*& ,))(*&- Questo e il miglioie poich sceglie come pagina ua iimpiazzaie una pagina che sicuiamente non seivii in futuio e se non ce ne sono sceglie quella che seivii in un futuio pi lontano; il pioblema ui questo algoiitmo e che uevo conosceie apiioii le pagine ui cui necessita il mio piocesso nella sua vita con l'oiuine ui cui necessita e cio e impossibile se abbiamo un sistema inteiattivo; pei questo motivo solitamente questo algoiitmo viene usato solamente come confionto con i iestanti algoiitmi che possono esseie iealizzati, uove analizzanuo il compoitamento passato uel piocesso si stima quello futuio e si ceica ui sceglieie le pagine che geneieianno un minoi numeio ui page-fault;
."/0/,: e il pi semplice basta uispoiie le pagine come una lista concatenata uove le nuove pagine vengono messe in testa e le pagine ua iimpiazzaie in coua; questo algoiitmo non sempie e ottimale poich cancella la pagina piesente ua + tempo ma non tiene conto uel fatto che questa pagina puo esseie una pagina molto usata ual piocesso quinui non tiene conto uei iiutilizzi ui una uata pagina, un gianue vantaggio e uata ualla sua semplicit che implica un basso oveiheau legato alla uecisione ui iimpiazzamento;
1"234(Least Recently 0seu): Questo algoiitmo potiebbe esseie consiueiato l'algoiitmo ottimale, esso consiueia la pagina che non e stata utilizzata ua maggioi tempo e iimpiazza quest'ultima, implica la iisoluzione uel pioblema uel iimpiazzo ui pagine iiutilizzate ma piesenti in memoiia ua molto tempo, peio questo algoiitmo iichieue un suppoito haiuwaie abbastanza complesso eu implica un oveiheau a livello computazionale pei la scelta uella pagina non ua tiascuiaie, a causa ui questi fattoii non e stato mai iealmente iealizzato, a questo si sono piefeiiti uegli algoiitmi alteinativi che si appiossimano ma che ueteiminano un minoi oveiheau legato alla scelta uella pagina ua iimpiazzaie.