Gestione del processore e dei processi



Похожие документы
Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Gestione della memoria centrale

Un sistema operativo è un insieme di programmi che consentono ad un utente di

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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

J. Assfalg Appunti di Sistemi Operativi

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Strutturazione logica dei dati: i file

Il Sistema Operativo (1)

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

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Il memory manager. Gestione della memoria centrale

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Scheduling della CPU Simulazione in linguaggio Java

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Sistemi Operativi Kernel

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

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

Scheduling della CPU:

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

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

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

Pronto Esecuzione Attesa Terminazione

Approccio stratificato

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Infrastrutture Software

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Sistemi operativi. Esempi di sistemi operativi

Soluzione dell esercizio del 12 Febbraio 2004

Sistemi Operativi SCHEDULING DELLA CPU

Dispensa di Informatica I.1

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Manuale Terminal Manager 2.0

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

MODULO 02. Iniziamo a usare il computer

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Corso di Sistemi di Elaborazione delle informazioni

Corso di Informatica

Funzioni del Sistema Operativo

Appunti di Sistemi Elettronici

Processi e Thread. Scheduling (Schedulazione)

Architettura hardware

Introduzione ai Metodi Formali

I componenti di un Sistema di elaborazione. CPU (central process unit)

C. P. U. MEMORIA CENTRALE

Come creare il test di Yasso tramite l applicazione Training Center

MAGAZZINO FISCALE (agg. alla rel )

Introduzione all analisi dei segnali digitali.

Sistemi di Servizio e Simulazione

Struttura del calcolatore

Corso di Informatica

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

Tutorial 3DRoom. 3DRoom

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

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

2. Simulazione discreta: approcci alla simulazione

Laboratorio di Informatica

Metodi e Modelli Matematici di Probabilità per la Gestione

VMware. Gestione dello shutdown con UPS MetaSystem

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Esempi di algoritmi. Lezione III

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Telematica II 17. Esercitazione/Laboratorio 6

Corso di Informatica

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Scheduling della CPU

Corso di Informatica

SCHEDULATORI DI PROCESSO

1. Il Client Skype for Business

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Invio SMS. DM Board ICS Invio SMS

Introduzione al sistema operativo Il file system: file, directory,...

ESEMPIO 1: eseguire il complemento a 10 di 765

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Транскрипт:

Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore è quello di eseguire programmi Consideriamo la seguente definizione di processo: un processo è un programma in esecuzione 58

Uno dei compiti principali del sistema operativo riguarda la gestione dei processi Per il momento assumiamo di trattare sistemi monoprogrammati (anche detti mono-tasking) In sistemi di questo tipo è possibile eseguire un solo programma alla volta: i programmi devono essere eseguiti in modo sequenziale e si può mandare in esecuzione un programma solo quando quello precedente ha terminato l'esecuzione (es. MS/DOS) 59

Supponiamo che il nostro sistema sia un bar in cui un barista serve diversi clienti Il barista è il corrispondente del processore, i clienti sono l equivalente dei processi da eseguire Esecuzione mono-tasking: Cliente 1 Cliente 2 Cliente 3 Ord. Attesa Cons. Pag. Ord. Attesa Cons. Pag. Ord. Attesa Cons. Pag. A.O. Pr. C. At. Ris. A.O. Pr. C. At. Ris. A.O. Pr. C. At. Ris. Barista 60

Quello che viene evidenziato dall esempio precedente è vero in generale: qualunque processo P alterna fasi di esecuzione a fasi in cui è bloccato in attesa di qualche evento esterno Un processo può essere in attesa che sia terminata un operazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata 61

Se si confrontano la velocità di elaborazione di un calcolatore (quindi il tempo in cui un processo è in esecuzione) e i tempi di lavoro delle periferiche di input/output, o addirittura i tempi di reazione umani, risulta che i secondi sono di molti ordini di grandezza maggiori dei primi Un elaboratore medio esegue un istruzione di un programma in un tempo che è dell'ordine di grandezza di un milionesimo di secondo, mentre le periferiche di input/output operano in modo molto più lento, e i tempi di reazione umani per fornire dei dati in input sono addirittura dell'ordine dei secondi In un esecuzione sequenziale, mentre il processo attivo è bloccato in attesa di eventi esterni, il processore rimane inattivo, in uno stato chiamato idle, e risulta pertanto sottoutilizzato 62

Cliente 1 Ord. Attesa Cons. Pag. Cliente 2 Ord. Attesa Cons. Pag. Cliente 3 Ord. Attesa Cons. Pag. 10 30 240 20 10 30 240 20 10 30 240 20 A.O. Pr. C. At. Ris. A.O. Pr. C. At. Ris. A.O. Pr. C. At. Ris. Barista Il tempo impiegato per servire un cliente è pari a 300 Durante questo tempo il barista attende (senza fare altro) per un tempo pari a 240 Il tempo di attesa (non produttivo) è 80% del tempo totale 63

Una soluzione ragionevole per migliorare sia la produttività del barista che la qualità del servizio (i clienti arrivano e si mettono in coda aspettando di essere serviti) potrebbe essere quella di servire i più clienti contemporaneamente Ogni volta che che un cliente inizia la consumazione del suo caffè, il barista, invece di restare inattivo può iniziare il servizio del prossimo cliente 64

Cliente 1 Ord. Attesa Cons. Pag. Cliente 2 Ord. Attesa Cons. Cliente 3 Ord. Attesa Cons. A.O.1 P.C.1 A.O.2 P.C.2 A.O.3 P.C.3 A.O.4 P.C.4 A.O.5 P.C.5 A.O.6 P.C.6 I.1 Barista 65

Si noti che il termine è sempre scritto in corsivo contemporaneamente Infatti, poiché vi è un solo barista (un solo processore nel caso di un computer) il servizio non è realmente eseguito in parallelo ma avviene alternando il servizio tra i vari clienti In questo modo i tempi di inattività del barista sono eliminati 66

L idea illustrata mediante l esempio precedente è l'idea di base del multi-tasking: più programmi vengono eseguiti contemporaneamente sullo stesso processore. Il numero di processi attivi viene detto grado di multi-programmazione del sistema Dal punto di vista del processore, in ogni istante vi è un solo processo in esecuzione Se l'alternanza tra i processi è frequente (ad esempio ogni 10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia veramente simultanea 67

A livello macroscopico si ha quindi l'impressione della contemporaneità, mentre a livello microscopico si ha una semplice alternanza sequenziale molto veloce Si noti che dal punto di vista di ogni singolo programma il tempo di esecuzione, cioè il tempo che intercorre tra l'inizio e la fine del processo, risulta aumentato rispetto al caso monoprogrammato a causa dell alternanza con gli altri processi 68

Un processo può trovarsi in tre diversi stati: in esecuzione, quando sta utilizzando il processore; in attesa (bloccato), quando è in attesa del verificarsi di un evento esterno (terminazione di un operazione di input/output o altro) pronto, quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo 69

scambio esecuzione in_esecuzione terminazione richiesta I/O o risorsa creazione pronto I/O terminato o risorsa disponibile in_attesa 70

Quando processo viene creato (alla richiesta da parte di un utente di eseguire un programma) viene messo nello stato di pronto e in tale stato rimane fino a quando non arriverà il suo turno Non appena un processo pronto viene selezionato, passa nello stato di esecuzione Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni 71

Terminazione: il processo termina la sua esecuzione e abbandona il sistema Richiesta di un operazione di input/output o di una risorsa occupata. In questo caso il processo passa allo stato di attesa, il processore viene liberato e può essere concesso ad un altro processo pronto Cambio di esecuzione: per realizzare in modo equo l'alternanza tra i vari processi, in certi casi può essere opportuno fermare un processo, rimetterlo nello stato di pronto e concedere il processore ad un altro processo 72

Il multi-tasking funziona efficacemente se il S.O. è in grado di offrire alcune assicurazioni Il cambio di contesto deve essere invisibile al processo. Nell esempio del bar i clienti non si accorgono che il barista serve un gruppo di clienti contemporaneamente Quando il barista riprende a servire un cliente il servizio viene ripreso esattamente nel punto in cui era stato interrotto Il barista ha un cronometro e ogni n secondi sospende il servizio che sta effettuando e passa a servire un altro cliente 73

La politica di gestione in cui il barista divide il suo tempo tra i vari clienti assegnando a ciascuno un certo intervallo di tempo è implementata nei S.O. multi-tasking e prende il nome di Round-Robin La politica di gestione in cui il barista serve in modo sequenziale i vari clienti viene chiamata FIFO 74