INTRODUZIONE
Shared by: HC111211022556
-
Stats
- views:
- 5
- posted:
- 12/10/2011
- language:
- pages:
- 50
Document Sample


INTRODUZIONE
ANALOGIE E DIFFERENZE TRA
GESTIONE DELLE UNITA DI ELABORAZIONE
E
GESTIONE DELLA MEMORIA
Figura n. 1
INTRODUZIONE
PROCESSO = PROGRAMMA IN ESECUZIONE
RICHIEDE LA DISPONIBILITA` DI:
• UNITA` DI ELABORAZIONE
• AREA DI MEMORIA
Figura n. 2
INTRODUZIONE
SISTEMA MULTIPROGRAMMATO
NUMERO DI PROCESSI > NUMERO PROCESSORI
• UNITA` DI ELABORAZIONE VIRTUALE
• MEMORIA VIRTUALE
Figura n. 3
INTRODUZIONE
ANALOGIA FRA LA GESTIONE DELLE UNITA`
DI ELABORAZIONE E LA GESTIONE DELLA
MEMORIA
TECNICA DI VIRTUALIZZAZIONE DELLE RISORSE
Figura n. 4
INTRODUZIONE
VIRTUALIZZAZIONE DI UNA RISORSA:
COMPITI DEL GESTORE DELLA RISORSA
• CREARE LE RISORSE VIRTUALI
• GESTIRE LA RISORSA REALE
Figura n. 5
INTRODUZIONE
RISORSA VIRTUALE:
STRUTTURA DATI NECESSARIA A DEFINIRE LE
CARATTERISTICHE, E CONTENERE LE
INFORMAZIONI, CARATTERIZZANTI LA RISORSA
VIRTUALE.
Esempio nel caso della CPU:
campo contesto del descrittore di processo
Figura n. 6
DESCRITTORE DI PROCESSO
identificatore del processo NOME
priorita` ed altre informazioni
utili per lo scheduler SERVIZIO
immagine dei registri
di macchina CONTESTO
altri campi contenenti
informazioni relative
alla memoria, ai files
aperti, ecc.
identificatore del processo
successivo in una coda SUCCESSIVO
Figura n. 7
INTRODUZIONE
MEMORIA VIRTUALE
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.
Figura n. 8
DESCRITTORE DI PROCESSO
identificatore del processo NOME
priorita` ed altre informazioni
utili per lo scheduler SERVIZIO
immagine dei registri
di macchina CONTESTO
INFORMAZIONI RELATIVE MEMORIA
ALLA MEMORIA ALLOCATA altri campi contenenti
informazioni sui files
identificatore del processo aperti, ecc.
successivo in una coda SUCCESSIVO
Figura n. 9
INTRODUZIONE
GESTIONE DELLA RISORSA REALE:
• a) MANTENERE AGGIORNATO LO STATO
DELLA RISORSA;
• b) ALLOCARE E REVOCARE LA RISORSA;
• c) DECIDERE QUANDO, PER QUANTO
TEMPO, E A CHI ALLOCARE LA RISORSA.
Figura n. 10
INTRODUZIONE
Esempio nel caso della CPU:
a) MANTENERE AGGIORNATO LO STATO DELLA
RISORSA;
VARIABILE: PROCESSO_IN_ESECUZIONE
Figura n. 11
INTRODUZIONE
Esempio nel caso della memoria:
a) MANTENERE AGGIORNATO LO STATO DELLA
RISORSA;
STRUTTURA DATI: TABELLA DELLA MEMORIA
NECESSARIA PER REGISTRARE QUALE PARTE
DELLA MEMORIA E` LIBERA, QUALE PARTE E`
OCCUPATA E DA CHI.
Figura n. 12
INTRODUZIONE
Esempio nel caso della CPU:
b) ALLOCARE E REVOCARE LA RISORSA;
PROCEDURE: SALVATAGGIO_STATO E
RIPRISTINO_STATO
Figura n. 13
INTRODUZIONE
Esempio nel caso della memoria:
b) ALLOCARE E REVOCARE LA RISORSA;
PROCEDURE: SWAP_OUT E
SWAP_IN
Figura n. 14
INTRODUZIONE
SWAPPING
memoria fisica
swap device
swap-out
swap area
swap-in
Figura n. 15
INTRODUZIONE
Esempio nel caso della CPU:
c) DECIDERE QUANDO, PER QUANTO
TEMPO, E A CHI ALLOCARE LA RISORSA.
PROCEDURA: ASSEGNAZIONE_CPU
(SHORT TERM SCHEDULING)
Figura n. 16
ASSEGNAZIONE_CPU
PROCESSO
IN ESECUZIONE
ES. SEMAFORI
wait S1
revoca E F
B CPU BL. S2
G A
S3
signal
PR.
C ... D
CODA PROCESSI PRONTI
Figura n. 17
INTRODUZIONE
Esempio nel caso della memoria:
c) DECIDERE QUANDO, PER QUANTO
TEMPO, E A CHI ALLOCARE LA RISORSA.
PROCEDURE: ALLOCAZIONE E
DEALLOCAZIONE MEMORIA
(MEDIUM TERM SCHEDULING)
Figura n. 18
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. 19
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. 20
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. 21
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. 22
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. 23
MEMORIA VIRTUALE
TIPI DI INDIRIZZI
• INDIRIZZI SIMBOLICI
• INDIRIZZI LOGICI (VIRTUALI)
• INDIRIZZI FISICI
Figura n. 24
TRADUZIONE
programm NOMI SIMBOLICI
a
sorgente
compilatore
assemblatore
modulo INDIRIZZI LOGICI (RILOCABILI)
oggetto + NOMI SIMBOLICI (ESTERNI)
Figura n. 25
COLLEGAMENTO
modulo modulo
.....
oggetto oggetto
linker
programma
INDIRIZZI VIRTUALI (RILOCABILI)
caricabile
Figura n. 26
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. 27
RILOCAZIONE
STATICA
• 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. 28
CARICAMENTO RILOCANTE
programma
caricabile
caricatore
rilocante
programma
allocato INDIRIZZI FISICI (ASSOLUTI)
in memoria
Figura n. 29
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. 30
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. 31
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. 32
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. 33
TECNICHE DI ALLOCAZIONE DELLA
MEMORIA
• DESCRIZIONE DELLA TECNICA
• MECCANISMI HARDWARE DI SUPPORTO
• ALGORITMI SOFTWARE E STRUTTURE DATI
Figura n. 34
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. 35
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. 36
ALLOCAZIONE DINAMICA
ESECUZIONE wait
assegnazione
CPU
revoca
CPU BLOCCATO
signal swap-out
PRONTO
BLOCCATO
swap-out SU DISCO
swap-in
PRONTO signal
SU DISCO
Figura n. 37
ALLOCAZIONE DELLA MEMORIA IN SISTEMI
MONOPROGRAMMATI
0 SISTEMA 0 SISTEMA
OPERATIVO OPERATIVO
PROGRAMMA PROGRAMMA
UTENTE UTENTE
BIOS
IN ROM
Figura n. 38
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. 39
ALLOCAZIONE DELLA MEMORIA IN SISTEMI
CON RILOCAZIONE STATICA
TECNICA DELLE PARTIZIONI FISSE
0
SISTEMA OPERATIVO
100 K
PARTIZIONE 1
400 K
PARTIZIONE 2
600 K
PARTIZIONE 3
1000 K
PARTIZIONE 4
Figura n. 40
TECNICA DELLE PARTIZIONI FISSE
STRATEGIA: CODE MULTIPLE DI INPUT
(ALLOCAZIONE DINAMICA)
0
SISTEMA OPERATIVO
100 K
PARTIZIONE 1
400 K
PARTIZIONE 2
600 K
PARTIZIONE 3
1000 K
PARTIZIONE 4
Figura n. 41
TECNICA DELLE PARTIZIONI FISSE
STRATEGIA: UNICA CODA DI INPUT
(ALLOCAZIONE STATICA)
0
SISTEMA OPERATIVO
100 K best-available-fit /
PARTIZIONE 1 best-fit-only
400 K
PARTIZIONE 2
600 K
PARTIZIONE 3
1000 K
PARTIZIONE 4
Figura n. 42
TECNICA DELLE PARTIZIONI FISSE
FRAMMENTAZIONE INTERNA
0
SISTEMA OPERATIVO
100 K
PROGRAMMA 1
400 K
PROGRAMMA 2
600 K
PROGRAMMA 3
1000 K
PROGRAMMA 4
Figura n. 43
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. 44
ALLOCAZIONE DELLA MEMORIA IN SISTEMI
CON RILOCAZIONE STATICA
TECNICA DELLE PARTIZIONI VARIABILI
S. O. S. O. S. O. S. O. S. O.
A A A
B B B
C C
TEMPO
Figura n. 45
ALLOCAZIONE DELLA MEMORIA IN SISTEMI
CON RILOCAZIONE STATICA
TECNICA DELLE PARTIZIONI VARIABILI
S. O. S. O. S. O. S. O. S. O.
D D D D
E E
B B
C C C C
TEMPO
Figura n. 46
TECNICA DELLE PARTIZIONI VARIABILI
FRAMMENTAZIONE ESTERNA
SISTEMA
OPERATIVO
A
B
C
D
Figura n. 47
TECNICA DELLE PARTIZIONI VARIABILI
TABELLA DELLA MEMORIA
(lista partizioni libere)
indirizzo DIMENSIONE
prima SUCCESSIVA
partizione
0
Figura n. 48
TECNICA DELLE PARTIZIONI VARIABILI
STRATEGIE DI ALLOCAZIONE
(allocazione statica)
• FIRST- FIT
• BEST- FIT
• WORST- FIT
Figura n. 49
TECNICA DELLE PARTIZIONI VARIABILI
• 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
Figura n. 50
Get documents about "