Architettire dei Calcolatori e Sistemi Operativi - Cremona
Docente:
    Prof. Carlo Brandolese
    E-mail: carlo.brandolese@polimi.it
    Tel: 02.2399.3492
Esercitatore:
    Ing. Gian Enrico Conti
    E-mail: gianenrico.conti@polimi.it
Programma del corso
Lo scopo della prima parte del corso è sia di ampliare la conoscenza della programmazione,
acquisita nel corso di Fondamenti di Informatica, approfondendo le tecniche di
programmazione parallela e concorrente, sia quello di comprendere e approfondire lo
studio del sistema operativo.
Il resto del corso è dedicato a comprendere come è realizzato un calcolatore seguendo
un percorso di approfondimento "per livelli", scendendo dal livello della programmazione
fino al livello delle porte logiche, che costituiscono l'astrazione del funzionamento
dell'Hardware.
Il prerequisito ideale consiste nell'avere superato l'esame di Fondamenti di Informatica.
E' comunque indispensabile avere almeno la capacità di scrivere semplici programmi in
linguaggio C.
Programmazione di sistema e programmazione concorrente
    Richiami di parallelismo e processi
    Thread
    Programmazione concorrente
Struttura del Sistema Operativo
    Gestione dei processi
    Gestione della memoria virtuale
    File System
    Gestori delle periferiche
Livello dei circuiti logici
    Algebra di Boole e Porte logiche fondamentali
    Introduzione alla realizzazione di funzioni combinatorie, principali circuiti combinatori e ALU
    Bistabili e registri
    Funzionamento della memoria e aspetti di sincronizzazione
Bus e sottosistemi funzionali
    Funzionamento del Bus
    Interfacciamento a memoria e periferica
Microarchitettura
    Instruction set architetire MIPS
    Realizzazione di sottoprogrammi
    Linguaggio Assembler, assemblaggio e collegamento
    Struttura del processore MPIS
    Pipeline MIPS e conflitti
Modalità d'esame
L'esame consta di una prova scritta costituita sia da esercizi pratici, sia da domande teoriche. Un'eventuale prova orale, da concordarsi con il docente, è consentita solamente nel caso in cui la prova scritta sia sufficiente.
Testi consigliati
-
D.A.Patterson e J.L.Hennessy,
C.Hamacher, Z.Vranesic, S.Zaky,
"Struttura e progetto dei calcolatori", Quarta edbizione itaiana,
Zanichelli, 2015
Materiale didattico - Lezioni
Programmazione di sistema e programmazione concorrente
    [pdf] Programma del corso
    [pdf] Processi - Concetti fondamentali
    [pdf] Processi - Aspetti avanzati
    [pdf] Struttura del codice di un programma C
    [pdf] Makefile
    [pdf] Thread
    [pdf] Dynamic Linking
    [pdf] Kernel
    [pdf] Scheduling
    [pdf] Memoria virtuale
    [pdf] Filesystem
    [pdf] Drivers
Sistema Operativo
    [pdf] Introduzione [book]
    [pdf] Supporto hardware [book]
    [pdf] Gestione dei processi [book]
    [pdf] Servizi [book]
    [pdf] Scheduling [book]
MIPS Architettura e Linguaggio assembly
    [pdf] Architettura MIPS
    [pdf] Pipeline MIPS - Struttura
    [pdf] Pipeline MIPS - Conflitti
    [pdf] Instruction Set Architetcure MIPS - Introduzione
    [pdf] Instruction Set Architetcure MIPS - Lingiuaggio
    [pdf] Instruction Set Architetcure MIPS - Programmazione
    [pdf] Instruction Set Architetcure MIPS - Assemblaggio
    [pdf] Instruction Set Cheat Sheet
Architettura del calcolatore
    [pdf] Memoria cache
    [pdf] Accesso alle periferiche
    [pdf] Bus di sistema
Dispense del prof. Pelagatti
    [pdf] Parallelismo e Processi
    [pdf] Thread
    [pdf] Programmazione Concorrente
    [pdf] Aspetti Generali di Linux
    [pdf] Funzionalita' Hardware
    [pdf] Nucleo del Sistema Operativo
    [pdf] Gestione della Memoria
    [pdf] File System
    [pdf] Gestori di Periferiche
Materiale di supporto - Esercitazioni
    [zip] Programmazione C - Aspetti base
    [zip] Programmazione C - Processi
    [zip] Programmazione C - Shared libraries
    [zip] Programmazione C - Make
    [zip] Programmazione C - Threads, semafori e mutex
    [pdf] Programmazione MIPS Assembly - Cheat Sheet
    [zip] Programmazione MIPS Assembly - Costrutti base
    [zip] Programmazione MIPS Assembly - Funzioni
Materiale di supporto - Esempi di prove d'esame
    [pdf] Esame del 2017.02.10
    [pdf] Esame del 2017.07.07
    [pdf] Esame del 2017.07.27
    [pdf] Esame del 2017.09.15
    [pdf] Esame del 2018.01.29
    [pdf] Esame del 2018.02.19
    [pdf] Esame del 2018.07.02
    [pdf] Esame del 2018.07.17
    [pdf] Esame del 2019.01.24
    [pdf] Esame del 2019.02.15
    [pdf] Esame del 2019.07.01
    [pdf] Esame del 2019.07.19
    [pdf] Esame del 2020.01.29
    [pdf] Esame del 2020.02.12
    [pdf] Esame del 2021.06.17 - Con traccia di soluzione
    [pdf] Esame del 2021.07.07 - Con traccia di soluzione
    [pdf] Esame del 2021.09.02 - Con traccia di soluzione
    [pdf] Esame del 2022.01.18
    [pdf] Esame del 2022.02.18
    [pdf] Esame del 2022.06.17 - Con traccia di soluzione
    [pdf] Esame del 2022.07.05 - Con traccia di soluzione
    [pdf] Esame del 2023.06.08 - Con traccia di soluzione
    [pdf] Esame del 2023.06.26 - Con traccia di soluzione
    [pdf] Esame del 2024.01.22 - Con traccia di soluzione
    [pdf] Esame del 2024.02.15 - Con traccia di soluzione
    [pdf] Esame del 2024.06.17 - Con traccia di soluzione
    [pdf] Esame del 2024.07.19 - Con traccia di soluzione
    [pdf] Esame del 2024.09.09 - Con traccia di soluzione
    [pdf] Esame del 2025.01.27 - Con traccia di soluzione