Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia"

Transcript

1 Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Scambio di messaggi: 1. Nozioni preliminari 2. Primitive 3. Indirizzamento 4. Formato dei messaggi 5. Scambio di messaggi in sistemi operativi attuali (NT/UNIX)

2 Motivazioni per la cooperazione tra processi Condivisione di informazioni esiste la possibilita' che processi di utenti distinti possano essere interessati agli stessi dati. Supporto alla modularita' esiste la possibilita' che piu' processi concorrano ad un unico scopo, ovvero allo scopo per cui il software stesso e progettato Accelerazione del calcolo in sistemi multiprocessore e' possibile, per ragioni di efficienza, che i processi che concorrono al predetto unico scopo siano eseguidi in reale concorrenza

3 Messaggi sono unita di dati che possono essere scambiate tra due o piu processi il deposito (spedizione) di un messaggio avviene in modo atomico l estrazione (ricezione) di un messaggio avviene anche essa in modo atomico due o piu processi non possono quindi scambiarsi frazioni di un messaggio non necessariamente i messaggi hanno la stessa taglia

4 Primitive di spedizione Send(destinazione, messaggio) Modello generale Modalita : 1. Sincrona: processo sospeso fino a che il buffer contenente il messaggio pou essere sovrascritto senza arrecare danni al messaggio appena spedito bloccante e non 2. Sincrona randez-vous: processo sospeso fino a che il messaggio non viene ricevuto (uso di acknowledgment) 3. Asincrona: possibilita di riutilizzo immediato del buffer contenente il messaggio (possibilita di sovrascrittura del messaggio in corso di spedizione) non bloccante

5 Primitive di ricezione Receive(sorgente, messaggio) Modello generale Modalita : 1. Bloccante: processo sospeso fino a che non arriva almeno un messaggio dalla sorgente specificata sincrona e non 3. Non-bloccante: il processo non viene sospeso neanche in caso un messaggio dalla sorgente specificata non sia disponibile sincrona e non nel caso di randez-vous la ricezione necessita di gestione di acknowledgment verso la sorgente del messaggio

6 Tecniche di indirizzamento Diretta Sorgenti e destinazioni coincidono con identificatori di processi (uso di wilde-cards in caso l identificazione della sorgente non sia rilevante) Esempio Send(P,message) Receive(Q,message) Indiretta Sorgenti e destinazioni coincidono con identificatori di mailbox (o code di messaggi) che fungono da deposito per i messaggi stessi Le mailbox possono essere associate o non ad uno specifico processo (effetti sulla distruzione della mailbox alla terminazione del processo) Esempio Possibilita di relazione uno-a-molti e molti-a-molti Send(A,message) Receive(A,message)

7 Buffering In memoria kernel non e necessario che sia impostata una receive() all atto dell arrivo del messaggio la capacita di bufferizzazione puo essere nulla, limitata o illimitata in caso di capacita nulla un solo messaggio alla volta puo essere in transito (tipico del randez-vous) e possibile definire un timeout per la bufferizzazione di un messaggio, allo scadere del quale il messaggio viene scartato In memoria utente e necessario che sia impostata una receive() all atto dell arrivo del messaggio in caso la receive() non e impostata, il messaggio in transito viene perso

8 Formato dei messaggi Tipo del messaggio Destinazione Sorgente Lunghezza Informazioni di controllo Campi tipici (ma non necessari) per applicazioni basate su scambio di messaggi Contenuto La definizione di questi campi come parte del contenuto del messaggio puo essere a carico delle applicazioni e non del sistema operativo Il tipo e le informazioni di controllo possono determinare l ordine di consegna dei messaggi stessi

9 Spazio indirizzamento Proc. A Code di messaggi UNIX Spazio indirizzamento Proc. B Deposito di messaggio Estrazione di messaggio Coda di messaggi (memoria kernel) send sincrona (bloccante o non) receive bloccante (sincrona) e non bloccante (sincrona) buffering in memoria kernel ed a capacita limitata indirizzamento indiretto il sistema operativo gestisce il campo TIPO del messaggio (possibilita di supporto al multiplexing) il contenuto di un messaggio ha taglia tipicamente variabile ma limitata superiormente

10 Creazione di una coda di messaggi int msgget(key_t key, int flag) Descrizione Parametri invoca la creazione una coda di messaggi 1) key: chiave per identificare la coda di messaggi in maniera univoca nel sistema 2) flag: specifica della modalita di creazione (IPC_CREAT, IPC_EXCL, definiti negli header file sys/ipc.h e sys/msg.h) e dei permessi di accesso Descrizione identificatore numerico per l'accesso alla coda in caso di successo (descrittore di coda), -1 in caso di fallimento NOTA Il descrittore indicizza questa volta una struttura unica valida per qualsiasi processo

11 Controllo su una coda di messaggi int msgctl(int ds_coda, int cmd, struct msquid_ds *buff) Descrizione Parametri invoca l esecuzione di un comando su una coda di messaggi 1) ds_coda: descrittore della coda su cui s vuole operare 2) cmd: specifica del comando da eseguire (IPC_RMID, IPC_STAT, IPC_SET) 3) buff: puntatore al buffer con eventuali parametri per il comando Descrizione -1 in caso di fallimento IPC_RMID invoca la rimozione della coda dal sistema

12 Spedizione/ricezione di messaggi int msgsnd(int ds_coda, const void *buff, size_t nbyte, int flag) Descrizione Parametri invoca la spedizione di un messaggio su una coda 1) ds_coda: descrittore della coda su cui si vuole operare 2) buff: puntatore al buffer che contiene il messaggio 3) nbyte: taglia del messaggio, in byte 4) flag: opzione di spedizione (IPC_NOWAIT e non bloccante) Descrizione -1 in caso di fallimento int msgrcv(int ds_coda, const void *buff, size_t nbyte, long type, int flag) Descrizione Parametri invoca la ricezione di un messaggio da una coda 1) ds_coda: descrittore della coda su cui si vuole operare 2) buff: puntatore al buffer che dovra contiene il messaggio 3) nbyte: numero massimo di byte del messaggio da ricevere 4) type: tipo del messaggio da ricevere 5) flag: opzione di spedizione (IPC_NOWAIT e non bloccante) Descrizione -1 in caso di fallimento

13 Gestione dei tipi di messaggi il tipo di un messaggio e specificato nei primi byte del contenuto del messaggio stesso il processo che spedisce il messaggio si fa carico di definire il tipo e scriverlo all interno del contenuto tipo 0 in ricezione significa gestione FIFO tipo X>0 in ricezione significa che siamo interessati solo a messaggi di tipo X tipo X<0 in ricezione significa che siamo interessati a tutti i messaggi di tipo compreso tra 0 ed X (l ordine di estrazione segue il valore crescente del tipo) il ricevente viene sempre a sapere il tipo esatto del messaggio ricevuto poiche esso e codificato nei primi 4 byte del contenuto del messaggio

14 Esempio di applicazione: trasferimento stringhe tra processi #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <stdio.h> #define TAGLIA 128 typedef struct{ long mtype; char mtext[taglia]; msg; int ris; void produttore(int ds_coda) {/* lettura delle stringhe e spedizione sulla coda */ msg messaggio; printf("digitare le stringhe da trasferire (quit per terminare):"); do { scanf("%s",messaggio.mtext); messaggio.mtype = 1; ris = msgsnd(ds_coda, &messaggio, TAGLIA, IPC_NOWAIT); if ( ris == -1 ) printf("errore nella chiamata msgsnd"); while( (strcmp(messaggio.mtext,"quit")!= 0)); exit(0); continua

15 void consumatore(int ds_coda) { /* ricezione delle stringhe e visualizzazione sullo standard output */ msg messaggio; do { ris = msgrcv(ds_coda, &messaggio, TAGLIA, 1, 0); if ( ris == -1 ) printf("errore nella chiamata msgrcv"); printf("%s\n", messaggio.mtext); while( (strcmp(messaggio.mtext,"quit")!= 0)); exit(0); int main(int argc, char *argv[]) { int des_coda, status; long chiave = 40; des_coda = msgget(chiave, IPC_CREAT IPC_EXCL 0666); if ( des_coda == -1 ) printf("errore nella chiamata msgget"); if ( fork()!=0 ) { if ( fork()!=0 ) { wait(&status); wait(&status); else produttore(des_coda); else consumatore(des_coda); ris = msgctl(des_coda, IPC_RMID, NULL); if ( ris == -1 ) printf("errore nella chiamata msgctl");

16 Mailslot NT/2000 send asincrona o sincrona (bloccante o non) receive bloccante e non bloccante (sincrone o non) buffering in memoria kernel ed a capacita limitata indirizzamento indiretto nessuna gestione della tipologia di messaggi (no multiplexing) il contenuto di un messaggio ha taglia tipicamente variabile La comunicazione avviene come scritture e letture simili a quelle su file Ogni lettura ha effetto di estrarre tutto il messaggio scritto Si ha errore se la lettura stessa chiede l estrazione du un numero di byte inferiore rispetto all intero contenut del messaggio

17 Creazione di un Mailslot HANDLE Creat slot(LPCTSTR lpname, DWORD nmaxmessagesize, DWORD lreadtimeout, LPSECURITY_ATTRIBUTES lpsecurityattributes) Descrizione invoca la creazione di un mailslot Restituzione un handle al nuovo mailslot in caso di successo, INVALID_HANDLE_VALUE in caso di fallimento

18 Parametri lpname: nome per identificare il mailslot in maniera univoca nel sistema nmaxmessagesize: massima dimensione del messaggio che puo essere scritto nel mailslot lreadtimeout: tempo (in millisecondi) che una operazione di lettura su un Mailslot vuoto attende prima di ritornare (MAILSLOT_WAIT_FOREVER per aspettare indefinitamente) lpsecurityattributes: puntatore a struttura SECURITY_ATTRIBUTES Vincolo: il nome del mailslot deve avere la forma \\.\mailslot\[path]name

19 Apertura, lettura, scrittura e rimozione di un Mailslot CreateFile Permette di ottenere un handle per il mailslot preesistente ReadFile WriteFile CloseHandle Permette di leggere messaggi dal mailslot Permette di scrivere messaggi sul mailslot Permette rimuovere il mailslot in caso non vi siano altri handle validi per esso Vincolo: la lettura deve specificare un numero di byte almeno pari a quelli scritti per un determinato messaggio

20 #include <stdio.h> #include <string.h> #include <windows.h> #define TAGLIA 50 int ris; Trasferimento di stringhe void produttore(handle my_mailslot) { char messaggio[taglia]; DWORD written; BOOL ris; printf("digitare le stringhe da trasferire (quit per terminare):"); do { scanf("%s",messaggio); ris = WriteFile(my_mailslot, messaggio, strlen(messaggio) + 1, &written, NULL); if (!ris ) { printf("errore nella chiamata WriteFile\n"); ExitProcess(-1); while( (strcmp(messaggio,"quit")!= 0)); ExitProcess(0); continua

21 void consumatore(handle my_mailslot) { char messaggio[taglia]; DWORD read; BOOL ris; do { ris = ReadFile(my_mailslot, messaggio, TAGLIA, &read, NULL); if (!ris ) { printf("errore nella chiamata ReadFile!\n"); ExitProcess(-1); printf("%s\n", messaggio); while( (strcmp(messaggio,"quit")!= 0)); ExitProcess(0); int main(int argc, char *argv[]) { HANDLE my_mailslot; BOOL newprocess; STARTUPINFO si; PROCESS_INFORMATION pi; memset(&si, 0, sizeof(si)); memset(&pi, 0, sizeof(pi)); si.cb = sizeof(si); continua

22 if ( argc == 1){ my_mailslot = Creat slot("\\\\.\\mailslot\\my_mailslot", TAGLIA, MAILSLOT_WAIT_FOREVER, NULL); if ( my_mailslot == INVALID_HANDLE_VALUE ) { printf("\n errore nella chiamata Creat slot \n"); ExitProcess(-1); newprocess = CreateProcess(".\\maislot.exe", ".\\maislot.exe son", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi); if (newprocess == 0) { printf("errore nella generazione del secondo processo!\n"); ExitProcess(-1); continua consumatore(my_mailslot);

23 else { my_mailslot = CreateFile("\\\\.\\mailslot\\my_mailslot", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if ( my_mailslot == INVALID_HANDLE_VALUE ) { printf("errore nella chiamata CreateFile\n"); ExitProcess(1); produttore(my_mailslot); return(0);

Pipes e named pipes: 1. Nozioni preliminari 2. Pipes e named pipes (FIFO) in sistemi UNIX 3. Pipes e named pipes sistemi Windows

Pipes e named pipes: 1. Nozioni preliminari 2. Pipes e named pipes (FIFO) in sistemi UNIX 3. Pipes e named pipes sistemi Windows Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Pipes e named pipes: 1. Nozioni preliminari 2. Pipes e named pipes

Dettagli

Corso di Sistemi Operativi Programmazione di Sistema e Concorrente

Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Lezione VII Code di messaggi PIPE - FIFO Argomenti della lezione

Dettagli

Argomenti della lezione. Messaggi. Formato di un messaggio. Corso di Sistemi Operativi Programmazione di Sistema e Concorrente

Argomenti della lezione. Messaggi. Formato di un messaggio. Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Argomenti della lezione Corso di Sistemi Operativi Programmazione di Sistema e Concorrente Nozioni preliminari sullo scambio di

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi primavera 2009 System V IPC code di messaggi System V IPC I tre tipi di IPC di System V sono: Code di Messaggi Semafori Memoria Condivisa Identificatori Ogni struttura IPC è individuata tramite un identificatore

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3 code di messaggi XSI IPC Code di Messaggi Semafori Memoria Condivisa 2 1 Identificatori Ogni struttura IPC è individuata tramite un identificatore ( intero>0

Dettagli

Esercitazione: Utilizzo delle Pipe

Esercitazione: Utilizzo delle Pipe Esercitazione: Utilizzo delle Pipe Specifica del problema Struttura generale del programma Esempio per Unix Esempio per Windows 1 Esercizio Realizzazione di una semplice shell che sia in grado di accettare

Dettagli

Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo

Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo www.dis.uniroma1.it/~midlab Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica e Automatica A.A. 2014-2015 Prof. Roberto

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

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 I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Memoria condivisa e semafori: 1. Memoria condivisa 2. Sezioni critiche

Dettagli

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX)

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX) Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 28 giugno 2016 (Traccia A) Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine

Dettagli

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Concorrenza, comunicazione e sincronizzazione 1. Memoria condivisa e sezioni critiche 2. Approcci

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 7 settembre 2012 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

INTERPROCESS COMMUNICATION 27

INTERPROCESS COMMUNICATION 27 INTERPROCESS COMMUNICATION 27 - Le comunicazioni tra processi (IPC, Intreprocess Communication) sono realizzate mediante strutture dati rese disponibili dal kernel. Sono disponibili 3 tipologie di comunicazioni

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato-2 dup, dup2 System Call sync, fsync, fdatasync fcntl 2 1 Condivisione di file Unix supporta la possibilità che più processi

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 12 febbraio 2018 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 21 settembre 2017 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 8 Martedì 31-10-2017 1 Scambio di messaggi (message passing) Questa tecnica

Dettagli

Esercizio sulla gestione di file in Unix. Sistemi Operativi T AA

Esercizio sulla gestione di file in Unix. Sistemi Operativi T AA Esercizio sulla gestione di file in Unix Sistemi Operativi T AA 2011-2012 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 7 Martedì 23-10-2018 1 Scambio di messaggi (message passing) Questa

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercizi Programmazione con i socket 2 Programma di

Dettagli

Esercitazioni 13 e 14

Esercitazioni 13 e 14 Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazioni 13 e 14 Comunicazione tra processi (IPC) Meccanismo per la comunicazione

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Una Coda. client 1. client 2. server1. client 3. server2. client 4. client 1. client 2. server1. client 3. server2. client 4

Una Coda. client 1. client 2. server1. client 3. server2. client 4. client 1. client 2. server1. client 3. server2. client 4 ESEMPIO Consegna piatto Cuochi Camerieri Presenta ordine Tavoli (aree condivise) Bigliettini/Piatti (dati) Cuoco 1 Cuoco 2 ORDINI Cameriere 1 Cameriere 2 Cameriere 3 Cameriere 4 PIATTI Aree condivise:

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La

Dettagli

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE Disciplina: Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazione Cognome e Nome:

Dettagli

Principles of Concurrent Programming

Principles of Concurrent Programming Principles of Concurrent Programming Alessio Vecchio alessio.vecchio@unipi.it Dip. di Ingegneria dell Informazione Università di Pisa Tratte da Principi e tecniche di progammazione concorrente, cap. 2

Dettagli

Problema dei Produttori e dei Consumatori

Problema dei Produttori e dei Consumatori Problema dei Produttori e dei Consumatori Appartiene alla categoria di problemi nei quali l esecuzione di un processo dipende dall esecuzione di un altro, per cui è necessaria una comunicazione asincrona

Dettagli

Primitive asincrone. Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione.

Primitive asincrone. Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione. Primitive asincrone Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione. Il supporto a tempo di esecuzione deve fornire un meccanismo di accodamento dei

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 6 Martedì 24-10-2017 1 Sostituzione del codice Tipicamente, dopo una

Dettagli

Fondamenti di Informatica L-A

Fondamenti di Informatica L-A Fondamenti di Informatica L-A Esercitazione del 23/11/07 Ing. Giorgio Villani Ripasso Teoria Funzioni ricorsive 2 fatt(2) 1 2*fatt(1) fatt(1) 1 2*1 1*fatt(0) fatt(0) 1*1 caso base fatt(0)=1 Esercizio 1

Dettagli

C UDP in Windows p53 - variante 1

C UDP in Windows p53 - variante 1 // UDPclient.c C UDP in Windows p53 - variante 1 /* Testo del problema Il processo client invia la stringa "INVIAMI UN NUMERO" diverse volte in un intervallo di tempo di 1 secondo ad un processo server

Dettagli

Interazione tra Processi. Sistemi Operativi T AA

Interazione tra Processi. Sistemi Operativi T AA Interazione tra Processi Sistemi Operativi T AA 2012-13 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun

Dettagli

Sistemi Operativi Teledidattico

Sistemi Operativi Teledidattico Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 1 febbraio 2016 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Crea un nuovo processo. Al processo padre ritorna il PID del figlio. Al processo figlio ritorna 0

Crea un nuovo processo. Al processo padre ritorna il PID del figlio. Al processo figlio ritorna 0 Crea un nuovo processo. Al processo padre ritorna il PID del figlio. Al processo figlio ritorna 0 Sequenza di operazioni di fork: * alloca una entry nella tabella dei processi * assegna un unico ID al

Dettagli

Interazione tra Processi. Sistemi Operativi T AA

Interazione tra Processi. Sistemi Operativi T AA Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3 Marzo-Giugno 2008 Matricole congrue 0 mod 3 IPC: Memoria condivisa e Semafori Memoria Condivisa Permette a due o più processi di condividere una zona di memoria È l IPC più veloce perché in questo caso

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux caratteristiche

Dettagli

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >

Dettagli

Processi: 1. Modelli a stati 2. Rappresentazione di processi 3. Liste di processi e scheduling 4. Processi in sistemi operativi attuali (NT/UNIX)

Processi: 1. Modelli a stati 2. Rappresentazione di processi 3. Liste di processi e scheduling 4. Processi in sistemi operativi attuali (NT/UNIX) Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Processi: 1. Modelli a stati 2. Rappresentazione di processi 3. Liste

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: protocollo connection-oriented 1 of 15 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

Politecnico di Torino

Politecnico di Torino Politecnico di Torino INFORMATICA II Esame del 29 Novembre 2008 Un file di testo di lunghezza ignota contiene le misure delle potenze di segnale radio di vari Access Point [AP] (l apparecchiatura che viene

Dettagli

Gestione dei File C. Generalità

Gestione dei File C. Generalità Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 19 febbraio 2013 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Fondamenti di Informatica T-1 modulo 2

Fondamenti di Informatica T-1 modulo 2 Fondamenti di Informatica T-1 modulo 2 Contenuti n Parametri passati a linea di comando 2 Overview n Il risultato del processo di compilazione/linking è un file eseguibile (un programma) n Abbiamo visto

Dettagli

GESTIONE DELLA COMUNICAZIONE LOCALE TRA PROCESSI IN UNIX:

GESTIONE DELLA COMUNICAZIONE LOCALE TRA PROCESSI IN UNIX: GESTIONE DELLA COMUNICAZIONE LOCALE TRA PROCESSI IN UNIX: Il primo meccanismo di comunicazione tra processi locali in ambiente Unix e stato il meccanismo delle pipe. Per processo locale si intende un processo

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

Terza Esercitazione. Gestione di segnali in Unix Primitive signal e kill!

Terza Esercitazione. Gestione di segnali in Unix Primitive signal e kill! Terza Esercitazione Gestione di segnali in Unix Primitive signal e kill! Primitive fondamentali signal kill pause alarm sleep Imposta la reazione del processo all eventuale ricezione di un segnale (può

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2017/2018. Ing. Carlo Vallati

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2017/2018. Ing. Carlo Vallati Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2017/2018 Ing. Carlo Vallati carlo.vallati@unipi.it 1 Esercizi Programmazione con i socket 2 Programma di oggi

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

La Comunicazione tra Processi in Unix

La Comunicazione tra Processi in Unix La Comunicazione tra Processi in Unix La è un canale di comunicazione tra processi: unidirezionale: accessibile ad un estremo in lettura ed all'altro in scrittura molti-a-molti: più processi possono spedire

Dettagli

Principles of Concurrent Programming

Principles of Concurrent Programming Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi

Dettagli

LINUX: struttura generale

LINUX: struttura generale LINUX: struttura generale User Interface The layers of a UNIX system. 1 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line)

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) - Memoria Condivisa (Shared Memory) - Semafori - Code di Messaggi (Sulle sito del corso trovate

Dettagli

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) IPC. Memoria Condivisa

INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) IPC. Memoria Condivisa INTER-PROCESS COMMUNICATION (IPC) SYSTEM (Bach: the Design of the Unix Operating System ; manuale on-line) - Memoria Condivisa (Shared Memory) - Semafori - Code di Messaggi (Sulle sito del corso trovate

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 8 Giovedì 25-10-2018 Comunicazione con pipe Oltre che con la memoria

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec

Seconda Esercitazione. Gestione di processi in Unix Primitive Fork, Wait, Exec Seconda Esercitazione Gestione di processi in Unix Primitive Fork, Wait, Exec System call fondamentali fork exit wait exec Generazione di un processo figlio, che condivide il codice con il padre e possiede

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 25 settembre 2014 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 16 febbraio 2016 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 31 MARZO 2006

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A ) 31 MARZO 2006 SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 05-06) 31 MARZO 2006 Esercizio Si realizzi un programma concorrente per UNIX che deve avere una parte in Bourne Shell e una parte in C. La parte

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

Fondamenti di Informatica T-1 modulo 2

Fondamenti di Informatica T-1 modulo 2 Fondamenti di Informatica T-1 modulo 2 Contenuti Parametri passati a linea di comando 2 Overview Il risultato del processo di compilazione/linking è un file eseguibile (un programma) Abbiamo visto almeno

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Il sistema operativo LINUX Semafori. Semaforo. Sommario. Sommario. Uso delle pipe. Gestione di semafori tramite pipe. Sistemi operativi Modulo II

Il sistema operativo LINUX Semafori. Semaforo. Sommario. Sommario. Uso delle pipe. Gestione di semafori tramite pipe. Sistemi operativi Modulo II Il sistema operativo LINUX Semafori Semaforo Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Un semaforo è una variabile

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 9 Martedì 6-11-2018 I thread nello standard POSIX: la libreria pthreads

Dettagli

Processi. Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Processi. Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Processi Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Processi independenti e cooperanti I processi concorrenti possono essere Indipendenti Cooperanti

Dettagli

TECN.PROG.SIST.INF. Creazione di un processo in Windows. Roberta Gerboni

TECN.PROG.SIST.INF. Creazione di un processo in Windows. Roberta Gerboni Roberta Gerboni // Funzione delle API di Windows // Crea un nuovo processo e il relativo thread primario. // Il nuovo processo viene eseguito nel contesto di protezione // del processo chiamante BOOL WINAPI

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

uid_t getuid(void); //real-user-id del chiamante getegid(void); //effective-user-id del chiamante gid_t getgid(void); //real-group-id del chiamante

uid_t getuid(void); //real-user-id del chiamante getegid(void); //effective-user-id del chiamante gid_t getgid(void); //real-group-id del chiamante #include // typedef long pid_t; // typedef long uid_t; // typedef long gid_t; pid_t getpid(void); //pid del chiamante; pid_t getppid(void); //pid del padre uid_t getuid(void); //real-user-id

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei

Dettagli

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire..

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire.. File I file sono una illusione creata dal Sistema Operativo(SO) Il SO usa opportune strutture dati per implementare tale astrazione (ad esempio: File Control Block, FCB) Sono usati per memorizzare in modo

Dettagli

Esercizio 1 (15 punti)

Esercizio 1 (15 punti) Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind

Dettagli

Addendum alle chiamate di sistema per la gestione processi. E Mumolo

Addendum alle chiamate di sistema per la gestione processi. E Mumolo Addendum alle chiamate di sistema per la gestione processi E Mumolo Definiamo un processo proc.c che scrive l'argomento passato in linea: void main(int argc, char *argv[]){ printf("sono il processo %s\n",

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Fondamenti di Informatica II

Fondamenti di Informatica II Università degli studi di Messina Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Fondamenti di Informatica II Tipi di dati astratti(adt)- seconda parte Coda Struttura

Dettagli

case 0: /* child 1 - writing end */ close(fd[0]); // close read end write(fd[1], string, (strlen(string)+1));/* +1 is termination \0 */ return (0);

case 0: /* child 1 - writing end */ close(fd[0]); // close read end write(fd[1], string, (strlen(string)+1));/* +1 is termination \0 */ return (0); ESERCIZIO RELATIVO ALLA PARTE DI UNIX (3 punti) Si scriva un programma per realizzare la comunicazione unidirezionale via pipe fra due processi fratelli, in cui un fratello invia all altro la stringa "Good

Dettagli

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Chiamata di procedura remota Meccanismo di comunicazione e sincronizzazione tra processi in cui un processo che richiede un servizio ad un altro processo rimane sospeso fino al completamento del servizio

Dettagli

Corso di Sistemi Operativi

Corso di Sistemi Operativi Corso di Sistemi Operativi Comunicazione tra processi (IPC) a.a. 2012/2013 Francesco Fontanella Comunicazione tra processi I processi in esecuzione concorrente possono essere indipendenti o cooperanti.

Dettagli

La gestione dell'errore

La gestione dell'errore La gestione dell'errore Esiste una variabile globale intera, definita nell'header errno.h che viene settata nel caso in cui una chiamata di sistema non possa eseguire correttamente il suo compito. Tale

Dettagli

Funzioni come parametri

Funzioni come parametri Funzioni come parametri Obiettivi: Riprendere il modello computazionale alla base del linguaggio C (e mostrare i parametri del main) Presentare e sperimentare le funzioni come parametri di funzione 1 Modello

Dettagli

Contenuti: 1. Strumenti per il debugging nel Kernel LINUX: printk() e panic()

Contenuti: 1. Strumenti per il debugging nel Kernel LINUX: printk() e panic() Sistemi Operativi III Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Contenuti: 1. Strumenti per il debugging nel Kernel LINUX: printk()

Dettagli

Controllo dei Processi 1

Controllo dei Processi 1 Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti

Dettagli