Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI...

67
Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y = X + RB

Transcript of Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI...

Page 1: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 1

TECNICA DELLE PARTIZIONI RILOCABILI

RILOCAZIONE DINAMICA MEDIANTE UNA COPPIADI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL

Y = F(X)

Y = X + RB

Page 2: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 2

TECNICA DELLE PARTIZIONI RILOCABILI

RL RB

< +

MEMORIA

indirizzo

virtuale

indirizzo

fisico

violazione di indirizzo

Page 3: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 3

TECNICA DELLE PARTIZIONI RILOCABILI

STRATEGIE DI ALLOCAZIONE (allocazione dinamica)

• STESSE STRATEGIE DI ALLOCAZIONE DELLE PARTIZIONI VARIABILI

• SWAP-IN E SWAP-OUT

• STRATEGIA DI COMPATTAMENTO PER ELIMINARE LA FRAMMENTAZIONE

Page 4: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 4

TECNICA DELLE PARTIZIONI RILOCABILI

NECESSITA` DI DUE COPPIE DI REGISTRI BASE/LIMITE PER CONSENTIRE LA CONDIVISIONE DI CODICE TRA PROCESSI

CODICECONDIVISO DATI1 DATI2

RB1 RL1 RB2 RL2 RB2 RL2PROCESSO A PROCESSO B

Page 5: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 5

TECNICA DELLE PARTIZIONI RILOCABILI

UNO SPAZIO VIRTUALE (CONTIGUO) RICHIEDE UNO SPAZIO CONTIGUO DI MEMORIA FISICA

FRAMMENTAZIONE

NECESSITA` DI COMPATTAMENTO

NOTEVOLE OVERHEAD

Page 6: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 6

ALLOCAZIONE DELLA MEMORIA IN SISTEMI CON RILOCAZIONE DINAMICA

TECNICA DELLA PAGINAZIONE

MECCANISMO DI RILOCAZIONE DINAMICA CHE CONSENTE DI ALLOCARE UNO SPAZIO VIRTUALE CONTIGUO IN AREE DI MEMORIA FISICA NON NECESSARIAMENTE CONTIGUE.

CIO` SI OTTIENE SUDDIVIDENDO SIA LO SPAZIO VIRTUALE CHE LO SPAZIO FISICO IN PARTI (PAGINE) DI DIMENSIONI FISSE ED ALLOCANDO AD OGNI PROCESSO UN NUMERO DI PAGINE FISICHE ESATTAMENTE UGUALE AL NUMERO DI PAGINE VIRTUALI DEL PROCESSO.

Page 7: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 7

TECNICA DELLA PAGINAZIONE

INDIRIZZIVIRTUALI

0

SPAZIO VIRTUALE

PAGINEVIRTUALI: 0 1 2 3 4 5

ESEMPIO: DIMENSIONE DELLA PAGINA = 2 = 1024 BYTE10

20471024 2048 3072 4096 5120

1023 3071 4095 5119

Page 8: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 8

TECNICA DELLA PAGINAZIONE

SPAZIO VIRTUALE

ESEMPIO: DIMENSIONE DELLA PAGINA = 2 = 1024 BYTE10

PAGINA VIRTUALE N. 2

204820492050

3071

Page 9: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 9

TECNICA DELLA PAGINAZIONE

INDIRIZZO VIRTUALE

INDIRIZZO VIRTUALE X = COPPIA ( P, O) DOVE:

P = PAGINA A CUI APPARTIENE X, O = OFFSET DI X NELL’AMBITO DELLA PAGINA

ESEMPIO X = 2051:

P = PARTE INTERA DI 2050 : 1024 = 2 O = RESTO DI 2051 : 1024 = 3

Page 10: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 10

TECNICA DELLA PAGINAZIONE

INDIRIZZO VIRTUALE

OFFSET = 3PAGINA = 2

0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1

2 = 2048 + 2 + 1 = 2051 11

Page 11: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 11

TECNICA DELLA PAGINAZIONE

ALLOCAZIONE PAGINATA

INDIRIZZIVIRTUALI

0 - 1K

1 - 2K

2 - 3K

3 - 4K

4 - 5K

5 - 6K

INDIRIZZIFISICI

0 - 1K

1 - 2K

2 - 3K

3 - 4K

4 - 5K

5 - 6K

6 - 7K

Page 12: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 12

TECNICA DELLA PAGINAZIONE

TRADUZIONE DEGLI INDIRIZZI

SAPENDO CHE LA PAGINA LOGICA N. 2 E` STATA CARICATA NELLA PAGINA FISICA N. 5:

L’INDIRIZZO VIRTUALE: X = 2051 = (P:2 , O:3)

CORRISPONDE ALL’INDIRIZZO FISICO:

Y = (P:5 , O:3) = 5*1024 + 3 = 5123

Page 13: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 13

TECNICA DELLA PAGINAZIONE

TABELLA DELLE PAGINE

PAGINALOGICA

INDICE DELLAPAGINA FISICA

0

1

2

3

4

5

2

0

5

1

3

6

Page 14: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 14

TECNICA DELLA PAGINAZIONE

TRADUZIONE DEGLI INDIRIZZI

P O

Pf

OPf

indirizzo virtuale indirizzo fisico

tabella pagine

P

Page 15: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 15

TECNICA DELLA PAGINAZIONE

DEMAND PAGING

• CARICAMENTO PARZIALE DELLE PAGINE DI UN PROCESSO;

• MECCANISMO DI TRADUZIONE DEGLI INDIRIZZI CHE GENERA UNA INTERRUZIONE SE L’INDIRIZZO VIRTUALE DA TRADURRE CORRISPONDE AD UNA PAGINA NON ALLOCATA IN MEMORIA;

• GESTIONE DELLA INTERRUZIONE PER CARICARE DA DISCO LA PAGINA RICHIESTA.

Page 16: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 16

TECNICA DELLA PAGINAZIONE

DEMAND PAGING: INTERRUZIONI DI PAGE-FAULT

PAGINALOGICA

INDICE DELLAPAGINA FISICA

0

1

2

3

4

5

2

0

--

1

--

6

BIT DIPRESENZA

1

1

0

1

0

1

Page 17: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 17

TECNICA DELLA PAGINAZIONE

DEMAND PAGING: INTERRUZIONI DI PAGE-FAULT

CALL X

0

PAGE-FAULT

MEMORIA

TABELLAPAGINE

12

3

45

6

SWAP DEVICE

Page 18: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 18

TECNICA DELLA PAGINAZIONE

CARATTERISTICHE

• TABELLA DELLA MEMORIA: TABELLA CON TANTE ENTRATE QUANTE SONO LE PAGINE FISICHE. OGNI ENTRATA INDICA SE LA CORRISPONDENTE PAGINA E` LIBERA O OCCUPATA E, IN QUESTO CASO, DA CHI;

• NEL DESCRITTORE DI UN PROCESSO VIENE RIPORTATO L’INDIRIZZO DELLA SUA TABELLA DELLE PAGINE E DELLA TABELLA CONTENENTE GLI INDIRIZZI DELLE PAGINE SU DISCO.

Page 19: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 19

TECNICA DELLA PAGINAZIONE

CARATTERISTICHE

• NECESSITA` DI GESTIRE LE INTERRUZIONI DI PAGE-FAULT;

• QUANDO SI VERIFICA UNA COMMUTAZIONE DI CONTESTO DEVE ESSERE COMMUTATA ANCHE LA TABELLA DELLE PAGINE CON CUI EFFETTUARE LA TRADUZIONE DEGLI INDIRIZZI.

Page 20: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 20

TECNICA DELLA PAGINAZIONE

CARATTERISTICHE

Registro PuntatoreTabella Pagine

tabella del processo in esecuzione

Page 21: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 21

TECNICA DELLA PAGINAZIONE

PROCEDURA DI PAGE-FAULT

1- INTERRUZIONE DI PAGE-FAULT -> INGRESSO NELL NUCLEO;

2- SALVATAGGIO DELLO STATO DEL PROCESSO;

3- INDIVIDUAZIONE DEL NUMERO DELLA PAGINA RICHIESTA;

4- VERIFICA SE ESISTE UNA PAGINA FISICA LIBERA, SE NO SCELTA DI UNA PAGINA DA RIMPIAZZARE;

Page 22: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 22

TECNICA DELLA PAGINAZIONE

PROCEDURA DI PAGE-FAULT

5 - SE LA PAGINA DA RIMPIAZZARE E` STATA MODIFICATA SALVARLA SU DISCO;

6 - CARICARE LA PAGINA RICHIESTA NELLA PAGINA FISICA SCELTA;

7 - SOSPENDERE IL PROCESSO IN ATTESA DELLA FINE DEL TRASFERIMENTO;

Page 23: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 23

TECNICA DELLA PAGINAZIONE

PROCEDURA DI PAGE-FAULT

8 - ALL’ARRIVO DELL’INTERRUZIONE DI FINE CARICAMENTO, AGGIORNARE LE TABELLE

DELLE PAGINE;

9 - AGGIORNARE IL VALORE DEL REGISTRO PUNTATORE ALL’ISTRUZIONE CORRENTE NEL DESCRITTORE DEL PROCESSO PER POTER RIESEGUIRE L’ISTRUZIONE CHE HA GENERATO PAGE-FAULT;

1 0-SUCCESSIVAMENTE IL PROCESSO PUO` ESSERE RIATTIVATO.

Page 24: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 24

TECNICA DELLA PAGINAZIONE

ASPETTI CRITICI

• NECESSITA` DI MINIMIZZARE IL TEMPO NECESSARIO PER LA TRADUZIONE DEGLI INDIRIZZI

• NECESSITA` DI RISOLVERE IL PROBLEMA DELLA ALLOCAZIONE IN MEMORIA DELLE TABELLE DELLE PAGINE

• NECESSITA` DI REALIZZARE UN ALGORITMO DI RIMPIAZZAMENTO DELLE PAGINE TALE DA MINIMIZZARE IL NUMERO DEI PAGE-FAULT (PROBLEMA DEL “TRASHING”)

Page 25: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 25

TECNICA DELLA PAGINAZIONE

GESTIONE DELLE TABELLE DELLE PAGINE

TABELLE DELLE PAGINE A PIU` LIVELLI

OFFSET

12 BIT

PAG1

10 BIT10 BIT

PAG2

PAGINA DI 4096 INDIRIZZITABELLE DI 1024 ENTRATE

Page 26: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 26

TECNICA DELLA PAGINAZIONE

TABELLE DELLE PAGINE A PIU` LIVELLI

O

PAG1 PAG2

O

Pf

Pf

Page 27: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 27

TECNICA DELLA PAGINAZIONE

FRAMMENTAZIONE INTERNA

• NORMALMENTE UN PROCESSO NON OCCUPA ESATTAMENTE UN NUMERO INTERO DI PAGINE VIRTUALI; L’ULTIMA PAGINA VIRTUALE E`, MEDIAMENTE, OCCUPATA PER META`;

• FRAMMENTAZIONE INTERNA = PARTE INUTILIZZATA DELLA PAGINA FISICA ALLOCATA ALL’ULTIMA PAGINA VIRTUALE.

Page 28: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 28

TECNICA DELLA PAGINAZIONE

TABELLA DELLA MEMORIA

• STRUTTURA DATI NECESSARIA PER MANTENERE AGGIORNATO LO STATO DI OGNI PAGINA FISICA DELLA MEMORIA;

• E` NORMALMENTE COSTITUITA DA UN ARRAY CON UN NUMERO DI ELEMENTI PARI AL NUMERO DI PAGINE FISICHE;

• OGNI ELEMENTO CONTIENE LO STATO DI ALLOCAZIONE DELLA CORRISPONDENTE PAGINA FISICA E ALTRE INFORMAZIONI UTILI PER REALIZZARE L’ALGORITMO DI RIMPIAZZAMENTO.

Page 29: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 29

TECNICA DELLA PAGINAZIONE

TABELLA DELLA MEMORIA

STATO LOCKINTRANSITO

0123

P - 1f

Page 30: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 30

TECNICA DELLA PAGINAZIONE

PAGINE CONDIVISE

SPAZIO VIRTUALEDEL PROCESSO A

TESTO-1

TESTO-2

TESTO-3

DATI-A

TABELLA DELLEPAGINE DI A

2

5

3

6

Page 31: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 31

TECNICA DELLA PAGINAZIONE

PAGINE CONDIVISE

SPAZIO VIRTUALEDEL PROCESSO B

TESTO-1

TESTO-2

TESTO-3

DATI-B

TABELLA DELLEPAGINE DI B

2

5

3

1

Page 32: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 32

TECNICA DELLA PAGINAZIONE

PAGINE CONDIVISE

MEMORIA FISICA TABELLA DELLEPAGINE DI A

2

5

3

1

TABELLA DELLEPAGINE DI A

2

5

3

6

TESTO-1

TESTO-2

TESTO-3

DATI-B

DATI-A

Page 33: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 33

TECNICA DELLA PAGINAZIONE

PROTEZIONE

• LA PROTEZIONE DELLO SPAZIO FISICO ALLOCATO AD UN PROCESSO E` GARANTITA AUTOMATICAMENTE DAL MECCANISMO DI RILOCAZIONE;

• EVENTUALI ATTRIBUTI DI PROTEZIONE ASSOCIATI ALLE PAGINE:

- DISTINZIONE TRA PAGINE READ-ONLY E READ-WRITE;

- POSSIBILE ESTENSIONE A UN NUMERO MAGGIORE DI DIRITTI DI ACCESSO (EXECUTE-ONLY).

Page 34: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 34

TECNICA DELLA PAGINAZIONE

DIMENSIONI DELLE PAGINE

• LA FRAMMENTAZIONE ESTERNA AUMENTA AUMENTANDO LA DIMENSIONE DELLE PAGINE;

• LA DIMENSIONE DELLA TABELLA DELLE PAGINE AUMENTA DIMINUENDO LA DIMENSIONE DELLE PAGINE;

• VALORI TIPICI DELLA DIMENSIONE DELLE PAGINE IN SISTEMI COMMERCIALI SONO COMPRESI TRA 512 E 4K.

Page 35: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 35

TECNICA DELLA PAGINAZIONE

CONTIGUITA` DELLO SPAZIO VIRTUALE

• MECCANISMO DELLA PAGINAZIONE COMPLETAMENTE TRASPARENTE AL PROGRAMMATORE;

• LO SPAZIO VIRTUALE PAGINATO E` COSTITUITO DA UN UNICO SPAZIO CONTIGUO DI INDIRIZI VIRTUALI CHE PARTONO DA ZERO;

• LA CORRISPONDENZA TRA LO SPAZIO VIRTUALE CONTIGUO E LO SPAZIO FISICO NON CONTIGUO E` GARANTITA DAL MECCANISMO DI RILOCAZIONE.

Page 36: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 36

TECNICA DELLA PAGINAZIONE

INCONVENIENTI DI UNO SPAZIO VIRTUALE CONTIGUO

STRUTTURE DATI VARIABILI

0 N

CODICE DATI1 DATI2 STACK

Page 37: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 37

TECNICA DELLA PAGINAZIONE

INCONVENIENTI DI UNO SPAZIO VIRTUALE CONTIGUO

PROTEZIONE

PAGINE

0 1 2 3 4 5 6 7

CODICEEXECUTE-ONLY

DATIREAD-ONLY

STACKREAD-WRITE

Page 38: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 38

TECNICA DELLA PAGINAZIONE

INCONVENIENTI DI UNO SPAZIO VIRTUALE CONTIGUO

CONDIVISIONE

PAGINE

0 1 2 3 4 5 6 7

CODICE CONDIVISO

DATI PRIVATI

STACK PRIVATO

Page 39: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 39

TECNICA DELLA SEGMENTAZIONE

IL MODO PIU` NATURALE DI CONCEPIRE LA MEMORIA DA PARTE DEL PROGRAMMATORE NON E` QUELLO CORRISPONDENTE ALLA MEMORIA FISICA, UN VETTORE CONTIGUO DI LOCAZIONI, MA QUELLO CHE DERIVA DIRETTAMENTE DAL MODO CON CUI UN PROGRAMMA VIENE STRUTTURATO E CIOE` UN INSIEME DI SPAZI VIRTUALI (SEGMENTI) INDIPENDENTI UNO DALL’ALTRO E OGNUNO DEI QUALI DESTINATO A CONTENERE UN COMPONENTE LOGICO DEL PROGRAMMA: PROCEDURE, FUNZIONI, STRUTTURE DATI, STACK, ECC.

Page 40: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 40

TECNICA DELLA SEGMENTAZIONE

SPAZIO VIRTUALE SEGMENTATO

MAIN PROGRAM

FUNZIONE

STRUTTURA DATISTACK

Page 41: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 41

TECNICA DELLA SEGMENTAZIONE

SPAZIO VIRTUALE SEGMENTATO

• OGNI SEGMENTO E` UN SOTTOSPAZIO LINEARE CONTIGUO DI LOCAZIONI COMPRESE TRA ZERO ED UN VALORE MASSIMO;

• OGNI SEGMENTO E` INDIPENDENTE DAGLI ALTRI;

• DIFFERENTI SEGMENTI POSSONO AVERE DIVERSE LUNGHEZZE;

• UN SEGMENTO PUO` EVERE DIMENSIONI VARIABILI DINAMICAMENTE ENTRO LE SUE DIMENSIONI MASSIME.

Page 42: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 42

TECNICA DELLA SEGMENTAZIONE

SPAZIO VIRTUALE SEGMENTATO

• UNA MEMORIA VIRTUALE SEGMENTATA E` UNA MEMORIA IN CUI OGNI INDIRIZZO E` COMPOSTO DA DUE COMPONENTI: IL SEGMENTO E LO SCOSTAMENTO NELL’AMBITO DEL SEGMENTO;

• L’ULTIMIO INDIRIZZO DI UN SEGMENTO NON E` CONSECUTIVO AL PRIMO DEL SEGMENTO SUCCESSIVO;

• PER OGNI SEGMENTO POSSONO ESSERE SPECIFICATI ATTRIBUTI DI PROTEZIONE E DI CONDIVISIBILITA` .

Page 43: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 43

TECNICA DELLA SEGMENTAZIONE

SPAZIO VIRTUALE SEGMENTATO

• IN UN SISTEMA SEGMENTATO LO SPAZIO VIRTUALE E` ANCORA CREATO IN FASE DI COMPILAZIONE E DI COLLEGAMENTO (LINK);

• IL COMPILATORE CREA UN SEGMENTO SEPARATO PER OGNI COMPONENTE DEL PROGRAMMA: MAIN , VARIABILI GLOBALI, CODICE DI FUNZIONI, STACK, ECC.

• IL LIKER ASSEGNA UN DIVERSO VALORE NUMERICO AD OGNI SEGMENTO (A PARTIRE DA ZERO) ED EFFETTUA IL COLLEGAMENTO TRADUCENDO I RIFERIMENTI INTERSEGMENTO.

Page 44: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 44

TECNICA DELLA SEGMENTAZIONE

ALLOCAZIONE IN MEMORIA

• LA RILOCAZIONE IN MEMORIA DI OGNI SEGMENTO DI UNO SPAZIO VIRTUALE AVVIENE CON LA STESSA TECNICA DELLE PARTIZIONI RILOCABILI: MEDIANTE UNA COPPIA DI REGISTRI BASE - LIMITE PER OGNI SEGMENTO;

• L’INSIEME DI TUTTE LE COPPIE DI REGISTRI DI UNO SPAZIO VIRTUALE COSTITUISCE UN VETTORE NOTO CON IL NOME DI TABELLA DEI SEGMENTI DEL PROCESSO;

Page 45: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 45

TECNICA DELLA SEGMENTAZIONE

< +

MEMORIA

indirizzovirtuale: (S , O)

indirizzo

fisico

violazione di indirizzo

LIMITE BASE

TABELLA DEI SEGMENTI

SI

NO

S

Page 46: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 46

TECNICA DELLA SEGMENTAZIONE

MAIN PROGRAM

FUNZIONE

STRUTTURA DATI

STACK

0

10K 0

1K

0

5K

0

3K

SEGMENTO 0

SEGMENTO 2

SEGMENTO 1

SEGMENTO 3

ESEMPIO

Page 47: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 47

TECNICA DELLA SEGMENTAZIONE

ESEMPIO

TABELLA DEI SEGMENTI

LIMITE BASE

0

1

2

3

10K

1K

5K

3K

50K

100K

70K

30K

Page 48: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 48

TECNICA DELLA SEGMENTAZIONE

ESEMPIO

SISTEMAOPERATIVO

0

30K 33K 50K 60K 70K 75K 100K101K

0 123

Page 49: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 49

• OGNI ELEMENTO DELLA TABELLA DEI SEGMENTI (COPPIA BASE - LIMITE) E` NOTA CON IL NOME DI DESCRITTORE DEL SEGMENTO;

• DUE O PIU` PROCESSI POSSONO CONDIVIDERE UN SEGMENTO DI CODICE RIENTRANTE: I DESCRITTORI DI QUESTO SEGMENTO NELLE RISPETTIVE TABELLE CONTENGONO GLI STESSI VALORI BASE - LIMITE;

TECNICA DELLA SEGMENTAZIONE

CARATTERISTICHE

Page 50: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 50

TECNICA DELLA SEGMENTAZIONE

DESCRITTORE DI SEGMENTO

LIMITE BASE

BIT DI PRESENZA

PROTEZIONE

Page 51: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 51

TECNICA DELLA SEGMENTAZIONE

• USO DI REGISTRI ASSOCIATIVI PER RIDURRE IL TEMPO DI TRADUZIONE DA INDIRIZZO VIRTUALE A INDIRIZZO REALE ;

• DISPONIBILITA` DI BIT DI USO E DI MODIFICA PER SEMPLIFICARE L’ALGORITMO DI RIMPIAZZAMERNTO DEI SEGMENTI;

• ESECUZIONE DI ALGORITMI DI COMPATTAMENTO PER RIDURRE IL FENOMENO DELLA FRAMMENTAZIONE ESTERNA.

SEGMENTAZIONE SU DOMANDA

Page 52: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 52

TECNICA DELLA SEGMENTAZIONE

ESEMPIO INTEL 286: DESCRITTORE DI SEGMENTO

015

01

23

45

67

78

LIMITE0-15

BASE0-15

BASE16-23CONTROLLO

NON USATI

CONTROLLO:- BIT DI PRESENZA,- BIT DI PROTEZIONE,- ECC.

Page 53: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 53

TECNICA DELLA SEGMENTAZIONE

ESEMPIO INTEL 286: ALLOCAZIONE

LIMITEBASE

BASE

RAMTABELLA DEI SEGMENTI

SEGMENTO ALLOCATOINMEMORIA

Page 54: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 54

TECNICA DELLA SEGMENTAZIONE

ESEMPIO INTEL 286: MECCANISMO DI TRADUZIONE

indirizzo virtualesegmento s

offset o

dato

tabella dei segmenti

+

RAM

segmento

Page 55: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 55

TECNICA DELLA SEGMENTAZIONE

ESEMPIO INTEL 286: INDIRIZZO VIRTUALE

• 16384 (214 ) SEGMENTI DI DIMENSIONI VARIABILI FINO AD UN MASSIMO DI 64K (216). LO SPAZIO VIRTUALE PUO` QUINDI CONTENERE FINO AD UN MASSIMO DI UN GIGABYTE (230) DI LOCAZIONI.

• I 16384 SEGMENTI SONO SUDDIVISI IN DUE GRUPPI DI 8192 CIASCUNO. IL PRIMO SOTTOGRUPPO RAPPRESENTA I SEGMENTI GLOBALI A TUTTI I PROCESSI (SOTTOSPAZIO DI SISTEMA), IL SECONDO I SEGMENTI PROPRI DI OGNI PROCESSO (SOTTOSPAZIO LOCALE).

Page 56: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 56

TECNICA DELLA SEGMENTAZIONE

ESEMPIO INTEL 286: REGISTRI DI SEGMENTO

16 BIT 48 BIT PARTE NASCOSTASELETTORE

DIRITTI BASE LIMITEDIACCESSO

015163940474863

CS

DS

ES

SS

Page 57: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 57

SEGMENTAZIONE PAGINATA

• LA TECNICA PIU` SOFISTICATA DI GESTIONE DELLA MEMORIA E` COSTITUITA DALL’UNIONE DELLE DUE TECNICHE DELLA SEGMENTAZIONE E DELLA PAGINAZIONE;

• LA SEGMENTAZIONE CONSENTE DI OTTENERE TUTTI I VANTAGGI DI UNA MEMORIA VIRTUALE NON CONTIGUA;

• LA PAGINAZIONE VIENE ULTERIORMENTE APPLICATA AD OGNI SEGMENTO PER ELIMINARE LA FRAMMENTAZIONE DELLA MEMORIA FISICA.

Page 58: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 58

SEGMENTAZIONE PAGINATA

indirizzo virtuale

s d

limite tabellapagine

tabella segmenti

p od

f+

indirizzo fisicof o

tabella pagine

Page 59: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 59

SEGMENTAZIONE PAGINATA

ESEMPIO INTEL 386: DESCRITTORE DI SEGMENTO

• ANALOGO A QUELLO VISTO NEL CASO DEL 286 ANCHE SE CAMBIA LEGGERMENTE IL FORMATO.

• LA MAGGIORE DIFFERENZA CONSISTE NELLA DIMENSIONE DEI SEGMENTI CHE POSSONO CONTENERE FINO A 4 GIGABYTE (232).

Page 60: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 60

SEGMENTAZIONE PAGINATA

ESEMPIO INTEL 386: SEGMENTAZIONE

INDIRIZZO VIRTUALE

S D

BASE

LIMITE

CONTROLLO

DESCRITTORE DISEGMENTO

+

INDIRIZZO LINEAREA 32 BIT

Page 61: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 61

SEGMENTAZIONE PAGINATA

ESEMPIO INTEL 386: PAGINAZIONE A 2 LIVELLI

INDIRIZZO LINEARE

01222OFFSETPAGINADIR.

DATO

RAM

PAGE TABLEPAGE DIRECTORY

Page 62: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 62

UNIX

• NELLE PRIME VERSIONI DI UNIX LA MEMORIA ERA GESTITA SENZA PAGINAZIONE;

• LA MEMORIA ERA ALLOCATA DINAMICAMENTE MEDIANTE LA TECNICA DELLO SWAPPING FRA MEMORIA PRINCIPALE E SWAP AREA;

• UN PROCESSO ERA O IN MEMORIA OPRINCIPALE O COMPLETAMENTE SU DISCO;

• SIA LA MEMORIA PRINCIPALE CHE LO SPAZIO FISICO SULLO SWAP DEVICE ERANO GESTITI CON LA STARTEGIA FIRST-FIT;

Page 63: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 63

UNIX

• LA STRATEGIA DI SWAP VIENE REALIZZATA DAL PROCESSO NUMERO 0, NOTO COME PROCESSO SWAPPER;

• LO SWAPPER VIENE ATTIVATO OGNI 4 SECONDI PER VERIFICARE SE CI SONO PROCESSI DA SCARICARE SI DISCO O DA CARICARE IN MEMORIA;

• UN PROCESSO VIENE RIMOSSO QUANDO E` NECESSARIO FAR SPAZIO PER ALTRI PROCESSI;

Page 64: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 64

UNIX

• UN PROCESSO E` CANDIDATO AD ESSERE SCARICATIO SE E` SOSPESO O SE E` IN MEMORIA DA MOLTO TEMPO O SE E` DI NOTEVOLI DIMENSIONI;

• UN PROCESSO E` PRIVILEGIATO PER ESSERE RICARICATO SE E` RIMASTO SU DISCO PER LUNGO TEMPO O SE RICHIEDE POCO SPAZIO;

• PER EVITARE IL FENOMENO DEL TRASHING UN PROCESSO NON PUO` ESSERE SCARICATO PRIMA DI AVER PASSATO IN MEMORIA UN CERTO TEMPO MINIMO.

Page 65: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 65

UNIX

• NELLE VERSIONI PIU` RECENTI DI UNIX LA MEMORIA VIENE ALLOCATA CON LA TECNICA DELLA PAGINAZIONE SU DOMANDA;

• IL SISTEMA MANTIENE AGGIORNATA LA TABELLA DELLA MEMORIA (CORE MAP) IN CUI LE PAGINE FISICHE LIBERE SONO MANTENUTE CONCATENATE IN UNA LISTA;

• UN PROCESSO DI SISTEMA (IL PROCESO NUMERO 2 CHIAMATO PAGE DEAMON) VIENE ATTIVATO PERIODICAMENTE PER VERIFICARE CHE NELLA LISTA DELLE PAGINE LIBERE VI SIA UN NUMERO MINIMO (lotsfree) DI PAGINE;

Page 66: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 66

UNIX

• SE LE PAGINE FISICHE LIBERE DIMINUISCONO IL PAGE DEAMON EFFETTUA IL RIMPIAZZAMENTO CON LA STRATEGIA DEL CLOCK ALGORITHM;

• SE UNA PAGINA RESA LIBERA VIENE RICHIESTA PRIMA DI ESSERE SOVRASCRITTA DA UN’ALTRA PUO` ESSERE RIUSATA IMMEDIATAMENTE;

• QUANDO IL PROCESSO 0 (SWAPPER) VERIFICA UNA SITUAZIONE DI SOVRACCARICO UN PROCESSO PUO` ANCORA ESSERE COMPLETAMENTE SCARICATO (SWAP-OUT).

Page 67: Figura n. 1 TECNICA DELLE PARTIZIONI RILOCABILI RILOCAZIONE DINAMICA MEDIANTE UNA COPPIA DI REGISTRI: REGISTRO BASE RB E REGISTRO LIMITE RL Y = F(X) Y.

Figura n. 67

USERRUNNING

KERNELRUNNING

ASLEEP READY

ASLEEP

1

2

34

5

6

7

CREATED

ZOMBIE

EXIT

FORK

8

` READYSWAPPED

ASLEEPSWAPPED

SWAP-INSWAP-OUT

5

UNIX