< Carlo Brandolese

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


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