Laboratorio di Sistemi Operativi

Questa pagina rac­coglie in­for­mazioni e link utili per il corso di Lab­o­ra­torio di Sis­temi Op­er­a­tivi, tenuto in col­lab­o­razione con il prof. Ivan Scagnetto, nel­l’Anno Ac­ca­d­e­mico 2016/2017, per il corso di laurea tri­en­nale in In­for­matica al­l’U­ni­ver­sità di Udine. Tutto il ma­te­riale è disponi­bile anche sulla pi­attaforma di e-learning del­l’U­ni­ver­sità.

Orario di rice­vi­mento

Non ho un orario di rice­vi­mento par­ti­co­lare. Per ac­cor­darsi basta un’email. Sono nel­l’uf­ficio NN2, al sec­ondo pi­ano, sopra la bib­lioteca (vedi la mappa del di­par­ti­mento).

Slide delle lezioni

In questa sezione saranno rese disponi­bili mano a mano le slide delle lezioni per la sec­onda e terza parte del corso (lin­guaggio C e pro­gram­mazione di sis­tema in am­bi­ente Unix).

Lezione 7:
In­tro­duzione al lin­guaggio C, mer­coledì 26 ot­tobre (con soluzioni)
Lezione 8:
Fun­zioni e Array, ven­erdì 28 ot­tobre (soluzioni)
Lezione 9:
Pun­ta­tori, mer­coledì 2 no­vembre (soluzioni)
Lezione 10:
Ma­nipo­lazione di stringhe, ven­erdì 4 no­vembre (soluzioni)
Lezione 11:
Al­lo­cazione di­namica e strut­ture, mer­coledì 9 no­vembre (soluzioni)
Lezione 12:
Com­pi­lazione sep­a­rata e in­tro­duzione ai file, ven­erdì 11 no­vembre (soluzioni)
Lezione 13:
Ges­tione dei pro­cessi Unix, mer­coledì 16 no­vembre (e­sempio su.c, soluzioni)
Lezione 14:
Ac­cesso ai file, ven­erdì 25 no­vembre (e­sempio look­out.c, soluzioni)
Lezione 15:
Pipes, mer­coledì 30 no­vembre (e­sempi ls­grep.c e guardieladri.c, soluzioni)
Lezione 16:
Seg­nali e in­tro­duzione ai socket, ven­erdì 2 dicembre (es­empio, soluzioni)
Lezione 17:
In­tro­duzione al mul­ti­threading, mer­coledì 7 dicembre (es­empio, soluzioni)
Lezione 18:
Mutex e con­di­tion vari­ables, mer­coledì 14 dicembre (es­empio)

Prog­etti per l’e­same di Lab­o­ra­torio

Quest’anno oltre al­l’e­same scritto del corso di Lab­o­ra­torio è pos­si­bile svol­gere due prog­etti, fa­colta­tivi, che pos­sono con­cor­rere com­p­lessi­va­mente ad un in­cre­mento di mas­simo quattro punti sul voto del­l’e­same di Lab­o­ra­torio. I testi di en­trambi i prog­etti sono scar­i­ca­bili dalla pi­attaforma di eLearning op­pure da qui: Primo/Sec­ondo.

Ma­te­riale di ap­pron­fondi­mento

Il corso ha cop­erto gli ar­go­menti di base in maniera per forza di cose in­tro­dut­tiva. Per ap­pro­fondire l’u­ti­lizzo del lin­guaggio C es­istono varie risorse sia car­tacee che on­line:

Lin­guaggio C

Pro­gram­mazione di sis­tema in am­bi­ente Unix

  • GaPiL – Guida alla Pro­gram­mazione in Linux: un’­opera scritta col­lab­o­ra­ti­va­mente (in ital­iano) sulla pro­gram­mazione di sis­tema in am­bi­ente Unix (e Linux in par­ti­co­lare), che ap­pron­fondisce di molto la mag­gior parte degli ar­go­menti trat­tati nel corso.

  • Due libri di ap­pro­fondi­mento sul­l’u­ti­lizzo dei threads:
    • David R. Buten­hof. Pro­gram­ming with POSIX Threads, 1997, ISBN:
      978-0201633924, Ad­dis­on-Wesley Pro­fes­sional.
    • Dick But­t­lar, Jacque­line Proulx Far­rell, Brad­ford Nichols. PThreads Pro­gram­ming: A POSIX Stan­dard for Better Mul­ti­pro­cessing (A Nut­shell hand­book), 1996, ISBN: 978-1565921153, O’Reilly Me­dia.