Dipartimento di Ingegneria dell’informazione Università di Siena

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

STRUTTURA DEL SISTEMA OPERATIVO
Gestione della Memoria
Meccanismi di IPC Problemi classici di IPC
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Scheduling A. Ferrari.
Gestione dei processi A. Ferrari.
Il Sistema Operativo.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Scheduling in Linux (Kernel 2.6)
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti di base Criteri di scheduling
INTRODUZIONE AI SISTEMI OPERATIVI
Stato di Avanzamento dello sviluppo del modulo Concretizator
Processi Aleatori : Introduzione – Parte I
Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo
Sistemi e schedulazione in tempo reale E.Mumolo
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
eliana minicozzi linguaggi1a.a lezione2
Risorse e Stallo.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Scheduling della CPU: Sistemi Operativi I
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Struttura dei sistemi operativi (panoramica)
Scheduling della CPU.
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione ai Sistemi Operativi
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Intelligenza Artificiale
SISTEMI LINEARI TEMPO INVARIANTI SEZIONE 7
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Metodi di soluzione guasti nel volo in formazione di velivoli autonomi Candidato: Simone Di Nisio Relatori: Prof. M.Innocenti Prof. A. Balestrino.
La schedulazione dei processi
ALGORITMI DI SCHEDULING PARTE II
IL PROBLEMA DELLO SCHEDULING
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Discovering Relative Importance of Skyline Attributes Gruppo 8 Altobelli Andrea (Relatore) Ciotoli Fabio Denis Mindolin, Jan Chomicki.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Threads.
Scheduling della CPU.
Sistema Operativo (Software di base)
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
Il nucleo del Sistema Operativo
1 Università degli Studi di Roma “Tor vergata” Dipartimento di Ingegneria Civile Corso di Gestione ed esercizio dei sistemi di trasporto Docente: Ing.
Estratto dalle slide di Informatica Industriale - DU - 10
Corso di SISTEMI OPERATIVI
Gestione del processore (Scheduler)
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Informatica Generale Marzia Buscemi
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Scheduler e politiche di Marco Arcamone.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Il Sistema Operativo Gestione dei Processi
Transcript della presentazione:

Dipartimento di Ingegneria dell’informazione Università di Siena Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dell’informazione Università di Siena

Sistema Real-Time Sistema in cui la correttezza non dipende solamente dai valori di output ma anche dal tempo con cui tali risultati sono prodotti REAL TIME significa che il tempo di sistema deve essere sincronizzato con il tempo dell’ambiente Input x(t) Ambiente RT System t t Output y(t+Δt) Rigutini Leonardo – Sistemi Real-Time

Tipiche applicazioni Real-Time Sistemi militari per la difesa Controllo di impianti nucleari o chimici Robotica Sistemi di gestione scambi ferroviari Sistemi di monitoraggio (aereo, ferroviario …) Sistemi di telecomunicazioni Rigutini Leonardo – Sistemi Real-Time

Approccio tradizionale Molte applicazioni RT sono sviluppate con metodi empirici: Programmazione assembler Temporizzazione tramite timer dedicati Controllo attraverso programmazione dei driver Manipolazione delle priorità Svantaggi: Programmazione noiosa e dipendente dalle capacità umane Codice poco leggibile Difficile manutenzione Difficile verifica dei vincoli temporali Rigutini Leonardo – Sistemi Real-Time

Progetto di un sistema RT La fase di test, anche se necessaria, non permette una verifica completa del sistema La predicibilità deve essere migliorata a livello di kernel Gestione dei sovraccarichi (Overload handling) Tolleranza ai guasti (Fault-Tolerance) I sistemi critici devono essere progettati con assunzioni pessimistiche (legge di Murphy) Rigutini Leonardo – Sistemi Real-Time

Real-Time ≠ Veloce Real-Time non è un sistema veloce: La velocità è relativa all’ ambiente Es. tartaruga e topolino Essere più veloce è un vantaggio ma non garantisce la correttezza Un sistema RT deve garantire il comportamento temporale di ogni task Un sistema veloce deve minimizzare il tempo di risposta medio di un insieme di task Rigutini Leonardo – Sistemi Real-Time

Fondamenti di S.O Stati di un task: Scheduler: BLOCKED signal wait activation preemption termination READY RUNNING dispatching Task from blocked Ready queque Scheduler CPU New task Rigutini Leonardo – Sistemi Real-Time

Schedule Uno schedule è una particolare assegnazione di task al processore: sia Γ={τ1, τ2, … , τn } l’insieme dei task, uno schedule è un mapping σ : R+  N tale che t R+, t1 ,t2 : t  [t1 ,t2) e t’ [t1 ,t2): σ(t)= σ(t’) σ(t)= K>0 se τn è in esecuzione 0 altrimenti idle τ1 τ2 τ3 τ2 idle 3 2 preemption 1 t1 t2 t3 t4 t5 Rigutini Leonardo – Sistemi Real-Time

Real-Time Task Di Ci τi ri si fi di di absolute deadline Di relative deadline fi finishing time ri request time (arrival time ai) si start time Ci tempo di esecuzione nel caso peggiore (wcet) slack ci(t) τi ri si fi di t ci(t) Residual wcet ci(ri)=Ci di – t – ci(t) laxity o slack Li = fi – di Margine Max(0,Li) Ritardo Rigutini Leonardo – Sistemi Real-Time

HARD e SOFT task HARD task Mancare la deadline può causare effetti catastrofici Acquisizione di dati da sensori Controllo a basso livello SOFT task Mancare la deadline causa solamente un degrado di prestazioni Visualizzazione di messaggi Interpretazione di comandi utente Un sistema capace di gestire HARD task è detto hard real-time Rigutini Leonardo – Sistemi Real-Time

Modi di attivazione Time Driven (task periodici) Il task è attivato automaticamente dal kernel ad intervalli regolari Event Driven (task aperiodici) Il task è attivato al verificarsi di un evento o attraverso una esplicita invocazione della primitiva di attivazione Aperiodico: Sporadico: Rigutini Leonardo – Sistemi Real-Time

Vincoli Temporali Precedenza Risorse Es. Attivazione, completamento, … Possono essere: Espliciti – inclusi nelle specifiche Impliciti – derivano da specifiche che sembrano non temporali (es. spazio di frenata dipende dalla velocità) Precedenza Impongono un ordine nell’esecuzione dei task Risorse Forzano una sincronizzazione negli accessi a risorse mutuamente esclusive Rigutini Leonardo – Sistemi Real-Time

Anomalie di scheduling -1 Aumento del numero di processori: 3 processori 4 processori Task più brevi: Rigutini Leonardo – Sistemi Real-Time

Anomalie di scheduling -2 Rimuovendo i vincoli di precedenza: Processore 2 volte più veloce: Rigutini Leonardo – Sistemi Real-Time

Scheduling Uno schedule è detto ammissibile se ogni task termina rispettando un insieme di vincoli Uno scheduling può essere: Preemptive / Non Preemptive Possibilità di sospensione di un task Statico / Dinamico Decisioni prese in base a parametri fissi / variabili con il tempo On line / Off Line Decisioni prese prima dell’attivazione del task / a run time Best Effort / Ottimo Fa del suo meglio per trovare uno scheduling ammissibile / trova sempre uno scheduling se ne esiste uno Rigutini Leonardo – Sistemi Real-Time

Scheduling classici FCFS (First Come First Served) CPU assegnata in base ai tempi di arrivo Non Preemptive, Dinamico, OnLine, BestEffort Altamente impredicibile SJF (Shortest Job First) CPU assegnata al task con C minore Non preemptive o preemptive, statico (Ci fissati), on-line od off-line Minimizza il tempo di risposta medio PS (Priority scheduling) Viene eseguito il task con P maggiore Preemptive,Statico o Dinamico, on-line Problema: starvation  soluzione: aging RR (Round Robin) FCFS con time sharing Ogni task ha a disposizione un lasso di tempo Q, altrimenti viene sospeso e riattivato nQ dopo Ogni task viene eseguito come se fosse su un processore n volte più lento Rigutini Leonardo – Sistemi Real-Time

Scheduling Real-Time: Task Aperiodici Per semplicità non consideriamo i vincoli di precedenza I task possono essere schedulati in base: Deadline relativa (Di)  Earliest Due Date (EDD) Statico (Di fissati) Preemptive o meno Tutti i task arrivano simultaneamente Minimizza il massimo margine (Lmax) Deadline assoluta (di)  Earliest Deadline First (EDF) Dinamico (di dipende dal tempo di arrivo) Preemptive Task possono arrivare in qualsiasi istante Rigutini Leonardo – Sistemi Real-Time

Earliest Due Date (EDD) Seleziona il task con la deadline relativa (Di) minore Minimizza il massimo margine (Lmax) Test di garanzia off-line (istante di arrivo noto): If Lmax <0 then nessun task manca la sua deadline i k=0..i Ck  Di Rigutini Leonardo – Sistemi Real-Time

Earliest Deadline First (EDF) Seleziona il task con la deadline assoluta (di) minore [Horn 74] Minimizza il massimo margine (Lmax) Test di garanzia on-line (i task possono arrivare in qualsiasi istante): Es. i fi = k=0..i ck(t)  di - t t Notare che fi = fi-1 + ci(t) Rigutini Leonardo – Sistemi Real-Time

Scheduling Real-Time: Task Periodici Task Periodico: Per ogni task periodico garantire: ogni job ik sia attivato all’istante rik=(K-1)Ti ogni job ik termini entro dik= rik + Di Due tassonomie di algoritmi: Timeline scheduling Utilizzato per 30 anni in tutti i sistemi RT (militare, navigazione, …) Asse dei tempi suddivisa in intervalli allocati staticamente ai vari task Priority Scheduling Priorità assegnate in base ai vincoli temporali di ogni task Vari tipi di algoritmi a seconda del modo di fissare le priorità Rigutini Leonardo – Sistemi Real-Time

Timeline Scheduling Deadline relativa uguale al periodo: Di = Ti Vantaggi: Implementazione semplice Basso overhead Svantaggi: Poco robusto durante sovraccarichi: cosa fare se un task sfora la deadline? Lasciare finire il task  effetto domino Abortire il task  pericolo di stati inconsistenti Bassa espandibilità Modifica di uno o più task  riprogettare tutto, compreso T e ∆ Difficile da gestire la presenza di task aperiodici Vincoli: Ca + Cb ≤ Δ Ca + Cc ≤ Δ Rigutini Leonardo – Sistemi Real-Time

Priority Scheduling: Rate Monotonic (RM) Priorità inversamente proporzionale alla frequenza del task [Liu e Layland ‘73] Deadline relativa uguale al periodo: Di = Ti Fattibilità: Ogni task utilizza la CPU per una frazione di tempo pari a: Quindi l’utizzazione del processore è: Se Up > 1 il processore è sovraccaricato  T non schedulabile Ci sono casi di non schedulabilità anche con Up < 1 Es. Up misura il carico del processore Rigutini Leonardo – Sistemi Real-Time

Utilization Upper Bound L’Utilization Upper Bound Uub dipende dall’insieme dei task: Nel 1973 Liu e Layland provarono che per un insieme di n task periodici: Ulub = Least Upper Bound Up = 3/6 + 3/9 = 0.833 Up = 2/4 + 4/8 = 1 se Up ≤ Ulub certamente schedulabile se Ulub ≤ Up ≤ 1 non possiamo dire niente Rigutini Leonardo – Sistemi Real-Time

Priority Scheduling: Earliest Deadline First (EDF) Deadline relativa uguale al periodo: Di = Ti Ogni task riceve una assoluta deadline di,k =ri,k + Di con ri,k= ri,1 + (k-1)Ti Il processore è assegnato al task con di,k minore Utilizzo del processore fino al 100% Schedulabilità: Nel 1973 Liu e Layland provarono che per un set di n task periodici Un insieme di task è schedulabile EDF se e solo se Up≤ 1 Rigutini Leonardo – Sistemi Real-Time

RM vs EDF RM: Semplice da implementare su S.O. commerciali Più predicibile durante i sovraccarichi EDF Più efficiente Riduzione dei content switch Rigutini Leonardo – Sistemi Real-Time

Task Periodici con D < T Deadline Monotonic (DM) Priorità inversamente proporsionale a D  pi  1/Di Earliest Deadline First (EDF) Priorità inversamente proporsionale a d  pi  1/di Rigutini Leonardo – Sistemi Real-Time

Task Aperiodici + Task Periodici Scheduling globale periodico Si utilizza un task periodico (server) che gestisce i task aperiodici Servers: Priorità fissa: Polling server (PS) Deferrable server (DS) Priorità dinamica: Dynamic Polling server (DPS) Dynamic Deferrable server (DDS) Rigutini Leonardo – Sistemi Real-Time

Sommario Argomenti trattati in questo seminario: Introduzione ai S.O. Scheduling RT di Task Aperiodici Scheduling RT di Task Periodici Task Aperiodici + Task Periodici Rigutini Leonardo – Sistemi Real-Time