La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Silberschatz, Galvin and Gagne 2002 4.1 Operating System Concepts I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi.

Presentazioni simili


Presentazione sul tema: "Silberschatz, Galvin and Gagne 2002 4.1 Operating System Concepts I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi."— Transcript della presentazione:

1 Silberschatz, Galvin and Gagne Operating System Concepts I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

2 Silberschatz, Galvin and Gagne Operating System Concepts Concetto di processo Un sistema operativo esegue programmi di varia natura: Sistemi batch: job Sistemi batch: job Sistemi time–sharing: programmi utente o task Sistemi time–sharing: programmi utente o task job processo I libri di testo impiegano indifferentemente il termine job o processo. Processo Processo un programma in esecuzione; lesecuzione di un processo deve avvenire in modo sequenziale. Un processo include: il program counter il program counter lo stack lo stack una sezione dati una sezione dati

3 Silberschatz, Galvin and Gagne Operating System Concepts Stato del processo stato Mentre viene eseguito un processo cambia stato: New New (nuovo): Il processo viene creato. Running Running (in esecuzione): Le istruzioni vengono eseguite. Waiting Waiting (in attesa): Il processo è in attesa di un evento. Ready Ready (pronto): Il processo è in attesa di essere assegnato ad un processore. Terminated Terminated (terminato): Il processo ha terminato la propria esecuzione. Diagramma degli stati di un processo

4 Silberschatz, Galvin and Gagne Operating System Concepts Process Control Block (PCB) Informazione associata a ciascun processo: Stato del processo Program counter Registri della CPU (accumulatori, indice, stack pointer) Informazioni sullo scheduling della CPU (priorità, puntatori alle code di scheduling) Informazioni sulla gestione della memoria (registri base e limite, tabella pagine/segmenti) Informazioni di contabilizzazione delle risorse (numero job/account, tempo di CPU) Informazioni sullo stato di I/O (lista dispositivi/file aperti)

5 Silberschatz, Galvin and Gagne Operating System Concepts Commutazione della CPU fra processi

6 Silberschatz, Galvin and Gagne Operating System Concepts Code per lo scheduling di processi Coda dei job Coda dei job Insieme di tutti i processi presenti nel sistema. Ready queue Ready queue (Coda dei processi pronti) Insieme di tutti i processi pronti ed in attesa di esecuzione, che risiedono i memoria centrale. Code dei dispositivi Code dei dispositivi Insieme di processi in attesa per un dispositivo di I/O. I processi si spostano fra le varie code.

7 Silberschatz, Galvin and Gagne Operating System Concepts Ready queue e code ai dispositivi di I/O

8 Silberschatz, Galvin and Gagne Operating System Concepts Diagramma di accodamento per lo scheduling dei processi Ogni riquadro rappresenta una coda. Le ellissi racchiudono le risorse che servono le code, mentre le frecce indicano il flusso dei processi nel sistema.

9 Silberschatz, Galvin and Gagne Operating System Concepts Tipi discheduler Tipi di scheduler lungo termine Scheduler a lungo termine (o scheduler dei job): seleziona quali processi devono essere portati dalla memoria di massa alla ready queue (in memoria centrale). breve termine Scheduler a breve termine (o scheduler della CPU) : seleziona quale processo debba essere eseguito successivamente, ed alloca la CPU. medio termineswapper Scheduler a medio termine (swapper ): rimuove processi dalla memoria (e dalla contesa per la CPU) e riduce il grado di multiprogrammazione. Scheduling a medio termine

10 Silberschatz, Galvin and Gagne Operating System Concepts Tipi di scheduler Lo scheduler a breve termine viene chiamato molto spesso ( 100 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 classificati in: Processi I/O–bound : impiegano più tempo effettuando I/O rispetto al tempo impiegato per elaborazioni (in generale, si hanno molti burst di CPU di breve durata). Processi I/O–bound : impiegano più tempo effettuando I/O rispetto al tempo impiegato per elaborazioni (in generale, si hanno molti burst di CPU di breve durata). Processi CPU–bound : impiegano più tempo effettuando elaborazioni (in generale, si hanno pochi burst di CPU di lunga durata). Processi CPU–bound : impiegano più tempo effettuando elaborazioni (in generale, si hanno pochi burst di CPU di lunga durata).

11 Silberschatz, Galvin and Gagne Operating System Concepts 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. context–switch Il tempo di context–switch è un sovraccarico (overhead ); il sistema non lavora utilmente mentre cambia contesto. Il tempo di context–switch dipende dal supporto hardware (velocità di accesso alla memoria, numero di registri da copiare, istruzioni speciali, gruppi di registri multipli).

12 Silberschatz, Galvin and Gagne Operating System Concepts Creazione di processi Il processo padre crea processi figli che, a loro volta, creano altri processi, formando un albero di processi. Condivisione di risorse Il padre e il figlio condividono tutte le risorse. Il padre e il figlio condividono tutte le risorse. I figli condividono un sottoinsieme delle risorse del padre. I figli condividono un sottoinsieme delle risorse del padre. Il padre e il figlio non condividono risorse. Il padre e il figlio non condividono risorse. Esecuzione Il padre e i figli vengono eseguiti concorrentemente. Il padre e i figli vengono eseguiti concorrentemente. Il padre attende la terminazione dei processi figli. Il padre attende la terminazione dei processi figli. Spazio degli indirizzi Il processo figlio è un duplicato del processo padre. Il processo figlio è un duplicato del processo padre. Nel processo figlio è stato caricato un diverso programma. Nel processo figlio è stato caricato un diverso programma. UNIXforkexecve fork In UNIX: la system call fork crea un nuovo processo, la execve viene impiegata dopo una fork per sostituire lo spazio di memoria del processo originale con un nuovo programma.

13 Silberschatz, Galvin and Gagne Operating System Concepts Albero dei processi in un tipico sistema UNIX

14 Silberschatz, Galvin and Gagne Operating System Concepts Terminazione di processi exit 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 dati (output) al processo padre (wait). Può restituire dati (output) al processo padre (wait). Le risorse del processo vengono deallocate dal SO. Le risorse del processo vengono deallocate dal SO. abort Il padre può terminare lesecuzione dei processi figli (abort) se… Il figlio ha ecceduto nelluso di alcune risorse. Il figlio ha ecceduto nelluso di alcune risorse. Il compito assegnato al figlio non è più richiesto. Il compito assegnato al figlio non è più richiesto. Il padre termina. Il padre termina. Il sistema operativo non consente ad un processo figlio di continuare lesecuzione se il padre è terminato. Questo fenomeno è detto terminazione a cascata e viene avviato dal SO. Il sistema operativo non consente ad un processo figlio di continuare lesecuzione se il padre è terminato. Questo fenomeno è detto terminazione a cascata e viene avviato dal SO.

15 Silberschatz, Galvin and Gagne Operating System Concepts Processi cooperanti indipendente Un processo è indipendente se non può influire su altri processi nel sistema o subirne linflusso. cooperanti Processi cooperanti possono influire su altri processi o esserne influenzati. La presenza o meno di dati condivisi determina univocamente la natura del processo. Vantaggi della cooperazione fra processi Condivisione di informazioni Condivisione di informazioni Accelerazione del calcolo (in sistemi multiprocessore) Accelerazione del calcolo (in sistemi multiprocessore) Modularità Modularità Convenienza Convenienza

16 Silberschatz, Galvin and Gagne Operating System Concepts Problema del produttore–consumatore produttore consumatore È 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 illimitato: non vengono posti limiti pratici alla dimensione del buffer. Buffer limitato: si assume che la dimensione del buffer sia fissata. Buffer limitato: si assume che la dimensione del buffer sia fissata. Esempio: Esempio: Un programma di stampa produce caratteri che verranno consumati dal driver della stampante.

17 Silberschatz, Galvin and Gagne Operating System Concepts Soluzione con buffer limitato e memoria condivisa Dati condivisi #define BUFFER_SIZE 10 Typedef struct {... } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; La soluzione ottenuta è corretta, ma consente lutilizzo di soli BUFFER_SIZE–1 elementi.

18 Silberschatz, Galvin and Gagne Operating System Concepts Soluzione con buffer limitato e memoria condivisa item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } ProcessoProduttore ProcessoConsumatore

19 Silberschatz, Galvin and Gagne Operating System ConceptsThread thread lightweight process, LWP Un thread (o lightweight process, LWP) è lunità di base di utilizzo della CPU e consiste di: Program counter Program counter Insieme dei registri Insieme dei registri Spazio dello stack Spazio dello stack Un thread condivide con i thread ad esso associati: Segmento di codice Segmento di codice Segmento dati Segmento dati Risorse del sistema operativo Risorse del sistema operativo task Linsieme dei thread e dellambiente da essi condiviso è chiamato task. heavyweight Un processo tradizionale, o heavyweight, corrisponde ad un task con un solo thread.

20 Silberschatz, Galvin and Gagne Operating System Concepts Processi a thread singolo e multithread

21 Silberschatz, Galvin and Gagne Operating System ConceptsThread In un task multithread, mentre un thread è blocccato in attesa, un secondo thread nello stesso task può essere in esecuzione. La cooperazione di più thread nello stesso job fornisce un maggior throughput. La cooperazione di più thread nello stesso job fornisce un maggior throughput. Applicazioni che richiedono la condivisione di un buffer (es. produttore– consumatore) traggono beneficio dallimpiego di thread. Applicazioni che richiedono la condivisione di un buffer (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. thread a livello kernelOS/2 Alcuni sistemi supportano i thread a livello kernel (OS/2). Thread a livello utente Andrew Thread a livello utente: il lavoro di gestione dei thread viene effettuato dalle applicazioni ed il kernel non è conscio della loro presenza (Andrew). Solaris 2 Approcci ibridi implementano thread sia a livello kernel che a livello utente (Solaris 2).

22 Silberschatz, Galvin and Gagne Operating System Concepts Thread a livello utente (ULT) Vantaggi: Il cambio di contesto fra thread non richiede privilegi in modalità kernel (risparmia il sovraccarico del doppio cambiamento di modalità). Il cambio di contesto fra thread non richiede privilegi in modalità kernel (risparmia il sovraccarico del doppio cambiamento di modalità). Lo scheduling può essere diverso per applicazioni diverse. Lo scheduling può essere diverso per applicazioni diverse. Gli ULT (User Level Thread ) possono essere eseguiti su qualunque SO senza cambiare il kernel sottostante. La libreria dei thread è un insieme di utilità a livello di applicazione. Gli ULT (User Level Thread ) possono essere eseguiti su qualunque SO senza cambiare il kernel sottostante. La libreria dei thread è un insieme di utilità a livello di applicazione. Svantaggi: In caso di system call bloccanti, quando un thread esegue una chiamata di sistema, viene bloccato tutto il processo. In caso di system call bloccanti, quando un thread esegue una chiamata di sistema, viene bloccato tutto il processo. Unapplicazione multithread non può sfruttare il multiprocessing: in un dato istante un solo thread per processo è in esecuzione. Unapplicazione multithread non può sfruttare il multiprocessing: in un dato istante un solo thread per processo è in esecuzione.

23 Silberschatz, Galvin and Gagne Operating System Concepts Thread a livello kernel (KLT) Il kernel effettua lo scheduling a livello di thread: Può schedulare simultaneamente più thread; Può schedulare simultaneamente più thread; Se un thread di un processo è bloccato il kernel può schedulare un altro thread dello stesso processo. Se un thread di un processo è bloccato il kernel può schedulare un altro thread dello stesso processo. KLTKernel Level Thread Svantaggio dellapproccio KLT (Kernel Level Thread ): Il trasferimento del controllo fra thread dello stesso processo richiede il passaggio in modalità kernel: laumento di prestazioni è molto meno rilevante rispetto allapproccio ULT.

24 Silberschatz, Galvin and Gagne Operating System Concepts Un esempio di KLT: LINUX LINUXtask LINUX si riferisce ai thread chiamandoli task. clone La creazione di thread in LINUX avviene tramite la system call clone. clone La system call clone permette al task figlio la condivisione dello spazio degli indirizzi del task padre (il processo originario).

25 Silberschatz, Galvin and Gagne Operating System Concepts Comunicazione tra processi (IPC) IPC, Inter–Process Communication IPC, Inter–Process Communication: Meccanismo per la comunicazione e la sincronizzazione fra processi. Sistema di messaggi i processi comunicano fra loro senza far uso di variabili condivise. La funzionalità IPC consente due operazioni: send(messaggio) la dimensione del messaggio può essere fissa o variabile; send(messaggio) la dimensione del messaggio può essere fissa o variabile; receive(messaggio). receive(messaggio). Se I processi P e Q vogliono comunicare, devono: stabilire fra loro un canale di comunicazione; stabilire fra loro un canale di comunicazione; scambiare messaggi per mezzo di send/receive. scambiare messaggi per mezzo di send/receive. Implementazione del canale di comunicazione: fisica (es. memoria condivisa, bus hardware); fisica (es. memoria condivisa, bus hardware); logica (proprietà logiche). logica (proprietà logiche).

26 Silberschatz, Galvin and Gagne Operating System Concepts Problemi di implementazione Come vengono stabiliti i canali (connessioni)? È possibile assegnare un canale a più di due processi? Quanti canali possono essere stabiliti fra ciascuna coppia di processi comunicanti? Qual è la capacità di un canale? Il formato del messaggio che un canale può gestire è fisso o variabile? Stabilire canali monodirezionali o bidirezionali?

27 Silberschatz, Galvin and Gagne Operating System Concepts Comunicazione diretta I processi devono nominare esplicitamente i loro interlocutori (modalità simmetrica): send (P, messaggio) invia un messaggio al processo P send (P, messaggio) invia un messaggio al processo P receive(Q, messaggio) riceve un messaggio dal processo Q receive(Q, messaggio) riceve un messaggio dal processo Q Proprietà del canale di comunicazione: I canali vengono stabiliti automaticamente. I canali vengono stabiliti automaticamente. Ciascun canale è associato esattamente ad una coppia di processi. Ciascun canale è associato esattamente ad una coppia di processi. Tra ogni coppia di processi comunicanti esiste esattamente un canale. Tra ogni coppia di processi comunicanti esiste esattamente un canale. Il canale può essere unidirezionale (ogni processo collegato al canale può soltanto trasmettere/ricevere), ma è normalmente bidirezionale. Il canale può essere unidirezionale (ogni processo collegato al canale può soltanto trasmettere/ricevere), ma è normalmente bidirezionale.

28 Silberschatz, Galvin and Gagne Operating System Concepts Comunicazione indiretta mailboxporte I messaggi vengono inviati/ricevuti da mailbox (porte). Ciascuna mailbox è idendificata con un id unico. Ciascuna mailbox è idendificata con un id unico. I processi possono comunicare solamente se condividono una mailbox. 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 viene stabilito solo se i processi hanno una mailbox in comune. Un canale può essere associato a più processi. Un canale può essere associato a più processi. Ogni coppia di processi può condividere più canali di comunicazione. Ogni coppia di processi può condividere più canali di comunicazione. I canali possono essere unidirezionali o bidirezionali. I canali possono essere unidirezionali o bidirezionali. Operazioni: creare una nuova mailbox creare una nuova mailbox Inviare/ricevere messaggi attraverso mailbox Inviare/ricevere messaggi attraverso mailbox distruggere una mailbox distruggere una mailbox

29 Silberschatz, Galvin and Gagne Operating System Concepts Comunicazione indiretta Primitive di comunicazione: send send(A, messaggio) invia un messaggio alla mailbox A receive receive(A, messaggio) riceve un messaggio dalla mailbox A Condivisione di mailbox P 1, P 2, e P 3 condividono la mailbox A. P 1, P 2, e P 3 condividono la mailbox A. P 1, invia; P 2 e P 3 ricevono. P 1, invia; P 2 e P 3 ricevono. Chi si assicura il messaggio? Chi si assicura il messaggio? Soluzioni: Permettere ad un canale di essere associato ad al più due processi. 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 ad un solo processo alla volta di eseguire unoperazione di ricezione. Permettere al SO di selezionare arbitrariamente il ricevente. Il sistema comunica lidentità del ricevente al trasmittente. Permettere al SO di selezionare arbitrariamente il ricevente. Il sistema comunica lidentità del ricevente al trasmittente.

30 Silberschatz, Galvin and Gagne Operating System ConceptsSincronizzazione bloccante non–bloccante Lo scambio di messaggi può essere sia bloccante che non–bloccante. sincrona In caso di scambio di messaggi bloccante la comunicazione è sincrona. asincrona In caso di scambio di messaggi non–bloccante la comunicazione è asincrona. sendreceive Le primitive send e receive possono essere sia bloccanti che non–bloccanti.

31 Silberschatz, Galvin and Gagne Operating System ConceptsBuffering La coda dei messaggi legata ad un canale può essere implementata in tre modi. Capacità zero rendezvous 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). Capacità limitata 2.Capacità limitata Lunghezza finita pari a n messaggi. Se il canale è pieno, il trasmittente deve attendere. Capacità illimitata 3.Capacità illimitata Lunghezza infinita. Il trasmittente non attende mai.

32 Silberschatz, Galvin and Gagne Operating System Concepts Condizioni di eccezione Terminazione del processo Terminazione del processo: un processo trasmittente o ricevente può terminare prima che un messaggio sia stato elaborato messaggi mai ricevuti, processi bloccati in attesa. Messaggi perduti Messaggi perduti: a causa di guasti sui canali di comunicazione; il SO o il processo trasmittente sono responsabili del rilevamento della condizione di eccezione e della ripetizione del messaggio. Messaggi alterati Messaggi alterati: a causa di disturbi sul canale di comunicazione; il messaggio deve essere ritrasmesso.


Scaricare ppt "Silberschatz, Galvin and Gagne 2002 4.1 Operating System Concepts I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi."

Presentazioni simili


Annunci Google