SISTEMI OPERATIVI

Giuseppe CATTANEO SISTEMI OPERATIVI

0512100006
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2023/2024

OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
324LABORATORIO


Obiettivi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE

- VISIONE STRUTTURATA ED ORGANICA DI UN MODERNO SISTEMA OPERATIVO
- COMPRENSIONE DELLE PRINCIPALI SCELTE IMPLEMENTATIVE E DEI MECCANISMI ALLA BASE DELLA GESTIONE DI UN SISTEMA INFORMATIVO
- DESCRIZIONE DELL’INTERFACCIA ED IMPLEMENTAZIONE DI UN FILE SYSTEM
- DEFINIZIONE DELLA STRUTTURA DEI PROCESSI, DEGLI ALGORITMI DI SCHEDULING PER OTTIMIZZARE L’USO DELLA CPU E DELLA SINCRONIZZAZIONE PER LA GESTIONE DELLE RISORSE CONDIVISE
- GESTIONE DELLA MEMORIA CENTRALE
- SISTEMA OPERATIVO LINUX (UNIX) CON LE PRINCIPALI SYSTEM CALL ED UTILIZZO DEI COMANDI DELLA SHELL


CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE

- USARE, CONFIGURARE ED AMMINISTRARE UN SISTEMA OPERATIVO
- PROGETTARE ED IMPLEMENTARE SEMPLICI FUNZIONI DI SISTEMA
- VALUTARE, IN TERMINI DI RISORSE, IL COSTO DEI DIVERSI SERVIZI OFFERTI DAL SISTEMA OTTIMIZZANDO L’USO DELLE RISORSE DISPONIBILI
- INDIVIDUARE SOLUZIONI OTTIMALI VALUTANDONE AUTONOMAMENTE L’EFFICIENZA E LA CORRETTEZZA FORMALE
Prerequisiti
LO STUDENTE DEVE CONOSCERE L'ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ED IL LINGUAGGIO DI PROGRAMMAZIONE C.
Contenuti
IL CORSO È COSTITUITO DA 48 ORE DI LEZIONI FRONTALI E 24 ORE DI LABORATORIO. I CONTENUTI PREVISTI SONO DESCRITTI DI SEGUITO:

1) CONCETTI INTRODUTTIVI RIGUARDANTI L’ORGANIZZAZIONE, LA STRUTTURA E LE OPERAZIONI DI UN SISTEMA OPERATIVO, NONCHÉ LA GESTIONE DEI PROCESSI E DELLA MEMORIA [2 ORE FRONTALI]

2) ELEMENTI INTRODUTTIVI DEL SISTEMA OPERATIVO LINUX: INSTALLAZIONE E COMANDI BASE DI BASH [4 ORE LABORATORIO]

3) STRUTTURA DEI SISTEMI OPERATIVI: SERVIZI, INTERFACCIA UTENTE, CHIAMATE DI SISTEMA, TIPI DI CHIAMATE E PROGRAMMI DI SISTEMA [2 ORE FRONTALI]

4) INTERFACCIA DEL FILE SYSTEM: CONCETTO DI FILE, METODI DI ACCESSO, STRUTTURA DELLE DIRECTORY, MONTAGGIO DI UN FILE SYSTEM, METODI DI ALLOCAZIONE DEI BLOCCHI, GESTIONE DELLO SPAZIO LIBERO [8 ORE FRONTALI]

5) IMPLEMENTAZIONE DEL FILE SYSTEM: STRUTTURA DI UN FS, IMPLEMENTAZIONE DI UN FS E DI DIRECTORY [8 ORE FRONTALI]

6) I/O SU FILE: FILE DESCRIPTOR, STANDARD FILE, OPERAZIONI SU FILE, FILE TABLE, CONDIVISIONE DI FILE, OPERAZIONI ATOMICHE, I/O BUFFERIZZATO [4 ORE LABORATORIO]

7) FILE E DIRECTORY: TIPI DI FILE, STRUTTURA STAT, REAL ED EFFECTIVE USER ID, PERMESSI DI ACCESSO, LINK [6 ORE LABORATORIO]

8) PROCESSI: CONCETTO DI PROCESSO, ISOLAMENTO, SCHEDULING, OPERAZIONI SUI PROCESSI, PID, FORK, WAIT, EXIT, AMBIENTE E VARIABILI DI AMBIENTE, CONDIVISIONE DI FILE, FUNZIONI EXEC [4 ORE FRONTALI + 4 ORE LABORATORIO]

9) SCHEDULING: CONCETTI DI BASE, CRITERI, ALGORITMI DI SCHEDULING, ESEMPI [4 ORE FRONTALI]

10) COMUNICAZIONE TRA PROCESSI: LE PIPE() DI UNIX, FIFO DI UNIX [4 ORE LABORATORIO]

11) INTRODUZIONE DEL CONCETTO DI THREAD: THREAD A LIVELLO UTENTE E A LIVELLO KERNEL, LA LIBRERIA PTHREAD [2 ORE FRONTALI]

12) SINCRONIZZAZIONE TRA PROCESSI: IL PROBLEMA DELLA REGIONE CRITICA, L’ALGORITMO DI PETERSON, SEMAFORI [6 ORE FRONTALI]

13) GESTIONE DELLA MEMORIA: BACKGROUND, SWAPPING, ALLOCAZIONE CONTIGUA, PAGINAZIONE, STRUTTURA DELLA TABELLA DELLE PAGINE [8 ORE FRONTALI]

14) MEMORIA VIRTUALE: BACKGROUND, PAGINAZIONE SU RICHIESTA, COPIA IN SCRITTURA, SOSTITUZIONE DELLE PAGINE, ALLOCAZIONE DEI FRAME, THRASHING [4 ORE FRONTALI]

15) SEGNALI: CONCETTO, TIPI ED USO DEI SEGNALI
[2 ORE LABORATORIO]
Metodi Didattici
IL CORSO DI SISTEMI OPERATIVI PREVEDE:

- UNA PARTE DI LEZIONI DI CARATTERE TEORICO (48 ORE) PER IL TRASFERIMENTO DELLE CONOSCENZE RELATIVE ALLA STRUTTURA DI UN SISTEMA OPERATIVO IN GENERALE ED A QUELLA DI SISTEMA LINUX (EREDE DI UNIX) IN PARTICOLARE

- IN PARALLELO SARANNO CONDOTTE ATTIVITÀ PRATICHE (24 ORE IN LABORATORIO PER ESERCIZI DI PROGRAMMAZIONE) DURANTE LE QUALI LO STUDENTE APPRENDERÀ L’UTILIZZO DELLE PRINCIPALI SYSTEM CALL DEL SISTEMA LINUX SCRIVENDO SEMPLICI APPLICAZIONI SOFTWARE DIMOSTRATIVE UTILIZZANDO IL LINGUAGGIO DI PROGRAMMAZIONE C
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI.

L'ESAME PREVEDE UNA PROVA SCRITTA E, DOPO IL SUPERAMENTO DELLA STESSA, UNA PROVA ORALE FINALIZZATE ALLA VERIFICA DELLE COMPETENZE ACQUISITE.
DURANTE IL CORSO È PREVISTO LO SVOLGIMENTO DI 2 PROVE INTERCORSO (UNA INTERMEDIA A METÀ CORSO ED UN’ALTRA ALLA FINE DEL CORSO). IL SUPERAMENTO DI ENTRAMBE LE PROVE CONSENTIRÀ ALLO STUDENTE DI SOSTENERE SOLO L’ORALE AL PRIMO APPELLO IN CALENDARIO. CIASCUNA PROVA INTERCORSO PREVEDE UNA PROVA SCRITTA SVOLTA CON MODALITÀ ANALOGHE ALLA PROVA SCRITTA COMPLETA MA BASATA SOLO SU ARGOMENTI AFFRONTATI NEL PERIODO DI CORSO CORRISPONDENTE.
IN ENTRAMBI I CASI (APPELLO COMPLETO O PROVA INTERCORSO) LE PROVE SCRITTE HANNO DURATA DI 120 MIN. PER LO SVOLGIMENTO DELLA PROVA SCRITTA SARÀ FORNITO A CIASCUN STUDENTE UN FOGLIO CON LE TRACCE RELATIVE A 5 QUESITI A RISPOSTA APERTA.
4 QUESITI, CON VALUTAZIONE DA 0 A 5 PUNTI CIASCUNO, FARANNO RIFERIMENTO DIRETTAMENTE ALLE LEZIONI TEORICHE MENTRE L’ULTIMO, VALUTATO DA 0 A 14 PUNTI, SARÀ UN ESERCIZIO DI PROGRAMMAZIONE CHE PREVEDE LA SCRITTURA DI UN PROGRAMMA IN LINGUAGGIO C CON L’UTILIZZO DI ALCUNE DELLE SYSTEM CALL DEL SISTEMA OPERATIVO LINUX INTRODOTTE DURANTE LE LEZIONI.
ATTRAVERSO LE RISPOSTE FORNITE AI PRIMI 4 QUESITI SARANNO VERIFICATE LE CONOSCENZE ACQUISITE DALLO STUDENTE DEI PRINCIPALI MODULI DI UN SISTEMA OPERATIVO E L’ORGANIZZAZIONE DEGLI STESSI.
L’ESERCIZIO DI PROGRAMMAZIONE CONSENTIRÀ DI VERIFICARE LE COMPETENZE IN MATERIA DI UTILIZZO DEI SERVIZI DI BASSO LIVELLO FORNITI DAL SISTEMA OPERATIVO ED IL LORO CORRETTO UTILIZZO PER LA SOLUZIONE DI UN PROBLEMA CONCRETO.
GLI STUDENTI CHE NON HANNO SUPERATO LE VERIFICHE INTERCORSO POTRANNO COMUNQUE SOSTENERE L’ESAME TRADIZIONALE.
IL LIVELLO DI VALUTAZIONE DELLE PROVE TIENE CONTO DELLA COMPLETEZZA ED ESATTEZZA DELLE RISPOSTE, NONCHÉ DELLA CHIAREZZA NELLA PRESENTAZIONE.
IL LIVELLO DI VALUTAZIONE MINIMO (18) È ATTRIBUITO QUANDO LO STUDENTE DIMOSTRA INCERTEZZE NELL’APPLICAZIONE DEI METODI STUDIATI E HA UNA LIMITATA CONOSCENZA DELLA STRUTTURA E DELLA ORGANIZZAZIONE DI UN SISTEMA OPERATIVO.
IL LIVELLO MASSIMO (30) È ATTRIBUITO QUANDO LO STUDENTE DIMOSTRA UNA CONOSCENZA COMPLETA ED APPROFONDITA DEI CONCETTI E DEI DIVERSI MODULI DI UN SISTEMA OPERATIVO. INOLTRE, È IN GRADO DI RISOLVERE I PROBLEMI PROPOSTI PERVENENDO IN MODO EFFICIENTE ED ACCURATO ALLA SOLUZIONE E MOSTRA UNA NOTEVOLE CAPACITÀ DI COLLEGARE TRA LORO CONCETTI DIVERSI.
LA LODE VIENE ATTRIBUITA QUANDO IL CANDIDATO DIMOSTRA SIGNIFICATIVA PADRONANZA DEI CONTENUTI TEORICI ED OPERATIVI E MOSTRA DI SAPER PRESENTARE GLI ARGOMENTI CON NOTEVOLE PROPRIETÀ DI LINGUAGGIO E CAPACITÀ DI ELABORAZIONE AUTONOMA ANCHE IN CONTESTI DIVERSI DA QUELLI PROPOSTI DAL DOCENTE.
Testi
A. SILBERSCHATZ, P.B. GALVIN, G.GAGNE: SISTEMI OPERATIVI: CONCETTI ED ESEMPI. 9A EDIZIONE. PEARSON EDUCATION ITALIA, 2014, ISBN: 9788865183717

W.R. STEVENS, S.A. RAGO, “ADVANCED PROGRAMMING IN THE UNIX ENVIRONMENT”, ADDISON-WESLEY, ISBN: 9780321637734

TESTI CONSIGLIATI
C. NEWHAM, B. ROSENBLATT, “LEARNING THE BASH SHELL”, O'REILLY, ISBN: 0-596-00965-8

SOFTWARE / HARDWARE:
SISTEMA OPERATIVO: LINUX
PC CON COLLEGAMENTO AD INTERNET
Altre Informazioni
PER RAGGIUNGERE UN LIVELLO DI PREPARAZIONE SODDISFACENTE È RAGIONEVOLE SUPPORRE CHE OCCORRANO IN MEDIA 2 ORE DI STUDIO PER CIASCUNA ORA DI LEZIONE.
PER LE CARATTERISTICHE DEL CORSO È NECESSARIO ACQUISIRE UNA BUONA ABILITÀ CON LA PROGRAMMAZIONE IN LINGUAGGIO C (SCRITTURA DEL CODICE, COMPILAZIONE, DEBUGGING ED ESECUZIONE). PERTANTO È AUSPICABILE CHE LO STUDENTE TRASCORRA IL NUMERO NECESSARIO DI ORE NEI LABORATORI DIDATTICI NON ASSISTITI AL FINE DI EVIDENZIARE E COLMARE EVENTUALI DEFICIT FORMATIVI.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-05]