Appunti Di Sistemi Operativi. Prof. Flavio Cerini

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti Di Sistemi Operativi. Prof. Flavio Cerini"

Transcript

1 Appunti Di Sistemi Operativi Prof. Flavio Cerini DEFINIZIONI PROGRAMMA : Insieme statico di istruzioni (entità passiva) che descrive le azioni da compiere ( un programma viene eseguito ) PROCESSO : Entità attiva che rappresenta l esecuzione di tali azioni ( un processo viene avanzato ). Il processo é il job associato alla risorsa che ha richiesto ( rappresenta l evoluzione dinamica di un programma ) JOB : Una richiesta elementare di utilizzo di una risorsa, presente all interno del programma in esecuzione. ( una singola istruzione ad alto livello contiene molte operazioni. Per la CPU l operazione elementare é il JOB PROCESSORE : Dispositivo che consente l evoluzione e il completamento di un processo ( in genere si intende la CPU ). In multiprogrammazione ogni utente ha l impressione di lavorare con un suo processore virtuale. NB : più processi possono essere associati allo stesso programma : ciascuno rappresenta l esecuzione dello stesso codice con dati diversi ). THREAD : Termine introdotto in tempi molto recenti ( verso la fine degli anni 80 ). Un thread rappresenta un segmento di istruzioni di un processo in esecuzione. Un processo é un insieme di thread che rappresentano il suo codice eseguibile. Un processo é composto come minimo da un thread, ma normalmente ad ogni processo ne vengono associati più di uno in base alle capacità di avanzamento concorrente di ciascuno. La dichiarazione e definizione di un thread può avvenire a livello software ( includendo nel programma opportune chiamate a procedure di sistema che gestiscono i thread ) oppure venire generati autonomamente dal S.O quando é in grado di individuare tra i compiti da eseguire quelli che possono essere resi concorrenti. Un processo multithreading in un certo istante ha più parti in esecuzione cioé più zone di programma che avanzano concorrentemente. Il vantaggio principale che si ottiene ricorrendo ai thread é la maggiore velocità di commutazione. Il processo é un entità più consistente di un thread Il thread viene infatti chiamato anche light process ( processo leggero ) Autore Flavio Cerini 1

2 Definizioni di sistema operativo : 1) Il S.O é il gestore delle risorse del calcolatore, cioé il software di base che serve all utente per lavorare con l hardware. 2) Un S.O può essere definito come un insieme di procedure manuali e automatiche che consentono all utente di un sistema di elaborazione di usarlo efficientemente. 3) Un S.O é un insieme di strumenti per lo sviluppo e l esercizio del software e delle comunicazioni per un dato sistema hardware nel rispetto dei seguenti principi a) Visione astratta delle risorse da parte degli utenti, cioé il più possibile indipendente dalle risorse hardware e dalla loro ubicazione nel sistema hardware b) Gestione corretta, sicura ed efficiente delle risorse 4) Un S.O é un insieme di programmi che assolvono al duplice compito di far vedere all utente una macchina virtuale semplificata e di gestire in maniera ottimizzata le risorse del sistema FUNZIONI SVOLTE DA UN SISTEMA OPERATIVO Le funzioni svolte da un S.O, pur diverse a seconda delle modalità di funzionamento del sistema sono comunque riconducibili ad alcune categorie ben definite. 1) Gestione delle risorse sia hardware ( tempo di cpu, spazio di memoria, dispositivi di I/O ecc ) che software ( file, strutture dati, ecc ). Il S.O assegna le risorse ai processi di utente in base a prefissate politiche. 2) Definizione di una macchina virtuale di più semplice uso da parte degli utenti, in grado di nascondere tutta una serie di particolarità del funzionamento del sistema legate alla struttura del HW ( es gestione interruzioni, utilizzo dei dispositivi di I/O ecc ). La macchina virtuale mette a disposizione dell utente apposite operazioni ( system calls ) che gli consentono di operare ad un livello di astrazione maggiore. Si noti che le due funzioni rappresentano due modi diversi, ma strettamente connessi, di rappresentare il ruolo di un sistema operativo. Autore Flavio Cerini 2

3 RISORSE DEL SISTEMA Un sistema di elaborazione si può considerare suddiviso in quattro gruppi di elementi ( risorse ) MEMORIA CENTRALE PROCESSORE DISPOSITIVO DI I/O MEMORIA DI MASSA struttura di Von Neumann : CPU MEMORIA CENTRALE INPUT /OUTPUT HD Memoria di massa (hard/disk) Le risorse non sono solo hardware ma anche software ( es file presenti in memoria). Il S.O sarà quindi composto di moduli software che si occupano di gestire una singola classe di risorse, garantendo le seguenti funzioni fondamentali : 1) Conoscere lo stato delle risorse di cui sono responsabili 2) Determinare la politica di allocazione della risorsa ( quale processo deve assumere una risorsa, quando e per quanto tempo ) 3) Allocare fisicamente la risorsa secondo la strategia prescelta 4) Deallocare la risorsa secondo la strategia prescelta CONCETTO DI RISORSA RISORSA : Qualsiasi elemento HW oppure SW che viene usato da un processo e che ne condiziona l avanzamento ( o la creazione ) Autore Flavio Cerini 3

4 PRIMA CLASSIFICAZIONE DEI S.O 1) S.O MONOPROGRAMMATI 2) S.O MULTIPROGRAMMATI 3) S.O DISTRIBUITI 1) S.O MONOPROGRAMMATI : S.O nei quali é possibile eseguire un solo programma per volta ; quindi tutte le risorse sono riservate a questo programma. Il S.O sarà abbastanza semplice, non ci sono problemi di competizione per l utilizzo delle risorse ( es S.O MS DOS ) problema : Risorse usate in modo poco efficiente con lunghi tempi di inattività 2) S.O MULTIPROGRAMMATI : Gestiscono sistemi di elaborazione in grado di far eseguire più programmi contemporaneamente. Si possono presentare due casi a) Un unico utente fa girare più programmi b) Più utenti lavorano sul loro programma che gira su un elaboratore centrale In questi ambienti é fondamentale gestire l assegnazione delle risorse. Gli utenti non devono attendere troppo Non si devono creare conflitti fra i processi Vantaggi : - Gestione contemporanea di più programmi indipendenti presenti nella memoria principale - Migliore utilizzazione delle risorse ( riduzione dei tempi morti ) Svantaggi : - Maggiore complessità del S.O - Algoritmi per la gestione delle risorse ( cpu, memoria, I/O ) Autore Flavio Cerini 4

5 - Protezione degli ambienti dei diversi programmi ( CPU 286 e successive ) Nei sistemi multiprogrammati si fa riferimento ai concetti di overlapping e interleaving Si faccia riferimento alla Fig Overlapping : Sovrapposizione temporale di processi Interleaving : alternanza temporale di processi PR2 PR1 overlapping interleaving Tempo di CPU SERVONO PIU CPU UNA SOLA CPU 3) S.O DISTRIBUITI Reti di calcolatori. Un S.O di questo genere deve fare in modo che ogni utente possa connettersi ad una parte qualsiasi del sistema nello stesso modo, come se tutto fosse immediatamente disponibile. Il S.O deve tener conto di molti elementi. La classificazione di cui si é parlato é trasparente per l utente. I comandi di dialogo, il lancio dei programmi, possono essere identici nei tre sistemi visti 4) S.O TIME SHARING Autore Flavio Cerini 5

6 Processore assegnato ad ogni processo per un quanto di tempo ( time slice ). Ogni utente ha l impressione di avere a disposizione tutto il sistema. CLASSIFICAZIONE DEI SISTEMI OPERATIVI L utente può utilizzare un sistema di elaborazione secondo due modalità fondamentali : A) BATCH ( a lotti ) : non c é interazione diretta con l utente. L obiettivo del S.O é l ottimizzazione dell uso delle risorse ( non esistono pregiudiziali verso la multiprogrammazione ) B) INTERATTIVO : l utente vede una propria macchina virtuale con la quale interagire mediante una serie di comandi Un sistema di elaborazione può essere specializzato dal sistema operativo per particolari applicazioni. S.O real time : generalmente sono sistemi dedicati al controllo di processi industriali. Sono molto importanti i brevi tempi di risposta. In particolare si parla di tempo reale stretto ( es processi industriali ) e tempo reale debole ( es prenotazione voli aerei ). S.O dedicati : previsti per sistemi di elaborazione che devono effettuare delle azioni ripetitive ( es controllo di processi industriali ). S.O transazionali : Sistemi interattivi che consentono solo accesso e modifica ad archivi di dati ( applicazioni bancarie ). Autore Flavio Cerini 6

7 STRUTTURA GERARCHICA DI UN SISTEMA OPERATIVO HARDWARE LIV 0 NUCLEO LIV 1 GESTIONE MEMORIA LIV 2 GESTIONE DELL I/O LIV 3 FILE SYSTEM LIV 4 PROGRAMMI UTILITA LIV 5 INTERPRETE COMANDI LIV 6 Scomposizione indicativa dei livelli di un S.O ( struttura a cipolla di un S.O ) Escluso il livello 0, ogni livello realizza le quattro funzioni fondamentali di gestione della risorsa ; con possibilità di accesso a tuuti i livelli inferiori secondo il concetto di macchina virtuale. Autore Flavio Cerini 7

8 FUNZIONI DEI LIVELLI Nucleo o Kernel 1) Conoscere lo stato del del processore e dei programmi in attesa ; il programma che si occupa di ciò é il traffic controller 2) Decidere chi può utilizzare il processore ( job scheduler ) nel caso di multiprogrammazione ( process scheduler ) 3) Allocare la risorsa secondo indicazioni definite in precedenza 4) Rilasciare il processore secondo indicazioni definite in precedenza GESTIONE DELLA MEMORIA CENTRALE 1) Conoscere lo stato della memoria, quali parti sono in uso e quali sono libere 2) In caso di multiprogrammazione, decidere chi dovrà avere spazio in memoria centrale, quando e quanto 3) Allocare la memoria secondo i criteri stabiliti 4) Rilasciare ( deallocare ) la memoria quando non serve più GESTIONE DELL I/O 1) Conoscere lo stato delle periferiche ( I/O traffic controller ) 2) Decidere le modalità di assegnazione delle periferiche ai programmi ( I/O scheduler ) 3) Allocare la risorsa e dare inizio all operazione di I/O 4) Rilasciare la periferica GESTIONE DELLA MEMORIA DI MASSA 1) Conoscere lo stato dei dispositivi di memoria di massa, il loro uso, il modo di accesso ( file system ) 2) Decidere chi potrà utilizzare le utility secondo le caratteristiche specifiche del prodotto. 3) Allocare la funzione utility ( es lanciare software relativo ) 4) Rilasciare la risorsa ( es chiudere la funzione ) INTERPRETE COMANDI 1) Conoscere lo stato dei moduli di sistema esistenti e disponibili per le chiamate dell utente 2) Decidere le tecniche di chiamata delle funzionalità di sistema Autore Flavio Cerini 8

9 3) Esaudire la chiamata 4) Rilasciare la risorsa NB non ci sono necessariamente 6 livelli gerarchici. In tutti i sistemi operativi moderni resta pero valido il concetto dei livelli virtuali e le loro assegnazioni ESEMPIO DOS HARDWARE LIV 0 BIOS LIV 1 DOS LIV 2 Bios : parte bassa de nucleo ( il colloquio con HW avviene tramite INT software ) Dos rappresenta una sintesi dei livelli di astrazione superiori visti precedentemente ( schema generale ). Il modulo IBMBIO ( parte inferiore che completa il nucleo e arriva alla gestione dell I/O. IBMDOS costituisce fondamentalmente il file system Il livello command del DOS é l interprete comandio STATI DI UN PROCESSO Esistono concettualmente due stati per un processo : esecuzione e bloccato a questi si aggiunge uno stato di pronto per motivi di limitazione di risorse ( CPU ). Un processo transita durante la suia vita tra questi stati. E compito del sistema operativo ( nucleo o kernel ) gestire la transizione CICLO DI VITA DI UN PROCESSO Autore Flavio Cerini 9

10 Supponiamo di trovarci in un ambiente multiprogrammato. Quando il job viene mandato in esecuzione ( mandando in esecuzione il programma ), siamo nello stato di lancio Al termine dell esecuzione siamo nello stato di terminato ( vedi Fig. ) 2 PRONTO 1 ACQUISIZIONE LANCIO ATTESA OPP BLOCCO 5 ESECUZIONE 7 TERMINATO 1) ACQUISIZIONE : vengono analizzate tutte le singole richieste del job. Ogni richiesta é messa nella coda di attesa relativa e il programma viene caricato in memoria centrale. A questo punto il job scheduler controlla le richieste del singolo job e quando sono tutte esaudite tranne la CPU avviene il passaggio nello stato di pronto ( transizione 2 ) ( il S.O crea un processo job più risorsa richiesta ) 2) PRONTO : Coda di richieste della CPU ( gestita da process scheduler ). E la più importante da gestire. Una delle tecniche più usate é quella che assegna un intervallo di tempo fisso, senza priorità. Se alla fine del tempo, non ha terminato il lavoro, il processo si mette in fondo alla coda in attesa del prossimo turno. 3) ESECUZIONE : Il processo che in un certo istante é in cima alla coda, passa nello stato di esecuzione e Lavora col processore secondo le modalità definite dal gestore del processore. A questo punto si possono verificare alcune eventualità. Autore Flavio Cerini 10

11 a) Il processo ha finito il suo lavoro col processore prima dello scadere dell intervallo di tempo a sua disposizione b) Il processo non ha terminato il suo lavoro allo scadere dell intervallo a sua disposizione. c) Il processo deve bloccare temporaneamente il lavoro col processore perché ha bisogno, per poter continuare, di eventi di tipo diverso ( es letture opp operazioni di I/O ) a) In questo caso il processo passa tramite la freccia ( 7 ) nello stato di terminato rilasciando tutte le risorse in suo possesso b) Il processo é costretto a rilasciare il processore, ne ha comunque ancora bisogno, quindi tramite la freccia ( 4 ) torna a mettersi in coda per l uso del processore c) Tramite la freccia ( 5 ) passa nello stato di attesa dove resta congelato finché il modulo ( I/O traffic controller ) non gli consente di riprendere il lavoro facendolo passare nello stato di pronto ( 6 ) Esistono tre code ( acquisizione, pronto, attesa ) e il processo cicla fra pronto,esecuzione attesa. PROCESSI E RISORSE Un Job che acquisisce la propria risorsa diventa un processo. Il numero di risorse è limitato, quindi é compito del S.O garantire l avanzamento di tutti i processi senza che si generino sovrappposizioni e ambiguità. PROCESSI SEQUENZIALI Tutti i job vengono eseguiti nello stesso ordine in cui si trovano nel programma originale. Le risorse vengono acquisite secondo l ordine di richiesta. Il tempo di esecuzione complessivo è pari alla somma dei tempi di esecuzione dei vari job. Vantaggi : - SEMPLICITA DELLA SOLUZIONE - LINEARITA Svantaggi: - LUNGHI TEMPI DI INATTIVITA PER LE RISORSE -ATTESE DEI SINGOLI JOB prima di acquisire la loro risorsa e diventare sottoprocessi ( vedi Fig 1 ) Autore Flavio Cerini 11

12 J1 J2 J3 J4 J1 W J2 J3 W J4 t Fig.1 W = wait Si supponga di poter scomporre un processo in più job ( es : Li, Ei, Si ) che eseguono rispettivamente una lettura, eseguono una elaborazione e scrivono i risultati su di un supporto di memorizzazione. ( vedi Fig 2 ) L1 E1 S1 L2 E2 S2 L3 E3 S3 Fig 2 ESEMPIO DI PROCESSO Si può prevedere una organizzazione in processi non sequenziali. Per esempio si può eseguire l elaborazione E2 prima di S1 ma non prima di L2. Si deve tener conto di un diagramma delle precedenze. ( vedi Fig 3 ) Autore Flavio Cerini 12

13 L1 L2 E1 L3 E2 S1 L4 E3 S2 S3 Fig.3 DIAGRAMMA DELLE PRECEDENZE I processi non sequenziali,ordinati secondo dei diagrammi di precedenza, allargano il concetto di esecuzione sequenziale. Nel senso che certe operazioni, legate a risorse distinte, possono essere eseguite contemporaneamente con un evidente risparmio di tempo di esecuzione totale. PROGRAMMAZIONE PARALLELA Una tecnica che prevede la realizzazione di processi non sequenziali, si chiama PROGRAMMAZIONE PARALLELA e si può definire attraverso i seguenti costrutti linguistici : COROUTINE FORK / JOIN COBEGIN / COEND COROUTINE : Assomiglia molto al salto a procedura. La differenza sta nel fatto che non c è l obbligo di ritorno dalla procedura chiamante alla chiamata. L istruzione RESUME consente il passaggio da una COROUTINE ad un altra. Quando si incontra una istruzione di RESUME il controllo passa alla COROUTINE indicata e la precedente si blocca. NB : tale costrutto non realizza una vera programmazione parallela INTERLEAVING ma un Autore Flavio Cerini 13

14 ( avanzamernto alternato) tra più processi. Ci si illude di lavorare in parallelo. ( vedi Fig 4) Fig 4 COSTRUTTO COROUTINE COROUTINE PR1; COROUTINE PR2 ; COROUTINE PR3 ; RESUME PR2 ; RESUME PR3 ; RESUME PR2 ; END. RESUME PR1 ; END. END. FORK / JOIN : Questo costrutto realizza una vera esecuzione parallela dei processi ed é presente in diversi S.O ( es UNIX ). L istruzione FORK produce l attivazione del processo indicato in modo parallelo rispetto al processo chiamante ; l esecuzione torna ad essere sequenziale quando il processo chiamante presenta l istruzione JOIN. A questo punto se il processo chiamato è terminato, il processo chiamante continua il suo lavoro ; se non è terminato, il chiamante attende il termine del processo chiamato. ( vedi Fig.5) Fig. 5 COSTRUTTO FORK / JOIN PROCESS PR1 ; PROCESS PR2 ; FORK PR2 ; END. JOIN PR2 ; END. Autore Flavio Cerini 14

15 Una tipica applicazione del costrutto FORK / JOIN riguarda le operazioni che coinvolgono periferiche distinte ( vedi Fig 6). Si può pensare di dover leggere dei dati da un file su disco e di dover fare dei calcoli statistici su di essi e dover riportare tutto su stampante Si può pensare di effettuare la lettura dei dati ed eseguire parallelamente i calcoli e la stampa dei dati letti, successivamente si possono stampare i risultati. Fig. 6 PR_A Leggi da disco FORK B PR_A PR_B PR_A PR_B stampa dati Leggi dati Stampa dati calcola risultati disaggregati FORK B Calcola risultati JOIN B END PR_A stampa risultati JOIN B Stampa risultati COBEGIN / COEND Tale costrutto prevede l esecuzione parallela di singole istruzioni. La sintassi generale é la seguente : program PR ; Istruzione I0; cobegin I1;I2;...;In; coend Autore Flavio Cerini 15

16 end NB: E possibile indicare le singole istruzioni che devono essere eseguite in modo parallelo. In questo caso si parla di parallelizzazione di singole istruzioni all interno di un unico processo e non di esecuzione contemporanea di parti di processi distinti. Il problema maggiore a questo punto è la SINCRONIZZAZIONE. E fondamentale la gestione della programmazione concorrente CONCORRENZA Quando si parla di concorrenza, si fa riferimento a processi che si trovano a competere ( a concorrere ) per aggiudicarsi una stessa risorsa. Con il termine programmi concorrenti si intendono dei processi che richiedono la stessa risorsa nello stesso istante. A volte la risorsa può essere condivisa tra tutti i richiedenti, ma nella maggior parte dei casi il sistema deve utilizzare delle tecniche e degli strumenti ( fondamentalmente software ) per regolare le assegnazioni. I processi concorrenti si possono trovare in una di queste relazioni : a) COOPERAZIONE b) COMPETIZIONE c) INTERFERENZA a) COOPERAZIONE (vedi Fig 7) : due processi si dicono in cooperazione se tra di loro c è un legame logico ; caso classico : PRODUTTORE-CONSUMATORE. Un processo P produce dei dati che vengono inseriti in un area di buffer ( BUFF), un secondo processo C legge i dati dall area buffer e li elabora ottenendo dei risultati. Ovviamente il processo C deve leggere da BUF solo dopo che P ha inserito dei dati. Tale operazione può essere ciclica ma deve essere ripetuta nell ordine giusto altrimenti le operazioni non avvengono correttamente. Sequenza giusta : PCPCPCPC....Sequenza errata : PPCC... Fig. 7 Processi PRODUTTORE e CONSUMATORE Autore Flavio Cerini 16

17 Generazione dati Lettura da BUFFER Scrittura in BUFFER Operazioni sui dati PRODUTTORE CONSUMATORE b) COMPETIZIONE : Due processi in competizione sono indipendenti da un punto di vista logico, sono invece dipendenti avendo la necessità di appropriarsi di una risorsa comune (con molteplicità limitata ) I tempi di completamento del lavoro possono dipendere sensibilmente da tale competizione. Un esempio può essere quello della mutua esclusione nella quale l acquisizione di una risorsa é esclusiva di un processo con conseguente attesa di tutti gli altri processi richiedenti. c) INTERFERENZA : Questo caso rappresenta una degenerazione della COMPETIZIONE. Ci troviamo in tale situazione quando il risultato dei processi dipende dalla sequenza temporale di utilizzo di certe risorse del sistema da parte di tutti i processi che le richiedono. Si deve fare in modo che i processi si aggiudichino la risorsa solo in istanti precisi,e non la rilascino in momenti critici del loro lavoro. Nessun processo deve togliere una risorsa ad un altro processo in modo incontrollato ( pensare ad ad una operazione di stampa interrotta da un altra operazione di stampa). Se le risorse sono acquisite in modo disordinato, può capitare che i processi lavorino su dati elaborati da altri e quindi facendo eseguire il programma più volte, gli utenti ottengano risultati sempre diversi. Gli erori di questo tipo sono difficili da identificare perché il lavoro é sintatticamente corretto. NB : si devono sincronizzare tutte le operazioni sulle risorse a rischio. Autore Flavio Cerini 17

18 IL NUCLEO ( kernel ) Il nucleo é il livello più vicino alla macchina ( hardware ). Le sue funzioni sono fondamentali per il funzionamento complessivo del sistema. Le funzionalità del nucleo sono richieste principalmente nei seguenti stati : PRONTO, ATTESA, ESECUZIONE. FUNZIONI PRINCIPALI SVOLTE DAL NUCLEO Implementazione della sincronizzazione, tramite funzioni primitive, per consentire le transizioni di stato dei job e dei processi Scelta del processo destinato a passare dalla coda di PRONTO allo stato di ESECUZIONE in base alla strategia scelta dal gestore del processore. Gestione delle interruzioni con salvataggio e ripristino dello stato della macchina. Il JOB-SCHEDULER sceglie il job che deve acquisire il processore tra quelli presenti nella coda di PRONTO : viene recuperato il valore del puntatore al processo in modo da identificarne l indirizzo reale. Il PROCESS-SCHEDULER applica la strategia di allocazione. La tecnica più semplice è quella FIFO ( rispetta l ordine di arrivo delle richieste ). INTERRUZIONI LEGATE AL SISTEMA OPERATIVO 1) I/O INTERRUPT : comando di I/O errato,canale o dispositivo non correttamente connesso 2) PROGRAM INTERRUPT: istruzione errata di CPU, overflow,violazione delle aree di memoria protette 3) SUPERVISOR CALL INTERRUPT : chiamata asincrona da un modulo supervisore di priorità superiore 4) EXTERNAL INTERRUPT : fine del tempo a disposizione, tasto di interruzione da da operatore ; 5) HARDWARE INTERRUPT : interruzione causata da guasto hardware I SEMAFORI Autore Flavio Cerini 18

19 Quando ci sono problemi di competizione, servono dei meccanismi di sincronizzazione. Non ci sarebbe nessun problema se ogni processo tenesse una risorsa per tutta la durata del lavoro, ma non sarebbe conveniente. La competizione, può essere relativa a certe zone di programma che vanno preservate da interruzioni indesiderate. Tali zone di programma vengono chiamate : ZONE CRITICHE ( esempi di zone critiche : non si può interrompere una operazione di stampa per eseguirne un altra ; non si può leggere un file mentre si sta modificando il suo contenuto ; oppure la scrittura in un area buffer prima che sia terminata la lettura del blocco di dati scritto nel buffer precedentemente. La tecnica principale per gestire una zona critica é basata sul principio del SEMAFORO. IL SEMAFORO :utilizza due procedure elementari ( primitive di sincronizzazione vedi Fig 8 ) Tali procedure utilizzano una variabile S il cui valore viene sempre controllato prima di accedere alla risorsa critica ( risorsa il cui uso può generare delle zone critiche). Se la variabile - semaforo ha il valore giusto, la risorsa può essere allocata e il processo può proseguire, in caso contrario, il processo si porrà in stato di attesa Fig. 8 Le primitive di semaforo P(S) V(S) False S = 1 True S : = 1 S: = 0 Autore Flavio Cerini 19

20 Il semaforo é rappresentato dalla variabile binaria S che negli schemi funge da parametro per le due procedure P(S) e V(S). Se la variabile S = 0 la risorsa critica é occupata e si deve attendere che venga rilasciata. Se S= 1 la risorsa può essere allocata. La procedura P(S) viene richiamata dal processo che richiede una risorsa, se S= 1 la risorsa é libera e viene allocata al processo richiedente e il semaforo viene impostato al valore 0. Se S = 0, la procedura ripete il controllo finché non trova il valore 1. La procedura V(S) viene richiamata da un processo che vuole rilasciare una risorsa in suo possesso. La Procedura pone S = 1 ed incarica il SO del rilascio della risorsa PRODUTTORE CONSUMATORE Si può risolvere con utilizzo di due semafori S1 e S2 ( vedi Fig 9 ) Si deve fare attenzione, oltre all accesso esclusivo alla risorsa, si deve anche fare in modo che non si legga dal buffer prima di aver terminato la scrittura. Si può considerare un semaforo S1 che controlla l accesso in scrittura e un semaforo S2 che controlla l accesso in lettura. Fig. 9 Scrittura - Lettura in un buffer Inizializzazione : S1: = 1 ; S2 : = 0 PRODUTTORE CONSUMATORE GENERAZIONE DATI P(S2) P(S1) SCRITTURA NEL BUFFER LETTURA DAL BUFFER V(S1) V(S2) OPERAZIONI SUI DATI Autore Flavio Cerini 20

21 L inizializzazione permette al processo produttore di accedere al buffer ( S1=1) e preclude la lettura (S2=0). Il processo produttore lavora, generando dei dati, S1 diventa 0 con l esecuzione di P(S1) alla fine si apre la possibilità di lettura bloccando la scrittura. Il processo Consumatore, ottenuto il permesso di accesso, legge dal buffer e, prima di iniziare la elaborazione dei dati acquisiti, libera l accesso in scrittura ( con procedura V(S1) ), in tal modo si risparmia tempo poichè mentre si fa elaborazione dati ne possono essere inseriti altri nel buffer SEMAFORO GENERALIZZATO Se il sistema deve gestire una risorsa che é oggetto di contesa, si può ricorrere alla tecnica del semaforo generalizzato. La variabile semaforo non é più binaria ma é un semplice contatore delle unità disponibili della risorsa. Se il valore della variabile é 0 nessuna unità della risorsa é disponibile, altrimenti é possibile effettuare un allocazione. Il numero massimo che può assumere la variabile semaforo coincide con il numero di unità presenti nel sistema. Nel caso di un produttore-consumatore con tre buffer, i due semafori hanno valore massimo tre. ( vedi Fig 10 ). Nel caso di quattro stampanti che consentono il lavoro di otto persone in multiutenza ; un semaforo generalizzato impostato al valore 4 regola l accesso ai dispositivi. Si utilizzano ancora le procedure P(S) e V(S) ( vedi Fig 11 ). La procedura P(S) contiene un test che controlla il valore del contatore ; se S > 0 ci sono ancora unità libere. L allocazione comporta un decremento del numero di unità disponibili. La procedura V(S), relativa al rilascio della risorsa, contiene l incremento del numero di unità disponibili. Le procedure P(S) e V(S) sono le operazioni di base per la gestione dei meccanismi di sincronizzazione degli accessi. Fig. 10 Semafori generalizzati P(S) V(S) False S >0 True S : = S + 1 S : = S - 1 Autore Flavio Cerini 21

22 PRINCIPI DI PROGRAMMAZIONE CONCORRENTE DEFINIZIONE DI STALLO ( nel gioco degli scacchi : nessuno dei giocatori da scacco matto ) : Un sistema di elaborazione si dice in condizione di STALLO se nessuno dei processi in corso riesce a portare a termine il suo lavoro. Supponiamo di avere due processi P1 e P2 ( vedi Fig 12 ). che lavorano rispettivamente con le risorse RISORSA_1 e RISORSA_2.Ad un certo istante il processo P1 ha bisogno di dati prodotti dalla RISORSA_2 e si mette in stato di attesa. Contemporaneamente il processo P2 necessita della RISORSA_1 e aspettando che si liberi si mette in stato di attesa. I due processi sono in attesa a tempo indeterminato. Fig 12 Processi in stato di stallo PROCESSO P1 RISORSA R1 RISORSA R2 PROCESSO P2 Le frecce che vanno dalla risorsa al processo indicano che la risorsa é assegnata al processo, mentre le frecce che vanno dal processo alla risorsa indicano che la risorsa é stata richiesta dal processo. Questo modo di rappresentare la relazione tra processi e risorse si chiama GRAFO DI ALLOCAZIONE delle risorse. Autore Flavio Cerini 22

23 IL PROBLEMA DELLO STALLO ( DEADLOCK ) Un problema fondamentale che deve affrontare un sistema operativo é quello relativo al controllo delle zone critiche ( contengono delle azioni indivisibili e le risorse richieste vengono rilasciate solo a fine esecuzione ). In questa situazione insorgere uno stato di DEADLOCK. Lo stato di deadlock si può presentare anche nel caso di superamento della molteplicità di una risorsa ( semaforo generalizzato ), cioé il numero massimo di processi che possono lavorare contemporaneamente con la risorsa stessa oppure il numero di esemplari presenti di una risorsa che non può essere condivisa. SITUAZIONI NELLE QUALI SI PUO GENERARE UN DEADLOCK Mutua esclusione ( nelle zone critiche le risorse vengono rilasciate solo a fine lavoro ) Superamento della molteplicità di una risorsa Allocazione parziale : il processo non impegna, all inizio del blocco critico, tutte le risorse di cui avrà bisogno ma le richiederà via via che serviranno Negazione del prerilascio forzato : il sistema non é abilitato a sottrarre forzatamente la risorsa al processo per evitare uno stallo Attesa circolare : esiste una lista di processi ognuno dei quali é in attesa di acquisire una risorsa che é in possesso del seguente. Il risultato é un deadlock del sistema. GESTIONE DEL PROBLEMA DELLO STALLO PREVENZIONE : Il sistema deve capire quando esistono le condizioni per la nascita di un deadlock. In effetti un eccessivo controllo produce un rallentamento del sistema forse non giustificato considerato che il DEADLOCK si verifica molto raramente. Autore Flavio Cerini 23

24 RICONOSCIMENTO : Il sistema deve riconoscere quando il sistema di elaborazione si trova in una situazione di stallo. Una volta effettuata la rilevazione si deve effettuare un recupero ( recovery ) dello stato del sistema subito prima dello stallo. Il riconoscimento e il recovery sono operazioni molto complesse PREVENZIONE : la prevenzione propone le seguenti tecniche : a) Allocazione globale delle risorse b) Allocazione gerarchica c) Algoritmo del banchiere a) Le risorse necessarie ad un processo gli vengono assegnate tutte insieme solo quando sono tutte libere ; in mancanza di tale situazione il sistema resta in attesa. In questo modo però qualche processo che ha urgenza di una risorsa può restare in attesa molto a lungo e si possono avere anche rallentamenti notevoli nell esecuzione di un processo. b) Si considera un ordine gerarchico delle risorse. Se un processo possiede una risorsa di un certo livello, può acquisire solo risorse di livello superiore. se deve acquisire una risorsa a livello inferiore, deve prima rilasciare quella che possiede e richiederla successivamente. c) Questo algoritmo consiste nello scegliere un allocazione che consente ad almeno un processo di poter lavorare e concludere. LA GESTIONE DELLA MEMORIA AMBIENTE MONOPROGRAMMATO ( monoprogrammazione ) In ambiente monoprogrammato é possibile far girare un solo programma per volta. Tutte le risorse sono dedicate all unico programma residente in memoria. Non esiste il problema della concorrenza e il S.O risulta abbastanza semplice. Abbastanza semplice risulta anche la gestione della memoria centrale. La memoria centrale é divisa in non più di tre aree : a) Area contenente i moduli software del S.O b) Area contenente il programma utente da eseguire c) Area differenza fra Area totale a disposizione dell utente e Area occupata dal programma caricato. Tale Area resta vuota e non utilizzabile. ALLOCAZIONE SINGOLA CONTIGUA ( vedi Fig. 13 ) Autore Flavio Cerini 24

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione 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

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter 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

Dettagli

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo Corso di Laurea Triennale in Informatica Università degli Studi di Bari Aldo Moro Anno Accademico 2012-2013 Lez. 8 : Il Livello di Sistema Operativo Sebastiano Pizzutilo Strutturazione del Sistema Operativo

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere 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

Dettagli

I file di dati. Unità didattica D1 1

I 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à

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1 LATCH E FLIPFLOP. I latch ed i flipflop sono gli elementi fondamentali per la realizzazione di sistemi sequenziali. In entrambi i circuiti la temporizzazione è affidata ad un opportuno segnale di cadenza

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente 1 Sommario 1 Introduzione... 3 1.1 Accesso al Self Care Web di Rete Unica... 4 2 Servizi Aziendali... 6 2.1 Centralino - Numero

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione METODO DELLE FORZE CORSO DI PROGETTZIONE STRUTTURLE a.a. 010/011 Prof. G. Salerno ppunti elaborati da rch. C. Provenzano 1. METODO DELLE FORZE PER L SOLUZIONE DI STRUTTURE IPERSTTICHE 1.1 Introduzione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE Programma Enti Locali Innovazione di Sistema Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE 1 Premessa Il presente documento ha lo scopo di facilitare la disseminazione e il riuso

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

Intrusion Detection System

Intrusion Detection System Capitolo 12 Intrusion Detection System I meccanismi per la gestione degli attacchi si dividono fra: meccanismi di prevenzione; meccanismi di rilevazione; meccanismi di tolleranza (recovery). In questo

Dettagli

Riferimenti ed Oggetti

Riferimenti ed Oggetti Riferimenti e oggetti Riferimenti ed Oggetti In non si possono definire variabili di tipo oggetto ma solo di tipo riferimento a oggetto. I riferimenti sono assimilabili ai tipi base. Allocazione statica

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione.

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. COMPETENZE MINIME- INDIRIZZO : ELETTROTECNICA ED AUTOMAZIONE 1) CORSO ORDINARIO Disciplina: ELETTROTECNICA

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Sizing di un infrastruttura server con VMware

Sizing di un infrastruttura server con VMware Sizing di un infrastruttura server con VMware v1.1 Matteo Cappelli Vediamo una serie di best practices per progettare e dimensionare un infrastruttura di server virtuali con VMware vsphere 5.0. Innanzitutto

Dettagli

Guida all utilizzo del dispositivo USB

Guida all utilizzo del dispositivo USB Guida all utilizzo del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1. Glossario... 3 2. Guida all utilizzo del dispositivo USB... 4 2.1 Funzionamento del

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente Guida ai Servizi Voce per l Utente Guida ai ai Servizi Voce per l Utente 1 Indice Introduzione... 3 1 Servizi Voce Base... 4 1.1 Gestione delle chiamate... 4 1.2 Gestione del Numero Fisso sul cellulare...

Dettagli

Programmazione di un dispositivo 1to4INTGEN

Programmazione di un dispositivo 1to4INTGEN Programmazione di un dispositivo 1to4INTGEN Realizzazione di un sistema timesharing Materiale didattico a cura di: Prof. A. Mazzeo Ing. L. Romano Ing. L. Coppolino Ing. A. Cilardo Dipartimento di Informatica

Dettagli

UN NUOVO ASSETTO DELLE APERTURE A LIVELLO 2

UN NUOVO ASSETTO DELLE APERTURE A LIVELLO 2 Lezione 14 LE APERTURE A LIVELLO 2 UN NUOVO ASSETTO DELLE APERTURE A LIVELLO 2 Tutto parte da una considerazione statistica: 4 aperture (da a ) per descrivere mani di 21+ Punti rappresenta uno spreco in

Dettagli

GESTIONE DELLA PROCEDURA

GESTIONE DELLA PROCEDURA Manuale di supporto all utilizzo di Sintel per Stazione Appaltante GESTIONE DELLA PROCEDURA Data pubblicazione: 17/06/2015 Pagina 1 di 41 INDICE 1. Introduzione... 3 1.1 Obiettivo e campo di applicazione...

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

SIMATIC S7. Primi passi ed esercitazioni con STEP 7. Benvenuti in STEP 7, Contenuto. Introduzione a STEP 7 1

SIMATIC S7. Primi passi ed esercitazioni con STEP 7. Benvenuti in STEP 7, Contenuto. Introduzione a STEP 7 1 s SIMATIC S7 Primi passi ed esercitazioni con STEP 7 Getting Started Benvenuti in STEP 7, Contenuto Introduzione a STEP 7 1 SIMATIC Manager 2 Programmazione con nomi simbolici 3 Creazione di un programma

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

PD32. Esercitazione sull interfacciamento con un dispositivo di IO

PD32. Esercitazione sull interfacciamento con un dispositivo di IO PD32 Esercitazione sull interfacciamento con un dispositivo di IO Domanda #5 14/09/2000 Si dispone di un PD32 per effettuare il collaudo di un circuito integrato combinatorio con 5 ingressi e una uscita,

Dettagli

Regolamento tecnico interno

Regolamento tecnico interno Regolamento tecnico interno CAPO I Strumenti informatici e ambito legale Articolo 1. (Strumenti) 1. Ai sensi dell articolo 2, comma 5 e dell articolo 6, comma 1, l associazione si dota di una piattaforma

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto 2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto previsto in Avvisi legali. 23 giugno 2014 Indice 3 Indice...5

Dettagli

Limiti e forme indeterminate

Limiti e forme indeterminate Limiti e forme indeterminate Edizioni H ALPHA LORENZO ROI c Edizioni H ALPHA. Ottobre 04. H L immagine frattale di copertina rappresenta un particolare dell insieme di Mandelbrot centrato nel punto.5378303507,

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp.

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. Symbolic Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. La nostra mission è di rendere disponibili soluzioni avanzate per la sicurezza

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

Accesso all Area di Lavoro

Accesso all Area di Lavoro Accesso all Area di Lavoro Una volta che l Utente ha attivato le sue credenziali d accesso Username e Password può effettuare il login e quindi avere accesso alla propria Area di Lavoro. Gli apparirà la

Dettagli

Maurizio Vichi Sapienza Università di Roma

Maurizio Vichi Sapienza Università di Roma Percorsi didattici, interdisciplinari ed innovativi per la Statistica Maurizio Vichi Sapienza Università di Roma Presidente Federazione Europea delle Società Nazionali di Statistica Scuola Estiva di Matematica

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza PROCESS MAPPING (2) Approcci: 2- Identificazione del processo Esaustivo (o dei processi) da analizzare Mappatura a largo spettro (es.: vasta implementazione di un ERP) In relazione al problema ad es. i

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite.

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite. Formule di gioco La successione di mani necessarie per l eliminazione del penultimo giocatore o per la determinazione dei giocatori che accedono ad un turno successivo costituisce una partita. In base

Dettagli