PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Sistemi operativi

05CJCOA

A.A. 2023/24

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Informatica - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 30
Esercitazioni in aula 10
Esercitazioni in laboratorio 20
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Quer Stefano - Corso 1 Professore Associato IINF-05/A 30 2,5 10,5 0 14
Sterpone Luca - Corso 2 Professore Ordinario IINF-05/A 30 5 0 0 9
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
2023/24
L’insegnamento, presente nella Laurea in Ingegneria Informatica, è obbligatorio ed è collocato nel primo periodo didattico del terzo anno. Il corso ha lo scopo di introdurre gli elementi di base dell'architettura dei sistemi operativi e di approfondire i concetti e le tecniche di programmazione di sistema e di programmazione concorrente. Esso permette di acquisire conoscenze specifiche ai sistemi operativi UNIX-like, con particolare riferimento ai sistemi Linux, approfondendone l'utilizzo dei comandi di utente, di quelli di amministrazione, nonché della programmazione di sistema.
Mandatory course in the Bachelor's Degree program in Computer Engineering, it is held in the first semester of the third year. Its main objectives are to present the basic elements of the architecture of the operating system and to teach the concepts and methods of concurrent programming. The course permits students to acquire specific knowledge about UNIX-like operating systems, with particular reference to the Linux system. It also introduces operating system management by means of shell commands, shell scripts, administration commands, and system calls.
• Classificazione dei principali sistemi operativi moderni. • Funzionalità di base fornite da un sistema operativo. • Amministrazione di sistemi UNIX/Linux mediante utilizzo di comandi, shell, filtri e linguaggi di script. • Architettura di un sistema operativo visto come gestore e organizzatore delle risorse del sistema. • Gestione di processi e di thread, ovvero la capacità di utilizzare le tecniche principali per la creazione, la sincronizzazione e la terminazione di processi e di thread di esecuzione. • Capacità nell'utilizzare chiamate di sistema (system call) per la creazione, sincronizzazione ee terminazione di processi e thread. • Utilizzo della programmazione concorrente per la risoluzione di problemi elementari. • Analisi di problemi classici di sincronizzazione.
• Conoscenza architetturali: o Architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un processore, all’organizzazione della memoria e ai tipi di dato. o Meccanismo di interruzione. • Conoscenze di programmazione e problem-solving: o Sintassi di base e avanzata del linguaggio di programmazione C. o Costrutti e strutture dati (ADT) di tipo statico e dinamico (vettori, matrici, liste, code, pile, etc.). o Problem-solving avanzato, ovvero capacità di risolvere problemi di complessità relativamente elevata tramite la scrittura di programmi in linguaggio C.
• Architettura di un sistema operativo (3.0 h): o Introduzione e classificazione dei sistemi operativi. o Struttura di un sistema operativo, risorse gestite e moduli principali. o Possibili organizzazioni di un kernel. • Aspetti base del sistema operativo Linux (6.0 h): o Comandi utente. o Comandi per la gestione del sistema. • Aspetti avanzati del sistema operativo Linux (5.5 h): o Shell. o Linguaggi di script. • Il file system (3.0 h): o File e allocazione. o Architettura di un file system. • Processi (11.0 h): o Introduzione ai processi e alla programmazione concorrente (system call fork e wait). o Controllo avanzato dei processi (system call exec e system). o Segnali. o Gestione e comunicazione tra processi (pipe). • Thread (6.0 h): o Concetti principali (esecuzione, passaggio parametri, attesa, etc.). o Differenze tra thread e processi e tipologia di thread. o La libreria Pthread in ambiente UNIX-like. • Sincronizzazione di processi e thread (7.5 h): o Soluzioni software e hardware al problema della sincronizzazione. o Variabili e primitive semaforiche. o Problemi di sincronizzazione classici (produttore e consumatore, lettori e scrittori, filosofi, etc.). o Problem solving parallelo. • Lo scheduling dei processi (1.5 h). • Il problema dello stallo (1.5 h). • Esercitazioni di laboratorio su tutti gli argomenti precedentemente indicati su un sistema operativo Linux (15.0 h).
L'insegnamento è organizzato in lezioni, esercitazioni e laboratori. Non vi è alcuna distinzione formale tra ore di lezione e ore di esercitazione. Le esercitazioni, relative ai vari argomenti, sono svolte contestualmente alla trattazione della parte teorica. L'insegnamento comprende inoltre circa 15 ore di esercitazioni in laboratorio assistite da esercitatori e borsisti. L’attività di laboratorio comprende esercitazioni pratiche su tutti gli argomenti trattati durante le lezione e le esercitazioni in aula. Per questo motivo i laboratori sono parte integrante e fondamentale del corso. Le esercitazioni di laboratorio sono svolte utilizzando un sistema operativo Linux (Ubuntu o similare) e prevedono l’utilizzo di tutti gli strumenti base del sistema operativo stesso, dai comandi e dai linguaggi di shell, alla scrittura di script, al file-system a la sua gestione, allo sviluppo di programmi concorrenti in linguaggio C.
• Materiale fornito dal docente: o Trasparenze proiettate in aula. o Materiale utilizzato in laboratorio, con particolare riferimento alle eserctazioni di laboratorio e alle relative soluzioni. o Dispense e opuscoli su argomenti specifici. • Materiale (didattico e non) a disposizione sul World Wide Web. • Testi in forma cartacea: o A. Silbershatz, P. Galvin, G. Gagne, " Sistemi Operativi. Concetti ed Esempi ", Pearson Education Italia. o A. S. Tanenbaum, H. Bos, “I moderni sistemi operativi”, Pearson Education Italia. o W. R. Stevens, S. A. Rago, "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company.
Slides; Dispense; Libro di testo; Libro di esercitazione; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Video lezioni dell’anno corrente; Video lezioni tratte da anni precedenti; Strumenti di auto-valutazione;
Modalità di esame: Test informatizzato in laboratorio;
Exam: Computer lab-based test;
... L’esame consiste in un’unica prova scritta effettuata mediante computer, utilizzando la piattaforma "Esami". Il corso non include alcuna prova orale. L'esame sarà effettuato con modalità vis-à-vis, in un'aula o in un laboratorio. Se l'esame si svolge in aula (non in laboratorio), gli studenti devono provvedere a presentarsi muniti del laptop sul quale svolgere la prova. Gli istruttori effettueranno l'assistenza e la consulenza necessaria. Tutti gli studenti sono tenuti a documentarsi sulle regole dell'Università in relazione alle modalità di esame, a procurarsi i necessari strumenti hardware e software per poter effettuare le prove e a verificarne il corretto funzionamento (e aggiornamento) prima della prova. Tutti gli studenti sono tenuti a rispettare il codice etico dell’Ateneo. In caso di problemi di natura infrastrutturale, gli studenti devono comunicare prontamente tali problemi. In caso esistano sospetti relativi ad illeciti compiuti durante la prova scritta, i docenti si riservano il diritto di annullare la prova stessa oppure di procedere alla valutazione del candidato mediante una ulteriore verifica di tipo orale. La prova scritta include da 6 a 18 domande aperte (con correzione manuale) oppure chiuse (con correzione automatica da parte della piattaforma di esame). Tutte le risposte a correzione automatica richiedono precisione nell'inserzione della risposta e il formato specificato deve essere rigorosameente rispettato. Risposte errate possono implicare una penalità nel punteggio finale. Le domande sono volte a verificare: • Le conoscenze acquisite durante il corso e relative tanto agli aspetti teorici quanto a quelli più pratici. • Le capacità di risolvere problemi che coinvolgano le conoscenze teoriche e pratiche acquisite, con particolare attenzione in relazione ai comandi di shell, ai linguaggi di script, agli aspetti principali della programmazione di sistema e alla programmazione concorrente. La prova scritta ha una durata di 130 minuti. Durante la prova non è ammesso l’utilizzo di appunti, libri di testo, né altro materiale. Computer portatili, cellulari, palmari, etc., sono proibiti. Eventuali dispense predisposte dal docente (per esempio quelle relative ai comandi di shell Linux, agli script BASH e alla libreria Pthread), e ritenute necessarie per lo svolgimento della prova, saranno rese disponibili direttamente all'interno della piattaforma "Esami". Stessa considerazione vale per la calcolatrice inserita automaticamente all'interno della piattaforma. Il voto massimo acquisibile è pari a 36 punti. Tutti voti vengono arrotondati per eccesso. Voti superiori a 32 o a 33 (a seconda della prova scritta) saranno automaticamente convertiti in 30 con lode.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Esporta Word