Esercitazione di Sistemi Operativi

Documenti analoghi
Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Scheduling della CPU

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

SCHEDULING DELLA CPU. Obiettivi. » Introduzione allo scheduling della CPU. » Algoritmi di scheduling della CPU

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Corso di Informatica

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Scheduling della CPU

Capitolo 5 - Silberschatz

Scheduling della CPU. Sistemi Operativi L-A AA

Università degli Studi di Padova - Corso di Laurea in Informatica

E-1: Scheduling dei processi

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Il Sistema Operativo Ripasso

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Lezione R4. Sistemi embedded e real-time

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

I Processi. Il Concetto di Processo

Sistemi Operativi 13 Novembre 2015

Richiami sui Concetti Fondamentali dei Processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi (modulo di Informatica II) I processi

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi. Lezione 5 Lo scheduling

Sistemi Operativi A.A. 2010/2011

Sistemi Operativi e Laboratorio, Prova del 9/9/2016

Università degli Studi di Padova - Corso di Laurea in Informatica

Sistemi Operativi Appello del 10 luglio 2017 Versione Compito A Cognome e nome: Matricola: Posto:

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Il software. la parte contro cui si può solo imprecare

Il software. la parte contro cui si può solo imprecare. Il software

Sistemi Operativi 20 giugno 2013 Compito B

LINUX: struttura generale

Scheduling della CPU. Sistemi operativi- AA 2015/16 1 1

Introduzione al Multithreading

Scheduling della CPU. Capitolo 6 - Silberschatz

5.19! Silberschatz, Galvin and Gagne 2005! 0! 20! 37! 57! 77! 97! 117! 121! 134! 154! 162!

Sistemi Operativi Esercizi File System. Docente: Claudio E. Palazzi

Sistemi Operativi. Scheduling dei processi

ESERCITAZIONE 6 - Soluzioni. Processi e thread

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Scheduling della CPU

Architettura degli Elaboratori 2. tipi di scheduling. scheduling della CPU (1) scheduling. First Come First Served. First Come First Served

Sistemi Operativi 2003/2004. Lo scheduling dei processi

Criteri di Scheduling! Algoritmi di Scheduling! Scheduling per sistemi multprocessore!! Modelli Asimmetrico e Simmetrico! Processori Multicore!

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Laboratorio di Sistemi Operativi Simulatori

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Sistemi Operativi Esercizi Ordinamento Processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

TERMINA ESECUZIONE A B =85 85 C =90 90 D = E = INIZIA ESECUZIONE

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 21 dicembre 2004

Ordinamento dei processi

Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Introduzione ai thread

Diplomi Universitari Teledidattici. Sistemi Operativi

Sistemi Operativi. Lezione 3 Processi e Thread

i. Diagramma di GANTT relativo all esecuzione dei quattro processi:

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Processi. Capitolo 3 -- Silberschatz

I Processi. Il Concetto di Processo

Sistemi Operativi e Laboratorio, Prova del?/?/?

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A

I Sistemi Operativi. Prof.ssa Antonella Serra

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Sistemi Operativi 9/05/2012 <C>

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A

Il Concetto di Processo

Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica

L ordinamento dei processi. Ordinamento dei processi. Fasi di ordinamento. Attribuzione della CPU 1. Materiale preparato da: A.

Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008

System Calls per la Gestione dei Processi

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Sistemi Operativi A - Esercizi - 4

il Nucleo e la gestione dei processi

Selezione di esercizi di sistemi operativi (parte 1)

Transcript:

Esercitazione di Sistemi Operativi Moreno Marzolla Università Ca Foscari di Venezia email: marzolla@dsi.unive.it Esercizio 1: Scheduling In un sistema time sharing con priorità sono presenti 4 processi : in esecuzione; pronto; e in attesa su operazione di. I processi e hanno uguale priorità, più alta della priorità dei processi e, le cui priorità sono tra loro uguali. Descrivere come cambia lo stato del sistema se, partendo da questa situazione, si verificano, nell ordine, gli eventi seguenti: a. quanto di tempo b. completamento dell operazione di per c. il processo in esecuzione chiede una operazione di d. completamento dell operazione di per e. quanto di tempo f. il processo in esecuzione termina Moreno Marzolla Esercitazione di Sistemi Operativi 2 Scheduling: richiami Nel modello più semplice, ciascun processo può trovarsi in uno tra cinque stati: Nuovo: un nuovo processo che inizia l esecuzione In Esecuzione: sta usando la Pronto: andrebbe in esecuzione se avesse la In attesa: il processo non può essere eseguito perché è in attesa di un evento esterno Uscita: un processo che termina l esecuzione Scheduling: richiami (cont.) Il diagramma delle transizioni tra gli stati è il seguente: Admit New Ready Running Exit Event Occurs Dispatch Timeout Blocked Event Wait Release Moreno Marzolla Esercitazione di Sistemi Operativi 3 Moreno Marzolla Esercitazione di Sistemi Operativi 4

Scheduling: richiami (cont.) In realtà per svolgere l esercizio, ci conviene pensare alla rappresentazione del diagramma precedente come una rete di code (la versione seguente è semplificata): Ready prio high Ready prio low Scheduling: richiami (cont.) Nello scheduling con priorità, quando il SO deve assegnare la ad un processo pronto, sceglie quello con priorità più alta tra tutti i processi Ready. All interno della stessa classe di priorità, lo scheduling è FIFO. Timeout Event Wait Blocked Queue Event Occurs Moreno Marzolla Esercitazione di Sistemi Operativi 5 Moreno Marzolla Esercitazione di Sistemi Operativi 6 Soluzione dell esercizio Soluzione (cont.) Situazione iniziale (i processi sottolineati hanno priorità più alta): a. quanto di tempo diventa Ready. La passa a b. completa diventa Ready. c. Il processo in esecuzione chiede diventa Blocked. La viene assegnata a perché di priorità più alta Moreno Marzolla Esercitazione di Sistemi Operativi 7 Moreno Marzolla Esercitazione di Sistemi Operativi 8

Soluzione (cont.) Soluzione (cont.) d. completa diventa Ready e. Quanto di tempo diventa Ready, e la viene assegnata a perché di priorità più alta f. Il processo in esecuzione termina La viene assegnata a Moreno Marzolla Esercitazione di Sistemi Operativi 9 Moreno Marzolla Esercitazione di Sistemi Operativi 10 Esercizio 2: Allocazione Risorse Un sistema batch dispone di 20 lettori di nastri. Al sistema arrivano processi che richiedono 4 lettori (qualsiasi) per completare. Di questi lettori, inizialmente ne vengono utilizzati 3, e l ultimo viene effettivamente utilizzato solo per un breve periodo prima che il processo termini. Considerare il seguente algoritmo di allocazione risorse: un nuovo processo viene ammesso se ci sono almeno 4 lettori liberi. In tal caso, tutti i 4 lettori gli vengono assegnati fino alla terminazione. Se non ci sono 4 lettori liberi, il processo viene messo in attesa. Una volta allocati per un certo processo, i lettori non possono essere revocati finché il processo non termina. In questo scenario, quale è il numero minimo e massimo di lettori di nastri allocati ma non utilizzati dai processi? Sviluppare un algoritmo di allocazione delle risorse che consenta un migliore utilizzo delle risorse, evitando il deadlock. Moreno Marzolla Esercitazione di Sistemi Operativi 11 Svolgimento Il numero massimo di processi in esecuzione parallelamente è 20/4 = 5. Ciascun processo avrà 4 lettori di nastri a disposizione. Moreno Marzolla Esercitazione di Sistemi Operativi 12 P5

Svolgimento (cont.) Nella migliore delle ipotesi, ovvero quando tutti i processi stanno per concludere e utilizzano 4 lettori ciascuno, tutti i lettori di nastri saranno impegnati. Nella peggiore delle ipotesi, tutti i processi in esecuzione potrebbero essere nella fase iniziale, in cui fanno uso di 3 lettori ciascuno. Quindi in tutto staranno usando 5x3=15 lettori, e i rimanenti 5 sono inutilizzati Algoritmo di allocazione alternativo Consideriamo prima un algoritmo che tenta di massimizare il numero di lettori utilizzati, ma non funziona: Un nuovo processo viene ammesso se c è almeno un lettore libero, ossia non già assegnato ad altri processi Se un processo non riesce ad ottenere almeno 3 lettori, rimane bloccato finché non gli vengono assegnati i mancanti. Notare che nel frattempo continua a trattenere i lettori già assegnatigli Quando un processo ottiene 3 lettori, può cominciare ad operare. Moreno Marzolla Esercitazione di Sistemi Operativi 13 Moreno Marzolla Esercitazione di Sistemi Operativi 14 Perché non funziona L algoritmo precedente può portare a deadlock: 6 processi ( P6) vengono ammessi, ciascuno richiede (ed ottiene) 3 dei 4 lettori che servono. I processi iniziano ad operare. Rimangono 2 lettori liberi un ulteriore processo (P7) viene ammesso, gli vengono assegnati i 2 lettori liberi. Nessun ulteriore lettore è disponibile. Il processo però ne richiede 3 per iniziare ad operare, per cui rimane bloccato trattenendo i lettori già assegnati. P6 giungono infine a richiedere un quarto lettore. Nessuno è disponibile, per cui rimangono bloccati e non liberano le risorse già acquisite. Moreno Marzolla Esercitazione di Sistemi Operativi 15 Perché non funziona P5 P6 P7 (bloccato) Moreno Marzolla Esercitazione di Sistemi Operativi 16

Una possibile soluzione funzionante Ciascun processo viene ammesso se esistono almeno 4 lettori liberi. Altrimenti il processo resta in attesa. Ad ogni nuovo processo ammesso vengono assegnati inizialmente 3 lettori. In questo modo, al più 6 processi possono essere attivi contemporaneamente. Questi utilizzeranno almeno 18 lettori di nastri. 2 rimangono liberi. Quando un processo entra nella fase terminale, richiederà un ulteriore nastro Moreno Marzolla Esercitazione di Sistemi Operativi 17 Esercizio 3 Si consideri un computer multiprogrammato in cui ogni job è identico agli altri. Ciascun job, in un periodo di computazione T, spende metà tempo in e l altra metà usando la. Ogni job viene eseguito per N periodi. Si assuma uno scheduling round robin, e che le operazioni di possano essere sovrapposte con l uso di. Definiamo le seguenti quantità: Tempo di turnaround: Throughput: tempo complessivo richiesto per completare un job numero medio di job completati per periodo di tempo T Utilizzazione della : % di tempo in cui la è attiva (non in attesa) Calcolare le precedenti quantità nel caso di uno, due e quattro job simultanei, in ciascuna delle situazioni seguenti: a. Ogni periodo T è dedicato per la prima metà ad, e per la seconda metà all uso di b. Ogni periodo T è dedicato per il primo e per l ultimo quarto ad, e nella parte centrale all uso di Moreno Marzolla Esercitazione di Sistemi Operativi 18 Soluzione: 1 job Consideriamo il caso a.: il processo occupa la prima metà di ogni periodo T facendo, e la rimanenza usando la Job1 T Tempo di turnaround: NT T T Job1 Job2 Soluzione: 2 job Consideriamo il caso a., ricordando che il sistema consente di sovrapporre l con l uso della T T T Tempo medio di turnaround: (NT+NT+0.5T) / 2 = NT+0.25T Throughput: 1/N job completati/periodo Job1 = NT, Job2 = NT + 0.5 T Utilizzazione : 50% Throughput: 2/(N+0.5) job completati/periodo Il caso b. è identico L ultimo job finisce dopo (N+0.5) periodi Utilizzazione : N/(N+0.5) Moreno Marzolla Esercitazione di Sistemi Operativi 19 Moreno Marzolla Esercitazione di Sistemi Operativi 20

Soluzione: 2 job Soluzione: 4 job (caso a) Job1 Consideriamo ora il caso b. Job2 Job1 Tempo di turnaround: NT+ 0.25T Job1 = NT, Job2 = NT + 0,5T Throughput: 2/(N+ 0.5) job completati/periodo T T T T L ultimo job finisce dopo (N+ 0.5) periodi Utilizzazione : N/(N+0.5) Job2 Job3 Job4 T T T T Moreno Marzolla Esercitazione di Sistemi Operativi 21 Moreno Marzolla Esercitazione di Sistemi Operativi 22 Soluzione: 4 job (caso a) Soluzione: 4 job (caso b) Tempi di completamento: Job1=T + 2(N 1)T = 2NT T Job2=1,5T + 2(N 1)T = 2NT 0.5 T Job1 Job3=2T + 2(N 1)T = 2NT Job2 Job4=2,5T + 2(N 1)T = 2NT + 0.5 T Tempo medio di Turnaround: 2NT 0.25T Throughput: 4/(2N+0.5) job completati/periodo Job3 Job4 T T T T T T T T T Utilizzazione : 2N/(2N + 0.5) = N/(N + 0.25) Moreno Marzolla Esercitazione di Sistemi Operativi 23 Moreno Marzolla Esercitazione di Sistemi Operativi 24

Soluzione: 4 job (caso b) Esercizio 4 Tempi di completamento: Job1=1,25 T + 2(N 1)T = 2NT 0,75 T Job2=1,5 T + 2(N 1)T = 2NT 0,5 T Job3=2 T + 2(N 1)T = 2NT Job4=2,5 T + 2(N 1)T = 2NT + 0,5 T Tempo medio di Turnaround: 2NT 0.1875 T Throughput: 4/(2N + 0,5) job completati/periodo Utilizzazione : 2N/(2N + 0,5) = N/(N + 0,25) Il calcolatore CDC6600 poteva gestire fino a 10 processi contemporaneamente utilizzando una forma di Round Robin chiamata Processor Sharing. Un process switch avveniva ad ogni istruzione, così che la prima istruzione eseguita apparteneva al processo 1, la successiva al processo 2 e così via. Il process switch era gestito via hardware con overhead pari a zero. Se un processo richiedeva T secondi per terminare in assenza di competizione per la, quanto tempo avrebbe richiesto se il processor sharing veniva attuato con n processi in totale? Moreno Marzolla Esercitazione di Sistemi Operativi 25 Moreno Marzolla Esercitazione di Sistemi Operativi 26 Soluzione È sufficiente osservare che il Processor Sharing equivale a Round Robin con quanto di tempo "quasi" zero. Quale sarebbe la risposta se considerassimo uno scheduling Round Robin con quanto di tempo pari a Q secondi? Processo Soluzione (cont.) A ciascun processo servono T/Q quanti di tempo, ciascuno di durata Q, per terminare. Se un processo riceve un quanto a partire dal tempo T 0, il suo prossimo quanto inizierà al tempo T 0 +nq In tutto, per eseguire tutti i processi servono (nq)(t/q) = nt secondi (indipendente dal valore di Q). Pertanto, anche nel caso del Processor Sharing, il tempo richiesto ad eseguire un processo sarà nt secondi Q Tempo nq Moreno Marzolla Esercitazione di Sistemi Operativi 27 Moreno Marzolla Esercitazione di Sistemi Operativi 28

Esercizio 5 Cinque processi, A E, arrivano alla quasi contemporaneamente. Il loro tempo di esecuzione stimato è rispettivamente 10, 6, 2, 4 e 8 minuti. Le loro priorità sono risp. 3, 5, 2, 1 e 4 (5 è la priorità massima). Per ciascuno degli algoritmi di scheduling seguenti, determinare il tempo medio di completamento per processo. Ignorare ogni overhead causato dal context switch: a) Round Robin (quanto di 1min e 2min); b) Priority Scheduling; c) First Come First Served (FCFS, l ordine di esecuzione è A B C D E); d) Shortest Process Next (SPN) Nel caso a) assumere un sistema multiprogrammato, in cui ogni job riceve una quota equa di. Nei casi da b) a d) assumere che un solo processo alla volta sia in esecuzione finché termina. Tutti i processi sono bound. Moreno Marzolla Esercitazione di Sistemi Operativi 29 RR con Quanto=1min E (8) D (4) C (2) B (6) A (10) 5 10 15 20 25 30 T (min) Tempi di complet.: T C =8, T D =17, T B =23, T E =28 T A =30 Tempo medio di completamento: (8 + 17 + 23 + 28 + 30) / 5 = 21,2 minuti Moreno Marzolla Esercitazione di Sistemi Operativi 30 RR con Quanto=2min Priority Scheduling E (8) D (4) C (2) B (6) A (10) 5 10 15 20 25 30 T (min) Tempi di complet.: T C =6, T D =16, T B =22, T E =28, T A =30 Tempo medio di completamento: (6 + 16 + 22 + 28 + 30) / 5 = 20,4 minuti Moreno Marzolla Esercitazione di Sistemi Operativi 31 E (4/8) D (1/4) C (2/2) B (5/6) A (3/10) 5 10 15 20 25 30 T (min) Tempi di complet.: T A =24, T B =6, T C =26, T D =30, T E =14 Tempo medio di completamento: (24 + 6 + 26 + 30 + 14) / 5 = 20 minuti Moreno Marzolla Esercitazione di Sistemi Operativi 32

FCFS SPN E (8) D (4) C (2) B (6) A (10) 5 10 15 20 25 30 T (min) Tempi di complet.: T A =10, T B =16, T C =18, T D =22, T E =30 Tempo medio di completamento: (10 + 16 + 18 + 22 + 30) / 5 = 19,2 minuti Moreno Marzolla Esercitazione di Sistemi Operativi 33 E (8) D (4) C (2) B (6) A (10) 5 10 15 20 25 30 T (min) Tempi di complet.: T C =2, T D =6, T B =12, T E =20, T A =30 Tempo medio di completamento: (2 + 6 + 12 + 20 + 30) / 5 = 14 minuti Moreno Marzolla Esercitazione di Sistemi Operativi 34 Osservazione su SPN SPN ha fornito il minor tempo medio di turnaround. È possibile dimostrare che questo è vero in generale. Supponiamo di avere 3 processi, che richiedono risp. tempo T 1 < T 2 < T 3 per completare. Calcoliamo il tempo medio di turnaround ( T 1 + (T 1 +T 2 ) + (T 1 +T 2 +T 3 ) ) / 3 = ( 3T 1 + 2T 2 + T 3 ) / 3 Nella sommatoria, il tempo che compare col fattore più alto è T 1, che è il tempo minore. Il tempo più elevato contribuisce alla somma col fattore più piccolo. Tabella riassuntiva Algoritmo RR (Quanto=1min) Tempo medio di Turnaround 21.2 RR (Quanto=2min) 20.4 Priority Scheduling 20 FCFS 19.2 SPN 14 Moreno Marzolla Esercitazione di Sistemi Operativi 35 Moreno Marzolla Esercitazione di Sistemi Operativi 36

Esercizio 6 Misure compiute su un certo sistema hanno mostrato che un processo mediamente usa la per un tempo T prima di bloccarsi su un. Un process switch richiede tempo S (overhead). Considerando uno scheduling Round Robin con quanto Q, dare una formula per l efficienza della (frazione di tempo dedicata ai processi) per ciascuno dei casi seguenti: a) Q= b) Q>T c) S<Q<T d) Q=S e) Q quasi zero. Moreno Marzolla Esercitazione di Sistemi Operativi 37 Caso a) Q= In questo caso ogni processo non viene mai interrotto, e il context switch avviene solo ogni T, quando il processo in esecuzione si blocca su. Kernel Efficienza: T / ( T + S ) T S T S T S tempo Moreno Marzolla Esercitazione di Sistemi Operativi 38 Caso b) Q>T Questo caso è equivalente al precedente Un processo non ha ancora consumato il suo quanto di tempo Q quando si blocca su. Quindi avviene un context switch ogni T. L efficienza è ancora T / ( T + S ) Caso c) S<Q<T In questo caso avviene uno o più context switch prima del blocco del processo su. Ciascun processo necessita di circa T/Q quanti di tempo di durata Q prima di bloccarsi su Kernel Q S Q S tempo Moreno Marzolla Esercitazione di Sistemi Operativi 39 Efficienza (approssimata): Q / ( Q + S ) > 0.5 Moreno Marzolla Esercitazione di Sistemi Operativi 40

Caso d) Q=S In questo caso avviene uno o più context switch prima del blocco del processo su. In particolare, avvengono in tutto circa T/Q context switches. Kernel Caso e) Q quasi 0 Se il quanto è troppo breve, si può immaginare che il sistema spenda quasi tutto il tempo ad eseguire context switches: Kernel Q S Q S tempo Q S Q S tempo Efficienza (approssimata): Q / ( Q + S ) = S / 2S = 0.5 Efficienza: Q / ( Q + S ) = quasi 0 Moreno Marzolla Esercitazione di Sistemi Operativi 41 Moreno Marzolla Esercitazione di Sistemi Operativi 42 Esercizio 7 È dato il seguente frammento di programma, eseguito nel Sistema Operativo UNIX. Descrivere l evoluzione del programma (quali processi vengono creati, quali programmi eseguono e quale è il contenuto della memoria del sistema): /* programma "a" */ Attenzione!! Ricordarsi che nel linguaggio C la valutazione degli operatori logici && e è non stretta: if (a && b) x; else y; if (a) { if (b) x; else y; } else y; if (fork() && fork()) exec("b"); else exec("c"); if (a b) x; else y; if (a) x; else { if (b) x; else y; } Moreno Marzolla Esercitazione di Sistemi Operativi 43 Moreno Marzolla Esercitazione di Sistemi Operativi 44

Fork() ed Exec() Svolgimento esito fork( ) int exec(path, arg) Processo "a" /* programma "a" */ Crea una copia del processo che esegue la fork(); Il codice rimane condiviso, l area dati viene duplicata Il processo creato riceve esito=0 Il processo padre riceve esito=pid del figlio Sostituisce il processo corrente, lanciando il programma specificato nel primo parametro L area codice e dati vengono sovrascritte con quelle del nuovo processo Processo "a" padre (fork()>0) exec("b") Processo "a" padre (fork()>0) fork() fork() Processo "a" figlio (fork()==0) exec("c") Processo "a" figlio (fork()==0) exec("c") Processo "c" if (fork() && fork()) exec("b"); else exec("c"); Moreno Marzolla Esercitazione di Sistemi Operativi 45 Processo "b" Processo "c" Moreno Marzolla Esercitazione di Sistemi Operativi 46 Esercizio 8 Scrivere un frammento di programma che utilizzi le funzioni fork, exec e wait di Unix per realizzare la seguente situazione: Svolgimento idprog2 = fork(); /* Duplica il processo */ if (idprog2 == 0) /* è il figlio? */ execl("prog2",...); /* Sì, esegui prog2 */ Un programma prog1 deve mandare in esecuzione i programmi prog2 e prog3 creando per essi due processi. I programmi prog2 e prog3 devono evolvere indipendentemente, mentre prog1 deve aspettare che entrambi i processi creati finiscano prima di continuare con l esecuzione. prog1 prosegue poi chiamando la funzione f2 se è terminato prima prog2, o la funzione f3 se è terminato prima prog3 idprog3 = fork(); /* Come sopra per prog3 */ if ( idprog3 == 0 ) execl("prog3",...); fine1 = wait( &stato ); /* Attende la terminazione */ fine2 = wait( &stato ); /* dei due processi */ if ( fine1 == idprog2 ) /* E terminato prima prog2? */ f2( ); /* Sì, esegue f2( ) */ else f3( ); /* No, esegue f3( ) */ Moreno Marzolla Esercitazione di Sistemi Operativi 47 Moreno Marzolla Esercitazione di Sistemi Operativi 48

Esercizio 9 Svolgimento In un sistema time sharing con priorità sono presenti quattro processi, nel seguente stato:, pronti; in esecuzione; in attesa su operazione di I processi, e hanno priorità uguale, e più alta del processo. Descrivere come cambia lo stato del sistema se, a partire da questa situazione, si verificano nell ordine gli eventi seguenti: a. quanto di tempo b. completamento dell operazione di per c. quanto di tempo d. il processo in esecuzione chiede una operazione di e. il processo in esecuzione termina. Situazione iniziale : Running=, Ready=,, Blocked= a. Quanto di tempo Running=, Ready=,, Blocked= b. Complet. per Running=, Ready=,, c. Quanto di tempo Running=, Ready=,, d. Proc. in esec. chiede Running=, Ready=,, Blocked= e. Il proc. in esec. termina Running=, Ready=, Blocked= Moreno Marzolla Esercitazione di Sistemi Operativi 49 Moreno Marzolla Esercitazione di Sistemi Operativi 50 Esercizio 10 Svolgimento In un sistema time sharing arrivano tre processi, che vengono inizialmente posti in stato di pronto ( occupa la testa della coda, poi vengono e ). I processi hanno priorità uguale, e vengono schedulati con algoritmo Round Robin con quanto di tempo 200 millisecondi. Il comportamento dei processi è il seguente: 200 200 200 200 100 a. ha un burst di 900msec, dopodiché termina; b. ha un burst di 150msec, poi si blocca in attesa di un evento A, che viene completato dopo 400msec, infine ha un ultimo burst di 300msec prima di terminare. c. ha un burst di 100msec, poi si mette in attesa di un evento B, che viene completato dopo 450msec, infine ha un ultimo burst di 100msec prima di terminare. 200 150 150 100 100 400 450 200 200 200 200 200 100 100 100 100 100 T (msec) Descrivere l evoluzione dei processi. Moreno Marzolla Esercitazione di Sistemi Operativi 51 Moreno Marzolla Esercitazione di Sistemi Operativi 52

Esercizio 11 Soluzione (1) 0 < X < 20 L ordine sarà P5 I tempi di completamento saranno: Cinque processi (da a P5) hanno tempo di esecuzione rispettivamente 20, 40, 50, 70 e X msec. Supponendo che vengano schedulati con politica Shortest Process Next, quale sarà il loro tempo medio di completamento? (La risposta dipenderà dal valore di X). P5: X : X+20 : X+20+40 : X+20+40+50 : X+20+40+50+70 Media: (5X + 80 + 120 + 100 + 70)/5 = X+74 Moreno Marzolla Esercitazione di Sistemi Operativi 53 Moreno Marzolla Esercitazione di Sistemi Operativi 54 Soluzione (2) 20 < X < 40 L ordine sarà P5 I tempi di completamento saranno: : 20 P5: 20+X : 20+X+40 : 20+X+40+50 : 20+X+40+50+70 Media: (100 + 4X + 120 + 100 + 70)/5 = 0,8 X+78 Soluzione (3) 40 < X < 50 L ordine sarà P5 I tempi di completamento saranno: : 20 P5: 20+40 : 20+40+X : 20+40+X+50 : 20+40+X+50+70 Media: (100 + 160 + 3X + 100 + 70)/5 = 0,6 X+86 Moreno Marzolla Esercitazione di Sistemi Operativi 55 Moreno Marzolla Esercitazione di Sistemi Operativi 56

Soluzione (4) Soluzione (5) 50 < X < 70 L ordine sarà P5 I tempi di completamento saranno: : 20 P5: 20+40 : 20+40+50 X > 70 L ordine sarà P5 I tempi di completamento saranno: : 20 P5: 20+40 : 20+40+50 : 20+40+50+X : 20+40+50+70 : 20+40+50+X+70 Media: (100 + 160 + 150 + 2X + 70)/5 = 0,4 X+96 : 20+40+50+70+X Media: (100 + 160 + 150 + 140 + X)/5 = 0,2 X+110 Moreno Marzolla Esercitazione di Sistemi Operativi 57 Moreno Marzolla Esercitazione di Sistemi Operativi 58 Riepilogo Grafico di f(x), tempo di completamento in funzione di X Moreno Marzolla Esercitazione di Sistemi Operativi 59