1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.

Slides:



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

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.
Gestione Input Output A. Ferrari.
Il Sistema Operativo.
Java: programmazione concorrente con condivisione di memoria
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, Inter Process Communication (1)
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
Processi Concetto di processo Scheduling dei processi
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo
Corso di Informatica (Programmazione)
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.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Struttura dei sistemi operativi (panoramica)
I Thread.
Sincronizzazione dei Processi
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
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
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Concorrenza e Sincronizzazione di Thread e Processi
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
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
Esame di didattica dell’informatica II
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,
Processi e Thread Job: Insieme di processi che condividono quote e limiti. Processo: Contenitore di risorse (una lista di thread, una lista di handle e.
File system distribuito transazionale con replicazione
Sincronizzazione dei processi
Threads.
Pippo.
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
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:
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
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 (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 –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 Race Condition (Interferenza) Due processi accedono alla memoria condivisa contemporaneamente lesito dipende dallordine in cui vengono eseguiti gli accessi

4 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)

5 Sezioni/Regioni Critiche (2) 4 condizioni per assicurare 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

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

7 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

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

9 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

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

11 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

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

13 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

14

15 Sol. Errata al problema del produttore–consumatore (con race condition)

16 Semafori (1) Problema con sleep e wakeup : una wakeup non utilizzata immediatamente viene persa Semafori : variabili intere –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) –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

17

18 Mutex (1) Semaforo con solo due stati aperto (unlocked) o chiuso (locked) Popolare nei 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)

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