Architettura dei sistemi di elaborazione

Docente: Alessandro Simonetta

Comunicazioni

APPELLO 25 SETTEMBRE

26-09-2018 10:54

COMUNICO AGLI STUDENTI CHE L'APPELLO DI IERI POMERIGGIO E' STATO CORRETTO E VERBALIZZATO. A QUESTO PUNTO GLI STUDENTI HANNO TEMPO PER VERIFICARE IL GIUDIZIO E SCEGLIERE SE ACCETTARLO O MENO.


AUTOVALUTAZIONE PRE-ESAME

27-09-2017 13:02

ARCHITETTURE DI CALCOLATORI


1) Il teorema del campionamento assicura che l'approssimazione discreta di un segnale analogico a banda limitata, è senza perdita di informazione utile se?
2) La macchina di von Neumann è composta da?
3) Quanti byte ci sono in 1 KB di memoria?
4) Cosa sono il Program Counter e l'Instruction Register?
5) Da quanti passaggi si compone il ciclo fetch-decode-execute ?
6) Quali sono i principi di progettazione per i computer moderni?
7) Un processore SIMD è costituito da?
8) Per calcolare la distanza di Hamming tra due parole, quale operazione si deve utilizzare?
9) In un hard disk le prestazioni dipendono da?
10) In un CDROM un settore è costituito da quanti frame? Cosa contengono?
11) Quali sono la principale differenza tra DVD e CD?
12) Per quali valori di A e B l'uguaglianza A+B = A B è verificata?
13) Quando si può utilizzare un multiplexer per realizzare una qualsiasi funzione logica?
14) Un decoder è un circuito combinatorio che può essere utilizzato per?
15) In un circuito digitale è possibile collegare due uscite insieme?
16) Elencare le caratteristiche delle ROM
17) Per incrementare la larghezza di banda di un bus occorre?
18) In un Pentium 4 i principali segnali di risposta del bus sono?
19) Descrivere lo schema adottato dalla CPU UltraSPARC III per la gestione della cache
20) Descrivere l'integrato 8051
21) Descrivere il memory-mapped I/O

SISTEMI OPERATIVI

22) Quali funzioni ha un Sistema Operativo?
23) In un Sistema Operativo le principali astrazioni sono?
24) Un processo è un concetto chiave presente in ogni Sistema Operativo, si può definire come?
25) I File in UNIX sono protetti con tre bit, a che servono?
26) In UNIX ogni processo ha uno spazio di memoria assegnato diviso in tre segmenti, quali?
27) Che cos'è un Sistema monolitico?
28) In quale circostanza sono creati nuovi processi? E in quale altra termina un processo?
29) Quali sono gli stati di un processo?
30) Quali informazioni non possono essere condivise tra processi?
31) Quando accade una corsa critica?
32) In un ambiente concorrente per evitare le corse critiche si possono definire delle condizioni, quali?
33) In quale circostanza è conveniente avviare lo scheduling?
34) Gli algoritmi di scheduling posso essere divisi in due categorie, quali?
35) Quali sono gli algoritmi di scheduling nei sistemi batch?
36) Supponendo di disporre dei seguenti tempi di esecuzione T0, T1, T2 e T3 nell'algoritmo shortest process next con tecnica di aging, quale sarà la stima per T4?
37) Per consentire a più applicazioni di essere in memoria allo stesso tempo senza interferire devono essere risolti due problemi, quali?
38) Quali sono i metodi per tenere traccia dell'utilizzo della memoria?
39) Qual è la struttura di una riga della tabella delle pagine?
40) Nell'algoritmo Not Recently Used (NRU) la classe 0 è..
41) Quando il sistema operativo non è coinvolto con la paginazione?
42) I programmatori sanno che tecnica di gestione della memoria (paginazione o segmentazione) è utilizzata?
43) Perché è stata inventata la paginazione?
44) Perché è stata inventata la segmentazione?
45) Quali sono le strutture di file più comuni?
46) Qual è la corretta sequenza dell'intestazione all'interno di un file eseguibile binario nelle prime versioni di UNIX?
47) Qual è la chiamata di sistema UNIX per leggere gli attributi di un file?
48) Qual è il separatore per i file utilizzato in MULTICS?
49) In un sistema di gestione del file system, qual è la voce speciale che permette di riferirsi alla directory corrente?
50) In UNIX, qual è la chiamata che permette di creare una directory vuota?
51) In un programma C, i parametri passati al programma principale, main(), sono passati attraverso?
52) Nel layout del file system, il master boot record è?
53) Nel layout del file system, il blocco di boot è fatto di..
54) Che cos'è l'i-node in un sistema UNIX?
55) I cambiamenti nella tecnologia spingono l'evoluzione dei file system: le CPU diventano più veloci; i dischi, le memorie e le cache sono sempre più grandi e economiche. Il collo di bottiglia diventa così il tempo di ricerca su disco (per quelli meccanici). Quali file system sono stati progettati per ridurre questo problema?
56) Quali sono le principali categorie di dispositivi di I/O?
57) Quali sono gli svantaggi del port-mapped I/O?
58) Quali sono gli svantaggi del memory-mapped I/O?
59) Quali sono le 4 proprietà di un interrupt preciso?
60) Quali sono i principali obiettivi del software di I/O?
61) Quali sono le tecniche di gestione degli I/O?
62) Quali sono i livelli software per la gestione dell'I/O?
63) Quali sono i fattori che compromettono il tempo necessario a leggere o scrivere un blocco del disco?
64) Quali sono le modalità di funzionamento di un clock programmabile?
65) In un computer con un clock di 10 GHz che distanza possono percorrere i segnali elettrici?
66) Per incrementare drasticamente le performance di un calcolatore che architetture occorre progettare?
67) In un'architettura UMA con rete di commutazione a più stadi di tipo omega con n CPU, n memorie and log2n stadi, con n/2 switch per stadio, complessivamente di quanti switch abbiamo bisogno?
68) Quali sono le caratteristiche chiave di una macchina con accesso non uniforme alla memoria?
69) Quali sono gli approcci per il Sistema Operativo adottati dai multiprocessori?
70) Qual è un potenziali problema in un algoritmo di scheduling a condivisione del tempo su un multiprocessore?
71) Che cosa si intende per diametro in un multicomputer?
72) Qual è il vantaggio di utilizzare un'architettura di multicomputer ad ipercubo?
73) Quali sono i vantaggi della virtualizzazione?

ESERCIZI

74) convertire in binario i numeri in base 10: 255, 127, 15 , 1023, 4095

75) convertire in ottale i numeri in base 10: 255, 127, 15 , 1023, 4095

76) convertire in esadecimale i numeri in base 10: 255, 127, 15 , 1023, 4095

77) convertire in decimale i numeri esadecimali: FF, FFE, 1A09, 2001, 1FA

78) convertire in decimale i numeri ottali: 77, 775, 1702, 2001, 17679) convertire in decimale i numeri binari: 1111, 1000, 10, 11001, 11111111, 10001111, 111111111111, 111111111110


Lezioni

3022-01-2018

ESONERO 2 - data prevista

2916-01-2018

ESERCITAZIONE

2715-01-2018

INPUT/OUTPUT
- PRINCIPI HARDWARE
- - Dispositivi di I/O
- - Controller dei dispositivi
- - Port-Mapped I/O
- - Memory-Mapped I/O
- - Hybrid-Mapped I/O
- - Direct Memory Access (DMA)
- - Interrupt rivisitati
- - Interrupt precisi e imprecisi
- PRINCIPI DEL SOFTWARE
- - Obiettivi del software
- - Modalità di gestione 
- - I/O guidato dagli interrupt
- - I/O con uso del DMA
- LIVELLI SOFTWARE
- - Gestori degli interrupt
- - Driver dei dispositivi
- - software indipendente dal dispositivo
- - software nello spazio utente
- DISCHI
- - Hardware dei dischi
- - Formattazione dei dischi
- - Algoritmi di scheduling
- - Gestione degli errori
- - Memoria stabile
- CLOCK
- - Hardware dei clock
- - Software dei clock
- - Timer soft

2609-01-2018

FILE SYSTEM 
- FILE
- - Nomi, Struttura, Tipi, Accesso, Attributi, Operazioni
- - Un esempio UNIX di chiamata di sistema del file system
- DIRECTORY
- - Sistemi di directory, Path name, Operazioni
- REALIZZAZIONE DEL FILE SYSTEM
- - Layout del file system
- - Realizzazione dei file
- - Realizzazione delle directory 
- REALIZZAZIONE DEL FILE SYSTEM
- - File condivisi
- - File system su log strutturati
- - File system Journaling
- - File system virtuali 

2508-01-2018

LA GESTIONE DELLA MEMORIA

- NESSUNA ASTRAZIONE DI MEMORIA
- UN’ASTRAZIONE DI MEMORIA: SPAZIO DI INDIRIZAMENTO
- - Swapping
- - Gestione della memoria libera
- MEMORIA VIRTUALE
- - Paginazione
- - Tabelle delle pagine
- - Velocizzare la paginazione
- - Tabelle delle pagine per grandi memorie LEZIONE 15

- ALGORITMI DI SOSTITUZIONE DELLE PAGINE
- - Il miglior algoritmo di sostituzione delle pagine
- - Not Recently Used (NRU)
- - First-In First-Out (FIFO)
- - Seconda Chance
- - Clock
- - Least Recently Used (LRU)
- - Working Set
- - WSClock
- PROBLEMATICHE DI PROGETTAZIONE DEI SISTEMI DI PAGING
- - Confronto tra politiche di allocazione globali e locali
- - Controllo del carico
- - Dimensione delle pagine
- - Spazio dati e istruzioni distinti
- - Pagine condivise

- PROBLEMATICHE DI PROGETTAZIONE DEI SISTEMI DI PAGING 
- - Librerie condivise 
- - Memory-mapped file 
- - Politiche di ripulizia 
- - Interfaccia della memoria virtuale 
- ASPETTI REALIZZATIVI 
- - Il SO e il paging 
- - Gestione dei page fault 
- - Backup delle instruzioni 
- - Bloccare le pagine in memoria 
- - Swapping dei processi su disco 
- - Separazione tra politica e meccanismo 
- SEGMENTAZIONE 
- - Realizzazione della segmentazione pura 
- - Segmentazione con paginazione: MULTICS 
- - Segmentazione con paginazione: Intel Pentium

2419-12-2017

PROCESSI E THREAD (PARTE 2/2)

COMUNICAZIONI TRA PROCESSI

- Sleep e wakeup 

- Semafori

- Mutex

- Mutex in Pthread

- Monitor

- Scambio di messaggi 

- Barriere

SCHEDULING

- Introduzione

- Sistemi batch

- Sistemi interattivi

- Sistemi real-time

- La politica contro il meccanismo

- Thread scheduling

 

2318-12-2017

ESERCITAZIONE

2212-12-2017

ESERCITAZIONE: CORREZIONE ESONERO

2111-12-2017

ESONERO 1

2005-12-2017

ESERCITAZIONE

1904-12-2017

SISTEMI OPERATIVI

PROCESSI E THREAD (PARTE 1/2)

PROCESSI

- Il modello di processo

- Creazione del processo

- Chiusura del processo

- Gerarchie di processi

- Stati di un processo

- Realizzazione di processi

- Modellazione della multiprogrammazione

THREAD

- Uso dei thread

- Il modello a thread classico

- Thread POSIX

- Realizzazione dei threads

- Attivazioni dello scheduler

- Thread pop-up

COMUNICAZIONI TRA PROCESSI

- Corse critiche

- Regioni critiche

- Mutua esclusione con busy waiting

1828-11-2017

SISTEMI OPERATIVI

- Le chiamate di sistema:

- - Gestione dei processi

- - Gestione dei file

- - Gestione delle directory

- Le API Win32 di Windows

- Struttura di un sistema operativo:

- -  Sistemi monolitici

- -  Sistemi a strati

- -  Microkernel

- -  Modello Client-Server

- -  Macchine virtuali

- -  Exokernel

- Introduzione al linguaggio C

1727-11-2017

Esercitazione

 

1621-11-2017

SISTEMI OPERATIVI

- Che cos’è un sistema operativo? 

- Storia dei sistemi operativi

- Concetti di base dei SO

 

1520-11-2017

ESERCITAZIONE

1414-11-2017

ARCHITETTURE PER IL CALCOLO PARALLELO 

 

 - MULTIPROCESSORI

 - - Hardware

 - - - UMA con architettura basata sul bus

 - - - UMA con crossbar switch

 - - - UMA con multistage switching network

 - - - NUMA

 - - Tipi di sitemi operativi

 - - Sincronizzazione

 - MULTIPROCESSORI

 - - Tipi di sistemi operativi

 - - Sincronizzazione

 - - Scheduling

 - MULTICOMPUTER

 - - Hardware

 - - Software di comunicazione di basso livello

 - - Software di comunicazione a livello utente

 - - Remote Procedure Call (RPC)

 - - Memoria condivisa distribuita

 - - Scheduling

 - - Bilanciamento del Carico

 - VIRTUALIZZAZIONE

 - - Hypervisor tipo 1

 - - Hypervisor tipo 2

 - - Paravirtualizzazione

1313-11-2017

ESERCITAZIONE

127-11-2017

ESERCITAZIONE

116-11-2017

IL LIVELLO DI MICROARCHITETTURA (PARTE 2/2)

- Controllo del flusso

- Architetture Intel IA-32 e IA64

 

IL LIVELLO DEL LINGUAGGIO ASSEMBLATIVO

- Introduzione al linguaggio assemblativo

- Formato delle istruzioni

- Pseudoinstruzioni

- Le macroistruzioni

- - Macro vs procedure

- - Macro con parametri

- Il processo di assemblaggio

- - Primo e secondo passaggio

- Linker e loader 

ARCHITETTURE PER IL CALCOLO PARALLELO 

 - INTRODUZIONE

 - - Classificazione di Flynn (1966)

 - PARALLELISMO NEL CHIP

 - - Parallelismo a livello d’istruzioni

 - - Multithreading nel chip

 - - Multiprocessori in un solo chip

 - COPROCESSORI

1031-10-2017

ESERCITAZIONE

930-10-2017

IL LIVELLO DI MICROARCHITETTURA
- Un esempio di microarchitettura
-- modello di esecuzione
-- data path (o percorso dati)
-- formato delle microinstruzioni
-- microarchitettura Mic-1
- Esempio di ISA: IJVM
-- Lo stack
-- Il modello della memoria
-- Insieme delle istruzioni
IL LIVELLO DI MACROARCHITETTURA
- Overview del livello ISA
- Tipi di dati

IL LIVELLO DI MICROARCHITETTURA 

- Modalità di indirizzamento

- Tipi di istruzioni

- Controllo del flusso

- Architetture Intel IA-32 e IA64

- Introduzione al linguaggio assemblativo

 

723-10-2017

ESEMPI DI CPU 
- Intel Pentium 4
- Intel Core i7
- UltraSPARC III
- Intel 8051
ESEMPI DI BUS
- Bus ISA
- Bus PCI
- PCI Express
- USB
- INTERFACCE
- Parallel I/O (PIO)
- Decodifica dell indirizzo

516-10-2017

MEMORIA
- Flip-flop
- Registri
- Organizzazione della Memoria
- Buffer
- Chip di memoria
- Random Access Memory
- Memorie Non-volatili
- ROM, PROM, EPROM, EEPROM
- Chip di CPU
BUS
- Ampiezza del bus
- clock del bus
- Bus sincroni/asincroni
- Arbitraggio del bus
- Interrupt handling
410-10-2017

Il livello logico digitale
- algebra di Boole
- le trasformazioni nel dominio di Boole
- Circuiti logici digitali elementari
- circuiti Integrati
- circuiti combinatori: multiplexer, decoder, comparatori e PLA
- Circuiti aritmetici: shifter, adder, ALU
- Clock.
309-10-2017

MEMORIA SECONDARIA
- Gerarchie di memorie
- Dischi magnetici
- Floppy disk
- Dischi IDE
- Dischi SCSI
- RAID
- Dischi a stato solido
- CD-ROM
- CD-Registrabili
- CD-Riscrivibili
- DVD
DISPOSITIVI DI INPUT/OUTPUT
- Il bus
- Direct Memory Access
- Tastiere
- Monitor LCD
- RAM della scheda video (VRAM)
- Dispositivi di puntamento
- Stampanti
- Apparati di Telecomunicazioni
- Codifica dei caratteri
203-10-2017
ORGANIZ. DEI SISTEMI DI CALCOLO (Cap 2 - Architettura dei Calcolatori)
PROCESSORI
- Organizzazione della CPU.
- Esecuzione dell?istruzione.
- RISC contro CISC.
- Principi di progettazione dei calcolatori.
- Parallelismo a livello di istruzione.
- Parallelismo a livello di processore.
MEMORIA PRINCIPALE
- Bit.
- Sistemi di numerazione.
- Indirizzi di memoria.
- Ordinamento dei byte.
- Codici di correzione di errore.
- Memoria cache.
102-10-2017
Presentazione del corso
- Orario del corso
- Iscrizione al corso: scheda informativa
- Sito web di riferimento
- Materiale didattico
- Programma di esame
- Modalità di esame
- Nozioni utili per il corso
- Modalità di svolgimento della lezione
- Modalità di studio
- In caso di assenza
- Andamenti e trend
- Questioni aperte e domande
INTRODUZIONE (Rif. Libro Architetture e dispensa Libro Informazione Automatica e Java)
- Dominio digitale e analogico
- Sistemi di numerazione
- Linguaggi, livelli e macchine virtuali
- Evoluzione delle architetture di computer
- Tipologie di computer
- Storia della famiglia Intel
- Unità metriche

Materiale didattico

Soluzioni Esercitazione n.7 svolta da Andrea Strazzulla
Esercitazione n.7 svolta da Andrea Strazzulla

Soluzioni Esercitazione n.6 svolta da Andrea Strazzulla

Esercitazione n.6 svolta da Andrea Strazzulla

Soluzioni Esercitazione n.4 svolte da Andrea Strazzulla

Esercitazione n.4/5 svolta da Andrea Strazzulla

Esercitazione n.4 svolta da Andrea Strazzulla

Soluzioni Esercitazione n.2 svolta da Andrea Strazzulla

Esercitazione n.2 svolta da Andrea Strazzulla

Esercitazione n.1 (Algebra di Boole, Codici di correzione di errore e sistemi di numerazione) svolta da Andrea Strazzulla

Soluzioni Esercitazione n.1 svolta da Andrea Strazzulla

Applicazione del codice di Hamming ad una parola a 4 bit
Capitolo 1 del libro "Informazione Automatica e Java", Edizioni Kappa, Autori: A. Simonetta, M. Sillano, D. Perna

Informazioni

Anno accademico2017-2018
Crediti6
SettoreING-INF/05
Anno1
Semestre1
PropedeuticitàNessuna

Programma

INTRODUZIONE (Cap 1 - Architettura dei Calcolatori)
- Approccio strutturale
- Pietre miliari nell'architettura dei computer
- Tipologie di computer
- Unità metriche
ORGANIZ. DEI SISTEMI DI CALCOLO (Cap 2 - Architettura dei Calcolatori)
- Processori
- Memoria principale
- Memoria secondaria
- Input/Output
LIVELLO LOGICO DIGITALE (Cap 3 - Architettura dei Calcolatori)
- Porte logiche e algebra di Boole
- Circuiti logici digitali elementari
- Memoria
- Chip della CPU e bus
- Esempi di Chip della CPU
- Esempi di bus
- Interfacce
LIVELLO DI MICROARCHITETTURA (Cap 4 - Architettura dei Calcolatori)
- Esempio di microarchitettura
- Esempio di ISA:IJVM
LIVELLO DI ARC. DELL'INSIEME D'ISTRUZIONI (Cap 5 - Architettura dei Calc.)
- Panoramica del livello ISA
- Tipi di dati
- Formati delle istruzioni
- Indirizzamento
- Tipi di istruzioni
- Flusso di controllo
LIVELLO DEL SISTEMA OPERATIVO (Cap 1,2,3,4,5,6 - I Moderni Sistemi Oper.)
- INTRODUZIONE
- PROCESSI E THREAD
- GESTIONE DELLA MEMORIA
- FILE SYSTEM
- INPUT/OUTPUT
- DEADLOCK
LIVELLO DEL LINGUAGGIO ASSEMBLATIVO (Cap 7 - Architettura dei Calc.)
- Introduzione al linguaggio assemblativo
- Macroistruzioni
- Il processo di assemblaggio
- Collegamento e caricamento
ARCHITETTURE PER IL CALCOLO PARALLELO (Cap 8 - Architettura dei Calcolatori e Cap 8 - I moderni Sistemi Operativi)
- Parallelismo nel chip
- Coprocessori
- Multiprocessori
- Multicomputer
- Virtualizzazione

Testi di riferimento

1) Tanenbaum Andrew S., Architettura dei calcolatori: Un approccio strutturale, 6a Ed., Pearson Education, 2013
2) Tanenbaum Andrew S.,Bos Herbert I moderni sistemi operativi, 2016

Testo Ausiliario


Informazione automatica e Java. Compendio di informatica e di programmazione. Autori: Simonetta A. Sillano M. e Perna D., EDIZIONI KAPPA
prezzo simbolico di 10 euro

Ricevimento studenti

Al termine delle lezioni

Modalità di esame

L'esame è svolto da una prova scritta della durata di 60/90 minuti comprendente: - 5 quesiti teorici/pratici sul programma di Architetture dei Calcolatori - 5 quesiti teorici/pratici sul programma di Sistemi Operativi La valutazione di ciascuna domanda è di 3/30 punti.