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

Похожие документы
Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

ESERCIZI SULLO SCHEDULING DEI PROCESSI

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Sistemi Operativi SCHEDULING DELLA CPU

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

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

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

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Scheduling della CPU:

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Sistemi Operativi. Scheduling dei processi

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

Esercitazione E1 Scheduling, deadlock, monitor

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

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

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

Scheduling della CPU

Scheduling della CPU

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Processi e Thread. Scheduling (Schedulazione)

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

I Processi. Il Concetto di Processo

Lo scheduling. Tipici schedulatori

Il Sistema Operativo

Sistemi Operativi. 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

I THREAD O PROCESSI LEGGERI

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Struttura Logica del S.O:

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

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

Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione

LA GESTIONE DELLA I/O

Scheduling della CPU

Lab 1: Java Multithreading

Scheduling. Lo scheduler è la parte del SO che si occupa di

Esercizi sul problema del deadlock

Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.

UNIVERSITÀ DEGLI STUDI DI BERGAMO

I.4 Rappresentazione dell informazione

Modelli di interazione tra processi

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Sistemi Web per il turismo - lezione 3 -

2. Nucleo del sistema operativo (la gestione dei processi)

Architettura degli Elaboratori 2

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

La gestione dell I/O (Cap. 5, Tanenbaum)

Operations Management

Sistemi Operativi. Schedulazione della CPU

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Architettura degli Elaboratori 2. tipi di scheduling. scheduling. scheduling della CPU (1) Esercitazione 1. politiche di ordinamento dei processi

Sistemi Operativi COTRONEO NATELLA - CINQUE FRANCESCO VERGONA INGEGNERIA INFORMATICA N46

La schedulazione. E.Mumolo

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

File System. Capitolo 13

Capitolo 6: CPU scheduling

Modelli di programmazione parallela

PROGRAMMA DISCIPLINARE SVOLTO a. s / 2016

1.5: Gestione dei Processi e della CPU

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

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Introduzione alle macchine a stati (non definitivo)

5. Scheduling della CPU. 5.1 Concetti Fondamentali Lo scheduler della CPU

5. Scheduling della CPU

Scheduling. Livelli Algoritmi

Scheduling della CPU

Il ciclo del processore semplificato BOOTSTRAP FETCH EXECUTE

Scheduling. Scheduling 14/12/2003 1/7

Prof. Ing. Maria Pia Fanti Dipartimento di Elettrotecnica ed Elettronica Politecnico di Bari AUTOMAZIONE INDUSTRIALE

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

Diagrammi a blocchi 1

IL SISTEMA OPERATIVO

Транскрипт:

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1. Un sistema multiprogrammato suddivide la memoria in partizioni, dedicando ognuna di queste ultime a contenere l immagine di un job. In questo modo se il job correntemente in esecuzione si mette in attesa del completamento di un operazione di I/O, il sistema operativo può far eseguire un altro job tra quelli presenti in memoria. In questo modo non si spreca tempo di CPU per l attesa del completamento di operazioni di I/O. La multiprogrammazione può essere realizzata anche su un sistema con una singola CPU. 2. Un interruzione è un segnale inviato da un controller alla CPU per informare il sistema del verificarsi di un evento (es.: terminazione di un operazione di I/O). Un numero, che contraddistingue il controller che ha sollevato l interrupt, accompagna quest ultimo e, usato come indice nell interrupt vector, consente al sistema operativo di caricare ed eseguire la routine corretta per la gestione dell interruzione. Una trap (o interruzione software) è un istruzione speciale che serve a far passare il sistema da user mode a kernel mode e viene solitamente usata per implementare il meccanismo delle system call. L argomento della trap è un numero che identifica la system call; tale numero viene salvato in un posto noto al sistema operativo che così può far partire la routine corretta per l adempimento della system call. 1. Quali sono i vantaggi di un sistema operativo basato su thread rispetto ad uno basato su processi? 2. Si descriva l algoritmo di scheduling del sistema Solaris. 1. I vantaggi di un sistema operativo basato su thread rispetto ad uno basato sui processi sono i seguenti: creare e cancellare thread è circa 100-1000 volte più veloce che creare e cancellare processi in quanto c è meno informazione da duplicare/creare/cancellare; lo scheduling fra thread di uno stesso processo è molto più veloce di quello tra processi; la cooperazione di più thread nello stesso task ha come conseguenza un maggior throughput e performance. 2. L algoritmo di scheduling di Solaris prevede quattro classi in ordine decrescente di priorità: Real-time, Sistema, Tempo ripartito, Interattiva. 1

Ognuna di esse ha scale di priorità e algoritmi di scheduling differenti. Per i processi utente la classe predefinita è quella a tempo ripartito che modifica dinamicamente le priorità, assegnando quanti di tempo variabili grazie ad una coda multipla con retroazione. Dato che si vuole privilegiare i processi interattivi ed assicurare buoni tempi di risposta, maggiore è la priorità minore sarà il quanto associato; viceversa a priorità minori corrisponderanno quanti più lunghi. La classe interattiva differisce per il fatto che privilegia le applicazioni che utilizzano un interfaccia a finestre, assegnando loro priorità più elevate. I livelli di priorità usati in queste due classi sono in tutto sessanta e la tabella di dispatch tiene conto delle seguenti grandezze: priorità: valore che dipende dalla classe (più è alto, maggiore è la priorità), quanto di tempo: è inversamente correlato alla priorità (a priorità alte corrispondono quanti piccoli e viceversa), quanto di tempo esaurito: nuova priorità di un thread che esaurisce il suo quanto di tempo senza sospendersi (la priorità diminuisce perché il thread viene considerato di elaborazione), ripresa dell attività: nuova priorità di un thread che riprende l esecuzione dopo un periodo d attesa; di solito il valore à alto per la politica di garantire risposte sollecite ai processi interattivi (che si sospendono spesso). La classe di sistema viene utilizzata esclusivamente per eseguire i processi del kernel (la priorità di un processo di sistema è fissata a priori, ovvero, non può cambiare in corso di esecuzione). I thread della classe real-time infine godono di priorità massima e vengono quindi eseguiti prima di quelli di qualunque altra classe. In coda ready arrivano i processi P 1, P 2, P 3, P, con CPU burst e istanti di arrivo specificati in tabella: arrivo burst P 1 0 15ms P 2 10 15ms P 3 15 10ms P 30 10ms 1. Se i processi terminano nell ordine P 1, P 3, P 2, P, quale può essere l algoritmo di scheduling? (Si trascuri il tempo di latenza del kernel.) (a) RR q=10ms (b) Scheduling non-preemptive (c) SJF (d) RR q=15ms (e) Nessuno dei precedenti 2. (*) Si consideri ora tempo di latenza pari a 3ms e un algoritmo di scheduling SRTF. Si determini per i processi P 1, P 2, P 3, P della tabella sopra: 2

i) il diagramma di GANTT relativo all esecuzione dei quattro processi; ii) il tempo di attesa medio; iii) il tempo di turnaround medio. 1. a), b), c). 2. Considerando un tempo di latenza pari a 3ms e un algoritmo di scheduling SRTF, abbiamo quanto segue: i) il diagramma di GANTT relativo all esecuzione dei quattro processi è il seguente: P1 P1 P1 P3 P3 P 0 3 10 13 15 18 2 27 30 33 0 3 53 53 56 71 P2 ii) il tempo di attesa medio è 9+(56 10)+(27 15+3)+(3 30) = 20, 75ms, 2+(71 10)+(0 15)+(53 30) iii) il tempo di turnaround medio è: = 33, 25ms. Si illustri la differenza fra deadlock e starvation. nonostante il problema della starvation sia strettamente correlato a quello del deadlock, si tratta di due cose differenti. Infatti, con il termine starvation, si indica un assenza di progresso per cui un programma in esecuzione non riesce ad ottenere una risorsa od un servizio (a causa ad esempio della politica di allocazione della risorsa/servizio in questione adottata nel sistema), nonostante non venga mai bloccato. Invece con il termine deadlock si intende una situazione in cui un insieme di processi è bloccato in quanto ogni processo è in attesa di un evento che soltanto un altro processo dell insieme può provocare. Dato che tutti i processi sono in attesa, nessuno di essi potrà mai produrre uno degli eventi che sbloccherebbero un altro elemento dell insieme. Si illustrino le differenze fra semafori e mutex. un semaforo è sostanzialmente una variabile il cui valore registra il numero di wakeup eseguiti. La modifica di tale valore è possibile solo attraverso due operazioni atomiche: la down che controlla il valore, decrementandolo di un unità se maggiore di zero oppure sospendendo il processo in caso contrario, e la up che incrementa il valore, risvegliando uno dei processi eventualmente in attesa. Un mutex invece è sostanzialmente una versione semplificata del semaforo quando non serve la capacità di contare il numero di wakeup. Quindi un mutex è una variabile che può assumere solo due valori: bloccato o sbloccato. In questo caso infatti le operazioni down e up vengono chiamate mutex lock e mutex unlock. Si consideri la seguente situazione, dove P 0, P 1, P 2, P 3, P sono cinque processi in esecuzione, C è la matrice delle risorse correntemente allocate, Max è la matrice del numero massimo di risorse assegnabili ad ogni 3

processo e A è il vettore delle risorse disponibili: P 0 P 1 P 2 P 3 P C 0 2 0 2 0 0 0 0 2 3 5 0 3 2 0 0 1 5 Max 0 3 1 2 2 7 5 0 2 3 5 6 0 5 2 0 6 5 5 Available (A) 1 5 3 0 1. Calcolare la matrice R delle richieste. 2. Il sistema è in uno stato sicuro (safe)? 3. Nel caso arrivi la richiesta di allocazione (1,, 2, 0) per il processo P 1, quest ultima può essere soddisfatta, ovvero, il sistema rimane in uno stato sicuro? 1. La matrice R delle richieste è data dalla differenza Max C: R 2 7 5 0 0 0 0 2 0 0 2 0 0 6 0 2. Sì il sistema è in uno stato sicuro in quanto esiste la sequenza sicura P 0, P 2, P 1, P 3, P. Infatti, dapprima si esegue P 0 in quanto R 0 A ed A diventa quindi (1, 7, 3, 2). A questo punto R 2 A e quindi si esegue P 2 generando il nuovo valore di A: (3, 10, 8, 6). Quindi si può mandare in esecuzione P 1 dato che R 1 A lasciando inalterato A, dato che C 1 = (0, 0, 0, 0). In seguito può essere eseguito P 3 (R 3 A) aggiornando A al valore (3, 1, 11, 8). Infine viene eseguito P (R A) generando il valore finale di A = (3, 1, 12, 13). 3. Nel caso venga soddisfatta la richiesta (1,, 2, 0) per il processo P 1 i nuovi valori di C, R e A sono i seguenti: P 0 P 1 P 2 P 3 P C 0 2 0 2 1 2 0 2 3 5 0 3 2 0 0 1 5 R 1 3 3 0 0 0 0 2 0 0 2 0 0 6 0 Available (A) Il sistema si trova ancora in uno stato sicuro; infatti esiste la sequenza sicura P 0, P 2, P 1, P 3, P. Anche stavolta si manda in esecuzione dapprima P 0 (R 0 A), generando il nuovo valore di A: (0, 3, 1, 2). Dopodiché si può eseguire P 2 (R 2 A) aggiornando A al valore (2, 6, 6, 6). Quindi si esegue P 1 (R 1 A) portando A al valore

(3, 10, 8, 6). In seguito può essere eseguito P 3 (R 3 A) aggiornando A al valore (3, 1, 11, 8); infine l esecuzione di P (R A) genera il valore finale di A = (3, 1, 12, 13). Il punteggio attribuito ai quesiti è il seguente: 3, 3, 3, 3, 3, 6, 3, 3, 2, 2, 2 (totale: 33). 5