Laboratorio di Sistemi Operativi

Anno Accademico 2005-2006

Mauro Morsiani

Copyright © 2006 Renzo Davoli, Alberto Montresor, Mauro Morsiani

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at: http://www.gnu.org/licenses/fdl.html#TOC1

Sommario

Contenuto dei corsi

Informazioni organizzative e regolamento

Sezione 1

1. Contenuto dei corsi

Scopo dei corsi

Sistemi operativi:

Spiega le funzionalità e i principi costruttivi dei moderni sistemi operativi

Laboratorio di sistemi operativi:

Illustra le interfacce utente, di programmazione, di scripting, dei moderni sistemi operativi

Richiede lo sviluppo di un progetto (Kaya) che prevede l’implementazione di alcune delle parti più significative di un sistema operativo, mediante l’uso di un simulatore (uMPS)

Nota:

I due corsi sono altamente correlati; gli argomenti del primo ovviamente influiscono sul secondo

Cosa vogliamo insegnarvi?

Programmi
applicativi

Tool di sistema

Sistema operativo

Computer hardware

Progettista

di S.O.

Programmatore

di sistema

Utente

{

Programmi

di sistema

Sistemista

Librerie

Prerequisiti

Frequenza dei seguenti corsi:

Programmazione

Algoritmi e strutture dati

Sistemi Operativi

Propedeuticità

Architetture degli elaboratori

Conoscenza della lingua inglese

fondamentale per l'informatica, non solo per il corso

Interesse per la materia trattata

Programma di LSO

In aula:

Linguaggi di scripting

Installazione e configurazione di sistemi operativi

Amministrazione di sistemi operativi

Programmazione di sistema

In laboratorio:

Progetto Kaya basato su uMPS

Esercitazioni su C, scripting, programmazione di sistema

Programma di LSO per la parte di progetto

Struttura del progetto:

Kaya è diviso in due fasi:

phase1: introduzione all’uso del simulatore e sviluppo di moduli in C (queue manager)

phase2: sviluppo del nucleo del SO (scheduler, exception handler, primitive di sincronizzazione)

Programma delle lezioni:

uMPS: funzionalità del simulatore e dei tool di sviluppo

Kaya phase1: specifiche di progetto

Kaya phase2: specifiche di progetto

Organizzazione di una lezione

La struttura di una lezione è la seguente:

Domande sul programma svolto nelle precedenti lezioni

Svolgimento del programma previsto per la lezione

Eventuale discussione

Testi per Laboratorio di Sistemi Operativi

Nessun testo ufficiale adottato:

In generale, la documentazione on-line è più che sufficiente

ad esempio, forniremo alcune guide per i linguaggi di scripting

Per approfondimenti

Stevens
Advanced programming in UNIX
Addison-Wesley, 1st edition, 1992

John L. Hennessy and David A. Patterson,

Computer Organization and Design: the Hardware/Software Interface

Morgan Kaufman, 1994

Sito Web del corso

Il corso è dotato di un sito web:

http://www.cs.unibo.it/~sacerdot/so/

http://www.cs.unibo.it/~renzo/so/

(entrambi gli indirizzi si riferiscono allo stesso sito)

Su di esso verranno caricati:

Informazioni generali sul corso e news

Lucidi

Programmi di prova per il beta-testing del progetto

Sito temporaneo per lucidi e materiale didattico:

http://www.cs.unibo.it/~morsiani/

Sito Web del progetto

Sito Web per il simulatore uMPS e il progetto Kaya:

http://mps.sourceforge.net

Su di esso verranno caricati:

Software necessario per lo svolgimento del progetto

Documentazione sul simulatore e sul progetto

Sezione 2

2. Informazioni organizzative e regolamento

Nota importante

Alcune delle informazioni che seguono sono da considerarsi come puramente indicative

E’ da considerarsi ufficiale quanto viene comunicato dal Prof. Davoli

Orario dei corsi

Laboratorio di Sistemi Operativi:

AL:	Mar 8.30-10.30 Ercolani 1 / Ven 16.30-18.30 Ercolani 1

MZ:	Mer 11.30-13.30 Ercolani 1 / Ven 13.30-15.30 Ercolani 2

Per la parte specifica sul progetto Kaya:

AL:	Ven 16.30-18.30 Ercolani 1

MZ:	Ven 13.30-15.30 Ercolani 2

Orario di ricevimento

Ricevimento sincrono (di persona):

Mauro Morsiani: Ven 15.30-16.30 (Ercolani)

anche al termine delle lezioni

Ricevimento asincrono: via mail

morsiani@cs.unibo.it

e-mail e newsgroup vengono letti 1-2 volte/gg., potreste dover pazientare un pò prima di ricevere una risposta

Collaborazione continua

Per risolvere difficoltà organizzative, di studio, di svolgimento delle esercitazioni di laboratorio:

Esistono due newsgroup locali (unibo.cs.so e unibo.cs.labso)

La discussione nei newsgroup avviene fra gli studenti (con la supervisione dei docenti)

Il ricevimento studenti (sincrono e asincrono) deve essere utilizzato per problemi dei singoli studenti

La partecipazione nel newsgroup, soprattuto al fine di aiutare i vostri colleghi, viene valutata positivamente

PS: attenzione però alle "cheating policies"!

Ho un problema; come procedo?

Programma " Studente problematico ''

if (ho un dubbio)

leggo il regolamento

leggo la faq nelle pagine web del corso;

leggo i post passati del newsgroup

if (dubbio faq ∪ regolamento ∪news)

if (dubbio è personale)

scrivo un mail al mio docente oppure vado a ricevimento

else

mando un post sul newsgroup

attendo che un collega o un prof risponda

Appelli

Sei appelli previsti per SO:	Sei appelli per LSO

Gennaio 2006	Giugno 2006

Febbraio 2006	Luglio 2006

Giugno 2006	Settembre 2006 (1)

Luglio 2006	Settembre 2006 (2)

Settembre 2006 (1)	Gennaio 2007

Settembre 2006 (2)	Febbraio 2007

Nota importante:

è necessario consegnare il progetto entro le scadenze previste per poter sostenere l’esame di LSO

Esame

S.O. e L.S.O. danno origine ad un unico voto:

60% dato da S.O. (9 crediti)

40% dato da L.S.O. (6 crediti)

L'esame di S.O. è composto da:

Una prova scritta

Una prova orale (opzionale)

L'esame di Laboratorio di S.O. è composto da:

Un progetto

Una prova pratica (comprendente anche una parte di orale)

Una discussione, comprendente sia la prova pratica che il progetto

Esercitazioni durante l'anno (opzionale)

Esame - LSO

Prova pratica:

Shell scripting, programmazione di sistema

Svolgimento:

In un laboratorio del dipartimento

Consegna tramite e-mail

Discussione:

Serve a verificare la vostra preparazione e la vostra partecipazione al progetto

Esame – progetto per LSO

Progetto Kaya

Prevede lo sviluppo di alcune delle parti più significative di un moderno sistema operativo

Dovrà essere scritto in linguaggio C

Verrà testato utilizzando un simulatore (uMPS)

Viene svolto in gruppi di quattro persone

Avete già formato i gruppi già durante SO?

Esame – progetto per LSO

Struttura del progetto

Kaya è diviso in due fasi:

phase1: introduzione all’uso del simulatore e sviluppo di moduli in C (queue manager)

phase2: sviluppo del nucleo del SO (scheduler, exception handler, primitive di sincronizzazione)

Esame – progetto per LSO

Date indicative di consegna delle fasi del progetto

phase1 “anticipata”: 21/04/2006

(phase1 +) phase2 “per dare l’esame a giugno”: 09/06/2006

(phase1 +) phase2 “ultima data utile”: 30/06/2006

Le date di consegna “ufficiali” verranno fissate alla presentazione di phase1, in funzione delle date degli appelli di giugno e luglio (tipicamente, 8-10 gg. prima dell’appello)

Esame – progetto per LSO

Punteggio massimo assegnabile alle varie fasi del progetto:

punteggio massimo totale: 110 punti

phase1 “anticipata”: max 40 punti

phase1 consegnata insieme a phase2: max 30 punti

phase2: max 70 punti

Consegnare in anticipo aumenta il punteggio potenziale e diminuisce il lavoro da fare a maggio/giugno

Regolamento - Validità esami

Il progetto:

Ogni anno, viene presentato un progetto diverso; gli studenti devono lavorare al progetto dell'a.a. corrente, e non quello dell'a.a. in cui per la prima volta hanno partecipato al corso

Il voto ottenuto per il progetto è valido unicamente nei sei appelli previsti per l'anno accademico 2005-2006 (da giugno 2006 a febbraio 2007)

Gli studenti che consegneranno il progetto per il 2005-2006 ma non hanno superato la prova pratica entro febbraio 2007 perdono il progetto e dovranno lavorare al progetto dell'a.a. successivo

Regolamento - Validità esami

L'esame di LSO

Gli studenti sono tenuti a studiare il programma dell'a.a. corrente, e non quello dell'a.a. in cui (per la prima volta) hanno partecipato (senza superarlo) al corso di Laboratorio

Il voto ottenuto (dopo aver superato con successo prova pratica, progetto e discussione) resta valido solamente fino a febbraio 2007

Il voto verrà registrato quando verrà superato anche SO

Perché?

I programmi ogni anno sono leggermente diversi

Se non avete superato LSO in precedenza, il progetto non è più valido; quindi comunque dovrete seguire nuovamente il corso

Regolamento - Validità esami

L'esame di SO

Gli studenti sono tenuti a studiare secondo dell'a.a. corrente, e non quello dell'a.a. in cui (per la prima volta) hanno partecipato (senza superarlo) al corso di Laboratorio

Il voto ottenuto è valido unicamente da gennaio 2006 a febbraio 2007

se entro questa scadenza superate anche LSO, il voto viene registrato

altrimenti, il voto viene perso e lo studente dovrà partecipare di nuovo ad entrambi gli esami

Perché?

SO e LSO sono intimamente collegati; superare l'uno e lasciare passare anni prima di superare l'altro non ha senso

Diritti d'autore sui lucidi

I lucidi del corso sono coperti dalla Free Documentation License della GNU

E' permesso:

Stampare questi lucidi

Copiarli e distribuirli in qualsiasi formato, elettronico e non

E' permesso farne commercio

Nota: qualcuno potrebbe venderli ad un prezzo superiore a quello delle fotocopie, ma non sarebbe molto furbo comprarli

E' permesso modificarli

Non è permesso:

Rimuovere il copyright dai lucidi

Rimuovere l'indicazione della GNU Free Documentation License

"Cheating policies"

I progetti

Devono essere svolti in gruppo

I partecipanti che non sapranno dimostrare di aver partecipato alla realizzazione del progetto, potranno prendere un voto inferiore agli altri componenti del gruppo

E' possibile che venga richiesta una nuova partecipazione al progetto

Regolamento - Conclusioni

Questi lucidi non descrivono totalmente tutti i dettagli del regolamento

Per ogni dubbio e per le parti mancanti, leggete:

Il regolamento disponibile nella pagina web del corso

La pagina delle FAQ, contenente le risposte alle domande più frequenti

Diapositiva 1

Mauro Morsiani

2006-02-25T11:56:12