Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Revision [3319]

Last edited on 2017-11-20 16:27:03 by EmilioCoppa
Additions:
[ [[https://www.youtube.com/watch?v=A0Eu5eGmkso&index=22&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video]] ]


Revision [3272]

Edited on 2017-11-14 06:42:41 by CamilDemetrescu
Additions:
==Venerdì 16 dicembre 2016 (Esercitazione 6 - 120 min) - Coppa/D'Elia/Demetrescu==
~- Esercitazione in laboratorio: [[Eserc06AA1617 ottimizzazioni accesso a memoria]]


Revision [3271]

Edited on 2017-11-14 06:40:39 by CamilDemetrescu
Additions:
==Venerdì 2 dicembre 2016 (Esercitazione 5 - 120 min) - Coppa/D'Elia/Demetrescu==
~- Esercitazione in laboratorio: [[Eserc05AA1617 sviluppo di una shell, chiamate a sistema]]


Revision [3270]

Edited on 2017-11-14 06:34:54 by CamilDemetrescu
Additions:
==Venerdì 18 novembre 2016 (Esercitazione 4 - 120 min) - Coppa/D'Elia/Demetrescu==
==Venerdì 25 novembre 2016 - Coppa/D'Elia/Demetrescu==
Deletions:
==Venerdì 4 novembre 2016 (Esercitazione 4 - 120 min) - Coppa/D'Elia/Demetrescu==
==Venerdì 25 ottobre 2016 - Coppa/D'Elia/Demetrescu==


Revision [2904]

Edited on 2017-09-25 20:23:57 by EmilioCoppa
Additions:
[ [[https://www.youtube.com/watch?v=27nkZG98Xl4&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=26 Video]] ]
[ [[https://www.youtube.com/watch?v=7u63OlrrjQs&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=27 video parte I]] | [[https://www.youtube.com/watch?v=TlfzRMdDn5Y&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=28 video parte II]] ]


Revision [2610]

Edited on 2016-12-18 19:02:30 by CamilDemetrescu
Additions:
==Giovedì 15 dicembre 2016 (Lezione 26, 27 - 180 min) - allocazione dinamica e allocazione della memoria fisica==
~- Come è strutturata la memoria? (parte III)
~~- Ordine dei byte in memoria (endianness)
~~~- storia e motivazioni, usi attuali (es. network byte order)
~~~- esempi di accesso a singoli byte/word in un dato memorizzato
~- Come viene gestita la memoria? [[[http://www.cs.cmu.edu/~213/lectures/17-vm-concepts.pdf ref1]], [[http://www.cs.cmu.edu/~213/lectures/18-vm-systems.pdf ref2]]]
~~- memoria fisica (gestita dal sistema operativo) e memoria virtuale (visibile ai processi)
~~- allocazione dinamica della memoria
~~~- frammentazione interna ed esterna
~~~- qualità di un allocatore: tempo e spazio
~~~- allocazione in cascata della memoria
~~~- cenni ad implementazione di un allocatore: malloc/free, sbrk(2)
~~- allocazione nella memoria fisica: memoria virtuale
~~~- mapping tra indirizzi virtuali e indirizzi fisici: MMU
~~~- paginazione
~~~- come avviene il mapping degli indirizzi logici su quelli fisici?
~~~- quanto spazio occupa una tabella delle pagine?
~~- paginazione con bit di validità
~~- page fault memoria virtuale e loro gestione, protection fault (SIGSEGV)
~~- paginazione con bit di validità e swapping su disco
~~- working set e thrashing


Revision [2547]

Edited on 2016-12-12 08:18:39 by CamilDemetrescu
Additions:
==Lunedì 12 dicembre 2016 (Lezione 25 - 90 min) - gerarchie di memoria e ottimizzazioni==
~- Come è strutturata la memoria? (parte II) [[[http://www.cs.cmu.edu/~213/lectures/10-memory-hierarchy.pdf ref1]], [[http://www.cs.cmu.edu/~213/lectures/12-cache-memories.pdf ref2]]]
~~- gerarchie di memoria:
~~~- registri, cache L1 (D+I), L2, L3, memoria, disco
~~~- trasferimento dati a blocchi tra livelli successivi di una memoria gerarchica
~~~- analisi di costo/dimensione/[[https://gist.github.com/hellerbarde/2843375 velocità]] dei livelli di una memoria gerarchica
~~~- caso di studio: Intel Core i7, gerarchia di memoria (L1i, L1d, L2, L3, DDR3) [[[http://www.cs.cmu.edu/~213/lectures/18-vm-systems.pdf ref]]]
~~- ottimizzazioni del codice nell'uso della memoria:
~~~- Tempo di esecuzione
~~~~- sfruttare velocità dei registri: allocazione dei registri
~~~~- scrittura di codice cache-friendly: caso di studio del prodotto di matrice
~~~~- allineamento e padding:
~~~~~- stack frame a 16 byte prima di una call
~~~~~- allineamento dei campi delle struct
~~~- Spazio
~~~~- ridurre la dimensione dei dati: riordinare le struct per ridurre il padding
~~~~- ridurre la dimensione del codice: rimpiazzo di istruzioni con altre che richiedono meno byte (es. movl $1, D -> incl D)


Revision [2535]

Edited on 2016-12-07 08:32:18 by CamilDemetrescu
Additions:
[ [[https://www.youtube.com/watch?v=i9dMj3XROxw&index=22&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] | [[https://www.youtube.com/watch?v=hRw4o2IpVjs&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=23 video parte II]] ]
Deletions:
[ [[https://www.youtube.com/watch?v=i9dMj3XROxw&index=22&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ] | [ [[https://www.youtube.com/watch?v=hRw4o2IpVjs&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=23 video parte II]] ]


Revision [2534]

Edited on 2016-12-07 08:31:53 by CamilDemetrescu
Additions:
[ [[https://www.youtube.com/watch?v=i9dMj3XROxw&index=22&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ] | [ [[https://www.youtube.com/watch?v=hRw4o2IpVjs&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=23 video parte II]] ]


Revision [2533]

Edited on 2016-12-07 08:29:32 by CamilDemetrescu
Additions:
[ [[https://www.youtube.com/watch?v=aEF32zhb-z4&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA&index=24 Video]] ]


Revision [2529]

Edited on 2016-12-06 18:46:14 by CamilDemetrescu
Additions:
==Lunedì 5 dicembre 2016 (Lezione 24 - 90 min) - accesso a memoria e cache==
~- Come è strutturata la memoria? (parte I) [[[http://www.cs.cmu.edu/~213/lectures/10-memory-hierarchy.pdf ref1]], [[http://www.cs.cmu.edu/~213/lectures/12-cache-memories.pdf ref2]]]
~~- astrazione con modello lineare
~~- transazioni di lettura e scrittura: configurazione del bus, trasferimenti da CPU a memoria e viceversa
~~- divario tra velocità CPU (cycle time) e velocità accesso a memoria, evoluzione del trend
~~- principio di località, località spaziale e temporale
~~- caching come strategia di duplicazione della memoria oppure per memorizzare risultati di computazioni ricorrenti
~~- cache come buffer per compensare divario tra velocità di processamento e velocità di accesso ai dati sfruttando il principio di località
~~~- partizionamento in blocchi, dimensione blocco (linea di cache), cache hit e cache miss, cenni a strategia di replacement
~~~- esempi di analisi: somma degli elementi di un array, scansione lineare di un array vs. lista collegata
~~- altri usi delle cache in un sistema di calcolo (es. disco, browser)
~- Complementi sull'uso dei segnali: system call ##sigaction##


Revision [2517]

Edited on 2016-12-02 18:00:13 by CamilDemetrescu
Additions:
==Giovedì 1 dicembre 2016 (Lezione 22, 23 - 180 min) - system call processi==
~- Esecuzione simultanea di più processi (parte II):
~~- system call per il controllo dei processi:
~~~- creazione (fork, [[http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html exec]])
~~~- terminazione (exit)
~~~- attesa terminazione (wait)
~~~- segnali (##signal##, ##kill##, armatura dei segnali e signal handler)


Revision [2436]

Edited on 2016-11-28 17:17:15 by CamilDemetrescu
Additions:
~~- attesa di eventi: busy waiting/polling e interrupt
Deletions:
~~- uso dei comandi ##ps## e ##top## per analizzare i processi


Revision [2429]

Edited on 2016-11-26 13:34:29 by CamilDemetrescu
Additions:
==Lunedì 28 novembre 2016 (Lezione 21 - 90 min) - stati processi e scheduling==
Deletions:
==Lunedì 28 novembre 2016 (90 min) - stati processi e scheduling==


Revision [2428]

Edited on 2016-11-26 13:34:00 by CamilDemetrescu
Additions:
I video delle lezioni a partire dal 10 ottobre sono disponibili sul [[https://www.youtube.com/playlist?list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA canale Youtube del DIAG]]. Il codice sviluppato in aula è disponibile al [[https://drive.google.com/drive/folders/0B0-hW0pRrSTmZHZCbno4WDdlYjQ seguente link condiviso]].
Deletions:
I video delle lezioni a partire dal 10 ottobre sono disponibili sul [[https://www.youtube.com/playlist?list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA canale Youtube del DIAG]].


Revision [2426]

Edited on 2016-11-26 12:00:17 by CamilDemetrescu
Additions:
~- Prova intermedia di esonero:
~~- prova al calcolatore:
~~~- programmazione IA32
~~~- profilazione delle prestazioni
~~~- tecniche di ottimizzazione dei programmi per ridurre il numero di istruzioni eseguite
~~~- debugging con gdb e valgrind
~~- domande a quiz:
~~~- concetti di base sull'ambiente Linux (file system, shell, permessi, comandi, variabili di ambienti, canali, redirezione, pipe, ecc.)
~~~- architettura generale di un sistema di calcolo (Von Neumann)
~~~- pipeline di compilazione
~~~- tecniche di ottimizzazione per la riduzione del work, legge di Amdahl
Deletions:
~- Prova intermedia di esonero


Revision [2425]

Edited on 2016-11-26 11:58:10 by CamilDemetrescu
Additions:
[ [[https://www.youtube.com/watch?v=p7xF8f46P4U&index=19&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ]
[ [[https://www.youtube.com/watch?v=owJtctA0Yjw&index=20&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte II]] ]
~- Svolgimento di esercizi per la preparazione all'esonero
Deletions:
[ [[https://www.youtube.com/watch?v=owJtctA0Yjw&index=19&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ]
[ [[https://www.youtube.com/watch?v=owJtctA0Yjw&index=20&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ]


Revision [2424]

Edited on 2016-11-26 11:56:50 by CamilDemetrescu
Additions:
[ [[https://www.youtube.com/watch?v=owJtctA0Yjw&index=19&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ]
[ [[https://www.youtube.com/watch?v=owJtctA0Yjw&index=20&list=PLAQopGWlIcybT12h7fjVvlGAeSqOKDnTA video parte I]] ]


Revision [2423]

Edited on 2016-11-26 11:51:18 by CamilDemetrescu
Additions:
==Lunedì 28 novembre 2016 (90 min) - stati processi e scheduling==
~- Esecuzione di un processo (parte IV):
~~- stati di un processo: running user, running kernel, waiting ([[http://www.linux-tutorial.info/modules.php?name=MContent&pageid=84 diagramma degli stati in Linux]])
~- Esecuzione simultanea di più processi (parte I):
~~- nozione di esecuzione concorrente
~~- multiprogrammazione e scheduling dei processi: [[[https://www.cs.cmu.edu/afs/cs/academic/class/15213-f10/www/lectures/12-exceptions.pdf ref]]]
~~~- context switch: salvataggio dello stato della CPU nel PCB
~~~- altri stati di un processo: started, ready, zombie
~~~- esempio del time sharing round-robin mediante timer e interrupt
~~~- cenni allo scheduling con priorità
~~- albero dei processi
~~- uso dei comandi ##ps## e ##top## per analizzare i processi


Revision [2422]

The oldest known version of this page was created on 2016-11-26 11:49:11 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.1264 seconds