---+ 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 <nop>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) -- Users.AntonioValletta - 14 Nov 2001 <br>
This topic: Sistemioperativi1
>
ArgomentiSvolti
Topic revision: r7 - 2001-12-14 - AntonioValletta
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback