Processi e Thread Processi Thread

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione Input Output A. Ferrari.
TEORIA DEI SISTEMI OPERATIVI
Il Sistema Operativo.
Java: programmazione concorrente con condivisione di memoria
Gestione del processore
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Programmazione Concorrente
Sincronizzazione fra processi
Sincronizzazione di processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
Processi Concetto di processo Scheduling dei processi
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo
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)
Sincronizzazione dei Processi
1 Gestione del processore Il modello a processi sequenziali.
Sincronizzazione fra thread
Sistemi Operativi SCHEDULING DELLA CPU.
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.
Concorrenza e Sincronizzazione di Thread e Processi
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 degli elaboratori
Esame di didattica dell’informatica II
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.
Sincronizzazione dei processi
Processi.
Threads.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
Sistema Operativo (Software di base)
I processi.
Programmazione Concorrente e Distribuita
Gestione del processore (Scheduler)
Architettura dei Sistemi Operativi
Sistemi Elettronici Programmabili
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.
1 Processi e Thread Processi e thread in Windows 2000.
1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC.
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.
1 Scambio Messaggi (1) Primitive base –send(destination,&msg) –receive(source, &msg) Decine di varianti, nel nostro caso : –la receive blocca automaticamente.
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Cos’è un sistema operativo ?
1 System Call ancora Vediamo passo passo come funziona una SC.
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.
Il Sistema Operativo Processi e Risorse
Processi e Thread Meccanismi di IPC (1).
Processi e thread in Windows 2000
Transcript della presentazione:

Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi e thread in Windows

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 sempre ai processi maccanismi simili sono disponibili per i thread

Comunicazioni fra processi Race Condition (Interferenza, gara, corsa critica) Due processi accedono alla memoria condivisa contemporaneamente l’esito dipende dall’ordine in cui vengono eseguiti gli accessi

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)

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 esetrno alla sezione critica può bloccare un altro processo nessun processo attende indefinitamente di entrare nella sezione critica

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

Mutua Esclusione con attesa attiva (busy waiting) (1) Attenzione: il processo e' in stato “running” ma e' in busy waiting (loop)

Mutua Esclusione con attesa attiva (busy waiting) (2) 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

Mutua Esclusione con attesa attiva (busy waiting) (3) Soluzioni software alternanza stretta soluzione di Peterson Soluzioni hardware-software l’istruzione TSL

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

Mutua Esclusione con attesa attiva (3) Alternanza stretta (2) Garantisce la proprieta' di mutua esclusione MA HA DUE PUNTI DEBOLI: a) i due processi devono osservare un'alternanza stretta per l'uso della sezione critica la velocita' di esecuzione e' data dal processo piu' lento

Mutua Esclusione con attesa attiva (3) Alternanza stretta (2) Garantisce la proprieta' di mutua esclusione MA HA DUE PUNTI DEBOLI: a) i due processi devono osservare un'alternanza stretta per l'uso della sezione critica la velocita' di esecuzione e' data dal processo piu' lento b) se un processo fallisce, l'altro viene bloccato per sempre

Mutua Esclusione con attesa attiva (4) Soluzione di Peterson (semplificata) 1981

Mutua Esclusione con attesa attiva (5) TEST & SET LOCK TSL RX, LOCK RX<= (LOCK) LOCK <= #1 Ingresso ed uscita dalla sezione critica utilizzando l’istruzione TSL (TEST AND SET LOCK)

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 (P va in stato “BLOCCATO”) wakeup(P) :: sveglia il processo P

Le primitive Sleep e Wakeup (2) Sol. errata al problema del produttore–consumatore (con race condition)

Semafori Dijkstra (1965) (1) Problema con sleep e wakeup : una wakeup non utilizzata immediatamente viene persa Dijkstra (1965): due o piu' processi possono cooperare attraverso semplici segnali in modo che un processo si fermi ad una locazione ben precisa finche' non riceve un segnale specifico Semafori : variabili intere contano il numero di wakeup pendenti il valore è 0 se non ci sono wakeup pendenti e > 0 altrimenti

Semafori (2) Due operazioni atomiche (= non interrompibili) standard Up e Down (P e V) down(S) [riceve segnale] se S > 0 allora S= S – 1 ed il processo continua l’esecuzione se S==0 il processo viene bloccato senza completare la primitiva (il processo viene aggiunto alla lista dei processi in attesa al semaforo e poi viene invocato lo scheduler) up(S) [trasmette segnale] se S > 0 allora S= S + 1 se S==0 e ci sono processi in attesa di completare la down su quel semaforo, uno di questi viene svegliato (viene messo nello stato di pronto) e S rimane a 0, altrimenti S viene incrementato

Semafori (3) Ogni risorsa e' protetta da un semaforo. Quando un semaforo viene creato gli viene assegnato un numero che denota quanti utilizzi concorrenti della risorsa sono ammessi Semafori binari (per mutua eclusione) MUTEX (MUTual EXclusion) per protezione risorse mutex=1; inizializzato a 1 processo ... down (&mutex) <regione critica> up (&mutex) ....

Soluzione del Produttore/Consumatore con semafori mutex sincroniz- zazione Soluzione del Produttore/Consumatore con semafori

Semafori (5) Schema di cosa accade nei livelli bassi dell’OS quando viene rilevata una interruzione MODELLO A SEMAFORO semaphore s=0; processo P (device driver) starts i/o device; down (s); si blocca ..... interrupt handler ~~> interrupt up (s); P pronto 1. Salvataggio PC, PSW e qualche RG sulla pila (hw) 2. L’interrupt vector viene caricato nel PC (hw) 3. Salvataggio delle info sullo stack e di tutti i registri nella tabella dei processi (assembler) 4. L’SP punta a una nuova pila (assembler) 5. Esecuzione del gestore delle interru- zioni (C) 6. Esecuzione dello scheduler per decidere il nuovo processo da eseguire (C) 7. Caricamento dei registri e di tutte le informazioni relative al nuovo processo da eseguire (assembler)

Monitor (1) Oggetti (Strutture dati + procedure per accedervi) Mutua esclusione nell’esecuzione delle procedure Variabili di Condizione + wait() e signal() wait(X) sospende sempre il processo che la invoca in attesa di una signal(X) signal(X) sveglia uno dei processi in coda su X se nessun processo è in attesa va persa deve essere eseguita solo come ultima istruzione prima di uscire dal monitor (il processo svegliato ha l’uso esclusivo del monitor)

Monitor (2) Un esempio di monitor

Monitor (3) Schema di soluzione Produttore/Consumatore pseudo-Pascal procedure Schema di soluzione Produttore/Consumatore ad ogni istante solo una procedura del monitor è in esecuzione il buffer ha N posizioni

Scambio Messaggi (1) Non richedono accesso a supporti di memorizzazione comune primitive base send(destination,&msg) receive(source, &msg) decine di varianti, nel nostro caso : la receive blocca automaticamente se non ci sono messaggi i messaggi spediti ma non ancora ricevuti sono bufferizzati dal SO

Sol. Produttore/Consumatore con N messaggi Scambio Messaggi (2) send (destination, & message) receive(source, &message) Sol. Produttore/Consumatore con N messaggi

I filosofi a cena (1) I filosofi mangiano e pensano Dijkstra (1965) I filosofi mangiano e pensano Per mangiare servono due forchette Ogni filosofo prende una forchetta per volta Come si può prevenire il deadlock

Una falsa soluzione al problema dei filosofi I filosofi a cena (2) Una falsa soluzione al problema dei filosofi

Una falsa soluzione al problema dei filosofi I filosofi a cena (3) <---down (mutex); <--up(mutex); Una falsa soluzione al problema dei filosofi

Una soluzione corretta al problema (parte 1) I filosofi a cena (4) L N R 5 1 2 1 2 3 2 3 4 3 4 5 4 5 1 “%” = modulo Una soluzione corretta al problema (parte 1)

Una soluzione corretta al problema (parte 2) I filosofi a cena (5) (int i) libera il sx libera il dx (int i) Una soluzione corretta al problema (parte 2)

Il problema dei lettori e scrittori Una soluzione al problema dei lettori e scrittori (1971)

Il barbiere sonnolento (1)

Il barbiere sonnolento (2) Soluzione al problema del barbiere.