Laboratorio di Sistemi Operativi
|
|
- Gianmaria Santoro
- 8 anni fa
- Visualizzazioni
Transcript
1 Laboratorio di Sistemi Operativi Segnali a.a. 2011/2012 Francesco Fontanella
2 Segnali - Introduzione I segnali sono interrupt software a livello di processo comunicano al processo il verificarsi di un evento ad ogni evento corrisponde un segnale numerato Permettono la gestione di eventi asincroni che interrompono il normale funzionamento di un processo a.a. 2011/2012 2
3 Segnali: breve storia La versione "non affidabile" è stata introdotte dalle prime versioni di UNIX: segnali potevano essere persi Unix 4.3BSD e SySVR3 introducono segnali affidabili : Si evita la possibilità che un segnale vada perso POSIX.1 standardizza la gestione dei segnali a.a. 2011/2012 3
4 Segnali - Introduzione Caratteristiche dei segnali Ogni segnale è identificato da una costante (definita nel file signal.h) che inizia con i tre caratteri SIG ES: SIGABRT è il segnale di abort Numero segnali: 15-40, a seconda della versione di UNIX POSIX: 18 Linux: 38 Il numero 0 identifica il segnale nullo (null signal) a.a. 2011/2012 4
5 Segnali - Introduzione I segnali sono eventi asincroni, gestiti tramite delle funzioni definite ad hoc, chiamate signal handler. Il principio di funzionamento dei segnali è il seguente Se e quando arriva un certo segnale, esegui questa funzione a.a. 2011/2012 5
6 Condizioni che possono generare segnali Combinazione di tasti speciali sul terminale Es: Premere il tasto Ctrl-C genera il segnale SIGINT Eccezioni hardware Divisione per 0 (SIGFPE) Riferimento non valido a memoria (SIGSEGV) L'interrupt viene generato dall'hardware, e catturato dal kernel; questi invia il segnale al processo in esecuzione La syscall kill permette di spedire un segnale ad un altro processo Limitazione: UID del processo che esegue kill deve essere lo stesso del processo a cui si spedisce il segnale, oppure deve essere 0 (root) a.a. 2011/2012 6
7 Condizioni che possono generare un segnale Comando kill Interfaccia shell alla syscall kill: ES: ~$ kill TERM <PID_of_proc_to_kill> ~$ kill 9 <PID_of_proc_to_kill> Condizioni software Eventi asincroni generati dal software del sistema operativo, non dall'hardware della macchina Esempi: terminazione di un child (SIGCHLD) generazione di un alarm (SIGALRM) a.a. 2011/2012 7
8 Segnali - Azioni associate Ignorare il segnale Alcuni segnali che non possono essere ignorati: SIGKILL e SIGSTOP Perchè?: è necessario consentire al superutente di terminare i processi Segnali hardware: comportamento non definito in POSIX se ignorati Azione di default Per molti segnali "critici" quest'azione è la terminazione del processo Può essere generato un file di core dump a.a. 2011/2012 8
9 Segnali - Azioni associate Catturare ("catch") il segnale: Il kernel informa il processo chiamando una funzione specificata dal processo stesso (signal handler) Il signal handler gestisce il problema nel modo più opportuno Esempio: Se si riceve il segnale SIGTERM (terminazione standard), possibile azioni potrebbero essere: rimozione dei file temporanei, salvare file a.a. 2011/2012 9
10 Signal handler Handler: SO signal movl pushl addl movl... a.a. 2011/
11 Alcuni segnali NOME AZIONE NOTA SIGABRT terminazione, core dump Generato dalla syscall abort(); terminazione anormale SIGALRM terminazione Generato da un timer settato con la syscall alarm o la funzione setitimer SIGBUS terminazione, core dump Indica un hardware fault (definito dal s.o.) SIGCHLD ignore Quando un processo termina, SIGCHLD viene spedito al processo parent SIGFPE terminazione, core dump Eccezione aritmetica, come divisioni per 0 SIGHUP terminazione Inviato ad un processo se il terminale viene disconnesso SIGILL terminazione, core dump Il processo ha eseguito un'azione illegale SIGINT terminazione Il processo ha ricevuto un carattere di interruzione (Ctrl-C) dal terminale SIGIO terminazione, ignore Evento I/O asincrono, non POSIX a.a. 2011/
12 Alcuni segnali NOME AZIONE NOTA SIGKILL terminazione Maniera sicura per uccidere un processo: non può essere intercettato SIGPIPE terminazione Scrittura su pipe/socket chiusa in lettura SIGSEGV terminazione, core dump Il processo ha eseguito un riferimento di memoria non valido SIGSYS terminazione, core dump Il processo ha eseguito una syscall non valida (Es. parametro errato) SIGTERM terminazione Segnale di default generato dal comando kill SIGURG ignore dati out-of-band ricevuti da una connessione di rete, non POSIX SIGUSR1, terminazione Segnali non definiti, utilizzabili a livello utente SIGUSR2 SIGTSTP sospensione Generato quando un processo riceve un carattere di suspend (Ctrl-Z) dal terminale a.a. 2011/
13 Funzione signal Funzione void (*signal(int signo, void (*func)(int)))(int); Descrizione: signo: l'identificatore del segnale che si vuole catturare func: l'azione da eseguire (l'handler) SIG_IGN: ignora il segnale (non applicabile a SIGKILL e SIGSTOP) SIG_DFL: azione di default l'indirizzo del signal handler: quando si vuole catturare il segnale (non applicabile a SIGKILL e SIGSTOP) valore di ritorno: il valore del precedente signal handler (per un eventuale ripristino), oppure SIG_ERR in caso di errore a.a. 2011/
14 Segnali - Generazione Syscall: int kill(pid_t pid, int signo); La funzione kill spedisce un segnale ad un processo oppure a un gruppo di processi Argomento pid: pid > 0 spedito al processo identificato da pid pid == 0 spedito a tutti i processi appartenenti allo stesso gruppo del processo che invoca kill pid < -1 spedito al gruppo di processi identificati da pid Pid == -1 non definito Argomento signo: Numero di segnale spedito La funzione restituisce 0 se in caso di successo, -1 altrimenti a.a. 2011/
15 Segnali - Generazione Syscall: int kill(pid_t pid, int signo); Il superutente può spedire segnali a chiunque Altrimenti, il real uid o l'effective uid del processo chiamante (sorgente) deve essere uguale al real uid o l'effective uid del destinatario La syscall kill è asincrona (non bloccante): il processo mittente prosegue immediatamente mentre al destinatario viene notificato il segnale a.a. 2011/
16 Segnali - Generazione POSIX.1 definisce il segnale 0 come il null signal Se il segnale spedito è null, kill esegue i normali meccanismi di controllo errore senza spedire segnali ES: verifica dell'esistenza di un processo; spedizione del null signal al processo (attenzione però: i process id vengono riciclati!) Syscall: int raise(int signo); Spedisce il segnale al processo chiamante a.a. 2011/
17 Segnali - Generazione Syscall: unsigned int alarm(unsigned int sec); Questa funzione permette di creare un allarme che verrà generato dopo il numero specificato di secondi Allo scadere del tempo, il segnale SIGALRM viene generato Attenzione: il sistema non è real-time Garantisce che la pausa sarà almeno di sec secondi Il meccanismo di scheduling può ritardare l'esecuzione di un processo Esiste un unico allarme per processo Se un allarme è già settato, il numero di secondi rimasti prima dello scadere viene ritornato da alarm Se sec è uguale a zero, l'allarme preesistente viene generato a.a. 2011/
18 Segnali - Generazione Syscall: unsigned int alarm(unsigned int sec); L'azione di default per SIGALRM è di terminare il processo Ma normalmente viene definito un signal handler per il segnale Syscall: int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); Permettono un controllo più completo Syscall: int pause(); Questa funzione sospende il processo fino a quando un segnale non viene catturato Ritorna 1 e setta errno a EINTR a.a. 2011/
19 Segnali - Esempio #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> File sigusr.c void catch_signal(int sn) { printf("catch_signal: catched signal: %d\n", sn); } return; int main() { // Si intercettano i segnali SIGUSR1 e SIGUSR2 if (signal(sigusr1, handler)== SIG_ERR) perror( prima signal non riuscita\n ); if (signal(sigusr2, handler)== SIG_ERR) perror( seconda signal non riuscita\n ); Cattura i segnali definiti dall'utente e stampa un messaggio printf("waiting for signal SIGUSR1 or SIGUSR2 \n"); for (;;) ; } return 0; a.a. 2011/
20 Segnali - Esempio Output del programma: $ a.out & [1] 2951 Waiting for signal SIGUSR1 or SIGUSR2 $ kill USR catch_signal: catched signal: 10 $ kill USR catch_signal: catched signal: 12 $ kill [1] + Terminated a.out & ESERCIZIO 1 Modificare il programma precedente in maniera tale da evitare il busy waiting (ciclo for vuoto) ESERCIZIO 2 Modificare il programma precedente in maniera tale da intercettare il segnale SIGSTP, generato dall'utente premendo Ctrl^Z a.a. 2011/
21 Syscall kill(): esempio #include <stdio.h> #include <signal.h> #define MAX_WAIT 10 int cont=0; void handler(int signo) { printf ("Proc. %d: ricevuti n. %d segnali %d\n", getpid(),cont++, signo); } int main () { int pid; if (signal(sigusr1, handler)== SIG_ERR) perror( prima signal non riuscita\n ); } pid = fork(); if (pid == 0) /* figlio */ for (;;) pause(); else /* padre */ for(;;) { sleep(rand()% MAX_WAIT) kill(pid, SIGUSR1); a.a. 2011/
22 Segnali Syscall sleep() Sysem call: unsigned int sleep(unsigned int seconds); Causa la sospensione del processo fino a quando: L'ammontare di tempo specificato trascorre return value: 0 un segnale viene catturato e il signal handler effettua un return return value: tempo rimasto prima del completamento della sleep NOTA: la sleep può concludersi DOPO il tempo richiesto (no real time) a.a. 2011/
23 Syscall sleep(): Esempio #include <signal.h> void stampa(int signo) { printf("sono stato risvegliato!!\n"); } int main() { int k; } signal(sigusr1, stampa); k=sleep(1000); printf("valore di k: %d\n", k); exit(0); a.a. 2011/
24 Segnali Syscall Syscall: void abort(); questa syscall spedisce il segnale SIGABRT al processo comportamento in caso di: SIG_DFL: terminazione del processo SIG_IGN: non ammesso signal handler: il segnale viene catturato nel caso che il segnale venga catturato, il signal handler: può eseguire return può invocare exit o _exit in entrambi i casi, il processo viene terminato motivazioni per il catching: cleanup a.a. 2011/
25 Segnali - Startup Quando un programma esegue una syscall fork: I signal catcher settati nel parent vengono copiati nel figlio Quando un programma viene eseguito tramite exec Se il signal catcher per un certo segnale è default o ignore, viene lasciato inalterato nel child Se il signal catcher è settato ad una particolare funzione, viene cambiato a default nel child Motivazione: la funzione settato può non esistere più nel figlio Casi particolari Quando un processo viene eseguito in background Segnali SIGINT e SIGQUIT vengono settati a ignore In che momento / da chi questa operazione viene effettuata? a.a. 2011/
26 Esercizio: Ping - Pong Scrivere un programma che genera due processi che si scambiano segnali (SIGUSR1 o SIGUSR2) per un numero N di volte 1 Il valore di N deve essere passato alla riga di comando 2 Il primo a lanciare un segnale deve essere il padre 3 Il signal handler deve visualizzare il pid del processo e il numero di volte che è stato intercettato Suggerimenti: Utilizzare le syscall sleep() e pause() a.a. 2011/
27 Esercizio: Sincronizzazione tramite segnali realizzare un meccanismo basato su segnali per risolvere il problema produttore / consumatore processo padre:il produttore produce numeri interi consecutivi stampa il proprio pid e il numero prodotto processo figlio: consumatore, consuma i numeri prodotti dal padre stampa il proprio pid e il numero consumato I due processi utilizzano un buffer di dimensione 1, realizzato con un file condiviso a.a. 2011/
28 Esercizio: Sincronizzazione tramite segnali processo padre: apre il file condiviso in scrittura utilizza lseek per scrivere sempre all'inizio scrive i 4 byte che rappresentano un int processo figlio: apre il file condiviso in lettura utilizza lseek per leggere sempre all'inizio legge i 4 byte che rappresentano un int a.a. 2011/
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
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
DettagliSincronizzazione 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,
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
DettagliSegnali. 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
DettagliSincronizzazione tra processi UNIX: i segnali. Sincronizzazione tra processi
Sincronizzazione tra processi UNIX: i segnali Sincronizzazione tra processi Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi
DettagliSincronizzazione tra processi in Unix: i segnali
Sincronizzazione tra processi in Unix: i segnali 1 Sincronizzazione tra processi I processi interagenti possono avere bisogno di sincronizzazione. Unix: non c è condivisione di variabili tra processi:
DettagliProgrammazione di sistema in Linux: System Call per i Segnali. E. Mumolo
Programmazione di sistema in Linux: System Call per i Segnali E. Mumolo Eventi asincroni: segnali I segnali permettono la gestione di eventi asincroni che interrompono il normale funzionamento di un processo
DettagliSincronizzazione tra processi. Sincronizzazione tra processi. segnali. Segnali UNIX
Sincronizzazione tra processi Sincronizzazione tra processi UNIX: i segnali Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi
DettagliSincronizzazione tra processi in Unix: : i segnali. Sistemi Operativi T AA
Sincronizzazione tra processi in Unix: : i segnali Sistemi Operativi T AA 2009-2010 1 Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni
DettagliSistemi 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
DettagliSincronizzazione tra processi! in Unix: i segnali!
Sincronizzazione tra processi! in Unix: i segnali! 1 Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni dei processi interagenti. Unix
DettagliSincronizzazione tra processi in Unix: i segnali
Sincronizzazione tra processi in Unix: i segnali Sincronizzazione tra processi La sincronizzazione permette di imporre vincoli sull'ordine di esecuzione delle operazioni dei processi interagenti. Unix
DettagliI 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
DettagliLABORATORIO 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 (parte II)
DettagliSegnali. Tecnica di comunicazione asincrona tra processi. Si può solo inviare uno tra un insieme fissato di segnali
Segnali ed allarmi Segnali Tecnica di comunicazione asincrona tra processi Si può solo inviare uno tra un insieme fissato di segnali Il destinatario viene interrotto, e si salta ad una procedura specifica
DettagliProcessi Aspetti avanzati. Terminazione Segnali
Processi Aspetti avanzati Terminazione Segnali Inizializzazione e terminazione di un programma Dal punto di vista dell'utente, ogni programma "inizia" dalla funzione main() E' la prima funzione utente
DettagliLaboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva 18 Segnali
Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva 18 Segnali I lucidi di seguito riportati sono distribuiti nei termini della licenza Creative Commons Attribuzione/Condividi allo stesso
DettagliModulo 7 System call relative ai segnali
1 Modulo 7 Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli (Università di Bologna), Alberto Montresor
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()
DettagliI segnali. First the signals described in the original POSIX standard.
I segnali Prof.ssa Sara Michelangeli I segnali sono interruzioni inviate ai processi dal kernel, da un altro processo utente, oppure da un processo a se' stesso. Possono essere utilizzati dal sistema operativo
DettagliIl 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:
DettagliLaboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 modulo 3
Marzo-Giugno 2008 Matricole congrue 0 modulo 3 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un
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
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:
DettagliProcessi. Segnali. Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Processi Segnali Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Interruzioni Interrupt Interruzione del procedimento corrente dovuto al verificarsi di un evento straordinario
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
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 -
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
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,
DettagliCREAZIONE DI UN FILE
#include #include 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
DettagliModulo extra: Inter Process Communication (IPC)
1 Modulo extra: (IPC) Laboratorio di Sistemi Operativi I Anno Accademico 2005-2006 Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Copyright 2005 Francesco Pedullà, Massimo Verola
DettagliModulo 5: Programmazione di sistema Parte E: Segnali e pipe
1 Modulo 5: Programmazione di sistema - - - Parte E: Laboratorio di Sistemi Operativi I Anno Accademico 2006-2007 Francesco Pedullà (Tecnologie Informatiche) Massimo Verola (Informatica) Copyright 2005-2006
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
DettagliVi sono spesso eventi importanti da notificare ai processi:
Sincronizzazione mediante segnali Vi sono spesso eventi importanti da notificare ai processi: tasti speciali sul terminale (es. ^C) eccezioni hardware (es. divisione per 0) primitiva/comando kill (es.
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
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 -
DettagliProcesso in esecuzione
Sincronizzazione mediante segnali Vi sono spesso eventi importanti da notificare ai processi: tasti speciali sul terminale (es. ^C) eccezioni hardware (es. divisione per 0) primitiva/comando kill (es.
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à
DettagliAvvio. La funzione main puo' avere due argomenti argc ed argv, ma in realta' oltre a argc ed argv c'e' qualche cosa di piu'.
Avvio Quando un programma viene eseguito, prima vengono caricate le librerie condivise che servono al programma, poi viene effettua il link dinamico del codice e alla fine avviene l'esecuzione vera e propria.
DettagliPronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
DettagliProcesso in esecuzione
Sincronizzazione mediante segnali Vi sono spesso eventi importanti da notificare ai processi: tasti speciali sul terminale (es. ^C) eccezioni hardware (es. divisione per 0) primitiva/comando kill (es.
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
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
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
DettagliQuinta 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
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
DettagliEsercizio 2. Client e server comunicano attraverso socket TCP
Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si
DettagliModello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
DettagliEsempi. Sincronizzazione tra processi: I Segnali. I segnali sono interrupt software, che segnalano il verificarsi di eventi asincroni:
Sincronizzazione tra processi: I Segnali I segnali sono interrupt software, che segnalano il verificarsi di eventi asincroni: generati da terminale (combinazioni di tasti, es. ctrl-c) eccezioni hardware
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
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
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/
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.
DettagliArchitettura di un sistema di calcolo
Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
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
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
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
DettagliTerza 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ò
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
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
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
DettagliCorso di Laboratorio di Sistemi Operativi A.A
Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 16 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche
Dettagli2. I THREAD. 2.1 Introduzione
2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:
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
DettagliI Thread. Laboratorio Software 2008-2009 M. Grotto R. Farina
I Thread M. Grotto R. Farina Sommario 1. I Thread Introduzione 2. Creazione e terminazione Utilizzo Scheduling dei processi 3. Comunicazione 4. Attributi Passaggio di parametri Funzioni utili Descrizione
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
DettagliTerza Esercitazione. Gestione di segnali in Unix Primitive signal e kill
Terza Esercitazione Gestione di segnali in Unix Primitive signal e kill signal kill pause alarm sleep Primitive fondamentali Imposta la reazione del processo all eventuale ricezione di un segnale (può
DettagliProgrammazione di Sistema 4
Programmazione di Sistema 4 Paolo Baldan Università Ca Foscari Venezia Corso di Laurea in Informatica Parte di questo materiale è rielaborato dalle slide del Corso di Laboratorio di Sistemi Operativi tenuto
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
DettagliSistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi
Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione
DettagliPOSIX Systems Programming. geek evening 0x0d. ambienti POSIX. By lord_dex ZEI e Salug! presentano:
POSIX Systems Programming Syscall e fondamenti della ambienti POSIX programmazione in By lord_dex f.apollonio@salug.it ZEI e Salug! presentano: geek evening 0x0d INDICE Processi e Thread Creazione ed utilizzo
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliThread: sincronizzazione Esercitazioni del 09 Ottobre 2009
Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria October 10, 2009 Sincronizzazione - 1 1 Esercizio 1: Sincronizzazione - 1 Qual è il problema
DettagliSistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto
DettagliDefinizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base
Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore
DettagliCapitolo 3 -- Silberschatz
Processi Capitolo 3 -- Silberschatz Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati
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
DettagliSistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 8 Semaphore.h Segnali Shell e processi
Sistemi operativi ì Corso di Laurea Triennale in Ingegneria Informatica Lezione 8 Semaphore.h Segnali Shell e processi Domande sulle lezioni passate? Sommario Semafori generali Segnali descrizione
DettagliSistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità
DettagliInput/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche
Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli
DettagliProcessi in Unix. Capitolo 8 -- Stevens
Processi in Unix Capitolo 8 -- Stevens Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro Identificatori di processi Ogni processo ha un identificatore
DettagliProgetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008
Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008 Si consideri una rete di sensori MicaZ con sistema operativo TinyOS, dove ogni nodo è identificato da un ID unico e dove è presente un solo
DettagliSistemi Operativi (modulo di Informatica II) Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliIl sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione
Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
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
DettagliProcessi 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
DettagliSISTEMI 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
DettagliConcetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:
Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo
DettagliSistemi Operativi. Esercitazione 8. Corso di Laurea Triennale in Ingegneria Informatica.
1 Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 8 Semaphore.h Segnali Shell e processi daniel.cesarini@for.unipi.it Domande sulle lezioni passate Sommario Semafori
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
DettagliProgram m azione di Sistem a 4
Program m azione di Sistem a 4 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
DettagliLe 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)
DettagliCORSO 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
DettagliEsempio: aggiungere j
Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi
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
Dettagli