Inter-Process Communication
|
|
- Luisa Tortora
- 8 anni fa
- Visualizzazioni
Transcript
1 Inter-Process Communication C. Baroglio a.a Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication). Queste strutture consentono inoltre lo scambio di dati fra processi. IPC contiene tre tipi di strutture: semafori, code di messaggi e memoria condivisa. Lo schema di utilizzo delle tre è identico: 1. uno dei processi alloca la struttura di interesse; 2. tutti i processi che devono essere sincronizzati tramite la struttura, utilizzano una chiave comune, decisa a tempo di programmazione, per fare riferimento alla struttura allocata. Tale chiave è usata anche dal processo allocatore; 3. le strutture di IPC possono essere utilizzate solo per mezzo di system call predefinite; 4. una volta terminato il compito previsto, le strutture di IPC devono essere esplicitamente disallocate da uno dei processi in questione (non necessariamente il processo che ha effettuato l allocazione). Per ciascuno dei tre tipi di strutture IPC sono definite una system call -get e una system call -ctl: la prima consente alternativamente di allocare un semaforo, una coda o un area di memoria condivisa, oppure di ottenere l identificatore di accesso a una struttura allocata da un altro processo. La seconda system call consente di eseguire operazioni diverse, specificate da nomi in codice, fra i quali la disallocazione della struttura condivisa (operazione: IPC RMID). Infine per ciascuna struttura sono previste system call specifiche che consentono, nel caso dei semafori di eseguire le operazioni di sincronizzazione up e down, nel caso delle code di messaggi di effettuare send e receive e, per la memoria condivisa, di agganciare l area in questione allo spazio degli indirizzi di un processo. Queste note contengono una descrizione ad alto livello delle system call viste a lezione ed integrano i lucidi. Per i dettagli si consulti il manuale on-line. 1
2 2 Chiavi ed identificatori interni Una struttura di IPC è in un certo senso esterna a qualsiasi processo, anche al processo allocatore, ed è gestita dal sistema operativo. Il numero di strutture allocabili in un sistema è finito e ciascuna struttura è rappresentata da una struttura dati contenente tutte le informazioni che la riguardano. Queste strutture dati variano a seconda del tipo di oggetto IPC che consideriamo. Per allocare una struttura di IPC vengono utilizzate le system call -get: semget (semafori), msgget (code di messaggi) e shmget (aree di memoria condivisa). In tutti e tre i casi il primo argomento è un numero intero detto chiave e il risultato restituito dalla system call è un altro numero intero detto identificatore. In un certo senso anche la chiave è un identificatore della struttura in questione, il suo uso è però assai diverso da quello del valore restituito da una -get. Siano prog1.c e prog2.c i codici sorgenti di due programmi che generano due processi P1 e P2 da sincronizzare. Il primo richiede l allocazione di un semaforo, che sarà utilizzato anche dal processo generato dal secondo programma. P1 eseguirà una semget, richiedendo al sistema operativo di allocare un semaforo. Ottiene come risultato un identificatore che gli consente di accedere alla specifica struttura semaforo allocata. P2 dovrà accedere, affinché le cose funzionino come desideriamo, alla stessa struttura semaforo allocata da P1. P2 però non può sapere quale struttura è stata allocata dal sistema operativo e quindi quale identificatore è stato restituito a P1, a meno che P1 e P2 non abbiano definito un nome convenzionale con il quale identificano la struttura di IPC in questione; tale nome convenzionale è la chiave. Per fare un analogia, facciamo finta che invece di semafori si parli di numeri di telefono: un numero di telefono identifica (in senso lato) un utente. Tale utente avrà però anche un nome: per telefonare a una persona posso chiedere a un servizio automatico di darmi il numero associato al nome che mi interessa. Ebbene, per tornare ai semafori, il nome è l analogo della chiave, il numero di telefono lo è dell identificatore restituito da semget e infine il servizio automatico è il sistema operativo. Non posso telefonare a una persona se conosco solo il suo nome (chiave), devo avere il suo numero (identificatore). 3 Allocazione e accesso Ciascuna system call -get ha diversi usi e comportamenti che dipendono dai valori del primo e dell ultimo suo argomento. Il primo argomento, lo abbiamo visto, è la chiave. L ultimo è detto normalmente flag e specifica sia i diritti di accesso da associare alla struttura condivisa sia alcune opzioni relative alla creazione. Vediamo i casi principali. Supponiamo che un processo voglia allocare una nuova struttura dati condivisa. Può procedere in due modi. Il più semplice è utilizzare la specifica convenzionale IPC PRIVATE come chiave. IPC PRIVATE forza l allocazione di un nuovo oggetto IPC, se vi è ancora spazio disponibile, il cui identifica- 2
3 tore viene restituito al processo chiamante. Questa soluzione può apparire in contrasto con quanto spiegato sopra, in quanto IPC PRIVATE non è una vera chiave (è solo l indicazione di creare forzatamente un nuovo oggetto), non può quindi essere usata per accedere all identificatore di uno specifico semaforo, a una specifica coda o a una specifica area di memoria condivisa. Questa soluzione è però molto comoda quando un processo alloca delle strutture i cui identificatori verranno passati in eredità ai processi figli. Supponiamo che il codice contenga l istruzione: semid = semget(ipc PRIVATE,...,... ) Il valore restituito da semget viene salvato in una variabile di tipo intero. Quando il processo eseguirà una fork, il figlio erediterà una copia della variabile semid e del suo valore. Erediterà quindi l identificatore del semaforo allocato, restituito dal sistema operativo e potrà usarlo per eseguire operazioni sul semaforo, senza dover eseguire una seconda semget. La soluzione precedente funziona se i processi da sincronizzare sono in relazione padre figli. Non sempre questo è il caso. Più in generale i processi da sincronizzare saranno avviati da comandi differenti all interno di shell differenti. Occorre quindi specificare chiavi effettive affinché possano usare le stesse strutture IPC. Supponiamo di voler usare la chiave 1234 e che un processo esegua semget(1234,...,... ). Ci sono due possibilità: o il semaforo richiesto non è ancora stato allocato oppure è già stato allocato da qualche processo (in generale un processo diverso dal nostro). Nel secondo caso la semget restituisce semplicemente l identificatore del semaforo allocato. Se invece non esiste alcun semaforo con quella chiave, il sistema operativo può ancora eseguire due operazioni diverse: l allocazione oppure la restituzione di un errore. Il comportamento tenuto dipende dal valore dei flag. Entrambe le operazioni sono lecite: a seconda dello schema di sincronizzazione che si intende implementare può darsi che il nostro processo debba effettivamente interpretare il ruolo dell allocatore della struttura oppure può darsi che questo ruolo competa ad un altro processo. Nel secondo caso, se il nostro processo scopre che la struttura non è ancora stata allocata, deve fermarsi perché probabilmente qualcosa è andato storto. Supponiamo che non esista alcuna struttura IPC del tipo richiesto, con la chiave specificata, e che il nostro processo debba fungere da allocatore. In questo caso occorre specificare come flag della system call -get un or bit a bit, i cui operandi sono la parola chiave IPC CREAT (senza e finale) e i diritti di accesso che si intende assegnare all oggetto allocato; per esempio IPC CREAT IPC CREAT è una costante predefinita nel sistema, 0600 i diritti di accesso di cui parleremo più avanti. Per esempio: semid = semget(1234,..., IPC CREAT 0600) Si osservi che, nel caso in cui dovesse esistere una struttura di IPC con chiave identica a quella specificata, la -get non eseguirebbe alcuna allocazione e si limiterebbe a restituire l identificatore trovato. Se invece vogliamo che il processo non esegua alcuna allocazione e si limiti ad utilizzare una struttura IPC già allocata, restituendo errore nel caso che non 3
4 la trovi, è importante non specificare IPC CREAT nei flag. Spesso si utilizza in questo caso come flag il valore 0. Per esempio: semid = semget(1234,..., 0) 4 Parametri specifici delle varie system call -get Nelle sezioni precedenti sono state illustrate le caratteristiche comuni delle varie system call -get. Ciascuna di esse ha però anche alcuni parametri specifici, che catturano caratteristica della struttura di IPC considerata. La system call semget, che consente di allocare semafori, ha tre parametri. Oltre ai due già descritti occorre specificare anche il numero di semafori da allocare. La questione è che in Unix i semafori vengono allocati a pool: ogni struttura IPC mantenuta dal sistema operativo contiene infatti un puntatore a un vettore di semafori in senso tradizionale, ai quali è possibile accedere singolarmente. Supponiamo, per esempio, che un processo padre debba allocare i semafori privati dei propri 10 figli. In Unix può eseguire un unica operazione di allocazione, nella quale richiede di riservare un vettore di 10 semafori. Ciascun figlio potrà accedere al proprio semaforo privato specificandone l indice nell array. La system call msgget, che consente di allocare una coda di messaggi ha solo due parametri: la chiave e i flag, dei quali abbiamo già parlato. Infine, la system call shmget, per le aree di memoria condivisa, ha tre parametri: i due visti più un numero che corrisponde alla dimensione in byte dell area da riservare. 5 System call -ctl Le system call di questo tipo consentono di effettuare operazioni dette di controllo. Ciascuna di esse consente di effettuare una certa varietà di operazioni predefinite. I loro parametri sono: le informazioni necessarie ad identificare la struttura su cui agire, una keyword che codifica l operazione da svolgere, un eventuale parametro dell operazione. 1. semctl(semid, semnum, op, param): alcune delle operazioni che possono essere svolte sui semafori tramite semctl agiscono sull intero pool di semafori allocato, altre su di un elemento del vettore di semafori. Il primo parametro è l identificatore del pool di semafori restituito da semget; il secondo è l eventuale indice di una specifica componente del vettore. Il terzo è l operazione da eseguire. Le più frequenti sono: SETVAL (assegna un valore alla componente di indice semnum del pool semid), GETVAL (restituisce il valore della componente di indice semnum del pool semid), IPC RMID (rimuove l intero pool di semafori). 2. msgctl(msqid, op, param): msqid è l identificatore interno della coda di messaggi su cui si vuole operare, op è l operazione da svolgere, ve ne sono 4
5 diverse, fra di esse la più utilizzata è IPC RMID, che consente di rimuove la coda. Il terzo argomento è un parametro utile ad alcune delle operazioni possibili. 3. shmctl(shmid, op, param): analoga alla precedente, per le aree di memoria condivisa. Il tipo del terzo parametro varia a seconda della system call -ctl considerata. Nel caso dei semafori si tratta di una union semun, nel caso delle code si tratta di un puntatore a struct msqid ds (un tipo di dato predefinito), infine per le aree condivise si tratta di un puntatore a struct shmid ds. La union semun non è un tipo predefinito quindi nel definire variabili di questo tipo occorre specificare l intera struttura, ad esempio: union semun { int val; struct semid ds *buf; ushort t *array; } arg. 6 System call semop semop è una system call specifica per i semafori. Consente di effettuare una serie di operazioni sospensive (up e down) su di un pool di semafori. Ha tre argomenti: l identificatore interno del pool di semafori su cui agire, un vettore di operazioni da eseguire, il numero di tali operazioni. Supponiamo di avere un pool di 2 semafori e di volere che il nostro processo esegua una up sul primo e una down sul secondo. Potrà eseguire le due operazioni con una sola chiamata a semop, nel seguente modo: struct sembuf cmd[2]; semid = semget(key,...);... /* inizializza cmd[0] */... /* inizializza cmd[1] */ semop(semid, cmd, 2); L esecuzione di una sola operazione (up o down) è quindi un caso particolare. Un operazione è descritta da una variabile di tipo struct sembuf (tipo predefinito nel sistema), avente tre campi: short sem num; short sem op; short sem flg. Nell esempio precedente è stato definito un array di due elementi di questo tipo, esso codificherà quindi due operazioni. L operazione descritta da una variabile di tipo struct sembuf viene applicata a una specifica componente del pool di semafori in questione. Tale componente è identificata dal primo campo (sem num). Il secondo campo (sem op) codifica l operazione da compiere. Il terzo, che ignoreremo, specifica ulteriori comportamenti da tenere in taluni casi particolari; per noi varrà sempre zero. Il campo sem op codifica quindi il fatto che la system call debba compiere una up oppure una down. Questo campo contiene un numero intero (short); vediamo il comportamento assunto dal sistema operativo a seconda dei possibili 5
6 valori di questo campo. Chiamando semval il valore corrente del semaforo che ci interessa, ci sono tre possibilità: 1. sem op = = 0: particolarità di Unix, attesa del valore zero. il processo viene sospeso se il semaforo ha valore maggiore di zero. verrà riattivato solo quando il semaforo assume valore zero. Non è un operazione classica dei semafori. 2. sem op > 0: up. semval viene incrementato di sem op unità. 3. sem op < 0: down. sem op semval: semval viene decrementato di sem op unità, il processo continua ad eseguire. sem op > semval: sospensione del processo. Il valore del semaforo rimane immutato. 7 System call msgsnd e msgrcv Vediamo ora le system call specifiche per le code di messaggi, che consentono di effettuare le operazioni di invio (msgsnd) e recezione (msgrcv). Si tratta di system call molto a basso livello che possono essere utilizzate per implementare diverse politiche di sincronizzazione, con e senza attesa. L invio di un messaggio è effettuato tramite msgsnd(int msqid, const void *msgp, size t msgsz, int msgflg). Il primo parametro, msqid, è l identificatore interno della coda alla quale si intende inviare il messaggio. L ultimo parametro, msgflg, specifica il comportamento da tenere nel caso in cui la coda sia piena. Si tratta di una situazione particolare, che difficilmente si verificherà in laboratorio per via delle ridotte dimensioni del progetto. In generale quando la coda è piena 1 e risulta quindi impossibile inserire il messaggio da inviare, il processo può alternativamente attendere che qualche altro processo consumi un messaggio in coda, liberando spazio, oppure terminare immediatamente la msgsnd senza attendere (opzione IPC NOWAIT). I due parametri msgp e msgsz riguardano il messaggio da spedire. Un messaggio è genericamente contenuto in una struttura dati definita dall utente a seconda delle proprie esigenze. Supponiamo che si chiami, per esempio, mio tipo mess. Tale struttura deve però forzatamente contenere due campi, in quest ordine: il primo deve essere un numero intero (long, strettamente maggiore di zero) indicante il tipo del messaggio, il secondo è il campo dati vero e proprio e può essere di qualsiasi tipo. Fra i due non deve essere inserito alcun altro campo. La struttura mio tipo mess potrebbe, per esempio essere così definita: 1 può esserlo in due modi distinti: o perché contiene il numero massimo di messaggi possibili o perché occupa le quantità massima di spazio per essa riservato 6
7 struct mio tipo mess {... long tipo; struct mio dato dati;... } Come vengono utilizzate queste informazioni? Il tipo del messaggio verrà discusso quando si parlerà di msgrcv. Cominciamo da msgp e msgsz. L operazione di inserzione di un messaggio in coda effettuata dalla msgsnd consiste in un operazione di copiatura. Il sistema operativo copia un numero di byte pari al valore di msgsz, consecutivi all indirizzo specificato da msgp all interno della coda; msgp deve essere l indirizzo del campo tipo della struttura dati contenente il messaggio da inviare e dovrebbe essere convertito in un (void *). La system call msgrcv viene utilizzata da un processo che desidera ricevere un messaggio di un tipo specificato e può essere bloccante o non bloccante. È bloccante quando, qualora la coda non contenga messaggi del tipo di interesse, il processo rimanga sospeso in attesa che giunga un tale messaggio, non bloccante altrimenti (in questo caso occorre usare il flag IPC NOWAIT). ssize t msgrcv(int msqid, void *msgp, size t msgsz, long int msgtyp, int msgflg) richiede come primo argomento l identificatore della coda in questione; il secondo argomento è l indirizzo di una variabile all interno della quale verrà memorizzato il messaggio ricevuto (void * è un puntatore generico, occorrerà fare un opportuno cast al tipo di dato del messaggio letto); il terzo argomento è il numero di byte dei quali è costituito il messaggio; msgtyp è il tipo di messaggio atteso; del flag abbiamo già parlato. Il tipo del messaggio atteso deve essere un numero positivo; nel caso particolare in cui si utilizza il valore zero, verrà estratto dalla coda il primo messaggio in essa contenuto, indipendentemente dal suo tipo. 8 System call shmat e shmdt Infine, per quel che riguarda la memoria condivisa, sono disponibili due system call che consentono a un processo di agganciare un area di memoria condivisa, eventualmente allocata da un processo diverso, al proprio spazio degli indirizzi e di sganciarla nel momento in cui non serve più. void *shmat(shmid, addr, flag) vuole come primo argomento l identificatore dell area in questione (restituito da shmget). Come secondo indirizzo utilizzeremo sempre il valore zero. In questo modo lasceremo al sistema operativo la scelta dell indirizzo attraverso il quale agganciare l area condivisa al segmento dati. Il terzo argomento è costituito da eventuali flag di controllo. La system call restituisce un indirizzo generico, del quale occorrerà effettuare il cast ad un opportuno tipo di dato. Se per esempio, in fase di allocazione era stato richiesto di riservare una quantità di spazio sufficiente a contenere un dato di tipo mio tipo dato, occorrerà convertire il puntatore generico restituito da shmat in un mio tipo dato *. 7
8 shmdt ha un solo argomento, un indirizzo restituito da una shmat. Dopo aver eseguito una shmdt sull indirizzo di un area di memoria condivisa, non sarà più possibile per il processo accedere all area in questione, anche se questa non verrà disallocata. 8
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
DettagliInterprocess Communications - II. Franco Maria Nardini
Interprocess Communications - II Franco Maria Nardini XSI IPC Tre tipi di IPC introdotti da System V: semafori shared memory code di messaggi Comunicazioni tra processi su stesso host Tutte consentono
DettagliGestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
Dettagli(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)
(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste
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 Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise
Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3
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
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
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
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...
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à
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4
ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio
DettagliCorso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 6 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Interazione tra Processi I processi concorrenti possono interagire
DettagliB+Trees. Introduzione
B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle
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
DettagliIntroduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliGESTIONE DEI BENI USATI
GESTIONE DEI BENI USATI Di seguito vengono elencate le modalità per gestire l acquisto e la cessione dei beni usati OPERAZIONI PRELIMINARI Per gestire l acquisto e la cessione di beni usati è necessario:
DettagliFIRESHOP.NET. Gestione completa degli ordini e degli impegni. Rev. 2014.3.1 www.firesoft.it
FIRESHOP.NET Gestione completa degli ordini e degli impegni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 Gli ordini a fornitore... 5 Gli impegni dei clienti... 7 Evadere gli ordini
DettagliI Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
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
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliTesti di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
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
DettagliFIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev. 2014.3.1 www.firesoft.it
FIRESHOP.NET Gestione completa delle fidelity card & raccolta punti Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 La gestione delle fidelity card nel POS... 4 Codificare una nuova fidelity
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...
DettagliUTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI
UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all
DettagliFIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it
FIRESHOP.NET Gestione del taglia e colore www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione iniziale... 5 Gestione delle varianti... 6 Raggruppamento delle varianti... 8 Gestire le varianti
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
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliMANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliCREAZIONE DI UN AZIENDA
CREAZIONE DI UN AZIENDA La creazione di un azienda in Businesspass avviene tramite la funzione Aziende Apertura azienda ; dalla medesima sarà possibile richiamare le aziende precedentemente create per
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
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
DettagliI TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.
I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?
DettagliNuova procedura on-line di autocertificazione
Nuova procedura on-line di autocertificazione Il presente manuale ha l obiettivo di fornire le istruzioni operative per la procedura di Autocertificazione Carico Familiari. Tale procedura consente al Dipendente
DettagliPROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1
PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ
DettagliGestione Risorse Umane Web Work-flow Selezione
Gestione Risorse Umane Web Work-flow Selezione Premessa... 2 Richieste di personale create con le precedenti versioni... 3 Configurazioni necessarie... 3 Particolarità... 3 Status delle richieste... 5
DettagliProtezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
DettagliFIRESHOP.NET. Gestione Lotti & Matricole. www.firesoft.it
FIRESHOP.NET Gestione Lotti & Matricole www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione... 6 Personalizzare le etichette del modulo lotti... 6 Personalizzare i campi che identificano
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliSistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO
Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Login All apertura il programma controlla che sia stata effettuata la registrazione e in caso negativo viene visualizzato un messaggio.
DettagliSistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili
Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili Questa presentazione intende illustrare brevemente la nuova funzionalità (Notifiche multiple di DM simili) predisposta
DettagliCoordinazione Distribuita
Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliCERTIFICATI DIGITALI. Manuale Utente
CERTIFICATI DIGITALI Procedure di installazione, rimozione, archiviazione Manuale Utente versione 1.0 pag. 1 pag. 2 di30 Sommario CERTIFICATI DIGITALI...1 Manuale Utente...1 Sommario...2 Introduzione...3
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
DettagliCOLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo
Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;
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
DettagliGENERAZIONE ARCHIVIO F24 AGENZIA ENTRATE
GENERAZIONE ARCHIVIO F24 AGENZIA ENTRATE Il riferimento al manuale è il menù Redditi, capitolo Stampe, paragrafo Versamenti F24, sottoparagrafo Generazione Archivio F24 Agenzia Entrate. Questa funzione
DettagliSistemi Operativi. 5 Gestione della memoria
Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliEsempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante
Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda
DettagliNOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0
Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2
DettagliPortale tirocini. Manuale utente Per la gestione del Progetto Formativo
GESTIONE PROGETTO FORMATIVO Pag. 1 di 38 Portale tirocini Manuale utente Per la gestione del Progetto Formativo GESTIONE PROGETTO FORMATIVO Pag. 2 di 38 INDICE 1. INTRODUZIONE... 3 2. ACCESSO AL SISTEMA...
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliServizio online «Distinta d impostazione Lettere» Istruzioni
Servizio online «Distinta d impostazione Lettere» Istruzioni Edizione giugno 2015 1 Indice 1 Introduzione 3 1.1 Scopo del documento 3 1.2 Scopo della funzione «Impostare invii» > Lettere: Distinta d impostazione
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.
DettagliServizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti
20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1
DettagliA tal fine il presente documento si compone di tre distinte sezioni:
Guida on-line all adempimento Questa guida vuole essere un supporto per le pubbliche amministrazioni, nella compilazione e nella successiva pubblicazione dei dati riguardanti i dirigenti sui siti istituzionali
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliEasyPrint v4.15. Gadget e calendari. Manuale Utente
EasyPrint v4.15 Gadget e calendari Manuale Utente Lo strumento di impaginazione gadget e calendari consiste in una nuova funzione del software da banco EasyPrint 4 che permette di ordinare in maniera semplice
DettagliDeterminare la grandezza della sottorete
Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano
Dettagli5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9
5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliEDICOLA MANAGER 2.2. + EM Importer
EDICOLA MANAGER 2.2 + EM Importer Con la versione 2.2 del programma sono state introdotte numerose novità grazie anche alla collaborazione di colleghi che hanno messo a disposizione utility e documenti
Dettagli4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO
4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta
DettagliAD HOC Servizi alla Persona
Software per la gestione dell amministrazione AD HOC Servizi alla Persona GESTIONE PASTI RESIDENZIALE Le principali funzioni del modulo pasti si possono suddividere nei seguenti punti: gestire le prenotazioni
DettagliQG Gestione Assenze. Inserimento per Classe. Per la gestione delle assenze accedere dal Menu Giornaliere->Assenze e Giustificazioni
QG Gestione Assenze Per la gestione delle assenze accedere dal Menu Giornaliere->Assenze e Giustificazioni Le voci principali che permettono l inserimento delle assenze sono: Inserimento per Classe Inserimento
DettagliMon Ami 3000 Varianti articolo Gestione di varianti articoli
Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione
DettagliGUIDA AL PRONTUARIO MOBILE
GUIDA AL PRONTUARIO MOBILE 1 SOMMARIO Installazione...3 Configurazione...3 Utilizzo...3 Note...10 INDICE DELLE FIGURE Figura 1: schermata di presentazione...4 Figura 2: schermata di login...4 Figura 3:
DettagliAmministrazione gruppi (Comunità)
Amministrazione gruppi (Comunità) Guida breve per il docente che amministra il gruppo Premessa Di regola i gruppi sono creati all interno della Scuola. Nel caso in cui vi fosse la necessità di aprire un
DettagliMANUALE ESSE3 Gestione Registro delle lezioni
MANUALE ESSE3 Gestione Registro delle lezioni DOCENTI 1 INDICE 1. INTRODUZIONE E ACCESSO... 3 2. GESTIONE DEL REGISTRO... 4 2.1. Informazioni generali... 6 2.2. Stato del Registro... 7 2.2.1. Transizioni
DettagliRegimi IVA Speciali MULTI. Gestione Beni Usati
Gestione Beni Usati Introduzione e Impostazioni Il regime speciale per i rivenditori di Beni Usati, di oggetti d arte, di antiquariato e da collezione, introdotto dalla legislazione italiana con il D.L.
DettagliMANUALE UTENTE. P.I.S.A. Progetto Informatico Sindaci Asl
MINISTERO DELL ECONOMIA E DELLE FINANZE DIPARTIMENTO DELLA RAGIONERIA GENERALE DELLO STATO Ispettorato Generale di Finanza MANUALE UTENTE P.I.S.A. Progetto Informatico Sindaci Asl Versione 1.0 INDICE
DettagliExpress Import system
Express Import system Manuale del destinatario Sistema Express Import di TNT Il sistema Express Import di TNT Le consente di predisporre il ritiro di documenti, pacchi o pallet in 168 paesi con opzione
Dettagli1.0 GUIDA PER L UTENTE
1.0 GUIDA PER L UTENTE COMINCIA FACILE Una volta effettuato il login vi troverete nella pagina Amministrazione in cui potrete creare e modificare le vostre liste. Una lista è semplicemnte un contenitore
Dettagli2003.06.16 Il sistema C.R.M. / E.R.M.
2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,
DettagliMODALITA DI REGISTRAZIONE
MODALITA DI REGISTRAZIONE Oltre all Amministratore, ci sono cinque diversi tipi di utenti del Registro: - gli Operatori, le Organizzazioni e i singoli Individui, che devono registrarsi per aprire un conto
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliLe query di raggruppamento
Le query di raggruppamento Le "Query di raggruppamento" sono delle Query di selezione che fanno uso delle "Funzioni di aggregazione" come la Somma, il Conteggio, il Massimo, il Minimo o la Media, per visualizzare
DettagliGESGOLF SMS ONLINE. Manuale per l utente
GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo
DettagliAXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio
AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
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
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
Dettagliwww.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
DettagliCome costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali
PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliManuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote...
Manuale d'uso Sommario Manuale d'uso... 1 Primo utilizzo... 2 Generale... 2 Gestione conti... 3 Indici di fatturazione... 3 Aliquote... 4 Categorie di prodotti... 5 Prodotti... 5 Clienti... 6 Fornitori...
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliCONTENT MANAGEMENT SY STEM
CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES
DettagliGuida alla registrazione on-line di un DataLogger
NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
Dettagli