Tags:
create new tag
view all tags

Laboratorio di Informatica II: Sistemi Operativi

Argomenti Svolti

Elenco degli argomenti svolti: controllare la data dell'ultimo aggiornamento in fondo alla pagina.

  • Cenni riepilogativi sui puntatori e loro utilizzo per il passaggio dei parametri per indirizzo. Esempio: la funzione scanf.
  • Passaggio dei paramentri da linea di comando a programma in C: le variabili argc ed argv.
  • La system call open, utilizzo delle combinazioni di flag.
  • Esempio: programma tabelline (scrive delle tabelline)

  • Differenze tra system call e invocazione di funzioni
  • La variabile errno e la gestione degli errori (cenni)
  • La system call gettimeofday
  • Roulo della cache del processore
  • Esempio: programma gtod (cronometra una porzione di codice C attraverso la gettimeofday)

  • Gestione della memoria attraverso malloc/free
  • Efficienza delle operazioni di I/O al variare della dimensione dei dati da muovere:
    • efficienza delle system call (open/read/write/close)
    • efficienza della standard library (fopen/fread/fwrite/fclose)
  • meccanismi di buffering della standard library
  • il comando time
  • Esempio: programmi copiaUnix e copiaStdlib (copiano un file)

  • le funzioni lseek/fseek
  • meccanismi di caching del filesystem
  • Esempio: programma posizionaUnix (delle letture a distanze prestabilite su un file)

  • misure di tempi tramite la lettura del Time Stamp Counter del processore
  • organizzazione di un programma su piu' file
    • ruolo del preprocessore
    • ruolo del linker
  • Esempio:
    • funzione realcc in cycle_counter (legge il Time Stamp Counter)
    • programma ccOpen (misura il tempo di esecuzione di una open/close tramite Time Stamp Counter : richiede cycle_counter)

  • La system call mount
  • Il comando /bin/mount ed il file /etc/fstab: file system montabili dall'utente
  • La system call execv e suo utilizzo tramite fork/execv/wait (cenni)
  • La system call times
  • Esempio: programma timeMount (misura il tempo di esecuzione del comando /bin/mount tramite la funzione times)

  • Le system call fork/wait.
  • Condivisione della memoria tra processi tramite IPC shared memory.
  • Le system call shmget/shmat/shmdt/schmctl.
  • La system call ftok.
  • Esempi:
    • programma esempioFork (crea un processo figlio e ne attende la fine)
    • programma esempioShared (crea un blocco di shared memory e lo usa per scambiare dati tra un processo padre e un figlio
    • programma shmServer_shmClient (scambio dati tra processi che non sono in relazione padre-figlio utilizzando la system call ftok per identificare i blocchi shared memory)

  • Implementazione dell'algoritmo di Peterson a due processi.
  • Esempio: programma peterson (una implementazione dell'algoritmo di Peterson)

-- AntonioValletta - 14 Nov 2001

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r7 - 2001-12-14 - AntonioValletta






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback