1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Gestione della Memoria
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Il Sistema Operativo.
Java: programmazione concorrente con condivisione di memoria
Algoritmi e Programmazione
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Domande di riepilogo sulla gestione del processore
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
1 System Call per Comunicazione tra Processi Pipe.
Programmazione Concorrente
Sincronizzazione fra processi
Sincronizzazione di processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
File.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Informatica (Programmazione)
1 INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA. 2 PROCESSO INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA INIZIO FINE.
Risorse e Stallo.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Struttura dei sistemi operativi (panoramica)
I Thread.
Sincronizzazione dei Processi
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sincronizzazione fra thread
Sistemi Operativi GESTIONE DEI PROCESSI.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
Concorrenza e Sincronizzazione di Thread e Processi
Dall’algoritmo al programma.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Interazione e sincronizzazione
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
File system distribuito transazionale con replicazione
Sincronizzazione dei processi
Threads.
Sistema Operativo (Software di base)
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
I processi.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Gestione del processore (Scheduler)
Architettura dei Sistemi Operativi
1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Processi e Thread Processi Thread
1 Processi e Thread Processi e thread in Windows 2000.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Informatica Generale Marzia Buscemi
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
1 Competizione e cooperazione pag. 88 Cap.3 - Esecuzione concorrente di processi 1.
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Processi e Thread Meccanismi di IPC (1).
Processi e thread in Windows 2000
Transcript della presentazione:

1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)

2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per comunicare e sincronizzarsi : –scambiare dati –utilizzare correttamente strutture dati condivise evitare interferenze (race conditions) –eseguire azioni nella sequenza corretta Molti meccanismi proposti Per semplicità ci riferiremo principalmente ai processi –maccanismi simili sono disponibili per i thread

3 Comunicazioni fra processi Esempio di Race Condition (Interferenza) Ogni processo esegue il seguente algoritmo: 1. Legge il valore di libero (LOAD ….) 2. Se libero è TRUE scrive il nome del file da stampare in File_in_stampa e assegna libero a FALSE 3. Altrimenti attende un tempo variabile e ripete da 1. libero File_in_stampa Processo A Processo B Spooler

4 Comunicazioni fra processi (2) Esempio di Race Condition (Interferenza) Lo spooler : 1. Legge il valore di libero (LOAD ….) 2. Se libero è FALSE legge File_in_stampa e stampa il corrispondente file 3. Altrimenti attende un tempo variabile e ripete da 1. libero File_in_stampa Processo A Processo B Spooler

5 Comunicazioni fra processi (3) Esempio di Race Condition (Interferenza) Ogni processo può essere interrotto in un momento qualsiasi. Es. 1. B legge il valore di libero (LOAD ….) e viene deschedulato 2. A legge il valore di libero (LOAD ….) e viene deschedulato 3. B scrive file_in_stampa (pippo.txt) e viene deschedulato 4. A scrive file_in_stampa (pluto.txt) e mette libero a FALSE TRUE …….. libero File_in_stampa Processo A Processo B Spooler

6 Comunicazioni fra processi (4) Esempio di Race Condition (Interferenza) Ogni processo può essere interrotto in un momento qualsiasi. Es. 4. A scrive file_in_stampa ( pluto.txt ) e viene deschedulato 5. Lo spooler stampa pluto.txt …... FALSE pluto.txt. libero File_in_stampa Processo A Processo B Spooler pippo.txt non verrà mai stampato

7 Sezioni/Regioni Critiche (1) Regione Critica : porzione di un processo che accede a strutture dati condivise –punti potenziali di interferenza Obiettivo : fare in modo che le regioni critiche di due processi non vengano mai eseguite contemporaneamente (mutua esclusione)

8 Dati condivisi fra processi diversi... Come è possibile condividere dati fra due processi diversi? –Condividere un file (aperto da entrambi in lettura e scrittura) –mettere a comune parti dello spazio di indirizzamento (via la system call mmap ()) –…...

9 Sezioni/Regioni Critiche (2) 4 condizioni che devono essere garantite da un meccanismo che assicura la mutua esclusione un solo processo per volta esegue la sezione critica non viene fatta nessuna assunzione sulla velocità relativa dei processi nessun processo che sta eseguendo codice esterno alla sezione critica può bloccare un altro processo nessun processo attende indefinitamente di entrare nella sezione critica

10 Sezioni/Regioni Critiche (3) Mutua esclusione con sezioni critiche

11 Mutua Esclusione : soluzioni hw Disabilitare le interruzioni –impedisce che un altro processo vada in esecuzione –non utilizzabile in modo utente –utilizzabile per poche istruzioni in modo kernel –non risolve il problema se il sistema ha più di una CPU

12 Mutua Esclusione con attesa attiva (busy waiting) (1) Soluzioni software –alternanza stretta –soluzione di Peterson Soluzioni hardware-software –listruzione TSL

13 Mutua Esclusione con attesa attiva (2) Alternanza stretta Una soluzione non soddisfacente per il problema della ME –0 può bloccare 1 quando si trova fuori dalla SC Processo 0 Processo 1

14 Mutua Esclusione con attesa attiva (3) Soluzione di Peterson (semplificata)

15 Mutua Esclusione con attesa attiva (4) Istruzione assembler Test and Set Lock (TSL) –eseguibile in modalità utente es: TSL R1, X –esegue due accessi indivisibili alla memoria –1) copia il contenuto della cella di indirizzo X in R1 –2) scrive 1 in X

16 Mutua Esclusione con attesa attiva (5) Ingresso ed uscita dalla sezione critica utilizzando listruzione TSL

17 Soluzioni senza attesa attiva Le primitive Sleep e Wakeup (1) Idea di base : un processo viene bloccato finché non è in grado di entrare nella sezione critica (in modo da non sprecare cicli di CPU) Due primitive realizzate come system call –sleep() :: blocca il processo che la invoca –wakeup(P) :: sveglia il processo P Esempio : il problema del produttore e del consumatore

18

19 Semafori (1) Problema con sleep e wakeup : una wakeup non utilizzata immediatamente viene persa Semafori : contatori di eventi implementati nel nucleo –contano quanti eventi si sono verificati (es. Wakeup) –il valore è 0 se non ci sono eventi pendenti e > 0 altrimenti Due operazioni atomiche standard Up e Down (P e V) realizzate come system call –down(S) se S > 0 allora S= S - 1 ed il processo continua lesecuzione se S==0 ed il processo si blocca senza completare la primitiva

20 Semafori (2) Due operazioni atomiche standard Up e Down (P e V) –down(S) se S > 0 allora S= S - 1 ed il processo continua lesecuzione se S==0 ed il processo si blocca senza completare la primitiva –up(S) se ci sono processi in attesa di completare la down su quel semaforo (e quindi necessariamente S == 0) uno di questi viene svegliato e S rimane a 0, altrimenti S viene incrementato; in caso contrario (S > 0), allora S=S + 1

21

22 Mutex (1) Semaforo con solo due stati aperto (unlocked) o chiuso (locked) Popolare nelle librerie di thread user-level Due primitive : –mutex_lock(), corrisponde alla down() –mutex_unlock(), corrisponde alla up() Utilizzato per realizzare sezioni critiche su dati condivisi Puo essere implementato efficientemente senza passare in stato kernel (se è disponibile la TSL)

23 Mutex (2) Implementazione delle primitive di mutex_lock e mutex_unlock