====== Voti Preappello 12/12/2007 ====== Ho finito la correzione del compito del 12/12. Trovate i voti nella bacheca I-M in dipartimento. Non metto i voti su internet a causa di normative contraddittorie (non posso mettere i voti su internet associati a nomi e cognomi, e, d'altra parte, gli esami sono pubblici). Chi volesse vedere il compito può passare da me giovedì (17/1) mattina dalle 10 alle 12. ====Giudizio Sintetico==== Su 54 compiti consegnati (ritirati esclusi) ce sono 15 sotto la soglia di sufficienza (17 -- tutti i voti compresi fra 17 e 18 compaiono come 18). Nessuno di questi, peraltro, va oltre il 15,5. I mezzi punti sono stati arrotondati all'intero superiore. La suddivisione dei punteggi per esercizio è stata la seguente: * Q1: 5 * Q2: 5 * Q3: 6 * Q4: 16 La media dei voti sufficienti è circa 22. Le medie per esercizio sono distribuite in questo modo: ^Esercizio^ Media^Max^Rapporto^ | Q1 | 3.6 | 5| 72%| | Q2 | 4 | 5| 81%| | Q3 | 4.6 | 6| 76%| | Q4 | 6.3 |16| 39%| Ne possiamo concludere che, tutto sommato, la parte teorica è stata studiata, anche se non perfettamente compresa. Il risultato non perfetto della terza domanda è probabilmente da attribuirsi al fatto che molti non hanno studiato i dettagli delle primitive System V, o hanno risposto in modo troppo generale. Nella parte pratica, invece, ci sono notevoli carenze. L'esercizio di per sè non era particolarmente complesso: si trattava di gestire la mutua esclusione nell'attribuzione delle piste. Le due varianti, molto simili, richiedevano un minimo di coordinamento, i.e., fare sì che i thread-aereo evitassero di mettersi in competizione in presenza di thread con priorità maggiore. ====Principali errori==== Ecco una lista dei principali errori riscontrati nella correzione: * Q1: la richiesta deve essere eseguita o rifiutata (il 72% della prima domanda è interamente dovuto ad un 50% di persone che hanno sbagliato questo punto). * Q2: nessuno in particolare, molti hanno omesso le 4 condizioni o l'esempio, oppure non hanno trattato la detection; tenete conto che la detection si può fare sia con l'analisi del grafo in sistemi con molteplicità 1 per ciascuna risorsa sia con metodi affini all'algoritmo del banchiere. * Q3: la richiesta era esplicitamente di trattare 2 fra semafori System V, memoria condivisa e message queue; trattandosi di una domanda relativa alle esercitazioni, sarebbe stato utile trattare anche i dettagli tecnici. * Q4: molti errori concettuali, fra cui: * Mischiare costrutti relativi a processi e thread; * Svolgere tutta la computazione in mutua esclusione; * Eseguire un'attesa (wait su semaforo) all'interno di una sezione critica; * Eseguire una attesa, ma non rilasciare la risorsa;