Architettura dei sistemi di elaborazione

Docente: Alessandro Simonetta

Comunicazioni

PRIMA PROVA IN ITINERE (2/11)

26-10-2021 14:31

Gli studenti che intendono sostenere la prima prova in intinere il giorno 2/11 lo possono fare iscrivendosi al seguente link:

 

https://forms.office.com/Pages/ResponsePage.aspx?id=Kr7FJGTXxUCZdYLQiuR9Dt_4ZWXTW0tIsxeOBofMG1hUMTcyMTU3QkkwTEUwNU9JTlVEUE1XMThJSC4u

 

Il link scade giovedì 28 cm ore 10.


TEAMS A.A. 2021/22

01-10-2021 14:59

https://teams.microsoft.com/l/team/19%3aOiJ3qdkdgdT8cSdR2kDPrvq7C0LJI0sCt9qa-oxaxDk1%40thread.tacv2/conversations?groupId=c4c2661a-33ad-4675-b037-a8122bca8915&tenantId=24c5be2a-d764-40c5-9975-82d08ae47d0e

 

LINK SOFTWARE UTILI

23-09-2021 19:17

TOOL PER ALGEBRA DI BOOLE

https://www.dcode.fr/boolean-expressions-calculator

https://www.trutabgen.com/

 

AMBIENTE DI PROGETTAZIONE DNS 

https://structorizer.fisch.lu/

 

COMPILATORI ARM

 

VisUAL

https://salmanarif.bitbucket.io/visual/index.html

 

CPUlator (online!)

https://cpulator.01xz.net/?sys=arm

 

Professional

 

KEIL uVision (MDK for STM32F0, STM32G0, and STM32L0)

https://www2.keil.com/stmicroelectronics-stm32/mdk

 

GNU

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads


DOMANDE DI AUTOVALUTAZIONE

23-09-2021 18:27

 

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

 

ESERCIZI IN ASSEMBLY

Suggerimento: descrivere prototipo, pre-condizioni e post-condizioni prima dell'algoritmo (preferibilmente in DNS)

 

79) Dati X e Y interi calcolare X/Y senza utilizzare l'istruzione DIV

89) Dati X e Y interi calcolare X*Y senza utilizzare l'istruzione MULTICS

90) Dato un array di interi calcolare la media dei suoi elementi

91) Dato un array di interi calcolare il massimo dei suoi elementi

92) Dato un array di interi calcolare il minimo dei suoi elementi

93) Dati due array di interi calcolare l'AND delle celle in medesima posizione e l'OR dei risultati

94) Dati due array di interi calcolare l'OR delle celle in medesima posizione e l'AND dei risultati

95) Dato un valore intero X calcolare il suo fattoriale

96) Dati X e Y interi calcolare X^Y 


Libro esercizi

23-09-2021 18:23
Presso la Libreria Universitalia è disponibile il libro
di esercitazione per l'esame di Architettura dei Sistemi di Elaborazione: "Introduzione alla programmazione su ARM"
 
Il prezzo per i miei studenti è di 10 euro se acquistato presso la libreria, mentre se spedito 15 euro inserendo il codice coupon ARM2020.
 
Attenzione se non si inserisce il codice di sconto lo si acquista a prezzo pieno (15+5 euro).
 
Il testo può essere acquistato con 18App ma il costo in questo caso è il prezzo di copertina (15 euro).
 
 
 
Universitalia 
Via di Passo Lombardo, 421 - 00133 Roma
lun - ven -18,30 orario continuato
sab 9 - 12-30
Tel. 06 20.26.342 

Lezioni


Materiale didattico

Informazioni

Anno accademico2021-2022
Crediti6
SettoreING-INF/05
Anno1
Semestre1
PropedeuticitàNessuna

Programma

INTRODUZIONE SULLE ARCHITETTURE (Cap 1 – Architettura dei calcolatori)

o Dominio digitale e analogico

o Linguaggi, livelli e macchine virtuali

o Evoluzione delle architetture di computer

o Approccio strutturale

o Pietre miliari nell’architettura dei computer

o Tipologie di computer

o Unità metriche

 

PROCESSORI E MEMORIA PRINCIPALE (Cap 2 – Architettura dei calcolatori)

o 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

 

o MEMORIA PRINCIPALE

- Bit

- Sistemi di numerazione

- Indirizzi di memoria

- Ordinamento dei byte

- Codici di correzione di errore

- Memoria cache

- Memoria principale

 

o 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

 

o INPUT/OUTPUT

- Il bus

- Direct Memory Access (DMA)

- Tastiere

- Monitor LCD

- RAM della scheda video (VRAM)

- Dispositivi di puntamento

- Stampanti

- Apparati di Telecomunicazioni

- Codifica dei caratteri

 

LIVELLO LOGICO DIGITALE (Cap 3 – Architettura dei calcolatori)

o Algebra di Boole

o Trasformazioni nel dominio di Boole

o Circuiti logici digitali elementari

o Circuiti Integrati

o CIRCUITI COMBINATORI

- Multiplexer

- Decoder

- Comparatori

- Programmable Logic Arrays (PLA)

- Shifter

- Adder

- Arithmetic Logic Units (ALU)

o Clock

o MEMORIA

- Flip-flop

- Registri

- Organizzazione della Memoria

- Buffer

- Chip di memoria

- Random Access Memory

- Memorie Non-volatili (ROM, PROM, EPROM, EEPROM)

o Chip di CPU

o BUS

- Ampiezza del bus

- clock del bus

- Bus sincroni/asincroni

- Arbitraggio del bus

- Interrupt handling

o ESEMPI DI CPU

- Intel Pentium 4

- Intel Core i7

- UltraSPARC III

- Intel 8051

o ESEMPI DI BUS

- Bus ISA

- Bus PCI

- PCI Express

- USB

o INTERFACCE

- Interfacce di I/O

- Interfacce PIO

- Decodifica dell’indirizzo

 

IL LIVELLO DI MICROARCHITETTURA (Cap 4 – Architettura dei calcolatori)

o Un esempio di microarchitettura

- Il modello di esecuzione

- Data path (o percorso dati)

- Formato delle microinstruzioni

- Microarchitettura Mic-1

o Esempio di ISA: IJVM

- Lo stack

- Il modello della memoria 

- Insieme delle istruzioni

 

IL LIVELLO DI MACROARCHITETTURA (Cap 5 – Architettura dei calcolatori)

o Overview del livello ISA

o Tipi di dati

o Formati di istruzioni

o Modalità di indirizzamento

o Tipi di istruzioni

o Controllo del flusso

o Architetture Intel IA-32 e IA64

 

IL LIVELLO DEL LINGUAGGIO ASSEMBLATIVO (Cap 7 – Architettura dei calcolatori)

o Introduzione al linguaggio assemblativo

o Le macroistruzioni

o Il processo di assemblaggio

o Linker e loader 

 

INTRODUZIONE AI SISTEMI OPERATIVI (Cap 1 – I moderni sistemi operativi)

o Che cos’è un sistema operativo? 

o Storia dei sistemi operativi

o Panoramica dei SO

o Concetti di base dei SO

o Le chiamate di sistema

o Struttura di un sistema operativo

o Introduzione al linguaggio C

 

PROCESSI E THREAD (Cap 2 – I moderni sistemi operativi)

o PROCESSI

o THREAD

o COMUNICAZIONI TRA PROCESSI

o SCHEDULING

 

GESTIONE DELLA MEMORIA (Cap 3 – I moderni sistemi operativi)

o NESSUNA ASTRAZIONE DI MEMORIA.

o LO SPAZIO DI INDIRIZAMENTO

o MEMORIA VIRTUALE

o ALGORITMI DI SOSTITUZIONE DELLE PAGINE

o PROBLEMATICHE DI PROGETTAZIONE DEI SISTEMI DI PAGING

o ASPETTI REALIZZATIVI

o SEGMENTAZIONE

 

• FILE SYSTEM (Cap 4 – I moderni sistemi operativi)

o FILE 

o DIRECTORY

o REALIZZAZIONE DEL FILE SYSTEM

o REALIZZAZIONE DEL FILE SYSTEM

 

• INPUT/OUTPUT (Cap 5 – I moderni sistemi operativi)

o PRINCIPI HARDWARE

o PRINCIPI DEL SOFTWARE

o LIVELLI SOFTWARE

o DISCHI

o CLOCK

 

• ARCHITETTURE PER IL CALCOLO PARALLELO (Cap 8 – I moderni sistemi operativi e Cap 8 – I moderni sistemi operativi)

o INTRODUZIONE

o PARALLELISMO NEL CHIP

o COPROCESSORI

o MULTIPROCESSORI

o MULTICOMPUTER

o VIRTUALIZZAZIONE


Testi di riferimento

1) Simonetta Alessandro

"introduzione alla programmazione su ARM"

Universitalia prezzo 10€

(studenti del corso) 

Spedizione prezzo 15€

(codice coupon ARM2020)

 

https://shop.unipass.it/home

/6039-alessandro-simonetta

-introduzione-alla-programmazione

-su-arm-circuiti-architettura-

e-sistema-operativo-dei-

calcolatori-elett

 

ronici.html

 

2)Tanenbaum Andrew S., Architettura dei calcolatori: Un approccio strutturale, 6a Ed., Pearson Education, 2013

3) Tanenbaum Andrew S, Bos H. I moderni sistemi operativi. Ediz. MyLab. 4a Edizione Settembre 2019

 


Ricevimento studenti

Al termine delle lezioni o concordato via email


Modalità di esame

MODALITA' REMOTA

SCRITTO + ORALE

MODALITA' IN PRESENZA

SOLO SCRITTO