Unibo Logo

Sistemi Operativi
Laboratorio di Sistemi Operativi
2003-2004

Renzo Davoli

Alberto Montresor


 
 Home
 Informazioni generali
 Sistemi Operativi
 Laboratorio
 Materiale

Regolamento d'esame

I corsi di Sistemi Operativi e Laboratorio di Sistemi Operativi sono congiunti, ovvero danno origine ad un unico voto. Il voto finale è così ottenuto: 40% dal voto di LSO, 60% dal voto di SO. Questa ripartizione segue la suddivisione dei crediti assegnati ai due corsi (6 e 9, rispettivamente). 

Sistemi Operativi

L'esame di Sistemi Operativi è composto da un esame scritto e (opzionalmente) da un esame orale. Ogni scritto è suddiviso in due "prove"  indipendenti:
  • programmazione concorrente

  • Il contenuto di questa prova non cambierà rispetto agli anni passati. Sarà richiesto di risolvere alcuni problemi di concorrenza, utilizzando le primitive viste a lezioni (semafori, monitor, etc.) Durante questo compito, sarà possibile consultare qualunque tipo di documentazione.

  • parte generale

    Questa prova è una sorta di pre-orale, che in alcuni casi potrà dare origine al voto definitivo senza passare per l'orale vero e proprio. Per questo motivo, non sarà possibile consultare documentazione durante questa prova. Le domande verteranno su tutto il corso, e potranno richiedere un certo ragionamento (ovvero, non saranno solo nozionistiche).
Con indipendenti, si intende che durante uno scritto uno studente può partecipare ad una o a entrambe le prove.  Se partecipate ad una prova, perdete ogni voto acquisito in precedenza relativamente a quella prova, anche in caso di ritiro. Durante il corso, in novembre e in dicembre, si svolgeranno due midterm (scritti parziali) durante le ore di lezione. I midterm sono riservati per gli studenti che seguono (seriamente) il corso di SO/LSO per la prima volta quest'anno, quindi solo e unicamente a coloro che devono dare sia SO che LSO e faranno il progetto di laboratorio che verrà presentato nel secondo semestre. Tutti gli altri non possono prendervi parte. La logica dietro questa scelta è incentivare lo studio durante il periodo delle lezioni e la visione di questo corso come corso integrato, e non quella di creare ulteriori appelli durante l'anno (fra l'altro, questo comportamento è espressamente vietato dal regolamento di corso di studi, per evitare interruzioni nella continuità didattica).

Per coloro che hanno seguito negli anni precedenti.
Coloro che vogliono usufruire dell'estensione fino a gennaio/febbraio del corso integrato SO/LSO dovuta allo spostamento di LSO nel secondo semestre, non possono partecipare al midterm. La partecipazione ai midterm è possibile solo se non avete alcun voto per SO o per LSO. La partecipazione al midterm cancella qualsiasi voto precedente, sia di SO che di LSO.

Le date previste per i mid-term sono le seguenti:
  • il 24 Novembre, si svolgerà il mid-term riguardante la programmazione concorrente
  • il 15 Dicembre, si svolgerà il mid-term riguardante la parte generale
Per accedere all'orale, è necessario conseguire una votazione di almeno 18 in entrambe le prove. Il voto finale dello scritto è dato dalla media dei due voti. Per il voto dello scritto, è previsto una sorta di sbarramento: se prendete un voto scritto inferiore a 24, potete registrare il voto senza passare per l'orale. Se vi sentite più preparati del voto dello scritto, potete comunque fare l'orale. Nel caso prendiate un voto superiore o uguale a 24, è necessario fare l'orale per confermarlo. Altrimenti, prendete il voto massimo che si può ottenere senza fare l'orale, ovvero 23. Nel caso facciate l'orale e vi dimostriate molto insufficienti, è possibile che i voti degli scritti siano annullati.

Il "programma dello studentedi SO" è il seguente (se alla fine del corso di SO non sapete capire questo programma, allora siete nei guai!)

// Inizializzazione
int votoSO = 0;
int votoConcorrenza = 0;
int votoParteGenerale = 0;

// Ripeto finchè non passo l'esame di SO
do {

  // Partecipo agli scritti fino a quando non ottengo la sufficienza e non sono sono soddisfatto
  do {
    if (votoConcorrenza < 18 || non sono soddisfatto del voto di concorrenza
      votoConcorrenza = partecipoScrittoConcorrenza();
    if (votoPartePenerale < 18 || non sono soddisfatt del voto di parte generale
      votoParteGenerale = partecipoScrittoParteGenerale();
   } while (votoConcorrenza < 18 || votoParteGenerale < 18 || non sono soddisfatto);

  // Calcola la media
  votoScritto = (votoConcorrenza  + votoParteGenerale)/2;

  // Decido se partecipare o meno all'orale
  if (votoScritto < 24) {
    if (sono soddisfatto di un voto mediocre)
      votoSO = votoScritto;
    else
      votoSO = partecipoOrale();
  } else {
    if (non voglio partecipare all'orale) {
      votoSO = 23;
    else
      votoSO = partecipoOrale();
  }

  // Se ho partecipato all'orale e prendo un voto gravemente insufficiente,
  // il docente può decidere di annullare gli scritti
  if (votoSO molto minore di 18) {
    votoConcorrenza = 0;
    votoConcorrenza = 0;
  }
} while (votoSO < 18);

E' tradizione consolidata del corso di Sistemi Operativi di pubblicare una lista delle domande di esame. Corrisponde ad un programma molto dettagliato e serve come guida alla preparazione dell'esame. Venite a fare l'orale solo quando sapete rispondere a tutte le domande!

Esempi:

Lo studente Tizio partecipa al primo mid-term (programmazione concorrente). Ottiene una votazione di 27, e è soddisfatto. Partecipa anche al secondo mid-term (parte generale), e prende 21. Non ritiene sufficiente questo voto,  e in gennaio, in corrispondenza del primo appello, partecipa solo alla prova relativa alla parte generale. Questa volta, prende come voto 29; la media delle due prove è 28. Può accedere all'orale. Se non vuole partecipare all'orale, prende 23.

Lo studente Caio partecipa al primo mid-term. La votazione che ottiene è 17. In seguito, partecipa anche al secondo mid-term, e questa volta ottiene 25. Purtruppo, essendo 17 non sufficiente, non può ancora accedere all'orale. In gennaio, decide di partecipare di nuovo ad entrambe le prove. Entrambi i voti precedenti vengono cancellati. Questa volta, prende 20 e 22. La media è 21, e può partecipare all'orale, oppure registrare 21 come voto finale.

Laboratorio di Sistemi Operativi

L'esame di Laboratorio di Sistemi Operativi è composto da un progetto e una prova pratica. Il progetto riguarderà l'amministrazione di sistema, mentre la prova pratica riguarderà shell scripting, programmazione di sistema e amministrazione di sistema. Lo svolgimento della prova pratica avviene in un laboratorio del dipartimento, e la consegna avviene tramite e-mail al docente di riferimento.
Sia il progetto che la prova pratica sono soggetti a discussione. Il progetto verrà discusso separatamente (molto probabilmente da uno o due assistenti). La prova pratica è seguita da una discussione, il cui scopo è di verificare la vostra preparazione e  che lo svolgimento sia farina del vostro sacco.

Il progetto verrà assegnato nel secondo semestre. Il progetto verrà svolto da gruppi di 4 persone. Non sarà possibile partecipare alla prova pratica senza aver consegnato il progetto.

Il "programma dello studente di LSO" è il seguente:

// Inizializzazione
int votoLSO = 0;
int votoProgetto = 0;

// Consegna e discuti il progetto
do {
  votoProgetto = consegnaDiscutiProgetto();
} while (votoProgetto < 18);

// Partecipa alla prova pratica
do {
  votoProvaPratica = partecipaProvaPratica();
  if (votoProvaPratica >= 18) {
    votoLSO = calcolaVotoFinale(votoProvaPratica, votoProgetto); // Da definire
  }
} while (votoLSO < 18);


Voto finale dell'esame integrato (SO+LSO)

SO e LSO fanno parte di un esame integrato. Questo significa che è possibile svolgere le due prove in periodi diversi (anche perchè i corsi vengono tenuti in semestri diversi). Il voto finale dipenderà dall'esito di entrambe le prove. Tuttavia, è bene notare che fra i due corsi ci sono forti dipendenze. In particolare, noi crediamo che non sia possibile eccellere in uno senza eccellere anche nell'altro. Per questo motivo, se il vostro obiettivo è prendere un voto superiore a 24 (come ci auguriamo), nella vostra seconda prova (SO o LSO, a seconda dell'ordine che avete scelto) dovete essere preparati a sostenere domande di orale riguardanti il programma di entrambi i corsi. Se invece nella vita vi accontentate di poco, e 18-23 per voi è più che sufficiente, potete completare il corso senza fare orali (a parte la discussione di progetti e prova pratica che servono a verificare che sia tutta farina del vostro sacco). A voi la scelta!

Esempi

Lo studente Bill Gates ottiene un voto di 26 per SO, dopo aver superato gli scritti e partecipato all'orale (rispondendo senza problemi a domande sull'architettura di Windows, ma mostrando molte esitazioni sull'argomento microkernel). Successivamente, prepara l'esame di LSO; assieme ad alcuni amici (Paul Allen e Steve Balmer), consegna e discute il progetto. Nello svolgimento della prova pratica, ha qualche esitazione; insiste nell'usare il suffisso .bat per gli script; ma in complesso la supera. Nella discussione, però, non sa rispondere ad alcune domande di SO (sicurezza e architettura di Linux...). Prende quindi 22.

Lo studente Richard Stallman si butta subito su LSO; chiede e ottiene di fare un progetto speciale, che chiama GNU. Il voto di LSO è 30 e lode (nonostante ci abbia messo diversi anni...). Poi prepara SO; supera brillantemente gli scritti, ma poi all'orale si rifiuta di rispondere a domande su Windows, in quanto non libero. Si gioca così la lode!


Iscrizione all'esame

  • Gli esami (scritti, orali, prove pratiche) vengono annunciati tramite newsgroup, tramite questo sito e tramite il sito www.informatica.unibo.it.
  • L'iscrizione avviene secondo le modalità annunciate nel newsgroup; leggete attentamente il messaggio.
  • In difetto di iscrizione, non è possibile partecipare allo scritto.


Validità degli esami

Vi sono alcune regole per quanto riguarda la validità delle varie prove. Alcune regole aggiuntive possono essere trovate nelle prossime sezioni, riguardanti regole transitorie.

Progetto:
  • ogni anno, viene presentato un progetto diverso; gli studenti sono tenuti a 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 corrente (da giugno 2004 a febbraio 2005)
  • gli studenti che hanno consegnato dell'anno corrente ma non hanno superato la prova pratica entro febbraio 2005 perdono il progetto e dovranno lavorare al progetto dell'a.a. successivo; il motivi di questa scelta sono due: vogliamo evitare di complicare una contabilità di esami, progetti, prove, etc. già molto complessa, e vogliamo punire chi affronta questo esame in un periodo di tempo troppo lungo.
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 indefinitamente
  • il voto verrà registrato quando verrà superato anche SO
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 2004 a febbraio 2005
  • 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

Per gli studenti che hanno superato l'esame di LSO o l'esame di LAB2 negli anni precedenti, il voto rimane valido fino ad avvenuta registrazione.

Vecchia laurea quinquennale e vecchia laurea quadriennale

Per gli studenti della vecchia laurea quinquennale, si danno due casi:
  • Studenti che non hanno mai seguito S.O. / Laboratorio di Informatica 2:
    • S.O. : del tutto equiparati ai loro colleghi del nuovo ordinamento (ma non possono fare il midterm)
    • L.S.O.: esame con esercizi e approfondimenti didattici specifici (tesina)
  • Studenti che hanno già sostenuto l'esame di Laboratorio di Informatica 2:
    • Contattate Renzo Davoli ; farete l'esame con lui (qualunque cognome). Avrete testi specifici agli scritti, e valgono in tutto e per tutto le regole dell'anno in cui avete seguito il corso.
Per gli studenti della laurea quadriennale (!), contattate il docente di riferimento via e-mail.

"Cheating policies"

Ovvero, quali sono le nostre politiche nel caso vi sorprendiamo a copiare? Innanzitutto, copiare è come giocare alla lotteria . E' ovvio (e lo ammettiamo tranquillamente) che è impossibile scoprire ogni fenomeno di copiatura. Quindi se copiate, c'è una probabilità non nulla che non siate scoperti. In questo caso, non ci sono particolari punizioni; "vincete" qualche punto in più all'esame, perdete l'opportunità di studiare e capire una parte del corso. Ma se venite scoperti, quello che potete "vincere" è un'espulsione dallo scritto, un certo numero di punti al voto finale, o addirittura (nei casi più gravi, come la copiatura dei progetti) la sospensione dell'esame nell'intero anno accademico. Negli Stati Uniti (ma non qui, purtroppo), le "cheating policies" includono addirittura l'espulsione dall'Università, in caso di eventi ripetuti.

Queste sono le nostre politiche:
  • Durante i compiti scritti, è proibito comunicare in qualunque modo con gli altri studenti (sia verbalmente, che in forma scritta o elettronica - bigliettini, SMS, rete wireless, infrarossi, etc), per qualunque motivo (anche fosse solo per chiedere una penna). Nel caso veniate sorpresi a comunicare, sia durante il compito che al momento della consegna, il compito verrà annullato. L'annullamento riguarda entrambi gli estremi della comunicazione, sia la sorgente che la destinazione.
  • Il compito potrà essere annullato anche in caso di manifesta copiatura scoperta nel corso della correzione degli scritti. Anche in questo caso, l'annullamento riguarda sia chi copia che chi ha permesso di copiare.
  • Le esercitazioni periodiche devono essere svolte singolarmente. Sebbene sia caldamente consigliato consultarsi con i colleghi per risolvere difficoltà, consigliarsi a vicenda, copiare "pari pari" il codice di un vostro collega non è tollerato.
  • Per quanto riguarda i lavori di gruppo, questi devono essere svolti dai componenti del gruppo. Questo significa che tutti devono contribuire al progetto, e devono essere a conoscenza delle varie parti dello stesso. Il voto dato al progetto è personale: ovvero, se il vostro gruppo consegna un buon progetto, ma non siete in grado di dimostrare di aver partecipato alla sua realizzazione, il vostro voto potrà essere inferiore a quello degli altri componenti, o, nei casi più gravi, vi potrà essere richiesto di ripresentare un nuovo progetto.

Durante i compiti

  • Nel compito di concorrenza e nella prova pratica, è consentito consultare libri, quaderni e ogni documentazione; è anche possibile utilizzare qualsiasi apparato. Eccezioni: 
    • non è consentito consultare persone.
    • gli apparati non devono consentire comunicazione (cellulari, laptop o palmtop con interfaccia radio o infrarosso...).
    • si può consultare o utilizzare solo materiale proprio, è vietato lo scambio di qualsiasi oggetto (penna, gomma, foglio, libro o altro).
  • Nel compito sulla parte generale non è possibile consultare alcun tipo di documentazione. E' come fare un orale.
  • In caso venga scoperto uno scambio di informazione fra studenti sia durante il compito sia durante la consegna, l’elaborato degli studenti coinvolti verrà annullato.
  • Non è consentito uscire durante lo svolgimento del compito.
  • Il compito deve essere consegnato. Se desiderate che il vostro compito non venga valutato scrivete nel primo foglio “NON VALUTARE” .
  • Non sono accettate domande sul testo dopo la spiegazione pubblica iniziale.
  • Gli esercizi devono essere svolti negli spazi assegnati. Tutto ciò che verrà scritto al di fuori degli spazi assegnati non è soggetto a correzione. Non sono accettati fogli aggiuntivi.
  • Esistono nel compito due esercizi standard: l’esercizio 0 (Scrivere correttamente il proprio nome e cognome e numero di matricola su tutti i fogli) e l’esercizio -1 (essersi iscritti correttamente per svolgere la prova). L'esercizio 0 va svolto per primo, prima di ogni altro esercizio, appena ricevuto il testo del compito.Durante lo svolgimento del compito si deve lasciare sul tavolo il libretto universitario. 
  • I testi del compito vengono resi pubblici alla fine della prova. Chi desidera una copia residua del testo la potrà avere solamente quando tutti i colleghi avranno consegnato. 
  • Gli esercizi devono essere scritti a penna blu o nera (il rosso lo usiamo noi). Non è gradito l’uso di bianchetto e simili correttori. 
  • I compiti verranno forniti ai rispettivi autori durante la correzione pubblica perchè possano controllare gli errori compiuti e chiedere eventuali spiegazioni ma vanno restituiti. 
  • Quando un esercizio richiede di utilizzare uno specifico paradigma per la programmazione concorrente (monitor, semafori, message-passing, regioni critiche condizionali) si deve usare solo il paradigma richiesto. Busy wait non deve essere mai usato con semafori, monitor(!) e message passing. Le variabili condition sono signal-urgent e i semafori FIFO, salvo diversamente specificato.