Calcolatori e sistemi operativi
ING-INF/05
12
L’insegnamento ha l’obiettivo di far comprendere in modo approfondito l’organizzazione ed il funzionamento delle architetture di calcolatori ponendo una particolare enfasi riguardo al livello del sistema operativo. Inizialmente viene introdotta l’evoluzione delle architetture di calcolatori, anche dal punto di vista degli ambienti operativi, per poi entrare all’interno della struttura dei moderni calcolatori elettronici. Il modello di riferimento adottato propone l’organizzazione a strati sovrapposti partendo dal livello fisico fino a giungere ai livelli più astratti dei linguaggi orientati alle applicazioni. Saranno quindi argomenti del corso il livello logico-digitale con l’introduzione dell’algebra di Boole, i livelli di micro e macro architettura (Instruction Set Architecture), il livello del linguaggio assemblativo, il sistema operativo e le architetture per il calcolo parallelo. Verranno, inoltre, proposti alcuni casi di studio con particolare riferimento alle architetture emergenti (intel core i7, ARM, ...). Durante l’analisi del livello del sistema operativo saranno fornite competenze specifiche sulla struttura interna di un sistema operativo moderno, con particolare riferimento al sistema Unix e MS Windows. Verranno trattate le principali forme di astrazione fornite dai sistemi operativi, la gestione dei processi e dei thread, la gestione della memoria, la gestione del file system, la gestione dell’input/output, il trattamento del deadlock e i sistemi operativi per ambienti a più processori. Questo ultimo argomento verrà trattato in stretta correlazione con le architetture parallele studiate nella parte relativa ai calcolatori elettronici. A livello pratico, il corso offrirà nozioni di programmazione concorrente congiuntamente a nozioni di base sull'utilizzo del sistema Unix e MS Windows.
Al termine di questo corso, gli studenti saranno in grado:
Non sono richiesti requisiti specifici.
• L01 - INTRODUZIONE SULLE ARCHITETTURE (Cap 1 – Architettura dei calcolatori)
Didattica erogativaL'insegnamento prevede, per ciascun CFU, 5 ore di Didattica Erogativa, costituite da circa 2,5 videolezioni (tenendo conto delle necessità di riascolto da parte degli studenti). Ogni videolezione esplicita i propri obiettivi e argomenti, ed è corredata da materiale testuale in pdf.L’insegnamento prevede videolezioni (in ognuna sono specificati gli argomenti e gli obiettivi) organizzate in moduli. Alcune videolezioni sono a carattere prevalentemente teorico e generale sulle architetture dei calcolatori e sui sistemi operativi. Altre videolezioni sono focalizzate su aspetti pratici e riguardano esercitazioni pratiche con aspetti di progettazione. Le videolezioni teoriche consentiranno di fornire agli studenti le conoscenze relative a concetti fondamentali, nuovi paradigmi, temi innovativi ad alto livello. Le videolezioni pratiche, contenenti esempi di circuiti o algoritmi risolutivi, permetteranno di arricchire le competenze degli studenti al fine di fornirgli un bagaglio tecnologico adeguato. A tal riguardo, si presenteranno confronti di tecnologie, strategie e strumenti introdotti nelle architetture e nei sistemi operativi, al fine di rendere lo studente autonomo nella selezione della tecnologia più adatta . In entrambi i casi si farà uso di una terminologia adeguata agli argomenti trattati. Didattica interattivaL'insegnamento segue quanto previsto dalle Linee Guida di Ateneo sulla Didattica Interattiva e l'interazione didattica, e propone, per ciascun CFU, 1 ora di Didattica Interattiva dedicata alle seguenti attività: lettura area FAQ, partecipazione ad e-tivity strutturata costituita da attività finalizzate alla restituzione di un feedback formativo e interazioni sincrone dedicate a tale restituzione.Tra le interazioni sincrone, sono utilizzate le aule virtuali in genere così strutturate:
Tutte le prove di verifica e autoverifica intermedie previste dai Corsi ed erogate in modalità distance learning sono da considerarsi altamente consigliate e utili ai fini della preparazione e dello studio individuali. Le prove di verifica e autoverifica intermedie non sono obbligatorie ai fini del sostenimento della prova d´esame, la quale deve essere svolta in presenza dello studente davanti ad apposita Commissione ai sensi dell´art. 11 c.7 lett.e) del DM 270/2004.L´esame si svolge in forma scritta.La prova scritta consiste in domande pratiche e/o teoriche. A titolo esemplificativo per la parte pratica possono essere esercizi di algebra di Boole, conversioni numeriche tra differenti basi, strategie risolutive del sistema operativo nella gestione delle risorse (memoria, file system, processi/thread, input/output), misure di performance dei calcolatori elettronici, problematiche di arbitraggio di dispositivi elettronici, modalità di interfacciamento, schemi elettronici per calcolatori elettronici, circuiti per il calcolo aritmetico e logico, ecc.Le domande teoriche vertono su tutto il programma.L’esame finale è volto a verificare la comprensione degli argomenti trattati, la capacità di applicare correttamente le nozioni a casi studio e la comprensione delle problematiche proposte nel corso. L’ esame si svolge in forma scritta e/o orale. La prova scritta ha una durata massima di 120 minuti.Il punteggio della prova è espresso in trentesimi.La prova scritta consiste in domande a risposta aperta sugli argomenti specifici del corso. Le domande sono formulate con questa tipologia sia per argomenti più teorici sia per argomenti più pratici. Viene richiesto agli studenti di dimostrare la comprensione dei concetti fondamentali relativi alle architetture di calcolatori e ai sistemi operativi e la capacità dello studente di applicare tali conoscenze tramite la descrizione di funzionalità e strumenti implementati in scenari di applicazioni reali. La prova scritta ha una durata massima di 120 minuti durante la quale gli studenti devono illustrare in modo adeguato gli argomenti richiesti dimostrando di aver raggiunto gli obiettivi formativi prefissati.L’esame è finalizzato anche a valutare l’autonomia di giudizio, l’ abilità comunicativa e la capacità di apprendere degli studenti.Al fine di valutare il conseguimento degli obiettivi formativi del corso, il docente terrà conto nella valutazione finale dell’esame:- della capacità di apprendere e quindi di esporre l’argomento richiesto; mostrando un’attitudine a risolvere nuove sfide;- della padronanza di linguaggio dello studente;- della capacità di applicare architetture, funzionalità o strumenti alla risoluzione di problemi reali e di valutare in modo appropriato le scelte tecnologiche in base a situazioni reali.Per superare l’esame, lo studente deve dimostrare di aver acquisito conoscenze per l’analisi dei problemi complessi, una conoscenza di base sulle funzionalità e sui principali elementi degli strumenti introdotti in tale processo. Verrà valutata anche la capacità di ipotizzare soluzioni innovative per migliorare i processi di innovazione. Per conseguire un punteggio pari a 30/30 e lode, lo studente deve inoltre dimostrare di aver acquisito una conoscenza eccellente di tutti gli argomenti trattati durante il corso.
Previo appuntamento (a.simonetta@unimarconi.it)