Architettura dei sistemi di elaborazione

Vol. I Fondamenti, firmware, architetture parallele

Livello
Textbook, strumenti didattici
Dati
pp. 544,   figg. 168,     7a edizione  2000   (Codice editore 1385.1.1)

Architettura dei sistemi di elaborazione. Vol. I Fondamenti, firmware, architetture parallele
Tipologia: Edizione a stampa
Prezzo: € 56,00
Disponibilità: Nulla
Codice ISBN: 9788820427467

Presentazione del volume

Rivolto a chi intende approfondire lo studio dell'architettura dei sistemi di elaborazione dal punto di vista sia dell'analisi che del progetto, affronta il tema in modo organico, coprendo i livelli della organizzazione firmware, della macchina intermedia, del sistema operativo e dell'interfaccia verso le applicazioni.

Le architetture studiate vanno da quelle uniprocessore e con componenti LSI/VLSI a quelle parallele e ai sistemi distribuiti.

In linea con i risultati scientifici e industriali degli ultimi anni, l'approccio seguito enfatizza gli aspetti della progettazione strutturata e dell'integrazione hardware-software. Vengono fornite le basi teoriche e metodologiche e le tecniche per l'analisi e il progetto ai vari livelli di astrazione, studiando le caratteristiche comuni a ogni livello, le interrelazioni tra livelli comuni e le possibilità di ottimizzare le prestazioni complessive di interesse in rapporto al costo tecnologico e di sviluppo.

Il testo consta di sei parti suddivise in due volumi. La prima definisce i concetti e le metodologie fondamentali per un approccio strutturato all'analisi ed al progetto. La secondo tratto dell'architettura al livello firmware, con riferimento a calcolatori con limitato grado di parallelismo ed a sistemi a microcalcolatori LSI/VLSI. La terza studia le architetture parallele per medi, grandi e supercalcolatori, nonché le architetture non-von Neumann.

La quarto parte affronta la strutturazione ed il progetto dei sistemi operativi in termini di modelli di concorrenza, meccanismi e politiche di gestione delle risorse e loro valutazione, enfatizzando le interrelazioni con gli altri livelli del sistema e con l'ingegneria del software. La quinta tratta dell'architettura e progettazione di sistemi di tipo multiprocessore e multicalcolatore. La sesta è relativa ai sistemi distribuiti ed alle reti di calcolatori, approfondendo gli aspetti del sistema operativo distribuito, delle metodologie e degli algoritmi per l'elaborazione in ambiente decentralizzato.

Usato in ambito universitario, il testo permette di coprire le esigenze di più moduli didattici, sia di base che specialisti, nei curricula in Scienze dell'informazione ed Ingegneria.

Fabrizio Baiardi è ricercatore presso il Dipartimento di informatica dell'Università di Pisa. Svolge attività di ricerca sui linguaggi concorrenti e sistemi ad elevato grado di parallelismo, e in particolare sugli ambienti di supporto a tali linguaggi e le metodologie di progettazione integrate hardware-software.

Andrea Tomasi è ricercatore presso il Dipartimento di informatica dell'Università di Pisa. Svolge attività di ricerca in questo settore, ed in particolare su sistemi paralleli, supporti hardware-software e sistemi operativi per achitetture distribuite.

Marco Vanneschi è professore ordinario di sistemi per l'eleborazione dell'informazione presso la Facoltà di Scienze Matematiche, fisiche e naturali dell'Università di Pisa, Dipartimento d'Informatica.

Indice

Vol. I
PREFAZIONE
1. Obiettivi e metodo
2. Contenuti
3. Utilizzazione del testo
Ringraziamenti
PARTE I - FONDAMENTI E METODOLOGIE
1. STRUTTURAZIONE A LIVELLI
1. Livelli gerarchici di interpretazione
1.1. Supporti a tempo di esecuzione
1.2. Principi di progettazione strutturata
1.3. Interfacciamento dei livelli
2. Livelli tipici
2.1. Macchina firmware
2.2. Macchina assembler
2.3. Sistema operativo
2.4. Applicazioni
3. Livelli funzionali e di implementazione
2. STRUTTURAZIONE A MODULI
1. Moduli di elaborazione
1. 1. Autonomia
1.2. Sequenzialità
1.3. Parallelismo tra moduli
1.4. Moduli ai vari livelli
2. Unità di elaborazione e architettura firmware
2. 1. Organizzazione di un calcolatore convenzionale
2.1.1. Memoria principale
2.1.2. Processore
2.1.3. Unità di ingresso-uscita
2.1.3.1. Modalità di trasferimento tra I/O e memoria
2.1.3.2. Indirizzamento di unità di I/O
2.2. Architetture parallele
2.2.1. Sistemi uniprocessore paralleli
2.2.2. Sistemi multiprocessore
2.2.3. Sistemi di tipo rete
2.3. Modello di unità di elaborazione
2.4. Tecnologie per il livello firmware
3. Processi e sistema operativo
3.1. Multiprogrammazione e concorrenza
3.2. Nucleo del sistema operativo
3.3. Processi di sistema operativo
3.4. Tecnologie per il livello del sistema operativo
4. Computazioni in parallelo
4.1. Ordinamenti parziali
4.2. Determinatezza funzionale
4.3. Modalità di interazione
4.3.1. Interazione diretta
4.3.2. Interazione indiretta
4.4. Stallo
3. MODELLI DI COOPERAZIONE
1. Ambiente globale ed ambiente locale
2. Modelli di cooperazione ai vari livelli
3. Meccanismi di cooperazione ad ambiente globale
3.1. Meccanismi elementari
3.2. Meccanismi strutturati: monitor
4. Meccanismi di cooperazione ad ambiente locale
4.1. Canali di comunicazione
4.1.1. Canali con tipo
4.1.2. Modello di comunicazione
4.2. Forme di comunicazione
4.2.1. Comunicazione simmetrica/asimmetrica
4.2.2. Comunicazione sincrona/asincrona
4.3. Altre modalità di comunicazione
4.3.1. Rendez-vous esteso
4.3.2. Comunicazioni non bloccanti/con «time-out»
5. Controllo del nondeterminismo
5.1. Livello firmware
5.2. Livello dei processi: modello CSP
6. Trattamento dell'ingresso-uscita
4. PARAMETRI DI VALUTAZIONE E METODOLOGIE DI PROGETTO
1. Velocità di elaborazione
1.1. Banda di elaborazione
1.1.1. Caso di un singolo modulo
1.1.2. Caso di un sottosistema
1. 1. 3. Come aumentare la banda di elaborazione
1.2. Forme di parallelismo per moduli puramente funzionari
1.3. Forme di parallelismo per moduli con stato
1.3.1. Forma completamente parallela
1.3.2. Forma pipeline
1.4. Grado di accoppiamento
1.5. Granularità in elaborazioni parallele
2. Espandibilità
2.1. Espandibilità strutturale
2.2. Scalabilità
3. Affidabilità
3.1. Affidabilità e tolleranza ai guasti
3.1.1. Livello di interpretazione
3.1.2. Durata temporale
3.1.3. Molteplicità
3.2. Rilevazione dell'errore e diagnosi
3.3. Forme di ridondanza
3.3.1. Ridondanza attiva o «calda»
3.3.2. Ridondanza passiva o «fredda»
3.4. Riconfigurazione e ripristino
3.5. Protezione ed affidabilità
3.6. Sistemi con elevata protezione
3.6.1. Ambiente chiuso
3.6.1.1. Assenza di privilegi per default
3.6.1.2. Mediazione completa
3.6.2. Privilegio minimo
3.6.3. Controllo delle risorse in assenza di effetti collaterali
3.6.4. Verifica delle decisioni indipendente da errori
3.7. Azioni atomiche
Bibliografia sulla parte I
Esercizi sulla parte I
PARTE Il - LIVELLO FIRMWARE
5. MICROPROGRAMMAZIONE
1. Un esempio: unità buffer
1.1. Rappresentazione in microlinguaggio eseguibile
1.2. Implementazione della Parte Controllo
1.3. Ciclo di clock
1.4. Considerazioni conclusive
2. Linguaggi e modelli di microprogrammazione
2.1. Microlinguaggio eseguibile
2.2. Realizzazione microprogrammata della Parte Controllo
2.3. Mierolinguaggio codificato
2.3.1. Codifica delle microoperazioni
2.3.2. Codifica dei trasferimenti
2.3.3. Codifica delle condizioni logiche
2.4. Modelli di implementazione microprogrammata
2.4. 1. Implementazione parallela dei microprogrammi TS
2.4.2. Implementazione seriale dei microprogrammi TS
2.4.3. Implementazione seriale dei microprogrammi PS
2.4.4. Implementazione parallela dei microprogrammi PS
3. Metodologia di microprogrammazione
3.1. Organizzazione orizzontale
3.2. Organizzazione verticale
3.3. Organizzazione diagonale
3.4. Microprogrammazione dinamica
3.4.1. Implicazioni sulla Parte Operativa
3.4.2. Implicazioni sulla Parte Controllo
6. COOPERAZIONE TRA UNITA
1. Meccanismi di sincronizzazione
1.1. Meccanismo a livelli
1.2. Meccanismo a transizione di livello
1.3. Nota sul funzionamento dei sincronizzatori
1.4. Comunicazione asincrona con buffer a più posizioni
2. Meccanismi di arbitraggio
2.1. Meccanismi centralizzati
2.1.1. Arbitro a richieste indipendenti
2.1.2. «Daisy Chaining»
2.1.3. «Polling»
2.1.4. Divisione di tempo
2.1.5. Arbitri misti
2.2. Arbitraggio effettuato dall'unità gestore della risorsa
2.3. Meccanismi decentralizzati
2.3.1. Arbitro decentralizzato a disciplina circolare
2.3.2. Arbitro decentralizzato non-deterministico
2.4. Supporti per la gestione delle interruzioni
3. Strutture di comunicazione e protocolli
3.1. Collegamenti fisici
3. 1. 1. Anello
3.1.2. Crossbar centralizzato
3.1.3. Unità a molte porte
3.1.4. Cubo a n-dimensioni
3.1.5. Strutture omega
3.2. Protocolli di comunicazione--
3.2.1. Arbitraggio
3.2.2. Indirizzamento del destinatario
3.2.3. Sincronizzazione
3.2.4. Trasmissione dati
3.2.4.1. Linee parallele
3.2.4.2. Linee seriali
3.2.5. Ripristino dello stato iniziale
3.3. Componenti per interfacciamento
3.3.1. Porte d'interfaccia
3.3.2. Interfaccia su bus parallelo
3.3.3. Interfaccia su linea seriale dedicata
3.4. Elementi di valutazione
3.5. Esempi di collegamenti standard seriali e paralleli
3.5.1. Standard ad anello di corrente
3.5.2. Standard EIA/RS232C
3.5.3. Standard IEEE 488
3.5.4. Bus S 100
3.5.5. Bus LSI- 11
3.5.6. Unibus e massbus
7. GESTIONE DELLA MEMORIA
1. Supporti di memorizzazione
1.1. Supporti fisici e gerarchie di memoria
1.2. Gestione degli indirizzi e unità MMU
2. Meccanismi di rilocazione dinamica in gerarchie di memoria a due livelli
2.1. Funzione di traduzione degli indirizzi
2.2. Eccezione di fault
2.3. Algoritmi di rimpiazzamento
2.4. Segmentazione
3. Memoria virtuale
3. 1. Traduzione degli indirizzi
3.2. Una implementazione delle funzioni di gestione della memoria virtuale
3.3. Considerazioni conclusive
4. Meccanismi di gestione della memoria virtuale e controlli di protezione
4.1. Gestione degli accessi ad oggetti
4.2. Condivisione di oggetti e meccanismi di rilocazione
4.3. Un meccanismo efficiente per implementare il principio del privilegio minimo
5. Cache
5.1 Metodi di indirizzamento nel cache
5.1.1. Metodo diretto
5.1.2. Metodo completamente associativo
5.1.3. Metodo associativo su insiemi'
5.2. Valutazioni
5.3. Gerarchia di memoria a tre livelli
6. Un esempio di implementazione dell'unità MMU
8. STUDIO DI UN CASO
1. Specifiche funzionari e strutturali
1.1. Memoria ed ingresso usci