From Agentgroup
Revision as of 16:08, 7 June 2018 by Letizia (Talk | contribs) (Laboratorio)

Jump to: navigation, search


NOTA BENE: la convalida della registrazione al sito dell'insegnamento (tramite la specifica applicazione, dove l'Account User che deve essere inserito è il nome utente che viene utilizzato per l'autenticazione sui PC in laboratorio ed è il numero che costituisce la prima parte dell'indirizzo e-mail istituzionale!).) avviene, da parte della Prof.ssa Leonardi, SOLO dopo che lo studente ha consegnato il foglio di riepilogo firmato; il foglio di riepilogo va stampato appena viene presentato dal browser altrimenti lo studente non lo riesce più a recuperare e lo può recuperare solo la Prof.ssa Leonardi.


Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Sistemi Operativi e Lab. (9 CFU), attivo dall'A.A. 2010-11, per il Corso di Laurea in Ingegneria Informatica, secondo il D.M. 270/04.

Questo materiale didattico per la maggior parte deriva da quello dell'insegnamento di Sistemi Operativi (di 5 CFU) che fino all'A.A. 2009-10 era attivo al II anno della Laurea, secondo il D.M. 509/99. L'aumento di CFU da 5 a 9 deriva da aver inglobato in questo insegnamento quello di Laboratorio di Sistemi Operativi (da 3 CFU) che era solo opzionale nel precedente ordinamento. Si può consultare anche la pagina dell'insegnamento non più non più attivo della L-509, in particolare per i testi degli esami passati e per alcune loro soluzioni.


Informazioni sul docente titolare

Letizia-Nov2010.jpg

Prof. Letizia Leonardi

Dipartimento di Ingegneria "Enzo Ferrari", Edificio 27, stanza MO-27-01-019, I piano

Università di Modena e Reggio Emilia, Via P. Vivarelli n. 10 - 41125 MODENA

Telefono 0592056135 - Fax 0592056129

letizia.leonardi@unimore.it

Orario di ricevimento: Lunedì dalle 15 alle 17 (di norma, per eventuali modifiche consultare la pagina)

Informazioni sull'esercitatore (per la parte di Laboratorio,turno 2)

Giulio Salierno

Laboratorio Agent and Pervasive Group, Edificio 27, stanza MO-27-01-017, I piano

Dipartimento di Ingegneria "Enzo Ferrari"

Università di Modena e Reggio Emilia, Via P. Vivarelli n. 10 - 41125 MODENA

Telefono 0592056187 - Fax 0592056129

Orario delle Lezioni

Le lezioni di questo insegnamento sono collocate nel II semestre e per l'A.A. 2017-18 inizieranno il 26 Febbraio 2018 (Lunedì). Si avvisano gli studenti che Venerdì 2 Marzo invece che esercitazione in laboratorio, si terrà una lezione teorica dalle 9 alle 13 (per 4 ore); tale lezione si terrà nell'Aula P1.5 (Fa-1e) invece che in Laboratorio P2.6 (FA-2F Linfa).

IMPORTANTE: L'ora di lezione persa Venerdì 2/3/18 e le due ore di lezioni che verranno perse Lunedì 5/3/18 verranno recuperate Giovedì pomeriggio dalle 14 alle 17 nell'Aula P1.5 (Fa-1e)!!!

Per i Venerdì dal 9/3 in poi si terranno esercitazioni in Laboratorio, a cura del Prof. Nicola Bicocchi e della Prof.ssa Leonardi, organizzate in due turni (da 79 studenti massimo ciascuno, sulla base dell'elenco a nostra disposizione): primo turno ore 8-11 studenti dalla A alla H; secondo turno ore 11-14 studenti dalla K alla Z.
L'orario delle lezioni è disponibile anche nella sezione Orario delle lezioni del sito del Dipartimento di Ingegneria alla pagina.

Lunedì

ore 11-13 (lezione)

aula P1.5 (ex FA-1E) (Ingegneria)

Mercoledì

ore 11-13 (lezione)

aula P1.5 (ex FA-1E) (Ingegneria)

Venerdì

ore 08-14 (esercitazione)

Laboratorio P2.6 (Lab. LINFA - ex FA-2F) (Ingegneria)

Obiettivi dell'Insegnamento

Faq.png

L'insegnamento ha come obiettivo formativo quello di fornire la conoscenza e la capacità di comprensione di base dei Sistemi Operativi introducendo alcuni aspetti della programmazione di sistema in UNIX relativamente sia al linguaggio comandi (Shell) e sia al linguaggio di programmazione C, applicandoli a progetti concorrenti in ambiente locale di complessità crescente.

NOTA BENE: Le propedeuticità obbligatorie per il superamento dell'esame sono Fondamenti di Informatica I e Lab., Fondamenti di Informatica II e Lab., (eliminata dal 19/03/2014 Inglese); mentre solo consigliata è la propedeuticità di Calcolatori Elettronici e Lab.

In caso di superamento dell'esame senza propeduticità obbligatorie rispettate IL VOTO VERRÀ PERSO!!!

Programma dell'Insegnamento

Gli argomenti che verranno affrontati saranno:

1) Classificazione dei Sistemi Operativi. In particolare, sistemi multi-utente e multiprocesso.

2) Il Sistema Operativo come insieme di gestori delle risorse. Introduzione al concetto di processo/thread e loro gestore: scheduling; il problema del deadlock. Introduzione alla gestione della memoria e in particolare la memoria virtuale. Introduzione al concetto di file e direttorio e loro gestore: il File System a livello di organizzazione logica e fisica.

3) La programmazione di sistema utilizzando i linguaggi comandi. Il Bourne Shell di UNIX.

4) La programmazione di sistema utilizzando il linguaggio di programmazione C per UNIX. Le primitive di basso livello per l'accesso ai file (in particolare, open, creat, close, read, write e lseek) e le primitive per la creazione, comunicazione e sincronizzazione dei processi (in particolare, fork, exit, wait, pipe, signal e kill).

5) Laboratorio di Sistemi Operativi. Esercitazioni pratiche, in laboratorio, utilizzando computer provvisti di sistema operativo UNIX/LINUX. Verifica pratica della programmazione di sistema UNIX, utilizzando sia il linguaggio dello Shell che il linguaggio di programmazione C per arrivare allo svolgimento di un progetto completo di ricerca ricorsiva nel file system avente una parte in Shell e una in C che si coordinano l'un l'altra.

Registro

Dopo ogni lezione/esercitazione verrà compilato il registro con l'indicazione degli argomenti trattati.

Per l'A.A. corrente 2017-18 il registro si trova al link

I registri relativi agli anni accademici precedenti sono accessibili ai seguenti link:

Modalità d'esame

Tesina.png

Dall'A.A. 2013-14 le propedeuticità obbligatorie per il superamento dell'esame sono diventate: Fondamenti di Informatica I e Lab. e Fondamenti di Informatica II e Lab., mentre solo consigliata è la propedeuticità di Calcolatori Elettronici e Lab.

In caso di superamento dell'esame senza propeduticità obbligatorie rispettate IL VOTO VERRÀ PERSO!!!

L'esame si compone di una prova scritta che viene svolta in laboratorio. Per maggiori dettagli, vedere il seguito di questa pagina.

Prova scritta (in Laboratorio)

Per l'iscrizione ad una prova scritta si deve usare l'applicazione specifica il cui link è presente in questa pagina nella sezione Appelli: si precisa che in caso di valutazione insufficiente lo studente che non avrà preso visione dei suoi errori NON potrà iscriversi a nessuna prova successiva! Di norma le iscrizioni/cancellazioni ad un appello si chiudono due giorni prima: ad esempio se l'appello è pianificato di venerdì, le iscrizioni/cancellazioni sono possibili fino alla mezzanotte del martedì precedente! Le indicazioni comunque della data di chiusura dell'appello sono riportate per ogni appello.

La prova scritta serve a verificare, in particolare, che lo studente abbia acquisito le seguenti capacità:

  • Capacità di scrivere e verificare software in linguaggio comandi dello Shell di UNIX come il Bourne Shell.
  • Capacità di scrivere e verificare software in linguaggio di programmazione C per UNIX mediante le primitive di basso livello per l'accesso ai file e per la creazione, sincronizzazione e comunicazione dei processi.
ModalitaEsame.png

Quindi, la prova scritta comprende un singolo esercizio che richiede la soluzione di un problema di sincronizzazione in ambito locale, ottenuta facendo riferimento al sistema operativo UNIX, che si compone di due parti:

  1. una parte in Bourne Shell che deve risolvere un sottoproblema di esplorazione nel file system;
  2. una parte in linguaggio C che deve risolvere un sottoproblema concorrente facendo uso delle primitive di gestione dei processi proprie di UNIX.

Il tempo a disposizione per la prova scritta è di 120 MINUTI.

Dato che lo svolgimento della prova scritta avviene in laboratorio, lo studente dovrà produrre un insieme di file corrispondenti alla soluzione dell'esercizio: i file che risolvono il primo sottoproblema DEVONO avere il nome che termina con .sh (si vedano le indicazioni specifiche sui nomi nel seguito), mentre i file che risolvono il secondo problema DEVONO avere il nome che termina con .c per il file che contiene il sorgente in linguaggio C (si veda le indicazioni specifiche sul nome nel seguito) e il nome makefile per quello che verrà usato dal comando make.
Nota bene: Saranno corrette SOLO le soluzioni che non conterranno né errori di sintassi nella parte Shell e C né errori di collegamento (linking) nella parte C.

La sufficienza è rappresentata da un voto >= 18: il voto ottenuto con lo scritto rappresenterà, se sufficiente, la valutazione della verifica.

Dall'A.A. 2014-15, allo studente che risulti sufficiente ad una prova NON sarà consentito ripetere la prova per migliorare il voto!

Saranno organizzate anche DUE VERIFICHE IN ITINERE (LA PRIMA SULLA PARTE IN BOURNE SHELL E LA SECONDA SULLA PARTE IN C, si veda la sezione Regole specifiche per le prove in itinere): in questo caso, la valutazione finale dell'insegnamento deriverà dalla media arrotondata per difetto delle due prove.


Istruzioni specifiche per iniziare una prova in Laboratorio

AGGIORNAMENTO VALIDO DA PROVA LUGLIO 2016!

Per poter iniziare un esame scritto in laboratorio, bisogna seguire i seguenti passi:

  • Fare il login in Linux sul PC assegnato per la prova usando il proprio account (username e password di posta elettronica)
  • Aprire un browser sulla pagina ftp://lica02.lab.unimo.it/README
  • Copiare il comando presente in un terminale ed eseguirlo rispondendo alle domande proposte
  • Controllare che comincino ad essere visualizzate delle linee su tale terminale che indicano che l'applicazione sta funzionando e lasciare tale finestra aperta
  • Verificare che sia stata creata sul Desktop una cartella avente nome studente_<numero Turno>_<Numero compito>_<account-posta-elettronica> (al cui interno viene creato un file denominato student_data.csv che non va eliminato)
  • Eventualmente copiare i propri file da chiavetta
  • Passare da modalità grafica a modalità testuale, rifacendo il login come sopra
  • Posizionarsi nella directory Desktop/studente_<numero tesserino> e creare i file che corrispondono alla soluzione del compito in tale directory
  • I file che costituiscono la soluzione del compito è obbligatorio che abbiano i seguenti nomi:
  • FCP.sh per il file che contiene lo script principale (quello di partenza) della parte SHELL
  • FCR.sh per il file che contiene lo script ricorsivo della parte SHELL
  • main.c per il file che contiene il programma della parte C
  • makefile per il file che contiene le direttive per il comando make.
  • Devono essere rispettati esattamente i nomi indicati altrimenti NON si procederà alla correzione del compito!
    • NON devono essere presenti altri file con nome che termina con .sh o con .c nella directory studente_"T"_"N"_XXX.

    Regole specifiche per le prove in itinere

    1) Alle prove in itinere di un certo A.A. possono partecipare (chiaramente) SOLO gli studenti che stanno frequentando in tale A.A. In particolare, l'applicazione usata per la iscrizione visualizza l'appello corrispondente ad una prova in itinere SOLO agli studenti che hanno effettuato la registrazione all'applicazione in quello specifico A.A. Studenti che si sono registrati all'applicazione in anni precedenti e che NON hanno già partecipato a una qualche prova potranno chiedere l'iscrizione ad una prova in itinere sono presentandosi personalmente una volta chiuse le iscrizioni: tali richiesta saranno soddisfatte se e solo se ci sarà un turno pianificato non saturo.
    Si veda documento con le regole e i turni della PI del 7/04/2017.
    2) Alla seconda prova in itinere sulla SOLA PARTE IN LINGUAGGIO C (che in genere si tiene l'ultimo giorno di lezione) possono partecipare solo gli studenti che hanno superato la prima prova in itinere.
    3) La validità della prima prova in itinere (PARTE SHELL) è di un anno solare e quindi fino alla sessione di esami di Gennaio-Febbraio dell'anno seguente (cioe' fino al termine dell'A.A. in cui si è svolta). In altre parole, una volta superata la parte SHELL, lo studente può svolgere sempre solo la PARTE C per i seguenti appelli dell'A.A., anche in caso di prendere una insufficienza nella PARTE C. Solo se lo studente NON riesce a superare la PARTE C entro il termine previsto, allora dovrà sostenere l'esame totale.
    4) La regola precedente NON vale se però uno studente ad un certo punto decide di iscriversi alla prova totale: in tal caso, il voto conseguito nella PARTE SHELL viene annullato!
    5) Nel caso in cui il primo appello della sessione dopo le lezioni risultasse troppo ravvicinato alla seconda prova in itinere, chi non supera la seconda prova in itinere o chi semplicemente partecipa ad essa potrà svolgere la SOLA PARTE IN LINGUAGGIO C esclusivamente nel secondo appello della sessione: questo vincolo deriva perchè il lasso di tempo a disposizione fra un esame e l'altro sarebbe troppo poco o per consentire ad uno studente insufficiente di recuperare le proprie carenze oppure anche solo per avere i risultati della seconda prova in itinere.

    Note sugli esami

    Attenzione.png
    1. Si ricorda che in caso di valutazione insufficiente lo studente dovrà prendere visione dei suoi errori PRIMA di poter partecipare ad una qualunque altra prova.
    2. Le prove scritte (a meno di richieste da parte di studenti Fuori Corso) si svolgono solo durante i periodi di esami.
    3. SOLO FINO ALL'A.A. 2013-14: La consegna di una prova scritta cancella il voto precedente; la partecipazione ad uno scritto senza consegnare non cancella il voto precedente.
    4. Dall'A.A. 2014-15, non sarà possibile ripetere la prova scritta per migliorare il voto!
    5. Si ricorda agli studenti che l'esame per la parte in shell va svolto esclusivamente in BOURNE SHELL. Si faccia riferimento al documento dove sono indicate le sintassi alternative e quelle NON accettate dal Bourne Shell rispetto alla BASH e altre informazioni utili (data aggiornamento documento 6/4/2018 ore 16,00)!.

    Appelli

    NOTA DEL 29/09/2017

    Per la sessione di esami di Gennaio-Febbraio 2018, si comunica che le date fissate (per le prove tutte al Laboratorio LINFA e se necessario anche ad InfoMec) sono:
    1) Mer. 17/01/2018 (ore 09:00), con iscrizioni fino a Dom. 14/01/2018; N.B. Ci sarà solo un turno e quindi tutti gli studenti si devono presentare alle ore 9.
    2) Mer. 14/02/2017 (ore 09:00), con iscrizioni fino a Dom. 11/02/2018. N.B. Ci sarà solo un turno e quindi tutti gli studenti si devono presentare alle ore 9: si veda documento con le regole e le liste!

    Gli appelli nell'applicazione verranno inseriti verso la fine delle lezioni del I semestre.
    NOTA DEL 14/12/2017: gli appelli di Gennaio e Febbraio sono stati inseriti, sia come esame completo che come parteC per chi ha superato la parte shell l'anno scorso. Si ricorda a questi studenti che avranno la possibilità di sostenere la parteC solo per questi due ulteriori appelli!

    Per la sessione di esami di Giugno-Settembre 2018, si comunica che le date della prova in laboratorio (per le prove tutte al Laboratorio LINFA e se necessario anche ad InfoMec) sono:
    3) Mer. 13/06/2018 (ore 8:30), con iscrizioni fino a Dom. 10/06/2017;
    4) Mer. 11/07/2018 (ore 8:30), con iscrizioni fino a Dom. 08/07/2017;
    5) Mer. 12/09/2018 (ore 8:30), con iscrizioni fino a Dom. 09/09/2017.

    Gli appelli nell'applicazione verranno inseriti verso la fine delle lezioni del II semestre.
    NOTA DEL 30/05/2018: gli appelli di Giugno, Luglio e Settembre sono stati inseriti, sia come esame completo che come parteC per chi ha superato la parte shell nel corrente anno accademico. Si ricorda a questi studenti che avranno la possibilità di sostenere la parteC fino a Febbraio 2019!

    Si ricorda che il sesto appello corrisponde alla prova "in itinere" (PI) sulla parte Shell che verrà svolta durante la settimana di interruzione delle lezioni (riservata ai soli studenti che si sono iscritti o hanno modificato quest'anno la loro iscrizione all'applicazione: la data della PI è Mer. 11/04/2018): si veda documento con le regole e i turni per la Prova in Itinere.

    Se possibile verrà organizzata anche una seconda prova "in itinere" prima della fine delle lezioni sulla parte C: la seconda prova in itinere è fissata per Venerdì 1 Giugno 2018; si veda documento con le regole e la lista!
    .

    Si comunica che tutte le date sopra indicate sono state inserite anche in ESSE3 per rendere visibile a chi deve fare il controllo sull'inserimento degli appelli che questi sono stati pianificati: il periodo di iscrizione però a queste prove è volutamente chiuso dato lo studente deve usare l'applicazione specifica per iscriversi agli appelli e che come spiegato nel seguito ESSE3 viene usato per la sola verbalizzazione.

    Per l'iscrizione alle prove scritte si deve usare l'applicazione inserendo come Username nome.cognome e come Password quella inserita all'atto della registrazione all'insegnamento (ATTENZIONE: l'Account User che deve essere inserito è il nome utente che viene utilizzato per l'autenticazione sui PC in laboratorio ed è il numero che costituisce la prima parte dell'indirizzo e-mail istituzionale!). NOTA BENE: la convalida della registrazione al sito del corso avviene, da parte della Prof.ssa Leonardi, SOLO dopo che lo studente ha consegnato il foglio di riepilogo firmato; il foglio di riepilogo va stampato appena viene presentato dal browser altrimenti lo studente non lo riesce più a recuperare e lo può recuperare solo la Prof.ssa Leonardi.

    Di norma le iscrizioni/cancellazioni ad un appello si chiudono due giorni prima (ad esempio se l'appello è pianificato di venerdì, le iscrizioni/cancellazioni sono possibili fino alla mezzanotte del martedì precedente!) e comunque le indicazioni della data di chiusura dell'appello sono riportate per ogni appello. Si rende noto che l'applicazione in uso dall'A.A. 2010-11 impedisce ad uno studente in caso di valutazione insufficiente di iscriversi ad una prova successiva fino a che non avrà preso visione dei suoi errori. ATTENZIONE: la visione DEVE avvenire al massimo entro 2/3 settimane dalla pubblicazione/comunicazione dei risultati.

    Si precisa che ESSE3 verrà usato per la sola verbalizzazione del voto: dopo che saranno disponibili i voti di una verifica, dall'A.A. 2014-15 i voti verranno verbalizzati in un appello che verrà gestito direttamente dalla Prof.ssa Leonardi.Si ricorda però che la verbalizzazione relativa al primo appello dopo la conclusione delle lezioni sarà possibile solo per gli studenti in corso che hanno compilato il questionario di valutazione (come specificato nella sezione Valutazione della Didattica della pagina del Corso di Laurea).

    Testi Prove Scritte (con alcune soluzioni)

    I testi delle prove scritte si trovano nella pagina Esami di Sistemi Operativi e Lab.: di alcuni di essi viene fornita anche una possibile soluzione.

    Risultati Prove Scritte

    Dall'A.A. 2010-11, gli studenti che hanno partecipato ad una prova scritta (escluso la prima Prova in Itinere) di Sistemi Operativi e Lab. possono prendere visione del voto globale collegandosi all'applicazione utilizzata per l'iscrizione alla prova e selezionando la voce Dati iscrizione corso (in lato a sinistra).

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2017-18 svolta l'11 Aprile 2018.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2016-17 svolta il 7 Aprile 2017.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2015-16 svolta il 15 Aprile 2016.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2014-15 svolta il 17 Aprile 2015.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2013-14 svolta il 11 Aprile 2014.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2012-13 svolta il 12 Aprile 2013.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2011-12 svolta il 13 Aprile 2012.

    Nel documento si trova la statistica relativa ai risultati della Prima Prova in Itinere dell'A.A. 2010-11 svolta il 29 Aprile 2011.

    Consigli Utili

    Attenzione.png

    Per superare agevolmente la prova scritta, che si svolgerà in laboratorio, si consiglia agli studenti di seguire con continuità le lezioni ed, in particolare, le esercitazioni in laboratorio. Inoltre, si consiglia di preparare la prova scritta sperimentando direttamente i concetti presentati a lezione sul calcolatore. Può risultare estremamente difficile superare con successo l'esame senza una conoscenza di tipo sperimentale, ottenuta con esercitazioni in laboratorio.

    Testi Consigliati

    Textbook.png

    Materiale come lucidi, esercizi e testi di esame (e alcune soluzioni) sono disponibili in questa pagina e nella pagina del vecchio insegnamento.

    Comunque, testi di riferimento possono essere:

    HAVILAND K., GRAY D., SALAMA B., Unix System Programming, Casa Editrice Addison-Wesley, 1999.
    BOURNE S. R., UNIX System V, Casa Editrice Addison-Wesley, 1990.

    In alternativa la seconda parte del testo seguente contiene tutti gli argomenti del corso (mentre la prima parte puo' essere usata per un ripasso del Linguaggio C):

    BELLAVIA G., CORRADI A., LEONARDI L., Fondamenti di Informatica II: Dispense del corso (seconda edizione), Casa Editrice Esculapio, Progetto Leonardo, 1994.

    Per un eserciziario relativo al Linguaggio C si segnala:

    LEONARDI L.: Linguaggio C: Raccolta di esercizi e relative soluzioni, Ed. Esculapio - Progetto Leonardo, 1996.

    Lucidi dell'Insegnamento

    Lucidi.png

    Sono disponibili i lucidi in formato PDF usati durante le lezioni di teoria sui seguenti argomenti che necessitano tutti, a parte il primo file, di password di lettura (tale password sarà comunicata durante la prima lezione), oltre ai esempi mostrati interattivamente e che sono reperibili nella sezione Esempi Interattivi:

    1. Programma del corso e modalità di esame - versione del 21/02/2018
    2. Lucidi introduttivi sui Sistemi Operativi (con password di lettura) - versione del 01/03/2017
    3. Lucidi introduttivi su File System (con password di lettura) - versione del 01/03/2018
    4. Lucidi su UNIX e il Bourne Shell (con password di lettura) - versione del 18/3/2018
    5. Lucidi sull'editor vi di UNIX (con password di lettura)
    6. Lucidi sui tipici controlli che si devono effettuare all'interno di un file comandi
    7. Lucidi sulle primitive UNIX per file e direttori facenti parte della libreria standard del linguaggio C (con password di lettura)
    8. Lucidi sulle tabelle di UNIX per l'interazione con i file (con password di lettura)
    9. Lucidi sui processi UNIX (con password di lettura)
    10. Lucidi sulle pipe e fifo UNIX (con password di lettura) (modificato il 13/05/2015)
    11. Lucidi sui segnali UNIX (con password di lettura)


    Altra documentazione:

    1. Regole sui nomi dei file in UNIX/LINUX
    2. Manuale Bourne Shell (in inglese)
    3. Introduzione alla Bourne Shell (in inglese)
    4. Lucidi di ripasso sui principali costrutti del Bourne Shell
    5. Documento dove sono indicate le sintassi alternative e quelle NON accettate dal Bourne Shell rispetto alla BASH e altre informazioni utili (data aggiornamento documento 6/4/2018 ore 16,00)!
    6. Lucidi di ripasso di alcune caratteristiche del linguaggio C
    7. Lucidi con istruzioni su istallazione macchina virtuale con Ubuntu
    8. Lucidi sulla utility make (modificato il 15/05/2018)
    9. Documento dove sono indicate le sintassi NON accettate del Linguaggio C e il tipo schema da utilizzare nelle soluzione delle parti C degli esami!

    Vecchio materiale:

    1. Lucidi su UNIX e il Bourne Shell (con password di lettura) validi fino all'A.A. 2016-17
    2. Istruzioni su istallazione Ubuntu

    Esempi Interattivi

    EserciziLezione.png

    1) FILE DELL'A.A. 2017-18

    • nel documento (protetto sempre dalla stessa password dei lucidi) si troverà, mano a mano, che le lezioni di shell procedono (si spera) il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 21/03/2018 ore 15:40)!
    • nel documento (protetto sempre dalla stessa password dei lucidi) si troverà, mano a mano, che le lezioni di C procedono (si spera) il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 06/06/2018 ore 14:50)!

    2) FILE DELL'A.A. 2016-17

    • nel documento (protetto sempre dalla stessa password dei lucidi) si troverà, mano a mano, che le lezioni di shell procedono (si spera) il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 29/3/2017 ore 18,30)!
    • nel documento (protetto sempre dalla stessa password dei lucidi) si troverà, mano a mano, che le lezioni di C procedono (si spera) il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 22/5/2017 ore 15,00).

    3) FILE DELL'A.A. 2015-16

    • nel documento (protetto sempre dalla stessa password dei lucidi) si trova il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 27/3/2016 ore 14,20)!
    • nel documento (protetto sempre dalla stessa password dei lucidi) si trova il dettaglio delle sessioni interattive: il documento riporta la preparazione delle lezioni e quindi non è detto che rispecchi al 100% la reale sessione interattiva svolta a lezione, ma è sicuramente una sua buona approssimazione (data aggiornamento documento 17/5/2016 ore 11,00).

    Nota bene: nelle prove riportate nei due documenti sopra linkati le indicazioni delle directory da utilizzare sono commenti per il docente e non per lo studente!

    NOVITA' dall'A.A. 2016-17:

    • nel documento sono indicati in modo sintetico tutti gli esempi del costrutto if che possono essere trovati nelle soluzioni dei compiti svolti; si rimanda al file indicato per i dettagli.
    • nel documento sono indicati in modo sintetico tutti gli esempi del costrutto case che possono essere trovati nelle soluzioni dei compiti svolti; si rimanda al file indicato per i dettagli.
    • nel documento sono indicati in modo sintetico tutti gli esempi dei comandi expr, shift, read e grep che possono essere trovati nelle soluzioni dei compiti svolti; si rimanda al file indicato per i dettagli.

    Inoltre nel documento sono indicate le sintassi alternative e quelle NON accettate dal Bourne Shell rispetto alla BASH e altre informazioni utili (data aggiornamento documento 6/4/2018 ore 16,00)!.

    NOTA BENE: se si vogliono disattivare i colori mostrati dall'editor vim si può usare il comando :syntax off (dopo avere usato il tasto escape).

    Sono disponibili, inoltre, i file dei programmi (SHELL o C) mostrati durante le lezioni interattive (formato TXT) (oltre ai [lucidi] mostrati durante le lezioni (formato PDF)]:

    Laboratorio

    Il laboratorio che verrà utilizzato per le esercitazioni è il laboratorio LINFA (ex aula FA-2F, al secondo piano dell'ala nuova delle aule del Dipartimento di Ingegneria); per l'A.A. 2017-18, sono previsti due turni: I) ore 8-11 a cura del Prof. Nicola Bicocchi e II) dalle 11 alle 14 a cura della Prof.ssa Leonardi.

    Per il materiale delle esercitazioni del I turno, gli esercizi sono disponibili alla URL.

    Per il materiale delle esercitazioni del II turno, gli esercizi e le soluzioni saranno caricati qui nel seguito.

    Per la esercitazione di Venerdì 18 Marzo 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni (versione di Gio. 22/03/2018).

    Per la esercitazione di Venerdì 23 Marzo 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni.

    Per la esercitazione di Venerdì 6 Aprile 2018 fare riferimento alla prova di esame del 14 Febbraio 2018: uno dei testi della prova del 14 Febbraio 2018 con la soluzione parte shell parte principale e parte ricorsiva.

    Per la esercitazione di Venerdì 20 Aprile 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni (aggiornato Ven. 27/4/2018 ore 9.15).

    Per la esercitazione di Venerdì 27 Aprile 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni.

    Per la esercitazione di Venerdì 4 Maggio 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni.

    Per la esercitazione di Venerdì 11 Maggio 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni (con la solita password) si trovano le soluzioni.

    Per la esercitazione di Venerdì 18 Maggio 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni si trovano le soluzioni.

    Per la esercitazione di Venerdì 25 Maggio 2018 fare riferimento agli esercizi specificati nel documento: nel documento soluzioni si trovano le soluzioni.

    Per la esercitazione di Venerdì 8Giugno 2018 fare riferimento agli esercizi specificati nel documento:


    Gli esercizi dall'A.A. 2013-14 fino all'A.A. 2015-16 sono forniti in questo sito (dall'8/4/2014) sito ftp; quelli dell'A.A. corrente si trovano direttamente nel direttorio iniziale, mentre nella sottodirettory archive e quindi nei sottodirettori 2012 e 2011 si trovano gli esercizi del prof. Valenti usati in tali A.A.

    OSSERVAZIONI:

    1. Nel caso si producano file Windows che si vogliono poi usare in UNIX si puo' usare il comando dos2unix se disponibile, altrimenti il comando `tr -d \\r < nomefiledos > nomefileunix`.
    2. Nel caso si abbiano dei problemi di ordinamento con il comando sort o dei problemi con l'espansione tipo [a-z]* utilizzare i seguenti due comandi: LC_ALL=C; export LC_ALL

    Esercizi vari

    Gli esercizi sono forniti alcuni in formato pdf, visualizzabili e stampabili con il programma Adobe Acrobat, altri in semplice formato testo. Potete trovarli a questa pagina: Vari esercizi di Sistemi Operativi e Lab..

    Elaborati svolti

    Qui nel seguito si trova un elenco parziale degli elaborati realizzati negli ultimi anni presso il Dipartimento di Ingegneria "Enzo Ferrari" (DIEF), relativi all'insegnamento di Sistemi Operativi e Lab. del Corso di Laurea di Ingegneria Informatica (D.M. 270/04): gli elaborati sono elencati in ordine cronologico inverso.

    ELABORATI DI LAUREA DISCUSSI NELL'A.A. 2011-2012

     * Sentimenti Marco (prova finale del 29/10/2012): 
       "UNIX FUNCTION HELPER: SUPPORTO ALL'APPRENDIMENTO DELLE PRIMITIVE UNIX"
    Elaborato Completo (PDF) Il codice cui fa riferimento tale elaborato è scaricabile qui (file JAR).

    Strumenti Software

    Strumenti.png

    Si indicano di seguito gli strumenti software che si utilizzano durante il corso e si indica dove è possibile reperirli.

    • La Heirloom Bourne Shell cioè una versione abbastanza simile alla Bourne Shell può essere scaricata dal sito. Sempre della Heirloom si trova il manuale per la Bourne Shell: qui.
    • Varie cose sull'editor vi di UNIX. Questo link porta ad una pagina che contiene varie cose sull'editor vi di UNIX.
    • Client SSH per Windows. Per collegarsi ad un server SSH da Windows, è possibile usare il programma putty, scaricando il file putty.exe, oppure installando il programma SSHSecureShellClient-3.2.2.exe. È necessario impostare come protocollo SSH e indicare un host a cui collegarsi.
    • Ambiente UNIX per Windows. Il progetto Cygwin ha come obiettivo la realizzazione di un ambiente UNIX che esegua sotto Windows, traducendo le system call di UNIX in chiamate alle API di Windows. Tramite diversi programmi di setup è possibile scaricare e installare i programmi Cygwin.
    • Storia di UNIX. Se interessati si può scaricare un diagramma (varie pagine in formato A4-PDF) che mostra la storia del Sistema Operativo Unix (per dettagli si veda la pagina).
    • Storia di Windows. Se interessati si può scaricare un diagramma (varie pagine in formato a A4-PDF) che mostra la storia del Sistema Operativo Windows (per dettagli si veda la pagina).
    • Storia dei Linguaggi di programmazione. Se interessati si può scaricare un diagramma (varie pagine in formato a A4-PDF) che mostra la storia dei Linguaggi di Programmazione (per dettagli si veda la pagina).
    • Tabella codici ASCII. In questa pagina si trova la tabella dei codici ASCII.
    • Generazione codici ASCII speciali. In questa pagina si trova come generare i simboli ASCII speciali.
    • Estensioni dei file. In questa pagina si trova una lista delle estensioni più comuni dei file che indicano il formato o l'uso del file.