Figura n. 1 INTRODUZIONE ANALOGIE E DIFFERENZE TRA GESTIONE DELLE UNITA DI ELABORAZIONE E GESTIONE...

Post on 01-May-2015

216 views 0 download

Transcript of Figura n. 1 INTRODUZIONE ANALOGIE E DIFFERENZE TRA GESTIONE DELLE UNITA DI ELABORAZIONE E GESTIONE...

Figura n. 1

INTRODUZIONE

ANALOGIE E DIFFERENZE TRA

GESTIONE DELLE UNITA DI ELABORAZIONE E

GESTIONE DELLA MEMORIA

Figura n. 2

PROCESSO = PROGRAMMA IN ESECUZIONE

RICHIEDE LA DISPONIBILITA` DI:

INTRODUZIONE

• UNITA` DI ELABORAZIONE

• AREA DI MEMORIA

Figura n. 3

SISTEMA MULTIPROGRAMMATO

NUMERO DI PROCESSI > NUMERO PROCESSORI

INTRODUZIONE

• UNITA` DI ELABORAZIONE VIRTUALE

• MEMORIA VIRTUALE

Figura n. 4

INTRODUZIONE

ANALOGIA FRA LA GESTIONE DELLE UNITA` DI ELABORAZIONE E LA GESTIONE DELLA MEMORIA

TECNICA DI VIRTUALIZZAZIONE DELLE RISORSE

Figura n. 5

INTRODUZIONE

VIRTUALIZZAZIONE DI UNA RISORSA:

COMPITI DEL GESTORE DELLA RISORSA

• CREARE LE RISORSE VIRTUALI

• GESTIRE LA RISORSA REALE

Figura n. 6

INTRODUZIONE

Esempio nel caso della CPU: campo contesto del descrittore di processo

RISORSA VIRTUALE:

STRUTTURA DATI NECESSARIA A DEFINIRE LE CARATTERISTICHE, E CONTENERE LE INFORMAZIONI, CARATTERIZZANTI LA RISORSA VIRTUALE.

Figura n. 7

NOMEidentificatore del processo

priorita` ed altre informazioni utili per lo scheduler SERVIZIO

CONTESTOimmagine dei registri di macchina

SUCCESSIVOidentificatore del processo successivo in una coda

altri campi contenentiinformazioni relativealla memoria, ai files aperti, ecc.

DESCRITTORE DI PROCESSO

Figura n. 8

INTRODUZIONE

STRUTTURA DATI NECESSARIA PER CREARE LA MEMORIA VIRTUALE:

insieme di blocchi (swap area) su memoria di massa (swap device) di dimensioni sufficienti a contenere le informazioni (codice, stack e dati) di un processo quando questo non e` allocato in memoria fisica.

MEMORIA VIRTUALE

Figura n. 9

NOMEidentificatore del processo

priorita` ed altre informazioni utili per lo scheduler SERVIZIO

CONTESTOimmagine dei registri di macchina

SUCCESSIVOidentificatore del processo successivo in una coda

altri campi contenentiinformazioni sui files aperti, ecc.

INFORMAZIONI RELATIVE ALLA MEMORIA ALLOCATA

MEMORIA

DESCRITTORE DI PROCESSO

Figura n. 10

INTRODUZIONE

GESTIONE DELLA RISORSA REALE:

• a) MANTENERE AGGIORNATO LO STATO DELLA RISORSA;

• b) ALLOCARE E REVOCARE LA RISORSA;

• c) DECIDERE QUANDO, PER QUANTOTEMPO, E A CHI ALLOCARE LA RISORSA.

Figura n. 11

a) MANTENERE AGGIORNATO LO STATO DELLA RISORSA;

INTRODUZIONE

Esempio nel caso della CPU:

VARIABILE: PROCESSO_IN_ESECUZIONE

Figura n. 12

a) MANTENERE AGGIORNATO LO STATO DELLA RISORSA;

INTRODUZIONE

Esempio nel caso della memoria:

STRUTTURA DATI: TABELLA DELLA MEMORIANECESSARIA PER REGISTRARE QUALE PARTE DELLA MEMORIA E` LIBERA, QUALE PARTE E` OCCUPATA E DA CHI.

Figura n. 13

b) ALLOCARE E REVOCARE LA RISORSA;

INTRODUZIONE

Esempio nel caso della CPU:

PROCEDURE: SALVATAGGIO_STATO ERIPRISTINO_STATO

Figura n. 14

b) ALLOCARE E REVOCARE LA RISORSA;

INTRODUZIONE

Esempio nel caso della memoria:

PROCEDURE: SWAP_OUT ESWAP_IN

Figura n. 15

INTRODUZIONE

SWAPPING

swap device

swap area

memoria fisica

swap-out

swap-in

Figura n. 16

c) DECIDERE QUANDO, PER QUANTOTEMPO, E A CHI ALLOCARE LA RISORSA.

INTRODUZIONE

Esempio nel caso della CPU:

PROCEDURA: ASSEGNAZIONE_CPU

(SHORT TERM SCHEDULING)

Figura n. 17

ASSEGNAZIONE_CPUASSEGNAZIONE_CPU

ES.

PR.

BL.

wait

signal

revoca CPU

C D...

CODA PROCESSI PRONTI

E F

G

SEMAFORI

S1

S2

S3

PROCESSOIN ESECUZIONE

A

B

Figura n. 18

c) DECIDERE QUANDO, PER QUANTOTEMPO, E A CHI ALLOCARE LA RISORSA.

INTRODUZIONE

Esempio nel caso della memoria:

PROCEDURE: ALLOCAZIONE E DEALLOCAZIONE MEMORIA

(MEDIUM TERM SCHEDULING)

Figura n. 19

INTRODUZIONE

DIFFERENZE FRA LA GESTIONE DELLE UNITA` DI ELABORAZIONE E LA GESTIONE DELLA MEMORIA:

• PARTI DIVERSE DELLA MEMORIA POSSONO ESSERE ALLOCATE A DIVERSI PROCESSI CONTEMPORANEAMENTE;

• LO STESSO PROCESSO PUO` ESSERE ALLOCATO IN PARTI DIVERSE DELLA MEMORIA IN TEMPI DIVERSI;

• LA MEMORIA PUO` ESSERE ALLOCATA SIA STATICAMENTE CHE DINAMICAMENTE.

Figura n. 20

INTRODUZIONE

• PARTI DIVERSE DELLA MEMORIA POSSONO ESSERE ALLOCATE A DIVERSI PROCESSI CONTEMPORANEAMENTE

PER MANTENERE AGGIORNATO LO STATO DELLA MEMORIA E` NECESSARIA UNA STRUTTURA DATI PIU` COMPLESSA RISPETTO A QUELLA VISTA NEL CASO DELL’UNITA CENTRALE

Figura n. 21

INTRODUZIONE

• LO STESSO PROCESSO PUO` ESSERE ALLOCATO IN PARTI DIVERSE DELLA MEMORIA IN TEMPI DIVERSI

NECESSITA` DI UN MECCANISMO DI RILOCAZIONE DEI PROGRAMMI

Figura n. 22

INTRODUZIONE

• LA MEMORIA PUO` ESSERE ALLOCATA SIA STATICAMENTE CHE DINAMICAMENTE

ELEVATO NUMERO DI TECNICHE DI ALLOCAZIONE DELLA MEMORIA SPESSO LEGATE ALLA PRESENZA DI MECCANISMI HARDWARE DI SUPPORTO A TALI TECNICHE (Memory Management Unit)

Figura n. 23

COMPITI DEL GESTORE DELLA MEMORIA

• TENER TRACCIA DI QUALI PARTI DELLA MEMORIA SONO LIBERE E QUALI ALLOCATE

• ALLOCARE LA MEMORIA AI PROCESSI

QUANDO NE HANNO BISOGNO

• DEALLOCARE LA MEMORIA DI UN PROCESSO QUANDO NON GLI SERVE PIU`

• GESTIRE IL TRASFERIMENTO DI INFORMAZIONI TRA MEMORIA PRINCIPALE E MEMORIA DI MASSA QUANDO LA MEMORIA PRINCIPALE NON PUO` CONTENERE TUTTI I PROCESSI

Figura n. 24

MEMORIA VIRTUALE

• INDIRIZZI SIMBOLICI

• INDIRIZZI LOGICI (VIRTUALI)

• INDIRIZZI FISICI

TIPI DI INDIRIZZI

Figura n. 25

TRADUZIONE

programmasorgente

compilatoreassemblatore

modulo oggetto

NOMI SIMBOLICI

INDIRIZZI LOGICI (RILOCABILI)+ NOMI SIMBOLICI (ESTERNI)

Figura n. 26

COLLEGAMENTO

modulo oggetto

linker

programmacaricabile INDIRIZZI VIRTUALI (RILOCABILI)

modulo oggetto.....

Figura n. 27

RILOCAZIONE

SE IL PROGRAMMA VIENE CARICATO A PARTIRE DA UN INDIRIZZO FISICO DIVERSO DA ZERO (SELETTORE DI CARICAMENTO DIVERSO DA ZERO):

NECESSITA` DI RILOCARE LE INFORMAZIONI DIPENDENTI DALLA LOCAZIONE (TRADUZIONE DEGLI INDIRIZZI VIRTUALI NEI CORRISPONDENTI INDIRIZZI FISICI).

Figura n. 28

RILOCAZIONESTATICA

• EFFETTUATA DAL CARICATORE RILOCANTE IN FASE DI CARICAMENTO.

• LE INFORMAZIONI DIPENDENTI DALLA LOCAZIONE VENGONO MODIFICATE SOMMANDOCI L’INDIRIZZO INIZIALE DI CARICAMENTO (SELETTORE DI CARICAMENTO).

• UN PROGRAMMA, UNA VOLTA CARICATO E RILOCATO IN UNA ZONA DELLA MEMORIA FISICA, NON PUO` ESSERE SPOSTATO IN ALTRA AREA.

Figura n. 29

CARICAMENTO RILOCANTE

caricatorerilocante

INDIRIZZI FISICI (ASSOLUTI)

programmacaricabile

programma allocato in memoria

Figura n. 30

RILOCAZIONE

DINAMICA

• IL PROGRAMMA PRODOTTO DAL LINKER VIENE CARICATO IN MEMORIA SENZA ESSERE RILOCATO;

• NEI REGISTRI IP, CS, SP E SS VENGONO CARICATI I VALORI PRESENTI NELLA TABELLA DI INIZIALIZZAZIONE PRODOTTA DAL LINKER (INDIRIZZI VIRTUALI);

Figura n. 31

RILOCAZIONE

DINAMICA

• DURANTE L’ESECUZIONE, OGNI INDIRIZZO GENERATO DAL PROGRAMMA (INDIRIZZO VIRTUALE) VIENE TRADOTTO NEL CORRISPONDENTE INDIRIZZO FISICO PRIMA DI ACCEDERE ALLA MEMORIA;

• LA TRADUZIONE VIENE EFFETTUATA DA UN APPOSITO DISPOSITIVO HARDWARE (DETTO MEMORY MANAGEMENT UNIT O MECCANISMO DI RILOCAZIONE DINAMICA).

Figura n. 32

RILOCAZIONE

DINAMICA

NECESSITA` DEL MECCANISMO DI RILOCAZIONE CHE REALIZZA LA TRADUZIONE TRA INDIRIZZI VIRTUALI E INDIRIZZI REALI:

y = f(x)

x: INDIRIZZO VIRTUALE

y: CORRISPONDENTE INDIRIZZO REALE

Figura n. 33

RILOCAZIONE

DINAMICA

UN PROGRAMMA PUO` ESSERE CARICATO IN UNA ZONA DELLA MEMORIA FISICA E SUCCESSIVAMENTE SPOSTATO IN ALTRA AREA.

E` SUFFICIENTE, PER QUESTO, MODIFICARE LE INFORMAZIONI CONTENUTE NEL MECCANISMO HARDWARE CHE REALIZZA LA FUNZIONE DI RILOCAZIONE.

Figura n. 34

TECNICHE DI ALLOCAZIONE DELLA MEMORIA

• DESCRIZIONE DELLA TECNICA

• MECCANISMI HARDWARE DI SUPPORTO

• ALGORITMI SOFTWARE E STRUTTURE DATI

Figura n. 35

TECNICHE DI ALLOCAZIONE DELLA MEMORIA

•1) TECNICHE CHE NON FANNO RIFERIMENTO A MECCANISMI DI RILOCAZIONE DINAMICA

•2) TECNICHE SUPPORTATE DA MECCANISMI PER LA RILOCAZIONE DINAMICA DEGLI INDIRIZZI

Figura n. 36

TECNICHE DI ALLOCAZIONE DELLA MEMORIA

• TECNICHE DI ALLOCAZIONE STATICA: AD UN PROCESSO VIENE ALLOCATA MEMORIA QUANDO VIENE CREATO E REVOCATA QUANDO TERMINA.

• TECNICHE DI ALLOCAZIONE DINAMICA: AD UN PROCESSO VIENE ALLOCATA E REVOCATA MEMORIA PIU` VOLTE DURANTE LA SUA VITA.

Figura n. 37

ESECUZIONE

PRONTO

BLOCCATO

wait

signal

assegnazione CPU

revoca CPU

PRONTOSU DISCO

signal

BLOCCATOSU DISCO

swap-inswap-out

swap-out

ALLOCAZIONE DINAMICA

Figura n. 38

ALLOCAZIONE DELLA MEMORIA IN SISTEMI

MONOPROGRAMMATI

SISTEMAOPERATIVO

PROGRAMMA UTENTE

0 SISTEMAOPERATIVO

PROGRAMMA UTENTE

0

BIOSIN ROM

Figura n. 39

ALLOCAZIONE DELLA MEMORIA IN SISTEMI

MONOPROGRAMMATI

• HARDWARE DI SUPPORTO: REGISTRO LIMITE DI PROTEZIONE

• PER PROGRAMMI DI DIMENSIONI MAGGIORI DELLA MEMORIA FISICA: NECESSITA` DI TECNICHE DI CARICAMENTO PARZIALE (OVERLAY)

Figura n. 40

ALLOCAZIONE DELLA MEMORIA IN SISTEMI CON RILOCAZIONE STATICA

TECNICA DELLE PARTIZIONI FISSE

SISTEMA OPERATIVO

PARTIZIONE 1

PARTIZIONE 2

PARTIZIONE 3

PARTIZIONE 4

0

100 K

400 K

600 K

1000 K

Figura n. 41

TECNICA DELLE PARTIZIONI FISSE

STRATEGIA: CODE MULTIPLE DI INPUT

SISTEMA OPERATIVO

PARTIZIONE 1

PARTIZIONE 2

PARTIZIONE 3

PARTIZIONE 4

0

100 K

400 K

600 K

1000 K

(ALLOCAZIONE DINAMICA)

Figura n. 42

TECNICA DELLE PARTIZIONI FISSE

STRATEGIA: UNICA CODA DI INPUT

SISTEMA OPERATIVO

PARTIZIONE 1

PARTIZIONE 2

PARTIZIONE 3

PARTIZIONE 4

0

100 K

400 K

600 K

1000 K

(ALLOCAZIONE STATICA)

best-available-fit /best-fit-only

Figura n. 43

PROGRAMMA 1

TECNICA DELLE PARTIZIONI FISSE

FRAMMENTAZIONE INTERNA

PROGRAMMA 3

PROGRAMMA 4

0

100 K

400 K

600 K

1000 K

SISTEMA OPERATIVO

PROGRAMMA 2

Figura n. 44

TECNICA DELLE PARTIZIONI FISSE

• ASPETTI POSITIVI: - SEMPLICITA`

• INCONVENIENTI:- FRAMMENTAZIONE INTERNA- NECESSITA` DI TECNICHE DI OVERLAY

• MECCANISMI HARDWARE:- MECCANISMO DI PROTEZIONE

³ REGISTRI DI FRONTIERA³ CHIAVI DI PROTEZIONE

Figura n. 45

ALLOCAZIONE DELLA MEMORIA IN SISTEMI CON RILOCAZIONE STATICA

TECNICA DELLE PARTIZIONI VARIABILI

S. O. S. O.

A

S. O.

A

B

S. O.

A

B

C

S. O.

B

C

TEMPO

Figura n. 46

ALLOCAZIONE DELLA MEMORIA IN SISTEMI CON RILOCAZIONE STATICA

TECNICA DELLE PARTIZIONI VARIABILI

TEMPO

S. O.

B

C

S. O.

B

C

D

S. O.

C

D

S. O.

C

D

E

S. O.

D

E

Figura n. 47

TECNICA DELLE PARTIZIONI VARIABILI

FRAMMENTAZIONE ESTERNA

SISTEMAOPERATIVO

A

B

C

D

Figura n. 48

TECNICA DELLE PARTIZIONI VARIABILI

TABELLA DELLA MEMORIA (lista partizioni libere)

DIMENSIONESUCCESSIVA

indirizzoprimapartizione

0

Figura n. 49

TECNICA DELLE PARTIZIONI VARIABILI

STRATEGIE DI ALLOCAZIONE (allocazione statica)

• FIRST- FIT

• BEST- FIT

• WORST- FIT

Figura n. 50

• ASPETTI POSITIVI: - MIGLIORE SFRUTTAMENTO DELLA MEMORIA

RISPETTO ALLE PARTIZIONI FISSE.

• INCONVENIENTI:- FRAMMENTAZIONE ESTERNA- NECESSITA` DI TECNICHE DI OVERLAY- MAGGIORE OVERHEAD

• MECCANISMI HARDWARE:- MECCANISMO DI PROTEZIONE

³ REGISTRI DI FRONTIERA³ CHIAVI DI PROTEZIONE

TECNICA DELLE PARTIZIONI VARIABILI