Upload
vico-giordano
View
220
Download
0
Embed Size (px)
Citation preview
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