La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

4.1 Sistemi Operativi Processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazioni fra processi.

Presentazioni simili


Presentazione sul tema: "4.1 Sistemi Operativi Processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazioni fra processi."— Transcript della presentazione:

1 4.1 Sistemi Operativi Processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazioni fra processi

2 4.2 Sistemi Operativi Concetto di processo Un sistema operativo esegue vari programmi: –Sistemi batch: job –Sistemi time-sharing: programmi utente o task I libri di testo impiegano indifferentemente il termine job o processo. Processo – un programma in esecuzione; lesecuzione di un processo deve avvenire in modo sequenziale. Un processo include: –il program counter –lo stack –una sezione di dati

3 4.3 Sistemi Operativi Stato del processo Mentre viene eseguito un processo cambia stato –Nuovo (new): Il processo viene creato. –In esecuzione (running): Le istruzioni vengono eseguite. –In attesa (waiting): Il processo è in attesa per qualche evento che deve avvenire. –Pronto (ready): Il processo è in attesa di essere assegnato ad un processore. –Terminato (terminated): Il processo ha finito lesecuzione.

4 4.4 Sistemi Operativi Process Control Block (PCB) Contiene le informazioni associate ad un processo. Stato del processo Program counter Registri della CPU Informazioni sullo scheduling della CPU Informazioni sulla gestione della memoria Informazioni di contabilizzazione delle risorse Informazioni sullo stato di I/O

5 4.5 Sistemi Operativi Switch della CPU da processo a processo

6 4.6 Sistemi Operativi Code per lo scheduling di processi Coda dei job – Insieme di tutti i processi presenti nel sistema. Coda dei processi pronti – Insieme di tutti i processi pronti ed in attesa di esecuzione, che risiedono i memoria. Code dei dispositivi – Insieme di processi in attesa per un dispositivo di I/O. I processi si spostano fra le varie code.

7 4.7 Sistemi Operativi Tipi di scheduler Scheduler a lungo termine (o scheduler dei job) – seleziona quali processi devono stare nella coda dei processi pronti. Scheduler a breve termine (o scheduler della CPU) – seleziona quali processi debbano essere eseguiti successivamente, ed alloca la CPU. Scheduler a medio termine (swapping) – rimozione dei processi dalla memoria (e dalla contesa per la CPU) e riduzione del grado di multiprogrammazione.

8 4.8 Sistemi Operativi Tipi di scheduler Lo scheduler a breve termine viene chiamato molto spesso (millisecondi) deve essere veloce. Lo scheduler a lungo termine viene chiamato raramente (secondi, minuti) può essere lento (ma efficiente). Lo scheduler a lungo termine controlla il grado di multiprogrammazione. I processi possono essere descritti come: –Processo I/O-bound – impiega più tempo effettuando I/O rispetto al tempo impiegato per elaborazioni (in generale, si hanno molti burst di CPU di breve durata). –Processo CPU-bound – impiega più tempo effettuando elaborazioni (in generale, si hanno pochi burst di CPU di lunga durata).

9 4.9 Sistemi Operativi Context Switch Quando la CPU passa da un processo allaltro, il sistema deve salvare lo stato del vecchio processo e caricare lo stato precedentemente salvato per il nuovo processo. Il tempo di context-switch è un sovraccarico; il sistema non lavora utilmente mentre cambia processo. Il tempo dipende dal supporto hardware.

10 4.10 Sistemi Operativi Creazione di processi Il processo padre crea processi figli che, a loro volta, creano altri processi, formando un albero di processi. Condivisione di risorse (possibilità) –Il padre e il figlio condividono tutte le risorse. –Il figlio condivide un sottoinsieme delle risorse del padre. –Il padre e il figlio non condividono risorse. Esecuzione –Il padre e il figlio vengono eseguiti concorrentemente. –Il padre attende fino al termine del processo figlio. Spazio degli indirizzi –Il processo figlio è un duplicato del processo padre. –Nel processo figlio è stato caricato un programma. Esempio UNIX: la chiamata fork crea un nuovo processo, la chiamata execve viene impiegata dopo una fork per rimpiazzare lo spazio di memoria del processo con un nuovo programma.

11 4.11 Sistemi Operativi Un albero di processi in un tipico sistema UNIX

12 4.12 Sistemi Operativi Terminazione di un processo Il processo esegue lultima istruzione e chiede al sistema operativo di essere cancellato per mezzo di una specifica chiamata di sistema (exit in UNIX) che compie le seguenti operazioni: –Può restituire dei dati (output) al processo padre (wait). –Le risorse del processo vengono liberate. Un padre può terminare lesecuzione di processi figli (abort) per diversi motivi: –Il figlio ha ecceduto nelluso di alcune risorse. –Il compito assegnato al figlio non è più richiesto. –Il padre termina. Il sistema operativo non consente ad un figlio di continuare se suo padre è terminato. Questo fenomeno è detto terminazione a cascata e dipende dal SO.

13 4.13 Sistemi Operativi Processi cooperanti Un processo è indipendente se non può influire su altri processi nel sistema o esserne influenzato. Processi cooperanti possono influire su altri processi o esserne influenzati Vantaggi della cooperazione fra processi –Condivisione di informazioni –Accelerazione del calcolo –Modularità –Convenienza

14 4.14 Sistemi Operativi Problema produttore–consumatore E un paradigma classico per processi cooperanti. Il processo produttore produce informazioni che vengono consumate da un processo consumatore. –Buffer illimitato: non vengono posti limiti pratici alla dimensione del buffer. –Buffer limitato: si assume che la dimensione del buffer sia fissata.

15 4.15 Sistemi Operativi Soluzione con buffer limitato e memoria condivisa Dati condivisi var n; type item = … ; var buffer: array [0..n–1] of item; in, out: 0..n–1; Processo produttore repeat … produce un elemento in nextp … while in+1 mod n = out do no-op; buffer [in] := nextp; in := in+1 mod n; until false;

16 4.16 Sistemi Operativi Soluzione con buffer limitato Processo consumatore repeat while in = out do no-op; nextc := buffer [out]; out := out+1 mod n; … consuma lelemento in nextc … until false; La soluzione è corretta, ma lo schema permette di avere al massimo n -1 elementi contemporaneamente contenuti nel buffer.

17 4.17 Sistemi Operativi Thread Un thread (o lightweight process, LWP) è lunità di base di utilizzo della CPU e consiste di : –Program counter –Insieme dei registri –Spazio dello stack Un thread condivide con i thread ad esso associati: –sezioni di codice –sezioni dati –risorse del sistema operativo Linsieme dei tread e dellambiente da essi condiviso è chiamato task. Un processo tradizionale, o heavyweight corrisponde ad un task con un solo thread

18 4.18 Sistemi Operativi Thread In un task con più thread, mentre un thread è blocccato e in attesa, un secondo thread nello stesso task può essere in esecuzione. –La cooperazione di più thread nello steso job fornisce un più grande throughput e prestazioni migliorate. –Applicazioni che richiedono la condivisione di un buffer comune (es. produttore-consumatore) traggono beneficio dallimpiego di thread. I thread forniscono un meccanismo che permette a processi sequenziali di effettuare chiamate di sistema bloccanti ottenendo allo stesso tempo unesecuzione parallela. Alcuni sistemi supportano i thread a livello di kernel (OS/2). Thread a livello di utente: supportato sopra al kernel, per mezzo di chiamate di libreria a livello utente. Approcci ibridi implementano thread sia a livello di kernel che a livello utente (Solaris 2).

19 4.19 Sistemi Operativi Interprocess Communication (IPC) Meccanismo per la comunicazione e sincronizzazione fra processi. Sistema di messaggi – i processi comunicano fra di loro senza far uso di variabili condivise. IPC consente due operazioni: –send(messaggio) – la dimensione del messaggio può essere fissa o variabile –receive(messaggio) Se P e Q vogliono comunicare, hanno bisogno di: –stabilire un canale di comunicazione fra di loro –scambiare messaggi per mezzo di send e receive Implementazione del canale di comunicazione –fisica (es. memoria condivisa, bus hardware) –logica (es. proprietà logiche)

20 4.20 Sistemi Operativi Informazioni di implementazione Come vengono stabiliti i canali (connessioni)? Si può assegnare un canale a più di due processi? Quanti canali possono esserci fra ciascuna coppia di processi comunicanti? Qual è la capacità di un canale? Dimensione del messaggio che può gestire un canale fissa o variabile? Canale monodirezionale o bi-direzionale?

21 4.21 Sistemi Operativi Comunicazione diretta I processi devono nominare esplicitamente i loro interlocutori: –send (P, messaggio) – invia un messaggio al processo P –receive(Q, messaggio) – riceve un messaggio dal processo Q Proprietà del canale di comunicazione –I canali vengono stabiliti automaticamente. –Un canale è associato esattamente a due processi. –Tra ogni coppia di processi comunicanti esiste esattamente un canale. –Il canale può essere unidirezionale, ma usualmente è bidirezionale.

22 4.22 Sistemi Operativi Comunicazione indiretta I messaggi vengono inviati a delle mailbox (indicate anche come porte) e da esse ricevuti. –Ciascuna mailbox è idendificata con un unico id. –I processi possono comunicare solamente se condividono una mailbox. Proprietà dei canali di comunicazione: –Un canale viene stabilito solo se i processi hanno una mailbox in comune –Un canale può essere associato a più di un processo. –Ogni coppia di processi può condividere più canali di comunicazione. –I canali possono essere unidirezionali o bidirezionali. Operazioni –creare una nuova mailbox –inviare e ricevere messaggi attraverso la mailbox –distruggere una mailbox

23 4.23 Sistemi Operativi Comunicazione indiretta Condivisione di mailbox –P 1, P 2, e P 3 condividono la mailbox A. –P 1, invia; P 2 e P 3 ricevono. –Chi prende il messaggio? Soluzioni –Permettere ad un canale di essere associato ad al più due processi. –Permettere ad un solo processo alla volta di eseguire unoperazione di ricezione. –Permettere al sistema di selezionare arbitrariamente il ricevente. Il sistema può comunicare lidentità del ricevente al trasmittente.

24 4.24 Sistemi Operativi Buffering La coda dei messaggi legati ad un canale può essere implementata in tre modi. 1.Capacità zero – il canale non può avere messaggi in attesa al suo interno. Il trasmittente deve attendere che il ricevente abbia ricevuto il messaggio (rendezvous). 2.Capacità limitata – lunghezza finita: n messaggi. Il trasmittente deve attendere se il canale è pieno. 3.Capacità illimitata – lunghezza infinita. Il trasmittente non attende mai.

25 4.25 Sistemi Operativi Condizioni di eccezione Terminazione del processo Messaggi perduti Messaggi alterati

26 4.26 Sistemi Operativi Thread supportati sotto Solaris 2 Solaris 2 è una versione di UNIX con supporto per thread a livello kernel e utente, con multprocessing simmetrico, e scheduling in tempo reale. LWP – è ad un livello intermedio fra thread di utente e thread di kernel. Requisiti di risorse a seconda dei tipi di thread: –Kernel thread: piccola struttura dati e uno stack; il cambiamento di thread non richiede di cambiare le informazioni di accesso alla memoria. Relativamente veloce. –LWP: PCB con dati dei registri, informazioni di contabilizzazione e informazioni di memoria. Cambiamento fra LWP è relativamente lento. –User–level thread: ha bisogno solamente dello stack e del program–counter; non essendo impiegato il kernel, è più veloce. Il kernel vede solo LWP che supportano thread a livello utente.

27 4.27 Sistemi Operativi Thread di Solaris 2


Scaricare ppt "4.1 Sistemi Operativi Processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazioni fra processi."

Presentazioni simili


Annunci Google