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



Documenti analoghi
Sistemi Operativi 2003/2004. Lo scheduling dei processi

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

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

Scheduling della CPU:

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Sistemi Operativi SCHEDULING DELLA CPU

Scheduling 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

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

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

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

Scheduling. Livelli Algoritmi

Processi e Thread. Scheduling (Schedulazione)

Sistemi Operativi. Bruschi Martignoni Monga. Scheduling. Sistemi batch SJF. Sistemi. interattivi Priority RR Code multiple Sistemi real-time Deadline

Scheduling. Scheduling 14/12/2003 1/7

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

Lo scheduling. Tipici schedulatori

Corso di Informatica

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

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

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

La schedulazione. E.Mumolo

Lo schedulatore del kernel

Scheduling della CPU Simulazione in linguaggio Java

Sistemi Operativi. Scheduling dei processi

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

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

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

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

Sistemi Operativi Kernel

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

Lo scheduler di UNIX (1)

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

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Algoritmi di scheduling

Sistemi Operativi. Lezione 5 Lo scheduling

Capitolo 6: CPU scheduling

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

ESERCIZI SULLO SCHEDULING DEI PROCESSI

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

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

Architettura degli Elaboratori 2

Sistemi Operativi. Schedulazione della CPU

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

5. Scheduling della CPU

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

J. Assfalg Appunti di Sistemi Operativi

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo Sequenza alternata di CPU burst e di I/O burst.

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

SCHEDULATORI DI PROCESSO

Pronto Esecuzione Attesa Terminazione

Gli stati di un processo

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

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

Scheduling della CPU

Processo - generalità

Scheduling della CPU

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

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

Sistemi Operativi. Bruschi Martignoni Monga. Strutture dati per la gestione dei processi Context switch Thread. Scheduling

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

La Gestione delle risorse Renato Agati

Sistemi Real-Time Ing. Rigutini Leonardo

Scheduling della CPU (2) CPU bursts (2)

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Sistemi Operativi (modulo di Informatica II) I processi

GESTIONE DEI PROCESSI

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

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

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

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

Tecniche Automatiche di Acquisizione Dati

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

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

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Capitolo 3 -- Silberschatz

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

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

Esempio: aggiungere j

Scheduling della CPU

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Capitolo 5 - Silberschatz

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

Scheduling della CPU

Gestione della memoria centrale

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

Il Sistema Operativo

1.5: Gestione dei Processi e della CPU

Sistemi Operativi A.A. 2011/2012

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

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

Sistemi operativi e reti A.A Lezione 2

Organizzazione della produzione

Transcript:

Sistemi Operativi Lez. 4 Lo scheduling dei processi 1

Cicli d'elaborazione In ogni processo i burst di CPU si alternano con i tempi di I/O 2

Uso tipico di un calcolatore 3

CPU-bound e I/O-bound Processi CPU-bound Alternano lunghe computazioni ad attività di I/O relativamente poco frequenti Processi I/O-bound Alternano brevi computazioni a frequenti attività di I/O Migliorando le prestazioni delle CPU, i CPU burst diventano sempre più brevi I processi I/O-bound devono essere eseguiti ogni volta che lo richiedono per poter tenere occupati i dischi 4

Lo scheduler Per evitare di sprecare tempo di CPU durante l I/O, i processi che eseguono I/O vengono messi in stato di wait (o blocked) Viene selezionato tra i processi ready un nuovo processo da eseguire processi pronti per l esecuzione Queste attività vengono svolte da un particolare processo di sistema: lo scheduler 5

Short term scheduler Noto anche come dispatcher o CPU scheduler È lo scheduler eseguito più frequentemente Invocato quando si verifica uno dei seguenti eventi Clock interrupts I/O interrupts Operating system calls Signals 6

Cosa fa lo scheduler Lo scheduler della CPU decide quando eseguire un processo creazione di un nuovo processo terminazione di un processo esistente sospensione di un processo attivo interruzione di un processo attivo esaurimento del tempo assegnato quale processo eseguire per quanto tempo lasciarlo eseguire prelazionabile o no 7

Criteri adottati per scegliere la vittima: Da quanto tempo il processo è stato caricato o scaricato Quanto tempo di CPU ha utilizzato recentemente il processo? Quanto è grande il processo? Quanto importante è il processo? 8

Obiettivi di progetto User-oriented Response Time Tempo che intercorre tra la sottomissione di un processo ed il primo output System-oriented Uso efficiente delle risorse del sistema 9

Obiettivi 10

Modalità Gli algoritmi di scheduling sono divisi in due grosse categorie: Preemptive (con diritto di prelazione) algoritmi che prevedono la possibilità di sospendere momentaneamente i processi in esecuzione per eseguire altri processi Non preemptive o run to completion un processo in esecuzione mantiene l uso della CPU sino alla naturale terminazione del burst terminazione del processo o richiesta di I/O 11

Preemption Lo scheduling può avvenire quando un processo passa: Da running a waiting (es. I/O request) Da running a ready (es. IRQ) [preemptive] Da waiting a ready (es. I/O completed) [preemptive] Terminated 12

First come first served FCFS Algoritmo non-preemptive Implementazione molto facile Average wait time molto variabile e generalmente lontano dall ottimo Dipende dai tempi di esecuzione di chi è in coda davanti a noi Da non usare in sistemi interattivi 13

Esempio Process Tempo di arrivo Burst Time P1 0 24 P2 10 3 P3 12 3 Tempo di attesa P1 = 0; P2 = 14; P3 = 15 Average waiting time: (0 + 14 + 15)/3 = 9,66 Average Turnaround: (24 + 17 + 18)/3 = 19,66 P1 P2 P3 0 24 27 30 14

Effetto convoglio (convoy effect) Se il processo in esecuzione è CPU-bound, molti altri processi (magari I/O-bound) non possono essere eseguiti Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 P2 P3 P1 0 3 6 30 15

Shortest Job First Presuppone la conoscenza del tempo di esecuzione di ciascun processo Tutti i processi hanno uguale importanza La CPU viene assegnata al processo col tempo di esecuzione minore Versione preemptive: shortest remaining time next All arrivo di un nuovo job si rivaluta l ordine e la scelta corrente Garantisce il minimo tempo di turnaround 16

Esempio Processo Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 l Average waiting time = (0 + 6 + 3 + 7)/4 = 4 l Average Turnaround = (7 + 10 + 4 + 11)/4 =8 P1 P3 P2 P4 0 3 7 8 12 16 17

Esempio SJF/preemptive Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 Average waiting time = (0 + 6 + 3 + 7)/4 = 4 Average Turnaround = (9 + 5 + 1 + 7)/4 = 5,5 P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16 18

FCFS vs SJF Dati n processi con lo stesso tempo di arrivo e t_exe = a i, il processo j-esimo dovrà aspettare a 1 + a 2 + + a j-1 Quindi: T_medio di attesa = a 1 + (a 1 + a 2 ) + (a 1 + a 2 + a 3 ) + +a n = [(n-1)a 1 + (n-2)a 2 + + a n-1 ]/n che risulta minimizzato quando a 1 < a 2 < < a n 19

Round robin Scheduling circolare (round robin sono le petizioni in cui le firme si mettono in modo tale da non capire chi è il primo firmatario) Preemptive Ad ogni processo in attesa di esecuzione viene assegnato un intervallo di tempo detto quanto Terminato il quanto, il processo, se non ha terminato la sua esecuzione, viene rimesso in coda 20

CPU scheduler 21

RR Problema: la dimensione del quanto di tempo Il quanto di tempo è tempo sprecato per il context switch Quanto di tempo troppo breve: scarsa efficienza della CPU lavoro utile vs amministrazione Quanto di tempo troppo lungo: RR degenera in FCFS degenerano le prestazioni Quanto di tempo poco più lungo del CPU burst la prelazione si riduce, migliorando le prestazioni 22

Esempio (quanto = 20) Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 Average Waiting time = (117 + 20 + 117 + 97)/4 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 23

RR 24

RR 25

Esercizio 1 Si supponga che i seguenti processi arrivino nel sistema al tempo indicato. Ogni processo deve essere eseguito (CPU time) per la quantità di tempo indicata. Processo Tempo di arrivo CPU burst P1 0.0 5 P2 0.7 3 P3 4.0 2 Qual è il tempo medio di attesa di questi processi quando vengono usati rispettivamente gli algoritmi di scheduling: FCFS, SJF, nella versione non-preemptive RR (con quanto di tempo 2 e context switch = 0.1). a) 2.76, 2.43, 3.7 b) 4.33, 4, 3.66 c) 4.33, 4.33, 2 d) 6.1, 5.76, 6.76 26

Esercizio 2 Si supponga che i seguenti processi arrivino nel sistema al tempo e nell ordine indicato. Ogni processo deve essere eseguito (CPU time) per la quantità di tempo indicata Processo Tempo di arrivo CPU burst P1 0.0 5 P2 1.0 3 P3 3.0 6 P4 2.0 4 Qual è il tempo medio di attesa di questi processi quando vengono usati rispettivamente gli algoritmi di scheduling: FCFS, SJF, RR (con quanto di tempo 2 e context switch = 0) a) 6,3; 6,3; 8,5 b) 6,3; 5,3; 8,5 c) 8,2; 8,2; 8,5 d) nessuna delle risposte fornite è corretta 27

Scheduling con priorità SJF è un caso speciale di scheduling con priorità priorità = l'inverso della lunghezza stimata 28

Scheduling con priorità Problema: la starvation dei processi a bassa priorità Una soluzione a questo problema è data dalla procedura di aging La priorità assegnata ad un processo varia nel tempo in funzione della sua permanenza nel sistema e del tempo di CPU consumato 29

Scheduling a code multiple Due code separate foreground background Due algoritmi separati foreground: RR background: FCFS Scheduling fra le code fg-bg; time slice 80%fg, 20% bg 30

Code multiple con feedback 31

Sistemi real time La correttezza del sistema non dipende solo dai risultati dei singoli processi ma anche dagli istanti di tempo in cui questi risultati sono prodotti I processi reagiscono ad eventi che si verificano nel mondo esterno Questi eventi si verificano in tempo reale e i processi devono essere in grado di gestirli in tempo debito 32

Sistemi Real-Time Controllo di esperimenti di laboratorio Sistemi per il controllo di processo Robot Controllo traffico aereo Telecomunicazioni Sistemi di controllo militari 33

Proprietà di un Real-Time OS Determinismo Tutte le operazioni svolte nel sistema devono essere svolte in istanti di tempo fissati e predeterminati oppure entro intervalli di tempo predeterminati L intervallo di tempo richiesto dal SO per rispondere ad un Interrupt deve essere superiormente limitato 34

Caratteristiche Context switch molto veloce Dimensioni del sistema contenute Capacità nel rispondere molto velocemente ad interrupt esterni Multitasking con primitive di interprocess communication come semafori, signals e eventi Files in grado di memorizzare grosse quantità di dati ad alta velocità 35

Deadline Scheduling Informazioni usate Ready time Starting deadline Completion deadline Processing time Resource requirements Priority Subtask scheduler 36

Esempio 37

38

Scheduling in sistemi real-time Sistemi real-time in cui la schedulazione è possibile Dati m eventi periodici L evento i si verifica con periodo P i e richiede C i secondi di CPU Il carico può essere gestito solo se m i= 1 C i P i 1 39

Scheduling in sistemi real-time Esempio Si consideri un sistema soft real-time caratterizzato da tre eventi periodici rispettivamente con periodo 100, 200, 500 ms Ciascuno richiede l intervento della CPU per 50, 30, 100 ms, rispettivamente È possibile ottenere uno scheduling di tali processi? Se aggiungiamo un processo con periodo 1s, quali caratteristiche deve possedere per poter essere a sua volta schedulato? 40

Scheduling dei thread (1) Scheduling possibile per user-level thread Quanto per processo 50 msec Un thread esegue fino a che non cede volontariamente la CPU perché il run-time non può interromperlo 41

Scheduling dei thread (2) Scheduling possibile per kernel-level threads Quanto di tempo per processo 50 msec I thread vengono eseguiti in burst di CPU di 5 msec 42