Scheduling della CPU (2) CPU bursts (2)



Documenti analoghi
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:

Sistemi Operativi SCHEDULING DELLA CPU

Scheduling della CPU

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

La schedulazione. E.Mumolo

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

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

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

Corso di Informatica

Lo scheduling. Tipici schedulatori

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

Sistemi Operativi Kernel

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

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

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

Algoritmi di scheduling

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

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

Sistemi Operativi. Scheduling dei processi

Scheduling. Scheduling 14/12/2003 1/7

Lo scheduler di UNIX (1)

Processi e Thread. Scheduling (Schedulazione)

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

Lo schedulatore del kernel

Scheduling. Livelli Algoritmi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

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

Il Sistema Operativo

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

Scheduling della CPU

J. Assfalg Appunti di Sistemi Operativi

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

SCHEDULATORI DI PROCESSO

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

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

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

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

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

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

Scheduling della CPU Simulazione in linguaggio Java

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 (modulo di Informatica II) I processi

Architettura degli Elaboratori 2

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

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

Pronto Esecuzione Attesa Terminazione

J. Assfalg Appunti di Sistemi Operativi

Capitolo 6: CPU scheduling

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Sistemi Operativi. Schedulazione della CPU

Processo - generalità

GESTIONE DEI PROCESSI

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

Scheduling della CPU

Il Sistema Operativo (1)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

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

I processi Unix. Entry della tabella dei processi

Esercitazione E1 Scheduling, deadlock, monitor

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

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

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

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

5. Scheduling della CPU

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

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

TECNICHE DI SIMULAZIONE

Gli stati di un processo

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

Java Virtual Machine

Sistemi Operativi. 5 Gestione della memoria

DMA Accesso Diretto alla Memoria

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

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

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

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

Deadlock (stallo) Parte III. Deadlock

Gestione della memoria centrale

Transcript:

Scheduling della CPU (1) - La gestione delle risorse impone al SO di prendere decisioni sulla loro assegnazione in base a criteri di efficienza e funzionalità. - Le risorse più importanti, a questo riguardo, sono la CPU e la memoria principale. Scheduling della CPU (2) - Scheduler (della CPU): - parte del S.O. che decide a quale dei processi pronti presenti nel sistema assegnare il controllo della CPU - Algoritmo di scheduling (assegnazione della CPU): - realizza un particolare criterio di scelta tra i processi pronti (politica) In base a quali elementi? Assegnazione della CPU (CPU scheduling) - Un processo alterna attività di CPU e attesa per :... LOAD } ADD } CPU burst STORE } (seq. di operazioni di CPU contigue) READ from file } WAIT for } burst STORE } INCREMENT index } CPU burst WRITE to file } WAIT for } burst... Pagina 1 Pagina 2 Pagina 3 CPU bursts (1) CPU bursts (2) CPU schedulers (1) 160 140 120 100 80 60 40 20 frequenza 8 16 24 32 40 Andamento esponenziale: un gran numero di burst molto brevi ed un piccolo numero di burst molto grandi durata Un programma bound ha molti burst di CPU, brevi Un programma CPU bound ha pochi burst di CPU, lunghi ready queue queue queue queue CPU Long-term scheduler (o job scheduler): o Determina quali processi dalla memoria di massa devono essere caricati in memoria principale pronti per l'esecuzione. o Controlla il grado di multiprogrammazione (numero di processi in memoria). Interviene, di regola, quando un processo abbandona il sistema. o Il criterio di selezione e' basato su un mix equilibrato di jobs bound e CPU bound. Pagina 4 Pagina 5 Pagina 6

CPU schedulers (2) CPU schedulers (3) CPU schedulers (4) Short-term scheduler: o Seleziona tra tutti i processi in memoria pronti per l'esecuzione quello cui assegnare la CPU. o Deve essere efficiente in quanto interviene frequentemente. Dispatcher: o Esegue le operazioni relative al cambiamento di contesto. Long - term mem. di massa ready queue Short - term waiting queues CPU end Nei sistemi time-sharing non esiste long-term scheduling. I processi entrano immediatamente in memoria centrale. Il limite e' imposto o dal numero di terminali connessi o dal tempo di risposta che diviene troppo lungo (sconsigliando l'uso del sistema quando sovraccarico). Pagina 7 Pagina 8 Pagina 9 CPU schedulers (5) Scheduling e revoca della CPU (1) Scheduling e revoca della CPU (2) - Medium-term scheduler: swap-in partially-executed swapped-out processes Long - term Short - term ready queue mem. di massa waiting queues CPU swap-out end La riassegnazione della CPU può avvenire a seguito di uno dei seguenti 4 eventi: 1. Un processo commuta dallo stato di esecuzione a sospeso (ad es., per richiesta di operazione di, wait su semaforo, etc.). 3. Un processo commuta dallo stato di esecuzione a pronto (ad es., a seguito della elaborazione di un interrupt). 4. Un processo commuta dallo stato sospeso a pronto (ad es., per il completamento di un'operazione di ). Puo' risultare vantaggioso rimuovere i processi dalla memoria e ridurre il grado di multiprogrammazione. I processi vengono successivamente reintrodotti. (Swapping) Pagina 10 2. Il processo in esecuzione termina. Pagina 11 Pagina 12

Scheduling e revoca della CPU (3) - Scheduling non-preemptive: - un processo in esecuzione prosegue fino al rilascio spontaneo della CPU; - la riassegnazione della CPU avviene solo a seguito di eventi di tipo 1 e 2. - Scheduling preemptive: - il processo in esecuzione può perdere il controllo della CPU anche se in grado di proseguire; - la riassegnazione della CPU può avvenire anche a seguito di eventi di tipo 3 e/o 4. - Criteri: Algoritmi di scheduling (1) - CPU utilization - Throughput - Turnaround time (tempo in mem. di massa, coda "pronti", esecuzione, ) - Waiting time (tempo speso nella coda dei processi pronti) - Response time - Fairness (assenza di privilegi) Algoritmi di scheduling (2) - Scelto un criterio, si tenta di ottimizzare (minimizzare o massimizzare). - Per sistemi interattivi (time sharing) é più importante minimizzare la varianza nel tempo di risposta piuttosto che il tempo medio di risposta. - Misura di confronto scelta: tempo medio di attesa (waiting time). Pagina 13 Pagina 14 Pagina 15 Algoritmi di scheduling (3) - Un'analisi accurata dovrebbe comprendere molti processi, ciascuno costituito da una sequenza di diverse centinaia di: o CPU burst ed o burst. - Per semplicità nel seguito viene considerato un solo burst di CPU per ciascun processo. First-Come-First-Served (F.C.F.S.) - La CPU viene assegnata al processo che l'ha richiesta per primo. - La realizzazione di questa politica é ottenuta con code gestite FIFO. - Le prestazioni di questo algoritmo sono in genere basse in termini di tempo medio di attesa. First-Come-First-Served (2) - Es.: Processi burst di CPU 1 24 2 3 3 3 I processi arrivano nell'ordine 1, 2, 3 e sono serviti con politica FCFS - Tempi di attesa: per il processo 1 é 0 per il processo 2 é 24 per il processo 3 é 27 Pagina 16 Pagina 17 Pagina 18

First-Come-First-Served (3) - Tempo medio di attesa: (0 + 24 + 27) / 3 = 17 Se i processi arrivano nell'ordine 2, 3, 1 si ha: Tempi di attesa: per il processo 1 é 6 per il processo 2 é 0 per il processo 3 é 3 - Tempo medio di attesa: (6 + 0 + 3) / 3 = 3 Shortest-Job-First (S.J.F.) - A ciascun processo é associata la lunghezza del successivo burst di CPU. - Quando la CPU é libera, viene assegnata al processo con il burst di CPU più breve. Processi Burst-time 1 6 2 8 3 7 4 3 - Adottando S.J.F. il tempo medio di attesa é 7 (con F.C.F.S. si sarebbe ottenuto 10.25) Shortest-Job-First (2) Si può dimostrare che S.J.F. fornisce la soluzione ottima. Infatti, se si esegue un processo breve prima di uno lungo il tempo di attesa del processo breve diminuisce più di quanto aumenti il tempo di attesa di quello lungo. La difficoltà sta nel conoscere la lunghezza della successiva richiesta di CPU. Si può predire tale lunghezza (facendo ad esempio l'ipotesi che sia simile a quella del burst precedente). Pagina 19 Pagina 20 Pagina 21 Shortest-Job-First (3) - E possibile usare dei Modelli analitici: il burst successivo di CPU viene stimato come una media esponenziale delle lunghezze dei precedenti burst T* n+1 = a t n + (1 - a) T* n 0 = a = 1 t n = lunghezza dell'n-esimo burst di CPU T* n+1 = stima della lunghezza dell'n+1-esimo burst di CPU Priorità (1) Priorità (2) - Lo scheduler seleziona sempre il primo processo nella coda al livello massimo di priorità che contiene processi pronti. - In presenza di preemption, in ogni istante é in esecuzione un processo a priorità massima. Pagina 22 Pagina 23 Pagina 24

Priorità (3) Priorità e Starvation Priorità statica e dinamica (1) Valutata internamente o esternamente. - Nel primo caso la priorità é individuata sulla base di qualche quantità misurabile. Ad es., limiti di tempo, richieste di memoria, numero di file aperti, rapporto tra i burst medi di e di CPU, etc. - Nel secondo caso la priorità é imposta da condizioni esterne. - Processi a bassa priorità possono rimanere indefinitamente ritardati se lo scheduler seleziona sempre i processi ad alta priorità. o Questo problema si dice starvation. - Una soluzione é quella di aumentare gradualmente la priorità dei job che attendono. - Priorità statica: attribuita ai processi all'atto della loro creazione in base alle loro caratteristiche o a politiche riferite al tipo di utente. - In generale vengono favoriti i processi di sistema e di ; inoltre: - processi foreground (interattivi) => alta priorità - processi background (batch) => bassa priorità - Possibilità di starvation. Pagina 25 Pagina 26 Pagina 27 Priorità statica e dinamica (2) Round Robin (R.R.) Round Robin (2) - Priorità dinamica: modificata durante l'esecuzione del processo. - per penalizzare i processi che impegnano troppo la CPU - per evitare starvation - per favorire i processi -bound L obiettivo finale è quindi di mantenere (indirettamente) un buon job-mix. - Time sharing systems. Quanto di tempo assegnato a tutti i processi (10-100 msec). - La coda dei processi pronti é circolare e la CPU é assegnata a ciascuno dei processi per un quanto di tempo. - Un processo, interrotto per l'esaurimento del suo quanto, viene inserito come ultimo nella coda dei processi pronti (preemption). La politica di scheduling round-robin é caratterizzata da: - elevata fairness e - assenza di starvation. Tuttavia il context-switch imposto all'esaurimento del quanto di tempo determina un incremento dell'overhead. Pagina 28 Pagina 29 Pagina 30

Algoritmi di scheduling (1) - Gli algoritmi FCFS, SJF, e a priorità visti in precedenza sono di tipo non-preemptive, cioé quando la CPU é stata assegnata ad un processo questi ne mantiene il controllo fino o al completamento, o o alla richiesta di una operazione di, o o all'esecuzione di una sincronizzazione sospensiva. Algoritmi di scheduling (2) - Gli algoritmi SJF e a priorità possono essere anche di tipo preemptive. Tale possibilità nasce quando, durante l'esecuzione di un processo, un nuovo processo entra nella coda dei processi pronti. Il nuovo processo può: o richiedere un tempo di CPU inferiore (per SJF) o o avere una priorità maggiore di quello in esecuzione (a priorità). - L'algoritmo SJF di tipo preemptive viene chiamato anche shortest remaining time first. Code a più livelli (1) - Suddivisione tra job foreground (interattivi) e background (batch): Algoritmi diversi in quanto sono diverse le esigenze. - Più in generale, possono esistere classi diverse di job che vengono assegnati staticamente ad una coda. - Ogni coda ha un proprio algoritmo di scheduling. Ad esempio, per i job foreground l'algoritmo R.R., per quelli background l'algoritmo FCFS. Pagina 31 Pagina 32 Pagina 33 Code a più livelli (2) - In taluni casi può essere consentito ad un job di cambiare, eventualmente temporaneamente, coda: o un job che usa troppo tempo di CPU può passare ad un livello inferiore o un job che attende da troppo tempo può passare ad un livello superiore. Occorre definire: Code a più livelli (3) - il numero di code - l'algoritmo di scheduling per ogni coda - un criterio per decidere quando spostare un job ad una coda di priorità più elevata - un criterio per decidere quando spostare un job ad una coda di priorità più bassa - un metodo per determinare in quale coda un job deve entrare quando inizia il servizio. Scelta dei criteri Valutazione degli algoritmi (1) Ad esempio: - massimizzare l'utilizzazione della CPU con il vincolo che il tempo di risposta massimo sia 1 secondo. - massimizzare il throughput in modo che il tempo di risposta sia (in media) proporzionale al tempo di esecuzione totale. Pagina 34 Pagina 35 Pagina 36

Pagina 37 Valutazione degli algoritmi (2) Valutazione analitica Esistono diversi metodi per valutare analiticamente le prestazioni degli algoritmi di scheduling: 1. Modelli deterministici 2. Modelli basati sulla teoria delle code 3. Modelli basati su reti di Petri temporizzate 4. Pagina 38 Valutazione degli algoritmi (3) a) Modelli deterministici: Fissato un carico di lavoro vengono definite le prestazioni di ciascun algoritmo. - Esempio: supponiamo che al tempo 0 arrivino 5 job nel seguente ordine: job burst time 1 10 2 29 3 3 4 7 5 12 Pagina 39 Valutazione degli algoritmi (4) Si considerino i tre algoritmi: - FCFS - SJF - RR con quanto = 10 I tempi medi di attesa sono: FCFS T = (0 + 10 + 39 + 42 + 49) / 5 = 28 SJF T = (10 + 32 + 0 + 3 + 20) / 5 = 13 RR (q = 10) T = (0 + 32 + 20 + 23 + 40) / 5 = 23 Pagina 40 Valutazione degli algoritmi (5) b) Modelli basati sulla teoria delle code: - Il sistema di calcolo é descritto come una rete di servitori. Ciascun servitore ha una coda di job in attesa. Conoscendo le frequenze di arrivo e i tempi di servizio (in termini di distribuzione di probabilità) si può calcolare la lunghezza media delle code, i tempi medi di attesa, etc. - Moltissime limitazioni. Occorre conoscere le distribuzioni di probabilità dei burst di CPU e di e dei tempi di arrivo nel sistema dei job. E difficile o impossibile esprimere sincronizzazioni. La soluzione é approssimata e spesso la sua validità é incerta. Pagina 41 Valutazione degli algoritmi (6) c) Modelli basati su reti di Petri temporizzate. - Il sistema viene descritto in termini di eventi e condizioni. Le attività sono tipicamente rappresentate tramite transizioni temporizzate. - Occorre caratterizzare le durate delle attività dei job in maniera analoga a quanto avviene con le reti di code. E' possibile esprimere sincronizzazioni ma la risolubilità analitica é condizionata da limitazioni forti sulle distribuzioni ammesse. Inoltre la modellazione di alcune politiche di scheduling, possibile in linea di principio, dà luogo a reti complicate. Pagina 42 Valutazione degli algoritmi (7) Simulazione Si costruisce un modello del sistema utilizzando le reti di code o le reti di Petri come strumento di rappresentazione. Non si risolve analiticamente il modello ma lo si simula tramite un programma di calcolo. Le distribuzioni sono definite matematicamente o empiricamente, desumendole da misure effettive sul sistema. La simulazione affidabile di un modello é sempre molto più costosa della sua risoluzione analitica.

Lo scheduling in UNIX (1) - L'algoritmo di scheduling favorisce i job di tipo interattivo (foreground). - Si tratta di un algoritmo round-robin con priorità variabile. - Ad ogni processo é associata una priorità di scheduling. La priorità é rappresentata in senso decrescente: più é basso il valore, più é elevata la priorità. - Processi che svolgono attività di su disco hanno priorità negativa e non possono essere interrotti. Lo scheduling in UNIX (2) - La priorità varia dinamicamente: al crescere del tempo di CPU utilizzato da un processo diminuisce la sua priorità. Analogamente, al crescere del tempo di attesa di un processo aumenta anche la sua priorità (per evitare starvation). - BSD 4.2 ha un quanto di tempo di 0.1 s e ricalcola la priorità ogni secondo. Lo scheduling in UNIX (BSD 4.3) Le priorità variano tra 0 (massima) e 127 (minima): - da 0 a 49 per i processi che eseguono in modo kernel - da 50 a 127 per i processi in modo utente. Ogni 40 ms si ricalcala la priorità dei processi in modo utente secondo la seguente relazione: p_usrpri = PUSER + (p_cpu / 4) + 2 * p_nice Pagina 43 Pagina 44 Pagina 45 Pagina 46 Lo scheduling in UNIX (BSD 4.3) p_usrpri = PUSER + (p_cpu / 4) + 2 * p_nice dove: - p_usrpri viene alla fine saturato a 127 - PUSER = 50 (base priority for user mode execution) - p_nice varia tra -20 e 20, default 0 - p_cpu incrementato ad ogni tick in cui il processo viene trovato in esecuzione; - un correttivo, applicato ogni 1 s, fa decadere il 90% di p_cpu in circa 5 s - un correttivo diminuisce p_cpu per i processi a lungo sospesi. Pagina 47 Lo scheduling in UNIX (3) - Viene usato il meccanismo di time-out: ogni quanto di tempo (0.1 1 s) l'interruzione di clock mette in funzione una procedura che: o cambia il contesto, o ricalcola le priorità e o predispone il clock per essere nuovamente chiamata. Pagina 48 Lo scheduling in UNIX (4) Un processo sospende la propria esecuzione tramite la primitiva del kernel sleep che ha come parametro l'indirizzo di una struttura dati del kernel relativa ad un event che il processo attende prima di risvegliarsi. Quando si verifica event, il nucleo provvede a risvegliare tutti i processi in attesa di event. I processi vengono inseriti nella coda dei processi pronti per essere scelti dal meccanismo di scheduling.

Pagina 49 Lo scheduling in UNIX (5) Possono nascere "condizioni di corsa" relative al meccanismo degli eventi: - se un processo decide di sospendersi in attesa di un evento e l'evento si verifica prima che il processo completi la primitiva sleep, il processo rimane in attesa indefinita (deadlock). (Non c'é memoria associata agli eventi). Una soluzione al problema consiste nell'impedire all'evento di verificarsi durante l'esecuzione della primitiva (innalzando la priorità hardware della CPU in modo che non si possano verificare interruzioni). Pagina 50 Sistemi real-time - In un sistema real-time la correttezza della elaborazione dipende sia dalla sua correttezza logica sia dall'istante in cui il risultato viene generato. Il mancato rispetto dei vincoli temporali equivale ad un guasto del sistema (system failure). - Garantire la correttezza del comportamento temporale richiede che il sistema sia altamente predicibile. Le esigenze di tempo reale sono spesso in conflitto con gli usuali requisiti di efficienza nell'uso delle risorse. - Sistemi soft-real-time: i vincoli sui tempi di risposta sono espressi come distribuzioni statistiche e scostamenti massimi ammessi. - Sistemi hard-real-time: i vincoli devono essere rispettati in modo rigoroso. - Nei sistemi real-time organizzati a processi tipicamente sono presenti sia processi critici, che devono soddisfare i vincoli temporali, che processi non critici, eseguiti con algoritmi di scheduling convenzionali (es. FCFS) negli intervalli di tempo residui. Pagina 51