Unibo Logo

Sistemi Operativi
Laboratorio di Sistemi Operativi
2007-2008

Renzo Davoli

Claudio Sacerdoti Coen


 
 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 una prova scritta e (opzionalmente) da una prova 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.

Al termine dello svolgimento della prova verrà immediatamente mostrata la soluzione. A questo punto è possibile ritirare il compito per impedirne la valutazione. Compiti non ritirati che risultino gravemente insufficienti comportano una penalizzazione nella prima prova consegnata successivamente.

È caldamente consigliato allo studente di prendere visione del compito consegnato una volta corretto. Il compito può essere visionato il giorno degli orali oppure a ricevimento. Questo suggerimento serve a voi studenti per forzarvi a prendere coscienza dei vostri errori nella speranza che non vengano ripetuti in futuro.

Durante il corso, a gennaio o febbraio, si svolgeranno uno o due midterm (scritti parziali) relativi agli argomenti di concorrenza. 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 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.

I singoli docenti si riservano la possibilità di ammettere all'orale studenti che abbiano conseguito votazioni lievemente inferiori a 18, secondo regole che verranno comunicate di volta in volta.

Il "programma dello studente di 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 (votoParteGenerale < 18 || non sono soddisfatto 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;
    votoParteGenerale = 0;
  }
} while (votoSO < 18);

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. 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 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, vengono presentati progetti diversi; 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 2008 a febbraio 2009)
  • gli studenti che hanno consegnato il progetto dell'anno corrente ma non hanno superato la prova pratica entro febbraio 2009 perdono tutte le prove di Sistemi Operativi e Laboratorio di Sistemi Operativi (compreso 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.
  • verranno proposti due tipi differenti di progetto. Il progetto "guidato" (uno per anno) verrà discusso durante tutto il corso, fornendo le specifiche e rispondendo alle domande degli studenti a lezione durante l'anno. Prevede la consegna di una prima fase a gennaio/febbraio e di una seconda fase a giugno/luglio. Non vi saranno altre date disponibili per la consegna del progetto. È il tipo di progetto più caldamente consigliato.
  • il secondo tipo di progetto è quello "libero". Saranno date le specifiche di 5 progetti liberi per chi intenda consegnare il progetto negli appelli di settembre 2008 o di gennaio/febbraio 2009. Per i progetti liberi non verrà dato supporto in aula. Eventuali dubbi o domande sulla realizzazione verranno considerati solamente a ricevimento. Tale forma di progetto è didatticamente meno valida e quindi sconsigliata, in quanto separa il momento dello studio della teoria da quello dell'implementazione.
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
  • vengono messi a disposizione esclusivamente sei appelli per passare LSO (da giugno a febbraio)
  • il voto ottenuto (dopo aver superato con successo prova pratica, progetto e discussione) resta valido fino a febbraio 2009
  • il voto verrà registrato quando verrà superato anche SO e solo se il superamento avviene nello stesso anno accademico
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
  • vengono messi a disposizione esclusivamente sei appelli per passare SO (da giugno a febbraio)
  • il voto ottenuto è valido unicamente da giugno 2008 a febbraio 2009.
  • 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

Vecchia laurea quinquennale e vecchia laurea quadriennale

Contattare i docenti per concordare le modalità di esame.

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