Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
- Overview
- Programmazione Concorrente
- Scheduling della Cpu
- Gestione della Memoria
- File System
- Dispositivi d'I/O
Flusso di Istruzioni: sequenze di istruzioni eseguibili.
Flusso dei Dati: flusso dei dati in ingresso ad un calcolatore.
SIMD: Stessa istruzione su dati diversi.
MIMD: Più istruzioni ognuna delle quali eseguita su un flusso di dati diverso.
Con più master si possono avere problemi di sincronizzazione.
Nei multicalcolatori, a differenza delle macchine multiprocessore, ogni nodo del multicalcolatore ha la sua memoria privata (non c'è condivisione della memoria).
Strettamente accoppiati: Condivisione dei dispositivi di IO e della memoria di massa.
Lasciamente accoppiati: Ogni nodo ha il suo IO e la sua memoria di massa.
I cluster sono gli esempi più diffusi di questa categoria.
Architettura monolitica
Grandi vantaggi in prestazioni. La progettazione è un inferno. La manutenzione è anche peggio.
- MS-DOS, UNIX: Programmi di sistema
- Kernel (core)
Architettura stratificata
S.O. organizzato in diversi strati (livelli). Ogni strato è costruito sullo strato precedente.
- Hardware → livello 0
- Interfaccia utente → livello n
10 strato di puѽ solamente richiamare operazioni interne e da operazioni pubbliche dello strato M-1
Esempio software → Protocolli ISO/OSI di rete TCP/IP Lo standard attuale praticamente è il TCP/IP (Chи ha due strati in meno dello standard ISO OSI) Una eccessiva stratificazione complica e peggiora le prestazioni. Ecco perché raramente usato l’OSI. Lo stesso problema lo si è avuto con i sistemi operativi.
Esempio OS architettura stratificata → OS/2
Gerarchia delle memorie
Le memorie sono organizzate in base al costo, velocità e volatilità.
Caching
Consiste nel copiare dati da un livello di memoria ad un livello superiore (più veloce). È una tecnica che serve a tenere dati che sono stati utilizzati più di frequente.
Questo rende una politica di caching e un meccanismo che si sposta da un livello di consistenza dei dati che si trovano più in alto.
- Cache (CPU)
- Velocissime, velocissima, reolossima
- Piccola
- Memoria Centrale
- Velocità mediamente costa
- Piu core
- Media grandezza
- Memoria Secondaria (HD)
- Non volatile, economica
- Poco veloce, enorme
Architetture Multicorea
- Cache principale:
- Per ogni core
- Affinita col core minima concomitanza
- Cache per condivisione:
- Da tutti i core
- Trasmissione dati divisa tra i vari core
Architetture Multiprocessore
Uniform Memory Access (UMA)
- P1, P2
- Rete di interconnessione
- Memoria (M)
- Modulo di memoria
- Processori con cache private
- Ogni processore impiega lo stesso tempo per leggere da un modulo di memoria.
Diagramma di stato
PrRdX / PrRd / ...
PrWr / BusRdX / Flush / BusRd / PrRd / BusRdX / BusRd / PrWr / BusRdX / ...
(Automa a stati finiti)
I comandi di Bus vengono sfruttati dai controller degli altri nodi ed dal bus controller indirizzi.
Evento / Azione
osservato
effettuata al verificarsi dell'evento
Nodo 1
PrWr / BusRdX
S (comando inviato)
S BusRdX / evento rilevato
I
Afferato, il controller cache li fa, modifica della pagina del processore. Aggiornamento delle cache. (Nodo 2)
Processore1 vuole leggere una pagina non valida. Viene eseguito BusRd, la pagina viene ricaricata dalla memoria, ed impostato su Share.
BusRdX
I/O guidato da interrupt
Architettura legata fortemente al multitasking.
Quando la CPU tenta di eseguire un'istruzione di input output su un dispositivo, la CPU invia un segnale al dispositivo e si mette ad eseguire istruzioni su di un altro programma. Ancor quando il dispositivo completa il lavoro segnato, il controllore del dispositivo deve avvertire la CPU (controller non completamente passivo).
Invia un segnale sul bus di controllo per avvertire il completamento del task.
La CPU interrompe il secondo programma per analizzare il risultato dell'operazione.
Le istruzioni del SO vengono concatenate in CPU per analizzare il risultato.
Interruzioni Hardware
Chiamate così perché implementate a livello circuitale.
Dette anche "ASINCRONE" rispetto al ciclo Fetch-Decode-Execute della CPU.
- Comando input
- Pressione di un tasto. Cambia lo stato del controllore.
- Interrupt hardware cui è assegnato un particolare modulo del SO.
- CPU copia la memoria del registro del controller (carattere premuto) nella memoria centrale.
2) Valori dei parametri memorizzati in una tabella e
l'indirizzo di questi, messo nel registro.
3) Valori dei parametri memorizzati dal programma,
nello stack con un'operazione di push e prelevati dal
sistema operativo con un'operazione di pop.
I parametri verranno reload fino anche la funzione
richiede un numero di parametri minore o uguale al
numero di registri dati.
- lo stack dei parametri viene dato ad esecuzioni ricorsive.
Passaggio a traverso tabella
x parametro utilizzato
carica indirizzo
x in registro
programma utente
istruzioni delle syscall
istruzioni delle syscall
Sistema Operativo
Memoria secondaria (Memosa)
memoria permanente per grandi quantita di dati,
magnetica
blocchi di dischi magnetici.
Ogni piatto dei dischi magnetici
ha due superfici scrivibili.
La densita di informazione per blocco
e costante, blocchi piu vicini al
centro riescono ad immagazzinare
la stessa quantita di dati rispetto
ai blocchi periferici.
Gestione della Coerenza della Cache
- Meccanismi di coerenza (Rilevamento dell'incoerenza caching)
- una cache per dato (mutuamente esclusivo) [UNA - NUMA]
- Bus Snooping [UMA - NUMA]
- Centralized Directory [UMA - NUMA]
- Home based Directory [NUMA]
Protocolli di coerenza (Gestione dell'incoerenza)
- Invalidazione
- MSI
- MESI
- Aggiornamento
- DRAGON
- Invalidazione
- Vantaggi
- Poco traffico
- Non si possono generare troppe invalidazioni.
- Vantaggi
- Svantaggi
- Possibilità di generare troppe invalidazioni.
- Overload del bus
MSI
M: modified S: shared I: invalid
- PrWr/PrRd Scrittura/Lettura processore
- BusRd Lettura della memoria centrale di un blocco che non si vuole modificare
- BusRdX richiesta di un blocco dalla MC in maniera esclusiva, che si vuole modificare
- Flush Inserimento del blocco referenziato nel bus.
I: Blocco di memoria non valido S: Blocco presente in più di una cache in stato di non modificato. Tutte le copie sono aggiornate. M: Solo un processore ha una copia valida del blocco nella sua cache; la copia in memoria centrale è obsoleta e nessun’altra cache ha una copia valida.