CREAZIONE DI UN FILE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CREAZIONE DI UN FILE"

Transcript

1 #include <sys/stat.h> #include <fcntl.h> CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure distrugge il contenuto del file: prepara il file per la riscrittura, se esso esiste già. La creat restituisce un numero intero, fd, che rappresenta il file descriptor per il file se l operazione è riuscita (valore positivo o nullo), altrimenti restituisce un valore negativo, interpretato come un codice d errore. Il file è aperto in sola scrittura. Il parametro filename è il nome del file su cui operare nel file system: per nome intendiamo sia nome relativo, sia assoluto. Se il file è un nuovo file, il parametro mode consente di specificare il modo di protezione per il file assegnando tramite esso i nove diritti di lettura, scrittura, esecuzione per proprietario, gruppo, ed altri utenti. Ciò può essere indicato esprimendo mode con codifica ottale. Se il file esiste già, i diritti rimangono inalterati. #include <sys/stat.h> #include <fcntl.h> APERTURA DI UN FILE fd = open(filename, flag); int fd, flag; char *filename; La open apre una sessione di interazione con un file. Il puntatore di I/O è posizionato al primo byte del file. Nella chiamata, nomefile specifica il nome del file, come per la creat, e flag specifica se il file deve essere letto (0 o O_RDONLY), scritto (1 o O_WRONLY), o aggiornato, cioè letto e scritto (2 o O_RDWR). La open restituisce un file descriptor, fd, positivo o nullo, in caso di successo (come per la creat). Se si è verificato un errore, la open restituisce un valore negativo. Il file <fcntl.h> contiene le definizione di costanti simboliche (O_RDONLY, O_WRONLY, O_RDWR), che possono essere specificate nel parametro flag. Quelle elencate sopra non sono le sole possibilità di accesso al file: il file <fcntl.h> fornisce apertura con creazione se il file non esiste: O_CREAT, apertura per appendere al file, col posizionamento alla fine del file: O_APPEND, apertura producendo un errore se si tenta di aprire un file che esiste già: O_EXCL. Primitive UNIX - Pagina 1 di 10

2 CHIUSURA DI UN FILE retval = close(fd); int retval, fd; La primitiva close elimina la connessione fra il programma e il file (precedentemente a- perto) che ha per descrittore fd. Il valore retval specifica se l operazione è andata a buon fine (0), o meno (-1). CREAZIONE DI UN LINK retval = link(filename1, filename2); int retval; char *filename1, *filename2; Viene creato un link per il file di nome filename1 (già esistente); il link crea un file di nome filename2, che identifica il file, sia come nome che come sottodirettorio di appartenenza. Viene così creato un nuovo file, con il nome relativo ed il direttorio specificato da filename2. La primitiva link non crea un nuovo i-node, ma solo un nuovo collegamento ad un i-node esistente. Il nuovo ed il vecchio collegamento condividono gli stessi diritti di accesso sull oggetto file fisico. Il valore di ritorno, retval, è 0 in caso di successo. CANCELLAZIONE DI UN LINK retval = unlink(path); int retval, char *path; unlink rimuove l entry di un file da un direttorio in cui esso è presente; entrambi (il file e il direttorio) vengono specificati dal path, nome completo indicato nell invocazione. Se questo entry è l ultimo (o unico) link per quel file, tutte le risorse associate con il file vengono rese disponibili. Se però il file è raggiungibile attraverso altri link, la distruzione viene ritardata. In caso di riuscita unlink restituisce 0 in retval, altrimenti restituisce -1. Primitive UNIX - Pagina 2 di 10

3 LETTURA DA UN FILE nread = read(fd, buf, n); int nread, fd, n; char *buf; Vengono letti dal file specificato con il file descriptor fd fino a n byte a partire dalla posizione corrente e vengono memorizzati nell area di bufferizzazione specificata da buf. La read restituisce il numero nread di byte effettivamente trasferiti: tale numero può essere minore del numero n di byte richiesti nel caso in cui si raggiunga la fine del file prima della conclusione dell operazione di lettura. Nel caso di lettura del terminale (trattato come un file) la lettura viene di solito effettuata fino al successivo carattere di newline, per poi fornire solo i caratteri richiesti e mantenere gli altri per le successive operazioni. La fine del file, in questo caso, si specifica con <CTRL> D. Nel caso di file veri e propri, la lettura avviene o dal buffer già letto o riempiendo l intero buffer (con informazioni disponibili per successive letture). Se il valore restituito è negativo, si è verificato un errore. SCRITTURA SU UN FILE nwrite = write(fd, buf, n); int nwrite, fd, n; char *buf; Vengono scritti n byte sul file rappresentato da fd, presi dal buffer buf, a partire dalla posizione corrente. Il valore restituito, nwrite, è il numero di byte realmente scritti, ed è, in generale, un errore se esso è diverso dal numero n di byte che si volevano scrivere. newpos = lseek(fd, offset, origin); int fd, origin; long int newpos, offset; POSIZIONAMENTO ALL INTERNO DI UN FILE La primitiva lseek consente di spostare la posizione corrente nel file a partire dalla quale verrà effettuata la successiva operazione di read o di write, realizzando così un accesso diretto al file nella posizione voluta. Il puntatore di I/O del file identificato da fd viene spostato nella posizione determinata dallo spiazzamento specificato da offset rispetto alla posizione origin. origin può essere 0, 1, 2 per specificare un offset preso a partire rispettivamente dall origine del file, dalla posizione corrente o dalla fine del file (e in quest ultimo caso negativo, se all interno del file stesso). Primitive UNIX - Pagina 3 di 10

4 CAMBIAMENTO DI DIRETTORIO CORRENTE retval = chdir(path); int retval; char *path; Accede al direttorio specificato in path. Ritorna 0 in caso di successo in retval. #include <fcntl.h> #include <sys/stat.h> CREAZIONE DI UN DIRETTORIO retval = mkdir(pathname, mode); int retval, mode; char *pathname; Crea un direttorio con nome e posizione specificati da pathname e con diritti specificati da mode ( R/W/X per tutti). VERIFICA DELL ACCESSO retval = access(pathname, amode); int retval, amode; char *pathname; La primitiva access consente di verificare il tipo di accesso consentito sul file il cui percorso assoluto è specificato da pathname. Il parametro amode può essere: 00 existence F_OK 01 execute access X_OK 02 write access W_OK 04 read access R_OK Nel file <unistd.h> sono definite le costanti F_OK, R_OK, W_OK, X_OK. #include <sys/stat.h> VERIFICA DELLO STATO DI UN FILE retval = stat(pathname, &buff); int retval; char *pathname; struct stat buff; Primitive UNIX - Pagina 4 di 10

5 L accesso ad informazioni di un file, noto il suo nome, pathname, si può ottenere attraverso la primitiva stat. Se invece si possiede il file descriptor, fd, del file in questione si può usare la funzione fstat. retval = fstat(fd, &buff); int retval, fd; struct stat buff; Il valore di ritorno è 0 in caso di successo, un valore negativo altrimenti. All interno della struttura buff vengono scritte le informazioni relative al file. I campi della struct stat sono: struct stat { ushort st_mode; // modo del file ino_t st_ino; // numero dell i-node dev_t st_dev // id del dispositivo dev_t st_rdev // solo per i file speciali short st_nlink // numero di link ushort st_uid // user id del proprietario ushort st_gid // group id del proprietario off_t st_size //lunghezza del file in byte time_t st_atime //tempo dell ultimo accesso time_t st_mtime //tempo dell ultima modifica time_t st_ctime //tempo dell ultimo cambiamento di stato } CREAZIONE DI UN PROCESSO pid = fork(); int pid; In seguito ad una fork si hanno due processi concorrenti e indipendenti: il parent (processo padre), quello originario il child (processo figlio), quello generato Entrambi eseguono a partire dall istruzione successiva alla fork. La fork restituisce in pid un valore differente per i due processi e ciò costituisce l unico modo di distinguere l uno dall altro: nel child tale valore è zero, nel parent un valore diverso da zero che è l identificatore (il process identifier) di quel child. Per qualsiasi errore la fork restituisce al parent un valore negativo, altrimenti l identificatore di processo associato al figlio. Primitive UNIX - Pagina 5 di 10

6 #include <wait.h> #include <sys/wait.h> SOSPENSIONE DI UN PROCESSO pid = wait(&status); int pid, status; La primitiva wait sospende il parent in attesa della fine del suo (uno dei suoi) child. In pid c è 1 in caso di insuccesso o, in caso di successo, il pid del figlio che ha terminato. Se il figlio termina volontariamente, nel valore di ritorno, status, si ha: nel byte alto c è il valore ritornato dal figlio con la exit nel byte basso c è zero Se il figlio termina in seguito alla ricezione di un segnale, nel valore di ritorno si ha: nel byte alto c è zero nel byte basso c è il numero del segnale che ha provocato la terminazione del figlio Se non interessa il valore di ritorno, invocare: pid = wait((int*)0); Sono definite le seguenti macro che permettono un agevole interpretazione del valore contenuto in status: WIFEXITED(status) Ritorna un valore diverso da zero se il figlio ha terminato normalmente. WEXITSTATUS(status) Ritorna il valore della exit del figlio. Questa macro può essere usata solo se WIFEXI- TED ha ritornato un valore diverso da zero. WIFSIGNALED(status) Ritorna TRUE se il processo figlio ha terminato a causa di un segnale non intercettato. WTERMSIG(status) Ritorna il numero del segnale che ha causato la terminazione del figlio. Questa macro può essere usata solo se WIFSIGNALED ha ritornato un valore diverso da zero. TERMINAZIONE void exit(status); int status; Termina il processo che la esegue, chiudendo tutti i file aperti del processo stesso. Il valore del parametro status viene passato al processo padre, se questo sta attendendo il processo che termina. Per convenzione: il valore zero rappresenta una terminazione normale un valore diverso da zero rappresenta un problema Primitive UNIX - Pagina 6 di 10

7 ESECUZIONE DI UN PROGRAMMA execv(pathname, argv); char *pathname, *argv[ ]; Esegue il comando identificato, in modo assoluto, da pathname passandogli come parametri le stringhe precedentemente memorizzate nell array argv. execl(pathname, argv0, argv1,, argvn); char *pathname, *argv0, *argv1,, *argvn; Esegue il comando identificato, in modo assoluto, da pathname passandogli come parametri le stringhe argv0,, argvn. execvp(name, argv); char *name, *argv[ ]; Esegue il comando di nome name passandogli come parametri le stringhe precedentemente memorizzate nell array argv. NB: Il direttorio dove si trova l eseguibile deve essere nel PATH! execlp(name, argv0, argv1,, argvn); char *name, *argv0, *argv1,, *argvn; Esegue il comando di nome name passandogli come parametri le stringhe argv0,, argvn. NB: Il direttorio dove si trova l eseguibile deve essere nel PATH! IDENTIFICAZIONE DI UN PROCESSO pid = getpid(); int pid; Restituisce il process identifier del processo corrente. pid = getppid(); int pid; Restituisce il process identifier del padre del processo corrente. Primitive UNIX - Pagina 7 di 10

8 #include <signal.h> DEFINIZIONE DI UN HANDLER signal(sig, function); int sig; void(*func)(); Si specifica: quale segnale trattare (sig). NB: non può essere SIGKILL come trattarlo (function) Per quanto riguarda function vi sono tre possibilità: l indirizzo di una funzione gestore ignorare il segnale (SIG_IGN) riportare all azione di default (SIG_DFL) Nel caso venga specificato un gestore, all occorrenza del segnale sig viene invocata function che riceve il numero del segnale come argomento. a) Comportamento UNIX BSD: quando un segnale collegato ad una funzione non è ignorato da un processo, ed esso arriva una prima volta, successivi arrivi del segnale vengono automaticamente bloccati prima di chiamare la funzione di gestione. Al termine dell esecuzione del gestore, il ritorno della funzione sblocca il segnale e il processo riprende l esecuzione dal punto in cui era stato interrotto. Altri eventuali arrivi di quel segnale nel frattempo non vengono considerati. b) Comportamento UNIX System V: non appena il segnale viene ricevuto, e quando la funzione non è stata ancora effettivamente chiamata, lo stato del segnale viene riportato a SIG_DFL, senza bloccarlo. L arrivo di un secondo segnale può allora risultare mortale per il processo. Elenco dei principali segnali: Nome Numero Significato SIGHUP 1 hangup: sconnessione dal terminale SIGINT 2 interrupt da terminale (in genere <CTRL> C) SIGQUIT 3 quit da un programma con salvataggio dell immagine di memoria (<CTRL> \) SIGILL 4 istruzione non consentita SIGKILL 9 uccisione (non intercettabile o ignorabile) SIGSYS 12 errore di argomento in una system call SIGPIPE 13 scrittura su pipe che no ha lettore SIGALRM 14 allarme da orologio (ricevuto quando è passato un intervallo di tempo stabilito con la funzione alarm) SIGTERM 15 terminazione software: generato dalla terminazione del codice SIGUSR1 16 segnale lasciato all utente per sincronizzazione Primitive UNIX - Pagina 8 di 10

9 SIGUSR2 17 segnale lasciato all utente per sincronizzazione SIGCHLD 18 lo stato del child è cambiato (stop o exit del child) NB: L azione di default è SIG_IGN!! INVIO TEMPORIZZATO DI UN ALLARME unsigned alarm(numerosecondi); unsigned numerosecondi; Questa primitiva consente di inviare al processo corrente dopo un certo tempo (espresso in secondi) un segnale di allarme. È quindi una richiesta di attivazione di un gestore di allarme temporizzato. Se il segnale non è gestito vale l azione di default (terminazione). void pause(); SOSPENSIONE IN ATTESA SI UN QUALUNQUE SEGNALE Questa primitiva richiede la sospensione del processo corrente fino all arrivo di un segnale qualunque. È quindi adatta a processi che vogliano attendere il verificarsi di un qualunque segnale. Il processo rimane in stato sospeso fino al verificarsi di un evento, quindi un processo può mettersi in attesa di un evento ed essere risvegliato dal segnale relativo che lo rimette in esecuzione. NB: Un segnale ignorato non viene ricevuto, quindi un processo in pause non viene risvegliato all occorrenza di questo segnale!! SOSPENSIONE TEMPORIZZATA unsigned sleep(numerosecondi); unsigned numerosecondi; La primitiva consente una sospensione del processo che la invoca per il numero di secondi specificato. Naturalmente, la sospensione può durare un numero di secondi superiore a quanto richiesto a causa dello scheduling del sistema. Primitive UNIX - Pagina 9 di 10

10 #include <signal.h> INVIO DI SEGNALI AD ALTRI PROCESSI retval = kill(pid, sig); int retval, pid, sig; kill è una system call che consente di mandare il segnale sig ad un processo specificato dal suo identificatore pid. sig può essere uno qualsiasi dei segnali, oppure essere 0, nel qual caso non viene mandato alcun segnale e viene invece fatta una ricerca di un eventuale errore nella chiamata. Questo modo di invocazione si utilizza per vedere se l identificatore pid è corretto, cioè se appartiene ad un processo esistente. Il valore di ritorno, retval, specifica se l azione ha avuto l effetto desiderato. Il processo che spedisce e quello che riceve il segnale devono avere lo stesso identificatore di utente effettivo : solo il superutente può mandare segnali ad un qualunque processo. CREAZIONE DI UNA PIPE retval = pipe(fd); int retval, fd[2]; In retval c è 0 in caso di successo, un valore negativo altrimenti. Vengono forniti come parametri di ritorno due file descriptor fd[0] e fd[1], rispettivamente per la lettura e la scrittura della pipe. È compito del processo padre generare una pipe, e quindi con l esecuzione di una (o più) fork generare i processi che possono usufruirne: la primitiva fork prevede il passaggio dei file descriptor aperti dal padre al figlio. Se viene operata una scrittura su una pipe con una sola parte aperta, cioè che non ha lettori, viene generato l apposito segnale SIGPIPE. La pipe viene implementata come se fosse un file, cioè tramite file descriptor, ma con queste differenze: al file descriptor non corrisponde alcun nome nel file system; la dimensione di una pipe è fissa; una volta che dei dati depositati dallo scrittore sono stati letti, la scrittura ricomi n- cia all inizio del file. La memoria associata viene gestita come un buffer circolare da cui si preleva e su cui si deposita. Primitive UNIX - Pagina 10 di 10

Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file:

Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file: Scrivere alla fine di un file Vi sono due modi per scrivere alla fine di un file: usare lseek per spostarsi alla fine del file e poi scrivere: lseek(filedes, (off_t)0, SEEK_END); write(filedes, buf, BUFSIZE);

Dettagli

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Processi parte III Sincronizzazione e comunicazione tra processi in Unix Segnali: usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Pipe: struttura dinamica,

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

File e Directory. M. Guarracino - File e Directory 1

File e Directory. M. Guarracino - File e Directory 1 File e Directory M. Guarracino - File e Directory 1 Date dei file Ogni volta che accediamo ai dati contenuti in un file, il sistema memorizza la data di ultimo accesso La stessa cosa accade quando modifichiamo

Dettagli

File I/O. M. R. Guarracino: File I/O 1

File I/O. M. R. Guarracino: File I/O 1 File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -

Dettagli

POSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it

POSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it POSIX - Gestione dei Segnali E.Mumolo, DEEI mumolo@units.it Segnali in POSIX Segnali in Posix Modalità di notifiche relative a vari eventi asincroni I signal interrompono un processo e possono o meno essere

Dettagli

Esercizio sulla gestione di file in Unix

Esercizio sulla gestione di file in Unix Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Laboratorio di Sistemi Operativi Segnali a.a. 2011/2012 Francesco Fontanella Segnali - Introduzione I segnali sono interrupt software a livello di processo comunicano al processo il verificarsi di un evento

Dettagli

Il sistema operativo LINUX Il file system. Indice. Blocchi logici. Indice. Super block. G. Di Natale, S. Di Carlo

Il sistema operativo LINUX Il file system. Indice. Blocchi logici. Indice. Super block. G. Di Natale, S. Di Carlo Il sistema operativo LINUX Il file system Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Blocchi logici Il file system è

Dettagli

Digressione: man 2...

Digressione: man 2... Syscall File I/O Digressione: man 2... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call

Dettagli

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto Processi e Sincronizzazione C. Brandolese M. Grotto Sommario 1. Processi Concetti fondamentali Stati in GNU/Linux 2. Creazione Descrizione Creazione con system() Creazione con fork() Effetto di fork()

Dettagli

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi

Dettagli

La sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]);

La sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]); int pipe(int fd[2]); Le pipe sono canali di comunicazione unidirezionali che costituiscono un primo strumento di comunicazione (con diverse limitazioni), basato sullo scambio di messaggi, tra processi

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

CAP.8: Il file system

CAP.8: Il file system Struttura interna del sistema operativo Linux CAP.8: Il file system Primitive per la gestione dei file 28/10/2013 File System Il gestore del file system è quel componente del Sistema Operativo che realizza

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 strace : visualizzazione delle system call

Dettagli

Gestione dei processi

Gestione dei processi Gestione dei processi Dormire unsigned int sleep(unsigned int); Attende un numero specificato di secondi a meno che non si verifichi un segnale Restituisce 0 se l'attesa è terminata senza interruzioni,

Dettagli

Segnali. #include Segnali

Segnali. #include <signal.h> Segnali Segnali Segnali 1. Un segnale è la notifica asincrona di un evento 2. Si dice che un segnale è generato (o consegnato sent, delivered to ) quando l evento associato a quel segnale occorre per la prima

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 5 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Processi in Unix Approfondimenti: http://gapil.gnulinux.it/download/

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int

Dettagli

File e Directory. M. Guarracino - File e Directory 1

File e Directory. M. Guarracino - File e Directory 1 File e Directory M. Guarracino - File e Directory 1 File e Directory Abbiamo visto come si possono utilizzare funzioni di I/O per i file: open, read, write, lseek e close Vogliamo ora analizzare ulteriori

Dettagli

Il sistema operativo LINUX Indice

Il sistema operativo LINUX Indice Il sistema operativo LINUX Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Processo Un processo è un programma in esecuzione:

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Digressione: man (2)...

Digressione: man (2)... Syscall File I/O Digressione: man (2)... Le funzioni della libreria standard UNIX associate alle system call di Linux sono documentate nella sezione 2 di man e.g.: man 2 open Ogni manpage di system call

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -

Dettagli

I SISTEMI OPERATIVI (1)

I SISTEMI OPERATIVI (1) I SISTEMI OPERATIVI (1) 1 un computer può essere pensato come una stratificazione di macchine virtuali, ciascuna delle quali mette a disposizione alcuni servizi, che sono utilizzabili mediante chiamate

Dettagli

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process

Dettagli

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

Gestione di File e Directory

Gestione di File e Directory Gestione di File e Directory Duplicazione di file descriptor Un file descriptor puo' essere duplicato utilizzando: int dup (int filedes); int dup2(int filedes, int filedes2); dup restituisce un file descriptor

Dettagli

Segnali. Un segnale e' un interrupt software. La terminologia corretta e' exception mentre interrupt e' usata solo per gli interrupt hardware

Segnali. Un segnale e' un interrupt software. La terminologia corretta e' exception mentre interrupt e' usata solo per gli interrupt hardware Segnali ed allarmi Contiene lucidi tratti da: 2005-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Univrsità di Napoli Federico II) 2005-2007 Francesco Pedulla, Massimo Verola (Uniroma2), 2001-2005

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento

Dettagli

CREAZIONE PROCESSI IN UNIX 20

CREAZIONE PROCESSI IN UNIX 20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.

Dettagli

1.4: Il File System. File, directory, file system. Struttura e operazioni su file e directory. Implementazione delle directory

1.4: Il File System. File, directory, file system. Struttura e operazioni su file e directory. Implementazione delle directory 1.4: Il File System File, directory, file system Struttura e operazioni su file e directory Implementazione delle directory Struttura del file system Metodi di allocazione Gestione dello spazio libero

Dettagli

Files, File I/O, File Sharing. Franco Maria Nardini

Files, File I/O, File Sharing. Franco Maria Nardini Files, File I/O, File Sharing Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c e un solo tipo di file. Struttura e interpretazione

Dettagli

1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi

1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi File Tipi di file 2 1. File normale: contiene dati 2. Directory: contiene nomi di altri file ed informazioni sugli stessi 3. File speciali di caratteri: es. un terminale, /dev/tty 4. File speciali a blocchi:

Dettagli

System call fcntl e record locking

System call fcntl e record locking System call fcntl e record locking Esempio: prenotazione di voli aerei La compagnia ACME Airlines usa un sistema di prenotazione dei voli basato su unix. Possiede due uffici per la prenotazione, A e B,

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 5

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 5 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 5 1 Segnali Vi sono spesso eventi importanti

Dettagli

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Drivers. Introduzione Tipologie Struttura Interazione con il kernel Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità

Dettagli

Gestione dei processi

Gestione dei processi Capitolo 1 Gestione dei processi 1.1 Creazione di un processo I principali eventi che possono dare luogo ad un nuovo processo sono: inizializzazione del sistema; esecuzione di una primitiva di sistema

Dettagli

ESERCIZI SULLA PROGRAMMAZIONE DI SISTEMA GNU/LINUX

ESERCIZI SULLA PROGRAMMAZIONE DI SISTEMA GNU/LINUX Autore: Classe: Luciano VIVIANI QUARTA INFORMATICA (4IB) Anno scolastico: 2004/2005 Scuola: Itis Euganeo ESERCIZI SULLA PROGRAMMAZIONE DI SISTEMA GNU/LINUX Questa dispensa non vuole essere un manuale di

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Le FIFO pipe vs fifo la pipe può essere usata solo tra processi "imparentati" (che hanno un antenato comune che ha creato la pipe) la fifo consente di scambiare dati tra processi qualsiasi 2 1 FIFO (named

Dettagli

Gestione dei file: filosofia. carica in memoria l i-node del file read / write. close cose rilascia le strutture dati di memoria del file

Gestione dei file: filosofia. carica in memoria l i-node del file read / write. close cose rilascia le strutture dati di memoria del file File system 1 Gestione dei file: filosofia open carica in memoria l i-node del file read / write accedono al file tramite il suo i-node close cose rilascia le strutture dati di memoria del file 2 Gestione

Dettagli

I segnali possono essere pensati come degli interrupts software ;

I segnali possono essere pensati come degli interrupts software ; Segnali 57 Segnali Un segnale è una notifica a un processo che è occorso un particolare evento: - Un errore di floating point - La morte di un figlio - Una richiesta di terminazione - I segnali possono

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Swapping Trasferimento temporaneo in memoria secondaria di processi o parti di processo.

Swapping Trasferimento temporaneo in memoria secondaria di processi o parti di processo. SISTEMI OPERA TIVI T (A nna Ciampolini) Definizioni di teoria Sistema operativo Programma intermediario tra utente e hardware del computer, mappa le risorse hardware in risorse logiche accessibili attraverso

Dettagli

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006 Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI Fabio Buttussi La programmazione di sistema Il kernel è la parte di Unix che corrisponde al sistema operativo

Dettagli

Programmazione di Sistema 3

Programmazione di Sistema 3 Programmazione di Sistema 3 Gestione dei Processi Paolo Baldan Università Ca Foscari Venezia Corso di Laurea in Informatica Parte di questo materiale è rielaborato dalle slide del Corso di Laboratorio

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 6 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Interazione tra Processi I processi concorrenti possono interagire

Dettagli

Programmazione multiprocesso

Programmazione multiprocesso DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di

Dettagli

Program m azione di Sistem a 2

Program m azione di Sistem a 2 Program m azione di Sistem a 2 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

1.6: Processi Concorrenti

1.6: Processi Concorrenti 1.6: Processi Concorrenti Programmi concorrenti Chiamate di sistema Unix per il controllo di processi Creazione, terminazione di processi Sincronizzazione sulla terminazione, segnalazione di eventi Comunicazione

Dettagli

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal

Dettagli

Sistemi Operativi L-A. Esercizi 14 Giugno 2007. Esercizio monitor

Sistemi Operativi L-A. Esercizi 14 Giugno 2007. Esercizio monitor Sistemi Operativi L-A Esercizi 14 Giugno 2007 Esercizio monitor Si consideri la toilette di un ristorante. La toilette è unica per uomini e donne. Utilizzando la libreria pthread, si realizzi un'applicazione

Dettagli

UNIX: programmazione di sistema

UNIX: programmazione di sistema UNIX: programmazione di sistema Per poter utilizzare servizi quali manipolazione di file, creazione di processi e comunicazione tra processi, i programmi di applicazione devono interagire con il sistema

Dettagli

Sistemi Operativi. Esercitazione 10. Corso di Laurea Triennale in Ingegneria Informatica. daniel.cesarini@for.unipi.it

Sistemi Operativi. Esercitazione 10. Corso di Laurea Triennale in Ingegneria Informatica. daniel.cesarini@for.unipi.it Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 10 Virtual Filesystem mount, umount I/O, Unix I/O, Standard I/O Pipe e Fifo daniel.cesarini@for.unipi.it 1 Domande sulle

Dettagli

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale didattico,

Dettagli

Esercitazione [8] Pipe e FIFO

Esercitazione [8] Pipe e FIFO Esercitazione [8] Pipe e FIFO Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo

Dettagli

Esercitazione [5] Input/Output su Socket

Esercitazione [5] Input/Output su Socket Esercitazione [5] Input/Output su Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

Dettagli

Dove die( stringa ) è una funzione di utilità del php che stampa la stringa e fa terminare lo script.

Dove die( stringa ) è una funzione di utilità del php che stampa la stringa e fa terminare lo script. I file in PHP Un file è un archivio elettronico contenente informazioni (dati) memorizzate su memoria di massa. Il file ha la caratteristica di consentire la lettura, la scrittura e la modifica dei dati

Dettagli

Quinta Esercitazione. Principali primitive di accesso ai File

Quinta Esercitazione. Principali primitive di accesso ai File Esempio: processi padre e figlio condividono di file aperti PRIMA della creazione Quinta Esercitazione Gestione File-System Segnali processo padre fork() Sistema tabella dei file attivi i-node Eugenio

Dettagli

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale

Dettagli

Sistemi Operativi: Programmazione di Sistema

Sistemi Operativi: Programmazione di Sistema Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: ferrari@dsi.unifi.it telefono: 055 4237454

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Program m azione di Sistem a 6

Program m azione di Sistem a 6 Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Modulo 5: Programmazione di sistema --- Parte C: System call per la gestione dei file

Modulo 5: Programmazione di sistema --- Parte C: System call per la gestione dei file 1 Modulo 5: --- Parte C: System call per la gestione dei file Laboratorio di Sistemi Operativi I Anno Accademico 2006-2007 Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Copyright

Dettagli

IPC System V. Code di messaggi

IPC System V. Code di messaggi IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile

Dettagli

Sistemi Operativi. Des crizione e controllo dei proces s i

Sistemi Operativi. Des crizione e controllo dei proces s i Sistemi Operativi Des crizione e controllo dei proces s i Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili

Dettagli

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi Sistemi Operativi Esercitazione 2 Compilazione, Makefile e Processi Percorso Compilazione programmi in c Makefiles Processi definizione gestione creazione Compilazione di programmi in C Compilazione e

Dettagli

Programmazione concorrente nei sistemi Unix

Programmazione concorrente nei sistemi Unix Programmazione concorrente nei sistemi Unix Giuseppe Lipari, Luca Abeni, Antonino Casile Scuola Superiore di Studi Universitari e di Perfezionamento S. Anna 18 aprile 2008 Indice 1. Introduzione 5 1.1.

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

IPC Inter Process Communication

IPC Inter Process Communication Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni

Dettagli

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat. Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto

Dettagli

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12.

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12. File system Chiamate di sistema POSIX Esempi: 4.3 BSD Linux Chiamate di sistema Windows Esempio: NTFS Esercizi 12.1 Le chiamate di sistema di UNIX per file UNIX mette a disposizione sia chiamate di sistema

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

Record locking con la system call fcntl

Record locking con la system call fcntl Record locking con la system call fcntl Il record locking è un metodo per disciplinare la cooperazione tra processi. Permette ad un processo di poter accedere ad un file in modo esclusivo. È utile quindi

Dettagli

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo a.a. 2003/04 Applicazione Echo Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Progettazione di Applicazioni Robuste nel progettare applicazioni su rete robuste

Dettagli

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication (IPC) IPCS 1 1. Code di messaggi 2. Semafori 3. Memoria condivisa send receive 2? 3 p1 p3 p2 CODE DI MESSAGGI Modello di Comunicazione Code di Messaggi Il processo ricevente

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli