Quote of the day. (

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Quote of the day. (http://blog.golang.org/concurrency-is-not-parallelism)"

Transcript

1 Lezione T19 Thread Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia 1

2 Quote of the day ( Concurrency and parallelism are not the same thing. Concurrency is the composition of independently executing processes. Parallelism is the simultaneous execution of (possibly related) computations. Rob Pike (1956-) Ingegnere del software Progettista e sviluppatore di Plan 9 Coautore di UTF-8, Blit, Go Coautore di The UNIX Programming Environment 2

3 PROBLEMI LEGATI AI PROCESSI 3

4 Il modello a processo singolo (Un processo Una traccia di codice) Nella sua accezione più classica, il processo è l'astrazione di un programma in esecuzione. Aree codice, dati, stack. Stato di esecuzione. Modello a processo singolo: il processo esegue una singola traccia di codice in modalità interlacciata con gli altri processi. codice dati file registri Una singola traccia stack 4

5 Problema: assenza di scalabilità (Che succede se tanti utenti richiedono servizi al processo?) Una applicazione basata su processo singolo è fortemente limitata nella sua scalabilità. Una singola traccia non riesce, di solito, a servire contemporaneamente le richieste di più utenti. In linea di principio sarebbe anche possibile tramite tecniche molto complesse di programmazione basata su eventi. Esempi: lo strumento di load testing Web httperf. la libreria per applicazioni distribuite Node.js. 5

6 Soluzione: modello multi-processo (L'applicazione è un insieme di processi distinti) Nel modello multi-processo, una applicazione è concepita come insieme di processi distinti. I processi possono coordinarsi fra loro in modi diversi. Coordinazione fork: un processo di controllo riceve richieste e crea un figlio per gestire una risposta. Il processo figlio viene terminato dopo la risposta. richiesta risposta Applicazione multi-processo fork fork() exit() 6

7 Problema: media scalabilità (Che succede se tantissimi utenti richiedono servizi al processo?) Una applicazione multi-processo fork ha indubbiamente una scalabilità molto migliore rispetto ad una basata su processo singolo. Tuttavia, in caso di ingente numero di richieste (diverse centinaia/migliaia al secondo): il SO rischia di passare la maggior parte del tempo a svolgere operazioni interne di gestione (creazione processi, distruzione processi, cambi di contesto). il SO viene distolto dal compito principale, ossia l'esecuzione della traccia di codice dei processi generati. 7

8 Soluzione: coordinazione pre-fork (Pool di processi riusabili per diverse richieste) Coordinazione pre-fork: un processo di controllo crea un insieme di processi (pool) all'inizio della sua esecuzione e li distrugge tutti alla sua uscita. espande e riduce dinamicamente la dimensione del pool a seconda del carico ricevuto. Una richiesta è servita da un processo del pool. Approccio simile a quello di SLAB. richiesta risposta Applicazione multi-processo pre-fork... fork() iniziale Si modifica dinamicamente 8

9 Esempio: Apache v1.3 (Pool di processi riusabili per diverse richieste) Il Web server Apache (fino a v1.3) adotta il modello multi-processo con coordinazione pre-fork. Pool di processi creati alla partenza del server. Il pool si adatta esponenzialmente al carico (raddoppia o si dimezza). Ogni richiesta è passata ad un processo del pool. Processo di controllo StartUp Config Ciclo richiesta Pool di processi OpenLogs PostConfig ChildInit Ciclo richiesta Restart Ciclo richiesta 9

10 Problema: non condivisione dei dati (I processi figli sono isolati; e se volessero aggiornare contatori globali?) I gestori dei processi e della memoria isolano gli spazi di indirizzamento virtuali. È impossibile condividere una struttura dati in lettura e scrittura fra i diversi processi figli (il COW lo impedisce). 10

11 Problema: latenza di dispatching alta (Con tanti processi figli attivi il kernel lavora molto per commutarli) Se: il processo di controllo ha generato molti figli; arrivano molte richieste; la macchina non ha tante CPU; allora il kernel sarà soggetto a molti cambi di contesto. Ad ogni cambio di contesto deve essere ripristinata, fra le altre cose, l'intera tabella delle pagine del nuovo processo. Tale operazione abbassa il throughput del server. 11

12 MODELLO MULTI-THREADED 12

13 Le manchevolezze dei processi (Sbattute in prima pagina) La creazione dello spazio di indirizzamento costa ed è ripetuta per ogni processo. Se un processo è creato e distrutto con alta frequenza, il carico di lavoro per il kernel è ancora maggiore. Il cambio di contesto è molto oneroso. Va sostituito un intero spazio di indirizzamento. Se i processi fanno I/O (e si bloccano) spesso, il carico di lavoro per il kernel è ancora maggiore. Completa assenza di condivisione dei dati. 13

14 L'idea (Per far sparire queste limitazioni) Si introduce una rappresentazione alternativa e leggera di processo che renda semplice la condivisione dei dati fra più processi. renda più veloce la creazione di un nuovo processo condividente codice e dati. renda fulmineo il cambio di contesto in presenza di tanti processi con stesso codice e dati. Tale rappresentazione alternativa prende il nome di modello multi-threaded. 14

15 Il modello multi-threaded (Un processo Più tracce di codice) Modello (a processo) multithreaded: il processo esegue più tracce di codice in modalità interlacciata fra loro e con gli altri processi. Le tracce condividono le risorse del processo che le ha create (stack e registri esclusi). Il thread è la rappresentazione interna al SO di una traccia. Tre tracce codice dati file registri registri registri stack stack stack 15

16 Vantaggi (Perché conviene programmare in ambiente multi-threaded) Reattività. Il blocco di un thread non inficia sugli altri. Maggiore fluidità di esecuzione. Condivisione delle risorse. I thread condividono la memoria del processo che li ha creati. Si possono avere strutture dati condivise. Economia. Si allocano e distruggono le risorse di processo una sola volta. Scalabilità. I thread eseguono in parallelo su più CPU, a differenza di un singolo processo. 16

17 Svantaggi (Perché NON conviene programmare in ambiente multi-threaded) Paradigma di programmazione complesso. La condivisione delle risorse e della memoria implica spesso la gestione della concorrenza degli accessi a queste ultime. Sono necessari ulteriori passi di programmazione, spesso complessi. Debugging complesso. È molto difficile riprodurre bug in presenza di accessi concorrenti alle risorse. È spesso difficile individuare le cause del bug. 17

18 MODELLI DI PROGRAMMAZIONE 18

19 Supporto del SO ai thread (User level e/o kernel level) La rappresentazione dei thread fornita dal SO può essere implementata in tre modi diversi. Interamente in user space, senza coinvolgimento alcuno del kernel. Interamente in kernel space, senza altro coinvolgimento delle librerie che non sia legato alla implementazione delle relative chiamate di sistema. In maniera ibrida (sia in user space, sia in kernel space). 19

20 Modello da molti a uno (Many-to-one: tutto in user space; tanti thread utente un thread nel kernel) Nel modello da molti a uno (many-to-one, N:1) la rappresentazione del thread avviene interamente in user space. Il kernel gestisce una sola struttura dati (processo). Il processo usa delle funzionalità applicative per simulare uno scheduler di processi leggeri. I processi leggeri eseguono singole funzioni definite nel processo generante e non sono noti al kernel. Implementazioni: Green threads (Solaris), GNU Portable Threads, Java Threads (vecchie release), Ruby Threads. 20

21 Modello da molti a uno (Uno schema) Thread Processo main() f1() f2() f3() PCB Libreria thread create() stop() schedule() resume() destroy() User space Kernel space 21

22 Modello da molti a uno: vantaggi (Perché conviene implementare il modello da molti a uno) I thread sono gestiti nel modo più efficiente possibile. Scheduling cooperativo: un thread decide di passare la palla ad un altro. Non viene coinvolto lo scheduler del kernel. Nessun aggravio computazionale legato ai cambi di contesto tradizionali. Il modello da molti a uno non richiede un kernel multithreaded per poter essere implementato. Non è più un vero vantaggio. I kernel moderni hanno 22 tutti la nozione di thread.

23 Modello da molti a uno: svantaggi (Perché NON conviene implementare il modello da molti a uno) Se un thread effettua una chiamata bloccante, è l'intero processo a bloccarsi, e non solo il thread in questione. Modello pessimo in caso di applicazioni con I/O. I thread sono legati allo stesso processo, e non possono eseguire su processori fisici distinti. Modello pessimo per la scalabilità su più CPU. 23

24 Modello da uno a uno (One-to-one: tutto in kernel space; un thread utente un thread nel kernel) Nel modello da uno a uno (one-to-one, 1:1) la rappresentazione del thread avviene interamente in kernel space. Il kernel gestisce una struttura dati per ciascun thread. Il processo crea thread attraverso una duplicazione simile a fork(). I thread vengono schedulati dal kernel come processi qualunque. Implementazioni: GNU/Linux (LinuxThreads, NPTL), Windows 95/98/2000/XP/NT. 24

25 Modello da uno a uno (Uno schema) Processo Thread Thread main() f() f() create() destroy() f() User space PCB TCB TCB Kernel space 25

26 Modello da uno a uno: vantaggi (Perché conviene implementare il modello da molti a uno) Se un thread effettua una chiamata bloccante, non blocca gli altri thread. I thread possono implementare funzionalità di I/O senza stallare l'intera applicazione. I thread sono rappresentati da altrettanti TCB, e possono essere eseguiti su processori fisici distinti. Un'applicazione può scalare con il numero di CPU. 26

27 Modello da uno a uno: svantaggi (Perché NON conviene implementare il modello da molti a uno) I thread sono gestiti dallo scheduler dei processi del kernel. Si paga un (piccolo) dazio ad ogni cambio di contesto. Il modello da uno a uno richiede un kernel multithreaded per poter essere implementato. Non è più un vero svantaggio. I kernel moderni hanno tutti la nozione di thread. 27

28 Modello da molti a molti (Many-to-many: un ibrido dei due modelli precedenti) Nel modello da molti a molti (many-to-many, N:M) la rappresentazione del thread avviene sia in user space, sia in kernel space. Unione dei due precedenti modelli. L'idea è quella di prendere il meglio da ciascun modello. Il processo crea M thread a livello kernel attraverso una duplicazione. Ciascuno di questi M thread crea N/M thread a livello utente. Implementazioni: IRIX, HP-UX, Tru64 UNIX, 28 Solaris (fino a v9), Windows 7.

29 Modello da molti a molti (Uno schema) Processo main() f1() f2() f3() PCB Libreria thread create() Thread main() f1() f2() f3() TCB Libreria thread Thread kernel level Thread user level User space Kernel space 29

30 Architetture multi-threaded (Come si possono combinare i thread fra loro?) Pipeline. I thread una linea di assemblaggio. L'output del thread precedente viene dato in pasto al thread successivo. Master-Slave. Un thread master coordina l'esecuzione di tanti thread slave (che effettuano il lavoro vero e proprio). Worker. Ciascun thread esegue un compito specifico dell'applicazione indipendentemente dagli altri. 30

31 Architetture multi-threaded (Come si possono combinare i thread fra loro?) Pipeline processo input thread thread thread output input processo output Master-Slave thread thread thread Worker processo input thread output input thread output input thread output input thread output 31

32 Esempio: Apache v2.0 (Pool di thread riusabili per diverse richieste) A partire dalla versione v2.0, il Web server Apache adotta il modello multithreaded con coordinazione pre-fork o worker. Pool di thread creati alla partenza del server. Il pool si adatta esponenzialmente al carico (raddoppia o si dimezza). Coordinazione pre-fork: un thread svolge tutte le operazioni. Coordinazione worker: le operazioni sono suddivise fra thread diversi. Processo di controllo StartUp Config Ciclo richiesta Pool di thread OpenLogs PostConfig ChildInit Ciclo richiesta Restart Ciclo richiesta 32

33 MODELLO MULTI-THREADED LINUX 33

34 Rappresentazione a livello di kernel (Da uno a uno) Linux adotta il modello di multi-threading da uno a uno. Processi e thread usano le task_struct come descrittore unificato. Un thread una task_struct. Un processo una task_struct. 34

35 Meccanismo generale di clonazione (Funzione interna do_fork()) La chiamata di sistema clone() implementa il meccanismo generico di creazione di thread. La clone() invoca la do_fork(), che svolge il lavoro. Meccanismo unificato di creazione: do_fork(). La do_fork() condivide le risorse opportune a seconda che si tratti di un processo o di un thread. Il lavoro sporco è svolto dalla copy_process(). 35

36 I clone_flag di do_fork() (La do_fork() deve differenziarsi tra processi e thread) Il primo parametro della do_fork() contiene: nella parte bassa un vettore di bit, detti clone flag. nella parte alta, il codice del segnale da inviare al padre quando il figlio termina (SIGCHLD). Clone flag: in $LINUX/include/sched.h. Bit CLONE_VM: memoria virtuale condivisa. Bit CLONE_FS: info sul file system condivise. Bit CLONE_FILES: info su file aperti condivise. Bit CLONE_SIGHAND: gestori dei segnali condivisi

37 Valori dei clone flag per fork() e clone() (Molto diversi fra loro) Chiamata di sistema fork(). Clone flag: SIGCHLD. Nessuna condivisione, segnale SIGCHLD inviato al padre quando il figlio muore. Chiamata di sistema clone(). Clone flag (i principali; quelli minori sono omessi): CLONE_VM CLONE_FS CLONE_FILES CLONE_SIGNAL Completa condivisione di memoria, gestori segnali ed informazione su file e file system. Nessun segnale è inviato al padre quando il thread 37 muore.

38 Native POSIX Thread Library (AKA Pthreads library ) Implementa lo standard ANSI/IEEE POSIX c. Funzionalità offerte: gestione thread (creazione, distruzione). accesso serializzato a dati condivisi (mutex). sincronizzazione ad eventi (variabili condizione). Concepita per i linguaggi C e C++. 38

39 Rappresentazione a livello user (Un TID per ciascun thread, memorizzato nel campo PID di task_struct) Nella libreria Pthreads, un thread è rappresentato dal tipo di dato opaco pthread_t. Ciascun thread ha un proprio identificatore univoco, il Thread Identifier (TID). Quando viene creato un nuovo thread, si salva il TID nella variabile pthread_t corrispondente. Un TID non è altro che un PID, a cui è associata una task_struct nel kernel. 39

40 TID e PID (Una sottile differenza) Lo standard POSIX richiede due proprietà alla libreria dei thread. Se invocata da un thread, la chiamata di sistema getpid() deve ritornare il PID del processo che lo ha creato. Se invocata da un thread, la chiamata di sistema gettid() deve ritornare il TID ad esso associato. A tal scopo si introduce il concetto di gruppo di thread. 40

41 Gruppo di thread, leader del gruppo (Simile al gruppo di processi ed al leader del gruppo) Il thread creante ed i thread da esso creati formano un gruppo di thread (thread group). A tale gruppo è associato un numero intero detto identificatore del gruppo di thread (thread group identifier, TGID). Il TGID è il TID del thread che ha generato per primo altri thread (anche detto processo leader o thread group leader). 41

42 Rappresentazione di PID, TID, TGID (Gruppo Processo leader con i suoi thread, PID processo, TID thread) Gruppo con TGID=2001 Processo PPID=1900 Thread A PPID=1900 Thread B PPID=1900 Thread C PPID=1900 TGID=2001 TGID=2001 TGID=2001 TGID=2001 TID=2001 TID=2002 TID=2003 TID=

43 Creazione di thread (pthread_create()) La funzione di libreria pthread_create() crea un thread. Azioni compiute (a grandi linee): crea una nuova task_struct per il thread. condivide le risorse specificate dai clone flag. imposta l'indirizzo della prossima istruzione da eseguire ad una funzione scelta dall'utente. cambia lo stato del thread ad eseguibile. memorizza il TID nella struttura pthread_t relativa. File $GLIBC/nptl/pthread_create.c. 43

44 Distruzione di thread (pthread_exit()) La funzione di libreria pthread_exit() permette l'uscita pulita da un thread. Di solito, è invocata con l'argomento NULL. Attenzione! È sconsigliato usare exit() per uscire da un thread. exit() provoca l'uscita del processo, la distruzione delle risorse condivise e l'uscita immediata di tutti i thread! File $GLIBC/nptl/pthread_exit.c. 44

45 Thread ed execve() (Problema simile a quello introdotto da exit()) Per lo stesso motivo ora visto, è sconsigliabile (anche se non vietato formalmente) eseguire la chiamata di sistema execve() all'interno di un thread. execve() provoca il cambio immediato di spazio di indirizzamento in tutti i thread. 45

46 Dati specifici dei thread (Thread Local Data) Nei thread: le variabili globali sono condivise. le variabili automatiche non sono condivise. È possibile definire anche variabili globali specifiche al thread (Thread Local Data). Tali variabili si comportano come se fossero globali, ma non sono condivise fra thread. Nella libreria Pthreads si usa lo specificatore thread. thread int variable; 46

47 Accesso condiviso ai dati ( Mutua esclusione ) Finora non è stato accennato nulla riguardo all'accesso a variabili condivise. Cosa succede se due thread distinti leggono e scrivono la stessa variabile condivisa? Tale problema sarà trattato nell'ultima parte del corso, nelle lezioni riguardanti la comunicazione e la sincronizzazione. 47

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I 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)?

Dettagli

L API socket ed i daemon

L API socket ed i daemon L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi SISTEMI OPERATIVI THREAD 2 Mo*vazioni» Un programma complesso può eseguire in modo concorrente più funzioni agraverso la creazione e ges=one di processi figli agraverso il meccanismo dei thread» La creazione

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 5 Sistemi operativi 24 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 5.1 Di cosa parliamo in questa lezione? Relazione tra processi e thread, e relative

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

1 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 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

Dettagli

Con 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. 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

Dettagli

Posix Threads: l evoluzione dei processi UNIX

Posix Threads: l evoluzione dei processi UNIX Posix Threads: l evoluzione dei processi UNIX Raffaele Quitadamo, PhD in Computer Science Università di Modena e Reggio Emilia quitadamo.raffaele@unimore.it Sommario Pthreads vs Unix processes L API per

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto 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

Dettagli

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

Gestione della memoria centrale

Gestione 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

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI 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

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Capitolo 5: I thread

Capitolo 5: I thread Capitolo 5: I thread Generalità. Modelli multithread. Problematiche relative ai thread. Pthread. 5.1 I thread Il thread è un flusso di controllo relativo ad un dato processo. Molti sistemi operativi moderni

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello dei processi. Riedizione delle slide della Prof. Di Stefano Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

I Thread. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Thread. Laboratorio Software 2008-2009 M. Grotto R. Farina I Thread M. Grotto R. Farina Sommario 1. I Thread Introduzione 2. Creazione e terminazione Utilizzo Scheduling dei processi 3. Comunicazione 4. Attributi Passaggio di parametri Funzioni utili Descrizione

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

2. I THREAD. 2.1 Introduzione

2. I THREAD. 2.1 Introduzione 2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

La Gestione delle risorse Renato Agati

La 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

Dettagli

1. 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. 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

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

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

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

Coordinazione Distribuita

Coordinazione 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,

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

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

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Threading T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Caratteristiche principali dei thread Consentono di eseguire elaborazioni simultanee in un programma scritto in C#. Possono essere

Dettagli

Java Virtual Machine

Java 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

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

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

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

VMware. Gestione dello shutdown con UPS MetaSystem

VMware. Gestione dello shutdown con UPS MetaSystem VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI 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

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. 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,

Dettagli

Funzioni in C. Violetta Lonati

Funzioni 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

Dettagli

CPU. Maurizio Palesi

CPU. 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

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Tipi 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. 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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. 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

Dettagli

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi

Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI Fabio Buttussi La programmazione di sistema Il kernel è la parte di Unix che corrisponde al sistema operativo

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A 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

Dettagli

Corso 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. 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

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

The Onion PC. Virtualizzazione strato dopo strato

The Onion PC. Virtualizzazione strato dopo strato The Onion PC Virtualizzazione strato dopo strato Cos'è un livello di astrazione? Cos'è un livello di astrazione? Nell'esecuzione di un programma un livello di astrazione rappresenta i gradi di libertà

Dettagli

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003)

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003) Università degli Studi Magna Græcia di Catanzaro Corso di Laurea in Ingegneria Informatica e Biomedica Sistemi Operativi A.A. (2002-2003) Docente: Prof. Mario Cannataro cannataro@unicz.it www.icar.cnr.it

Dettagli

Manuale Terminal Manager 2.0

Manuale 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

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

SISTEMI OPERATIVI. I thread. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I thread. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I thread Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Generalità: il concetto di

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Il descrittore di processo (PCB)

Il 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

Dettagli

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario Data Base Management System Strumenti: Software specifico Formato: Pro: Proprietario Massima semplicità di inserimento e gestione Tipizzazione Validazione dei dati Contro: Creazione del database Programmazione

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli