LA SINCRONIZZAZIONE TRA PROCESSI
|
|
- Orlando Magnani
- 8 anni fa
- Visualizzazioni
Transcript
1 LA SINCRONIZZAZIONE TRA PROCESSI E' più complesso scrivere programmi concorrenti rispetto a programmi sequenziali in quanto non basta essere sicuri della correttezza dei singoli moduli ma è necessario garantire il loro corretto funzionamento per ogni possibile combinazione di interazioni che questi possono avere. Esempio concettuale dove possiamo comprendere gli effetti disastrosi che possono essere generati da errori dipendenti dal tempo o dalla errata sincronizzazione. Quando di usa la programmazione concorrente, per evitare errori dipendenti dal tempo bisogna rispettare condizioni di Bernstein regola di mutua esclusione (proprietà safety) proprietà fairness (correttezza) proprietà liveness (sopravvivenza)
2 1 condizioni di Bernstein Concetti di dominio e rango intersezione Verificare se le condizioni di Bernstein sono verificate nei 3 esempi sotto riportati
3 2 regola di mutua esclusione Si ha mutua esclusione quando non più di un processo alla volta può accedere a una risorsa comune. Esempio Si hanno due procedure che operano sulle stesse celle di memoria, quindi due sezioni critiche: Procedura 1: Scrive un nuovo dato nella prima posizione disponibile Procedura 2: Legge l'ultimo dato inserito e lo cancella Procedura 1 (verde) ultimo = ultimo vet_dati[ultimo] = Procedura 2 (rossa) letto = vet_dati[ultimo] vet_dati[ultimo] = ultimo = ultimo Se mischio le istruzioni delle due procedure il risultato finale è diverso. I processi non devono interferire tra di loro nell'accesso alle risorse condivise ultimo = ultimo letto = vet_dati[ultimo] vet_dati[ultimo] = ultimo = ultimo vet_dati[ultimo] =
4 3 proprietà fairness (correttezza) Garantisce che tutti i processi prima o poi portino a compimento il loro lavoro. Cioè evita la Starvation (blocco individuale). Si verifica quando un processo rimane in attesa di un evento che non accadrà mai. 4 proprietà liveness (sopravvivenza) Garantisce che un processo non aspetti indeterminatamente che una risorsa venga rilasciata. Cioè evita il Deadlock - abbraccio mortale (blocco multiplo). Si verifica a causa di condizioni cicliche. Esempio concettuale Si può verificare se 4 automezzi giungono contemporaneamente da ogni strada all'incrocio e tutti gli autisti si comportano in maniera diligente, cioè danno la precedenza a destra, come previsto dal regolamento della strada, gli automezzi rimangono bloccati senza possibilità di soluzione.
5 SINCRONIZZAZIONE TRA PROCESSI: SEMAFORI Il programmatore che vuole implementare del codice con esecuzione concorrente ha a disposizione due funzioni P(S) e V(S) che servono per sincronizzare i processi. Semafori di Dijkstra Le due primitive P(S) e V(S) permettono la soluzione di qualsiasi problema di interazione fra processi. P proberen testare (controlla il semaforo e se verde lo diminuisce) V verhogen aumentare (sveglia il processo in attesa e aumenta il semaforo) S semaforo numero intero non negativo S= rosso, S> verde Un processo che vuole accedere a una risorsa condivisa esegue la primitiva P(S) Quando il processo ha terminato di utilizzare la risorsa condivisa esegue la primitiva V(S)
6 Esempio Si consideri un array da 2 celle, ciascuna di esse destinata a contenere una variabile da condividere, trattasi quindi di una risorsa condivisibile con molteplicità pari a 2. Inizialmente tutte le celle sono vuote, quindi S=2. Se un processo P1 vuole utilizzare una cella, esegue la funzione P: controlla che S = poiché S=2 accede alla risorsa pone S=1 Se un processo P2 vuole utilizzare una cella, esegue la funzione P: controlla che S = poiché S=1 accede alla risorsa pone S= Se un processo P3 vuole utilizzare una cella, esegue la funzione P: controlla che S = poiché S= non accede alla risorsa viene posto nella coda di attesa Se nel frattempo P1 ha terminato di utilizzare la risorsa, esegue la funzione V: controlla se è presente un processo in attesa poiché trova P3 nella coda pone P3 nello stato di pronto pone S=1 A sua volta P3 esegue la funzione P controlla che S = poiché S=1 accede alla risorsa pone S= e così via
7 Semafori come vincoli di precedenza p.15 I semafori binari (S= rosso e S=1 verde) possono anche essere utilizzati per stabilire vincoli di precedenza sull esecuzione di gruppi di operazioni in processi paralleli.
8 Problema del rendez-vous p.151
9 Problemi classici della programmazione concorrente: 1. Produttori e consumatori (p.156) 2. Lettori e scrittori (p.162) 3. Deadlock (p.168) Produttori e consumatori p. 156 Sono presenti due processi il primo, produttore, che scrive un dato in un'area di memoria condivisa il secondo, consumatore, che preleva il dato prodotto dal primo e lo consuma. Vincoli gestiti da semafori: Il produttore deve depositare un dato alla volta non deve scrivere un nuovo dato se il consumatore non ha prelevato il dato precedente. Il consumatore deve prelevare un dato alla volta e solo dopo che sia stato depositato dal produttore non deve prelevare due volte lo stesso dato Lettori e scrittori p. 162 In questo caso più lettori possono contemporaneamente utilizzare un dato senza danneggiarlo. Quindi un lettore può accedere a un dato anche se è già presente un altro lettore, mentre lo scrittore deve accedere in modo esclusivo, cioè quando nessun altro lettore o scrittore sta leggendo o scrivendo un dato.
10 Deadlock (stallo multiplo) p.168 Il deadlock si verifica quando due processi si ostacolano a vicenda impedendosi reciprocamente di portare a termine il proprio lavoro. Affichè si verifichi un deadlock devono verificarsi contemporaneamente le seguenti 4 condizioni: 1. mutua esclusione: ogni risorsa o è assegnata a un solo processo o è libera 2. assenza di prerilascio: le risorse devono essere rilasciate volontariamente dai processi 3. richieste bloccanti: se il processo non può evolvere senza quella risorsa 4. attesa circolare: ci sono due processi ognuno in attesa di una risorsa occupata dall'altro. Come affrontare il deadlock (p.173) 1. Detection e recovery (rivelarlo e guarirlo) (p.173) 2. Avoidance (evitarlo) (p.174) 3. Prevention (prevenirlo) (p.175) 4. Ignorarlo (p.176) Detection e ricovery (rivelarlo e guarirlo) p.173 Possibili soluzioni: 1. Terminazione dei processi: Si forza la terminazione di un processo alla volta finché non si elimina lo stallo. 2. Prerilascio di una risorsa: Si forza il rilascio di una risorsa 3. Checkpoint/Rollback (salvataggio/ripristino): Si salva periodicamente lo stato dei processi sul disco e in caso di deadlock si ripristina uno o più processi a uno stato precedente. Avoidance (evitarlo) Algoritmo del banchiere (p.174) Ogni processo deve dichiarare il massimo numero di risorse che gli sono necessarie e a ogni nuova richiesta di una risorsa l'algoritmo deve calcolare la quantità di risorse rimanenti, se queste possono soddisfare la massima richiesta di almeno un processo che ancora deve essere servito l'allocazione viene accordata, altrimenti viene negata.
11 Esempio: Si ha un computer con 3 stampanti su cui vanno in esecuzione 3 processi (P1, P2 3 P3) contemporaneamene. P1 ha bisogno al massimo di una stampante. P2 ha bisogno al massimo di 2 stampanti. P3 ha bisogno al massimo di una stampante. processi in esecuzione contemporaneamente numero massimo di risorse richieste contemporaneamente stato del processo richiesta risorse se accolta richiesta risorsa allocata stato del processo risorse in uso richiesta risorse se accolta richiesta risorsa allocata stato del processo risorse in uso richiesta risorse se accolta richiesta risorsa allocata stato del processo risorse in uso richiesta risorse se accolta richiesta risorsa allocata stato del processo risorse in uso richiesta risorse se accolta richiesta risorsa allocata stato del processo risorse in uso P1 1 in esecuzione 1 sì in esecuzione 1 sì in esecuzione 1 in esecuzione 1 libera risorsa in esecuzione in esecuzione P2 2 in esecuzione no in esecuzione 2 no in attesa in attesa 2 sì in esecuzione 2 in esecuzione 2 libera risorse P3 1 in esecuzione no in esecuzione no in esecuzione 1 no in attesa in attesa 1 sì in esecuzione 1 libera risorsa 3 3-1= = 2 2-1= = = 3
12 Prevention (prevenirlo) (p.175) Si elimina una delle condizioni che provocano un deadlock 1. Mutua esclusione: ogni risorsa o è assegnata a un solo processo o è libera Si elimina permettendo la condivisione di risorse. 2. Assenza di prerilascio: le risorse devono essere rilasciate volontariamente dai processi. Si elimina obbligando un processo a rilasciare le risorse che possiede quando ne richiede un'altra che in quel momento non è disponibile e il processo sarà fatto ripartire solo quando può riguadagnare tutte le risorse che gli servono per evolvere. 3. Richieste bloccanti: se il processo non può evolvere senza quella risorsa Si elimina imponendo che un processo prima di impossessarsi di una risorsa, verifica se sono disponibili tutte le risorse di cui ha bisogno per evolvere, solo in caso positivo se ne impossessa, altrimenti aspetta. (Allocazione totale, hold and wait, filosofi a cena) 4. Attesa circolare: ci sono due processi ognuno in attesa di una risorsa occupata dall'altro. Si elimina attribuendo alle risorse dei valori di priorità e imponendo che a ogni processo possono essere allocate solo risorse di priorità superiore a quelle che già possiede, se invece ha bisogno di una risorsa a priorità inferiore, deve prima rilasciare tutte le risorse con priorità uguale o superiore a quella desiderata. Ignorare lo stallo (p.176) Algoritmo dello struzzo (nascondere la testa sotto la sabbia pensando così di essersi nascosto)). E' troppo costoso mettere in atto le precauzioni sopra descritte, quindi conviene ignorare il problema e affrontarlo solo se si verifica effettuando il reset del sistema. I Monitor p.181 I semafori sono un meccanismo molto potente, ma molto rischioso e difficoltoso per realizzare la sincronizzazione tra processi. Nei linguaggi evoluti di alto livello, come il java, è il compilatore che introduce il codice necessario alla sincronizzazione tra processi, questo meccanismo si chiama monitor. Monitor: Costrutto sintattico utilizzato per effetturae il controllo degli accessi a una risorsa condivisa tra processi concorrenti, che associa un insieme di procedure/funzioni (chiamte entry) a una struttura dati comune a più processi. Le entry sono le sole operazioni permesse su quella struttura. Le entry sono mutuamente esclusive, cioè eseguite da un solo processo alla volta. Per ogni risorsa si crea un monitor che definisce lo stato della risorsa, i processi possono aggiornare lo stato della risorsa mediante le entry.
I THREAD O PROCESSI LEGGERI Generalità
I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono
DettagliSISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007
2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si
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
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliIl costrutto monitor [Hoare 74]
Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry, o public) ad una struttura dati comune a più processi, tale che: Le operazioni
Dettagli1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
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
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
DettagliDeadlock (stallo) Parte III. Deadlock
Parte III Deadlock Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 III - 1 Deadlock (stallo) Su di un tavolo ci sono un piatto ed una forchetta A e B sono seduti al tavolo, per mangiare ciascuno
DettagliSistemi Operativi Esercizi Sincronizzazione
Sistemi Operativi Esercizi Sincronizzazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Esercizi Sincronizzazione Sistemi Operativi - Claudio Palazzi 14 Semafori (1) Semafori: variabili intere contano
DettagliIntroduzione ai Metodi Formali
Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di
DettagliSistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >
Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego
DettagliDeadlock e Starvation
DTI / ISIN / Titolo principale della presentazione 1 Deadlock e Starvation Amos Brocco, Ricercatore, DTI / ISIN 3 aprile 2012 Condivisione di risorse In un sistema si trovano delle risorse che possono
DettagliIl costrutto monitor [Hoare 74]
Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry o public) ad una struttura dati comune a più processi, tale che: Le operazioni
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,
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
DettagliIntroduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)
Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,
DettagliCorso di Programmazione Concorrente
Corso di Programmazione Concorrente Stallo Valter Crescenzi crescenz@dia.uniroma3.it http://www.dia.uniroma3.it/~crescenz Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita
DettagliMonitor. Introduzione. Struttura di un TDA Monitor
Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione
Dettagli1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti
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
DettagliPag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo
Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione
Dettaglicopie di salvaguardia
Sicurezza informatica copie di salvaguardia Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Sicurezza informatica Le principali problematiche relative alla sicurezza delle informazioni
DettagliInformatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione
Informatica 3 Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Lezione 6 - Modulo 1 La gestione delle eccezioni Politecnico
DettagliDTI / ISIN / Titolo principale della presentazione. La cena dei filosofi. Amos Brocco, Ricercatore, DTI / ISIN. 14 maggio 2012
DTI / ISIN / Titolo principale della presentazione 1 La cena dei filosofi Amos Brocco, Ricercatore, DTI / ISIN 14 maggio 2012 Il problema dei filosofi a cena Il problema dei filosofi a cena Il problema:
DettagliOlga Scotti. Basi di Informatica. File e cartelle
Basi di Informatica File e cartelle I file Tutte le informazioni contenute nel disco fisso (memoria permanente del computer che non si perde neanche quando togliamo la corrente) del computer sono raccolte
DettagliJava threads (2) Programmazione Concorrente
Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and
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
DettagliESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.
ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei
DettagliLinguaggio SQL: costrutti avanzati
Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione
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
DettagliS E R V I Z I & S I S T E M I
WORDSURVEY PLUGIN Plugin per sondaggi Servizi&Sistemi snc P.I. 00695650259 P.zza degli Alpini, 15 32020 Lentiai (BL) Tel. 0437 552337 www.sersis.com Sommario INTRODUZIONE... 2 CREAZIONE SONDAGGIO... 2
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliProgrammazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1
+ Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati
DettagliIl descrittore di processo (PCB)
Il descrittore di processo (PC) Il S.O. gestisce i processi associando a ciascuno di essi un struttura dati di tipo record detta descrittore di processo o Process Control lock (PC) Il PC contiene tutte
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
DettagliCIRCOLARE RILEVA WEB del 19/05/2009
M:\Manuali\Rileva Web\Treviso\Circolare 19052009.doc CIRCOLARE RILEVA WEB del 19/05/2009 1. FILTRO DIPENDENTI...2 1.1. CREAZIONE TABELLA FILTRI...2 1.2. SEGNALAZIONE ESPORTAZIONE...3 1.3. ELIMINAZIONE
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliFOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA
FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliMANUALE D'USO DEL PROGRAMMA IMMOBIPHONE
1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma
DettagliI 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)?
DettagliAggiornamento programma da INTERNET
Aggiornamento programma da INTERNET In questo documento sono riportate, nell ordine, tutte le operazioni da seguire per il corretto aggiornamento del ns. programma Metodo. Nel caso si debba aggiornare
DettagliGestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i
DettagliScheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base
Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi
DettagliRappresentazione delle informazioni
Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliCapitolo 7: Sincronizzazione
Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1
DettagliLa Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
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
DettagliSISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliConfigurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith
Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................
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
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
DettagliPROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliLo scheduling. Tipici schedulatori
Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo
DettagliElementi di Architettura e Sistemi Operativi
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 15 Giugno 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 4 problema 2 6 problema
DettagliIl Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliManuale Terminal Manager 2.0
Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette
DettagliLABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in
DettagliAccess. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database
Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione
Dettaglilo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliRegolamento In italiano
Exploding Kittens Regolamento In italiano Giocatori: 2-5 (fino a 9 se si uniscono due mazzi) Contenuto: 56 carte Ehi! Non leggete questo regolamento! Leggere è il modo peggiore per imparare a giocare a
DettagliUn sistema operativo è un insieme di programmi che consentono ad un utente di
INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli
DettagliAppunti di Sistemi Elettronici
Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare
DettagliTRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.
Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Nel caso di successo, i risultati delle operazioni effettuate devono essere resi definitivi; invece,
DettagliGuida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua
Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua Moodle è la piattaforma didattica per l'e-learning utilizzata dall'istituto Giua per consentire ai docenti di creare
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliDENUNCE EDILCONNECT GUIDA COMPILAZIONE
Cassa Edile Como e Lecco DENUNCE EDILCONNECT GUIDA COMPILAZIONE COMPILAZIONE DA FILE PAGHE Guida per i consulenti e le imprese che compilano la denuncia utilizzando il file di esportazione dei software
DettagliCPU. Maurizio Palesi
CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore
Dettagli2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso
2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliVeneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311
Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 INDICE 1. INTRODUZIONE... 3 1.1 SCADENZA... 3 1.2 CAUSALE DA UTILIZZARE... 3 2. MODALITÀ OPERATIVE DI COMUNICAZIONE DATI... 4
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
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
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari
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
DettagliStudio Legale. Guida operativa
Studio Legale Guida operativa Cliens Studio Legale Web Cliens Studio Legale Web è un nuovo strumento che consente all avvocato di consultare i dati presenti negli archivi Cliens del proprio studio, attraverso
DettagliSistemi Operativi. Lezione 7 Comunicazione tra processi
Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt
DettagliJ. Assfalg Appunti di Sistemi Operativi
Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche
DettagliAmministrazione gruppi (all interno della Scuola)
Amministrazione gruppi (all interno della Scuola) Guida breve per il docente che amministra il gruppo Premessa Il gruppo viene creato solo dall amministratore della Scuola. Il docente che è stato inserito
DettagliModulo gestione antiriciclaggio. Soggetti coinvolti
Modulo gestione antiriciclaggio Il modulo consente la completa gestione di tutti gli adempimenti previsti per i liberi professionisti dalla normativa vigente in materia di antiriciclaggio. In particolare
DettagliArchivi e database. Prof. Michele Batocchi A.S. 2013/2014
Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi
DettagliINSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)
INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine
DettagliINFORMATION TECNOLOGY. a cura di Alessandro Padovani padoale@libero.it
INFORMATION TECNOLOGY 3 a cura di Alessandro Padovani padoale@libero.it 1 SICUREZZA DELLE INFORMAZIONI Le politiche di sicurezza dei dati informatici (che sono spesso il maggior patrimonio di un azienda)
DettagliSISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007
2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?
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
DettagliCAPITOLO 24 I MONITOR
EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Dettagli