From Agentgroup
Jump to: navigation, search
(Esercizi presentati in laboratorio)
Line 15: Line 15:
 
| toptext = NEWS
 
| toptext = NEWS
 
<!-- All of the parameters are optional. -->
 
<!-- All of the parameters are optional. -->
Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di [https://www.ing.unimo.it/campusone/VisualizzazioneIngegneria/Insegnamento.asp?IdInsegnamento=7877 '''Sistemi Operativi e Lab. (9 CFU)'''], attivo dall'A.A. 2010-11, per il [http://www.ing.unimore.it/L/IngInf Corso di Laurea in '''Ingegneria Informatica'''], secondo il D.M. 270/04.  
+
Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di [https://www.ing.unimo.it/campusone/VisualizzazioneIngegneria/Insegnamento.asp?IdInsegnamento=11017 '''Sistemi Operativi e Lab. (9 CFU)'''], attivo dall'A.A. 2010-11, per il [http://www.ing.unimore.it/L/IngInf 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.  
 
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.  

Revision as of 18:52, 26 February 2011

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.

News

Le news relative a questo nuovo insegnamento si trovano nella specifica pagina.

Informazioni sul docente

Letizia-Nov2010.jpg

Prof. Letizia Leonardi

Dipartimento di Ingegneria dell'Infomazione

Università di Modena e Reggio Emilia, Via Vignolese 905 - 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)

Orario delle Lezioni

Le lezioni di questo insegnamento sono collocate nel II semestre e per l'A.A. 2010-11 inizieranno lunedì 28 Febbraio 2011. L'orario delle lezioni è disponibile anche nella sezione Orari e Appelli del sito della Facoltà di Ingegneria alla pagina.

Lunedì

ore 11-13 (lezione)

aula FA-1-E (Ingegneria)

Mercoledì

ore 11-13 (lezione)

aula FA-1-E (Ingegneria)

Venerdì

ore 10-13 (esercitazione)

Lab. LINFA - ex FA-2-F (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., Inglese; mentre solo consigliata è la propedeuticità di Calcolatori Elettronici e Lab.

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 ai concetti di processo e thread e loro gestore: scheduling. Introduzione al concetto di file e direttorio e loro gestore: il File System a livello di organizzazione logica.

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. I registri relativi ai diversi anni accademici sono accessibili sul sito della Facoltà e in particolare:

Registro A.A. 2010-11

Modalità d'esame

Tesina.png

Si ricorda che le propedeuticità obbligatorie per il superamento dell'esame sono Fondamenti di Informatica I e Lab., Fondamenti di Informatica II e Lab., Inglese; mentre solo consigliata è la propedeuticità di Calcolatori Elettronici e Lab.

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

Prova scritta

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 ad una 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.
Error creating thumbnail: Unable to save thumbnail to destination

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.

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, 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 e il nome Makefile per quello che contiene appunto il file che verrà usato dal comando make.
Nota bene: Saranno corrette SOLO le soluzioni che non conterranno errori né 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 dell'insegnamento di Sistemi Operativi e Lab.

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 di Sistemi Operativi e Lab. deriverà dalla media arrotondata per difetto delle due prove.

Allo studente che risulti sufficiente ad una prova è consentito ripetere la prova se vuole migliorare il voto, ma qualunque votazione ottenga nella seconda prova annulla il voto precedentemente acquisito.

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.
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 nuova prova.
  2. La consegna di una prova scritta cancella il voto precedente; la partecipazione ad uno scritto senza consegnare non cancella il voto precedente.
  3. Le prove scritte (a meno di richieste da parte di studenti Fuori Corso) si svolgono solo durante i periodi di esami.

Appelli

Le date delle prove scritte (in laboratorio) sono disponibili nel sito WEB della Facoltà di Ingegneria e sono riportate anche nell'applicazione per l'iscrizione alle prove.

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 (che normalmente avviene durante la prima esercitazione in laboratorio).

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.

Si precisa che ESSE3 verrà usato per la sola verbalizzazione del voto: dopo che saranno disponibili i voti di una verifica, lo studente che voglia accettare il voto dovrà obbligatoriamente iscriversi all'appello per la verbalizzazione che sarà inserito su ESSE3 e dovrà presentarsi nella data di tale appello, all'ora e nel luogo che verrà specificato nella sezione News, per la trascrizione del voto su libretto cartaceo. Se uno studente con valutazione sufficiente decide di non verbalizzare per poter ripetere l'esame (e auspicabilmente migliorare il voto) oppure se uno studente è impossibilitato a presentarsi nella data indicata, lo studente DEVE obbligatoriamente contattare la 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

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 di Sistemi Operativi possono prendere visione del voto della prova scritta svolta in laboratorio collegandosi all'applicazione utilizzata per l'iscrizione alla prova e selezionando la voce Dati iscrizione corso (in lato a sinistra).

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 file dei programmi (SHELL o C) mostrati durante le lezioni interattive (formato TXT) e ai file dei programmi (SHELL o C) mostrati durante le esercitazioni):

  1. Programma del corso e modalità di esame - versione del 27/02/2011
  2. Lucidi introduttivi sui Sistemi Operativi (con password di lettura)
  3. Lucidi introduttivi su File System (con password di lettura)
  4. Lucidi su UNIX e il Bourne Shell (con password di lettura)
  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)
  11. Lucidi sui segnali UNIX (con password di lettura)


Altra documentazione:

  • File di programmi (SHELL o C) di esempio
  • Lucidi di ripasso sui principali costrutti del Bourne Shell
  • Istruzioni su istallazione Ubuntu
  • Lucidi di ripasso di alcune caratteristiche del linguaggio C

    Esempi Interattivi

    Error creating thumbnail: Unable to save thumbnail to destination

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

  • File degli esempi in BOURNE SHELL
  • File degli esempi in linguaggio C

    Esercizi presentati in laboratorio

    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: Esercizi di Sistemi Operativi e Lab..

    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..

    Strumenti Software

    Error creating thumbnail: Unable to save thumbnail to destination

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


    • 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 (ad es. sun05.aule.unimore.it).

    • 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 un programma di setup è possibile scaricare e installare i programmi Cygwin.

    • UNIX

    Se interessati si pu&ograve scaricare un diagramma (varie pagine in formato A4-PDF) che mostra la storia del Sistema Operativo Unix (per dettagli si veda la pagina).

    • 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).

    • 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.
    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.