CREAZIONE DI UN FILE
|
|
- Amedeo Viola
- 9 anni fa
- Visualizzazioni
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
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,
DettagliLab. 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 -
DettagliUniversità 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
DettagliFile 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:
DettagliI/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
DettagliEsercizio 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
DettagliPOSIX - 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
DettagliESERCIZI 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
DettagliScrivere 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);
DettagliProcessi 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
DettagliLaboratorio 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
DettagliLab. 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 -
DettagliCorso 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
DettagliLink 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
DettagliDrivers. 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à
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliLaboratorio 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
DettagliCorso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
DettagliDigressione: 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
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliAXO. 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
DettagliGestione 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,
DettagliFiles, 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
DettagliIntroduzione 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
DettagliRecord 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
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliSistemi 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
DettagliChiamate 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
DettagliL API socket ed i daemon
L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/
DettagliFile 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
DettagliCorso di Sistemi Operativi A.A CHIAMATE DI SISTEMA PER FILE E SEMAFORI. Fabio Buttussi
Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER FILE E SEMAFORI Fabio Buttussi System call per l accesso a file Nome open close read write lseek creat remove unlink stat Significato
DettagliFile system II. Sistemi Operativi Lez. 20
File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco
DettagliIl problema del produttore e del consumatore. Cooperazione tra processi
Il problema del produttore e del consumatore Cooperazione tra processi Risorsa consumabile I processi disgiunti possono interferire tra loro a causa dell'uso di risorse permanenti, ma ognuno di essi ignora
DettagliCAPITOLO 7 - SCAMBIO DI MESSAGGI
CAPITOLO 7 - SCAMBIO DI MESSAGGI Lo scambio di messaggi è una forma di comunicazione nel quale un processo richiede al sistema operativo di mandare dei dati direttamente ad un altro processo. In alcuni
DettagliInter 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
DettagliSegnali. #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
DettagliManuale Terminal Manager 2.0
Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette
DettagliLaboratorio 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
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliProcessi 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()
DettagliEsercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005)
Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005) Descrizione dell esercitazione L esercitazione consiste nell implementare un semplice gestore di aste attraverso il quale gli utenti
DettagliEditor vi. Editor vi
Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta
Dettagli&& (nessun altro processo ha il file aperto) && (il fd e chiuso) Cancella il file;
CREAZIONE ritorna fd o 1 Pseudocodice dell operazione: If(file esiste) If(Write permission) Tronca la lunghezza a 0 e lascia il file aperto in scrittura; Else Exit(-1); Else Alloca un nuovo INODE con link=1
DettagliIPC 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
DettagliProgrammazione 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
DettagliEsercitazione [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
DettagliRealizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
DettagliMANUALE UTENTE Fiscali Free
MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato
DettagliCorso 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/
DettagliCapitolo 11 -- Silberschatz
Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliASPETTI 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
DettagliEsercitazione 4. Gestione dei file in Unix
Esercitazione 4 Gestione dei file in Unix Primitive fondamentali (1/2) open close Apre il file specificato e restituisce il suo file descriptor (fd) Crea una nuova entry nella tabella dei file aperti di
DettagliUniversità 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
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliMANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:
MANUALE UTENTE OTRS è il sistema di ticketing per la gestione delle richieste tecniche e di supporto ai clienti e partner di Delta Progetti 2000. La nuova versione 3.2.10 introduce una grafica più intuitiva
DettagliMANUALE D'USO DEL PROGRAMMA IMMOBIPHONE
1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma
DettagliI 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
DettagliCAP. 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
DettagliAccess. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database
Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione
DettagliTRASMISSIONE REPORTISTICA MENSILE. WEB SERVICE Descrizione procedura
TRASMISSIONE REPORTISTICA MENSILE Indice 1. DESCRIZIONE... 3 2. METODI... 4 3. IL FILE XML... 6 3.1 Descrizione contenuti del file... 7 4. COME IMMETTERE I DATI SE NON CI SONO STATE VALUTAZIONI... 12 5.
DettagliSistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliAirone Gestione Rifiuti Funzioni di Esportazione e Importazione
Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...
DettagliFOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA
FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliFtpZone Guida all uso
FtpZone Guida all uso La presente guida ha l obiettivo di spiegare le modalità di utilizzo del servizio FtpZone fornito da E-Mind Srl. All attivazione del servizio E-Mind fornirà solamente un login e password
DettagliElementi di Architettura e Sistemi Operativi
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 15 Giugno 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 4 problema 2 6 problema
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di
DettagliLaurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi
Laurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi Implementazione di una MIDlet che realizza un sistema di voto Christian Tiralosi Sviluppatori:
DettagliRICHIESTE INTERVENTO
RICHIESTE INTERVENTO Indice INDICE...2 INTRODUZIONE... 3 1.1 FUNZIONALITÀ "RICHIESTA INTERVENTO"... 3 1.1.1 Nuovo Ticket... 4 1.1.2 My open Ticket... 8 1.1.3 Gli stati del Sistema... 9 1.1.4 Certificazione
DettagliIl 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 è
DettagliDynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica
Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico
DettagliCenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it
Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
Dettagli(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,
DettagliCREAZIONE 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.
DettagliDove 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
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
DettagliGuido d uso sito internet Unione Valdera
Guido d uso sito internet Unione Valdera Accesso Area riservata di gestione sito: Inserito nome utente e password vi troverete la schermata di cui sotto con le sezioni del sito in evidenza Cliccando sulla
DettagliEsercitazione [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
DettagliComputazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
DettagliNuovo Order Manager per il software NobelProcera
Nuovo Order Manager per il software NobelProcera Guida rapida versione 1 Il nuovo Order Manager facilita i processi e le procedure di invio degli ordini mediante il sistema NobelProcera, che comprendono
DettagliSistemi 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
DettagliLa 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
DettagliStruttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura
Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione
Dettagli2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
DettagliFPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
DettagliCapitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
DettagliProcedura SMS. Manuale Utente
Procedura SMS Manuale Utente INDICE: 1 ACCESSO... 4 1.1 Messaggio di benvenuto... 4 2 UTENTI...4 2.1 Gestione utenti (utente di Livello 2)... 4 2.1.1 Creazione nuovo utente... 4 2.1.2 Modifica dati utente...
Dettaglifilrbox Guida all uso dell interfaccia WEB Pag. 1 di 44
filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44 Sommario Introduzione... 4 Caratteristiche del filrbox... 5 La barra principale del filrbox... 7 Elenco degli utenti... 8 Il profilo... 9 Le novità...
DettagliCos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)
Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un
DettagliAlgoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
Dettagli5-1 FILE: CREAZIONE NUOVO DOCUMENTO
Capittol lo 5 File 5-1 FILE: CREAZIONE NUOVO DOCUMENTO In Word è possibile creare documenti completamente nuovi oppure risparmiare tempo utilizzando autocomposizioni o modelli, che consentono di creare
DettagliMonitor. Introduzione. Struttura di un TDA Monitor
Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione
DettagliSchede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.
Schede ADI ADP ADEM Prestazioni aggiuntive MMG - Manuale - Data Solution Provider s.r.l. 1. Generalità Per poter accedere all applicazione è necessario aprire Internet Explorer e connettersi al sito di
Dettagli