1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia

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

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

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

Scheduling della CPU

Sistemi Operativi 9 luglio 2013 Compito

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

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

Il supporto al sistema operativo

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Sistema Operativo. (hardware e software) della della macchina

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

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

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

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008.

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Cognome e nome: Matricola: Posto:

2.2 Scheduling in Linux

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Introduzione al Multithreading

Il Sistema Operativo

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

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

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

Deadlock (stallo) Risorse. Uso delle risorse. Parte III. Deadlock

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

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

Capitolo 2: Strutture dei sistemi di calcolo

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

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

Scheduling della CPU. Capitolo 6 - Silberschatz

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

I Processi. Il Concetto di Processo

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Prof. Rossella Cancelliere

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Componenti di un sistema operativo

Chiamata di procedura remota

Funzioni, Stack e Visibilità delle Variabili in C

Modelli di interazione tra processi

Sistemi Operativi. La gestione delle risorse

I THREAD O PROCESSI LEGGERI

Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

I.4 Rappresentazione dell informazione

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi: Concetti Introduttivi

Modelli di interazione tra processi

Struttura Logica del S.O:

Capitolo 6 Le infrastrutture SoftWare

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Sistemi Operativi. Lezione 3 Processi e Thread

Introduzione alla programmazione

ALGORITMI: PROPRIETÀ FONDAMENTALI

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Il Software programmabili programma algoritmo

Sistemi Operativi e Laboratorio, Prova del 15/01/2014

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

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

Sistema Operativo (Software di base)

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

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

Le risorse. Alcune definizioni

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1

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

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Scheduling della CPU

INTRODUZIONE ALLA PROGRAMMAZIONE

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

Funzioni di un Calcolatore

Controlli Automatici I

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

Programmazione con Java

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

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 della CPU

Modelli di interazione tra processi

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

Corso di Informatica di Base

Cognome: Nome: Matricola:

Esercitazione E1 Scheduling, deadlock, monitor

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Modello a scambio di messaggi

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

Deadlock. Oggi c è un traffico tremendo. Operating System Concepts 9 th Edition

Definizione di metodi in Java

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

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Sistemi Operativi corso A, a.a

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

Esercitazione 11. Esercitazione di riepilogo

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

Sistema operativo & file system 1

Cos e` un Sistema Operativo?

Architettura di Von Neumann

Il Sistema Operativo Concorrenza e Grafi di precedenza

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

Transcript:

1. Quali sono le componenti principali dei sistemi operativi? 2. Si descriva il meccanismo attraverso cui i programmi in esecuzione richiamano i servizi dei sistemi operativi. 1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia grafica); gestore dei processi; gestore della memoria (fisica e virtuale); gestore della memoria secondaria; sottosistema di I/O; sottosistema per la protezione del sistema operativo. 2. I programmi richiamano i servizi del sistema operativo per mezzo delle chiamate di sistema (system call): sono solitamente disponibili come speciali istruzioni assembler o come delle funzioni nei linguaggi che supportano direttamente la programmazione di sistema (ad esempio, il C). Esistono vari tipi di chiamate di sistema relative al controllo di processi, alla gestione dei file e dei dispositivi, all ottenimento di informazioni di sistema, alle comunicazioni. L invocazione di una chiamata di sistema serve ad ottenere un servizio dal sistema operativo; ciò viene fatto passando dal cosiddetto user mode al kernel mode per mezzo dell istruzione speciale TRAP. Infatti, il codice relativo ai servizi del sistema operativo è eseguibile soltanto in kernel mode per ragioni di sicurezza. Una volta terminato il compito relativo alla particolare chiamata di sistema invocata, il controllo ritorna al processo chiamante passando dal kernel mode allo user mode. 1. Nell ambito dei sistemi operativi, che cosa si intende per separazione tra meccanismi e politiche? 2. Si diano esempi di meccanismi e politiche. 1. Con l espressione separazione tra meccanismi e politiche nell ambito dei sistemi operativi si intende la distinzione fra come eseguire qualcosa (meccanismo) e che cosa si debba fare, ovvero quali scelte operare, in risposta ad un certo evento (politica). 2. L adozione di un timer per proteggere la CPU è un esempio di meccanismo, mentre la decisione riguardante la quantità di tempo da impostare nel timer per un certo utente/processo è un esempio di politica. Nell ambito della gestione dei processi un meccanismo è l assegnamento delle priorità ai processi, mentre un esempio di politica è il criterio secondo cui si decide di assegnare priorità maggiori ai processi interattivi a discapito dei processi CPU-bound. 1. Si descriva l algoritmo di scheduling in Unix moderno e in particolare in Solaris. 1

2. I processi P 1, P 2, P 3 sono in coda ready nell ordine specificato all istante 0. P 1 è un processo ciclico che alterna 4ms di esecuzione a 1ms di operazioni di I/O. Il tempo totale di esecuzione per P 1 è pari a 15ms. I processi P 2 e P 3 hanno una richiesta di CPU pari a 17ms e 20ms, rispettivamente e non effettuano I/O. Si calcolino i tempi di attesa per i 3 processi, sapendo che l algoritmo di scheduling della CPU è RR con q= 5ms e che un processo che rilascia la CPU prima dello scadere del suo quanto, torna all inizio della coda ready con il resto del quanto. 1. In Unix moderno l attività di scheduling si basa su un meccanismo generale con 160 livelli di priorità (a numero maggiore corrisponde priorità maggiore) in cui ogni livello viene gestito separatamente con politiche differenti. In particolare è possibile definire delle classi di scheduling a cui associare delle politiche di gestione differenti. Ogni classe è caratterizzata da un intervallo di priorità, da un algoritmo per il calcolo di quest ultima, dall assegnazione dei quanti di tempo ai vari livelli e dalla migrazione dei processi da un livello all altro. Infine, per supportare processi real-time i tempi di latenza sono stati ridotti, grazie all introduzione di punti di prelazionabilità del kernel. L algoritmo di scheduling di Solaris prevede quattro classi in ordine decrescente di priorità: Real-time, Sistema, Tempo ripartito, Interattiva. 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 2

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. 2. Il Gantt relativo all esecuzione dei processi è il seguente: P1 P2 P1 P3 P2 P1 P3 P1 P2 P3 P1 P2 P1 P3 P1 0 4 9 10 15 20 23 28 30 35 40 42 44 46 51 53 Tempi di attesa: P1 = 5 + 10 + 5 + 10 + 2 + 5 = 37 ms P2 = 4 + 6 + 10 + 7 = 27 ms = 10 + 8 + 7 + 6 = 31 ms P3 Si consideri la seguente situazione, dove P 0, P 1, P 2 sono tre processi in esecuzione, C è la matrice delle risorse correntemente allocate, Max è la matrice del numero massimo di risorse assegnabili ad ogni processo e A è il vettore delle risorse disponibili: P 0 P 1 P 2 C 1 3 2 4 0 1 0 0 2 Available (A) 3 2 x Max 6 4 2 4 1 2 1 3 6 1. Calcolare la matrice R delle richieste. 2. Determinare il minimo valore di x tale che il sistema si trovi in uno stato sicuro. 3. Dopo aver determinato il valore di x con le caratteristiche descritte al punto precedente, dire se la richiesta (3, 1, 0) per il processo P 0 può essere accettata oppure no (spiegandone il motivo). 1. La matrice R delle richieste è data dalla differenza Max C: R 5 1 0 0 1 1 1 3 4 2. Se x = 0, allora non esiste nessuna riga R i tale che R i A; quindi il sistema si trova in uno stato di deadlock. Supponiamo quindi che 3

sia x = 1, allora l unica riga di R minore o uguale a A è la seconda. Quindi possiamo eseguire il processo corrispondente P 1 che, una volta terminato, restituisce le risorse ad esso allocate aggiornando A al valore (7, 2, 2). A questo punto si può eseguire P 0 dato che R 0 A, generando il nuovo valore di A: (8, 5, 4). Infine si può eseguire P 2 dato che R 2 A, ottenendo il valore finale di quest ultimo, ovvero, (8, 5, 6). Quindi il valore minimo di x per cui lo stato risulta sicuro è 1; infatti in questo caso esiste la sequenza sicura P 1, P 0, P 2. 3. Per verificare se la richiesta (3, 1, 0) per il processo P 0 possa essere accettata o meno, simuliamo di soddisfarla e verifichiamo se lo stato risultante è ancora uno stato sicuro. I nuovi valori di C, R ed A sono i seguenti: C 4 4 2 4 0 1 0 0 2 R 2 0 0 0 1 1 1 3 4 ed A = (0, 1, 1). L unica riga di R minore od uguale al vettore A è la seconda; quindi eseguiamo P 1, ottenendo come nuovo valore di A il vettore (4, 1, 2). A questo punto, dato che R 0 A, mandiamo in esecuzione P 0 e calcoliamo il nuovo valore di A: (8, 5, 4). Infine viene eseguito P 2 (dato che R 2 A), generando il valore finale di A: (8, 5, 6). Quindi la nuova richiesta per il processo P 0 può essere accettata, dato che il nuovo stato risulta ancora sicuro; infatti anche in questo caso esiste la sequenza sicura P 1, P 0, P 2. Si illustrino le condizioni per una buona soluzione del problema della sezione critica. Le condizioni per una buona soluzione del problema della sezione critica sono le seguenti: 1. Mutua esclusione: se il processo P i sta eseguendo la sua sezione critica, allora nessun altro processo può eseguire la propria sezione critica. 2. Progresso: nessun processo in esecuzione fuori dalla sua sezione critica può bloccare processi che desiderano entrare nella propria sezione critica. 3. Attesa limitata: se un processo P ha richiesto di entrare nella propria sezione critica, allora il numero di volte che si concede agli altri processi di accedere alla propria sezione critica prima del processo P deve essere limitato. 4

Si suppone che ogni processo venga eseguito ad una velocità non nulla, mentre non si suppone niente sulla velocità relativa dei processi (e quindi sul numero e tipo di CPU). Spiegare la differenza fra elusione e prevenzione dei deadlock. L algoritmo del banchiere è un algoritmo di elusione o di prevenzione dei deadlock? Motivare la risposta. Eludere i deadlock significa allocare in modo intelligente le risorse in modo da garantire che il sistema si evolva attraversando degli stati sicuri. In altre parole in ogni momento viene garantita una sequenza di terminazione dei processi anche in presenza della massima richiesta possibile di risorse da parte di tutti i processi in esecuzione. Prevenire i deadlock invece significa escludere a priori la possibilità che si verifichi uno stallo negando almeno una delle condizioni di Coffman. Da quanto detto segue che l algoritmo del banchiere è un algoritmo di elusione dei deadlock in quanto soddisfa o meno ogni richiesta in base al fatto che ciò garantisca o meno la transizione in uno stato sicuro. Illustrare una soluzione per evitare il verificarsi della condizione Hold & Wait. Un sistema che adotti tale soluzione è esente da deadlock? Perché? Per evitare il verificarsi della condizione Hold & Wait è sufficiente garantire che quando un processo richiede un insieme di risorse, non ne richieda nessun altra prima di rilasciare quelle che ha. Ciò comporta quanto segue: è necessario che i processi richiedano e ricevano tutte le risorse necessarie all inizio, o che rilascino tutte le risorse prima di chiederne altre; se l insieme di risorse non può essere allocato in toto, il processo aspetta (metodo transazionale). Gli aspetti negativi di tale soluzione sono che vi può essere un basso utilizzo delle risorse e la possibilità di starvation per alcuni processi. Naturalmente un sistema che adotti tale soluzione è esente da deadlock perché nega una delle quattro condizioni di Coffman. Il punteggio attribuito ai quesiti è il seguente: 2, 2, 2, 2, 3, 4, 2, 2, 2, 4, 3, 4 (totale: 32). 5