Nuova ricerca

Paolo VALENTE

Ricercatore Universitario
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Sistemi operativi

Informatica (Offerta formativa 2024)

Obiettivi formativi

- Conoscenza e capacità di comprensione: al termine del corso lo studente avrà le conoscenze di base relative al progetto e all'uso di un sistema operativo moderno, multiprogrammato, a condivisione di tempo.

- Capacità di applicare conoscenza e comprensione: al termine del corso lo studente sarà in grado di applicare queste conoscenze a problemi di amministrazione, valutazione delle prestazioni e studio del codice di software GNU/Linux.

- Autonomia di giudizio: al termine del corso lo studente sarà in grado di riconoscere in modo autonomo i diversi approcci e metodi risolutivi per le problematiche tipiche dei moderni sistemi operativi e saranno in grado di relazionare oralmente e per iscritto sugli argomenti presentati nel corso con un linguaggio tecnico appropriato.

- Capacità di apprendimento: lo studio permetterà lo sviluppo di abilità di apprendimento autonomo e di approfondimento di argomenti collaterali a quelli presentati nel corso: l'uso consapevole della linea di comando, la famigliarizzazione con il concetto di programmazione concorrente, la comprensione delle principali aree di un sistema operativo (scheduler, gestore di memoria, gestore di I/O).

Prerequisiti

Programmazione I

Programma del corso

Principali argomenti trattati:
- Introduzione ai sistemi operativi
- Struttura dei sistemi di calcolo
- Componenti di un sistema operativo
- Servizi di un sistema operativo
- Processi e thread
- CPU scheduling
- Sincronizzazione dei processi
- Deadlock
- Gestione della memoria
- Memoria virtuale
- Filesystem
- Gestione dell'Input/Output
- Gestione del disco

La verifica del profitto avverrà tramite esame (scritto e) orale finale comprendente domande di teoria ed esercizi.

Metodi didattici

Il corso si svolge quasi interamente in laboratorio. Durante la lezione tipo gli studenti imparano il minimo necessario di teoria che permette loro di eseguire esercizi di base. Successivamente, gli studenti sono invitati a risolvere da soli problemi via via più complessi. Il docente corregge in diretta gli errori degli studenti e chiarisce i loro dubbi.
Un'ora a settimana è dedicata al ripasso dei concetti principali e alla risoluzione dei problemi. Tale attività si svolge in un'aula normale.
Ogni settimana il docente propone tre problemi realistici e difficili agli studenti e li guida alla soluzione esclusivamente tramite suggerimenti. Questi esercizi sono facoltativi e intesi solo per chi vuole approfondire la materia. Lo studente che per primo riesce a risolvere gli esercizi acquisisce punti bonus che saranno aggiunti al voto finale di esame.
Gli studenti non frequentanti possono accedere alle slide delle lezioni e al materiale delle esercitazioni.

Testi di riferimento

A. Silberschatz, P. Galvin, G. Gagne
Sistemi Operativi (Nona Edizione)
Pearson Education Italia, 2014

Verifica dell'apprendimento

L'esame consiste in un colloquio orale di tre domande con il docente, svolto davanti ad un calcolatore. Lo scopo dell'esame è duplice:
* verificare la conoscenza del programma del corso
* verificare la capacità dello studente di applicarlo in scenari realistici al terminale.
La prima domanda è un esercizio impostato, svolto interamente al calcolatore e commentato dallo studente in 15 minuti. Lo studente che non sa risolvere concretamente l'esercizio al terminale viene respinto immediatamente.
Le rimanenti domande sono prevalentemente orali.
Ogni domanda vale 10 punti. Il voto finale è la somma dei tre punteggi ottenuti nelle tre domande più tutti i bonus acquisiti durante il corso tramite la risoluzione degli esercizi settimanali.

Risultati attesi

- Conoscenza e capacità di comprensione: tramite la teoria insegnata prima di ciascun esercizio e l'attività di tutoraggio del docente, al termine del corso lo studente avrà le conoscenze di base relative al progetto e all'uso di un sistema operativo moderno, multiprogrammato, a condivisione di tempo.

- Capacità di applicare conoscenza e comprensione: tramite le esercitazione al calcolatore, al termine del corso lo studente sarà in grado di applicare queste conoscenze a problemi di amministrazione, valutazione delle prestazioni e studio del codice di software GNU/Linux.

- Autonomia di giudizio: tramite gli esercizi svolti indipendentemente e l'attività di tutoraggio del docente, al termine del corso lo studente sarà in grado di riconoscere in modo autonomo i diversi approcci e metodi risolutivi per le problematiche tipiche dei moderni sistemi operativi e saranno in grado di relazionare oralmente e per iscritto sugli argomenti presentati nel corso con un linguaggio tecnico appropriato.

- Abilità comunicative: le esercitazioni settimanali permettono allo studente di essere in grado di discutere le proprie scoperte nel gergo tecnico appropriato. Il colloquio finale permette di esprimere i concetti appresi con un linguaggio appropriato e sostenere una discussione in merito agli argomenti trattati.

- Capacità di apprendimento: lo studio della letteratura, le discussioni con il docente, le esercitazioni mirate permetteranno lo sviluppo di abilità di apprendimento autonomo e di approfondimento di argomenti collaterali a quelli presentati nel corso.