Linux nei sistemi Real-Time. Andrea Sambi
|
|
|
- Rachele Di Pietro
- 10 anni fa
- Visualizzazioni
Transcript
1 Linux nei sistemi Real-Time Andrea Sambi
2 Sistemi Real-Time Sistema Real-Time (RT) non è sinonimo di sistema veloce. Un Processo Real-Time deve terminare rispettando i vincoli temporali (le deadline) stabiliti in modo tale che la sua esecuzione abbia senso. Un Sistema Real-Time deve essere in grado di prevedere se i processi che andrà ad eseguire siano in grado di rispettare le rispettive deadline. Un Sistema Real-Time deve essere un sistema deterministico, che sia in grado di garantire a priori il corretto funzionamento di un preciso insieme di processi.
3 Sistemi Real-Time Cosa influenza il determinismo dell esecuzione dei processi nei moderni sistemi di elaborazione? Caratteristiche architetturali dell elaboratore Linguaggio di programmazione Sistema Operativo
4 Sistemi Real-Time Cosa influenza il determinismo dell esecuzione dei processi nei moderni sistemi di elaborazione? Caratteristiche architetturali dell elaboratore Linguaggio di programmazione Sistema Operativo DSP o microcontrollori DSP-like: CPU dedicate con latenza di risposta agli interrupt garantita Costo elevato CPU general purpose: Frequenza di clock elevata Capacità di implementare schemi di controllo complessi con calcoli floating point Costo relativamente basso
5 Sistemi Real-Time L architettura degli elaboratori general purpose introduce elementi che possono minare il determinismo di un sistema. Arbitrato del bus causato da dispositivi di I/O intelligenti Cache multi-livello Memoria virtuale e unità di gestione della memoria (MMU) Pipeline di esecuzione delle istruzioni e predizione dei branch Gestione delle interruzioni generate da dispositivi periferici
6 Sistemi Real-Time L architettura degli elaboratori general purpose introduce elementi che possono minare il determinismo di un sistema. Arbitrato del bus causato da dispositivi di I/O intelligenti Cache multi-livello Memoria virtuale e unità di gestione della memoria (MMU) Pipeline di esecuzione delle istruzioni e predizione dei branch Gestione delle interruzioni generate da dispositivi periferici DMA: utilizzato per trasferire dati dalle periferiche alla memoria senza gravare sulla CPU. Occorre bloccare la CPU durante i trasferimenti di DMA. Tecnica di trasferimento DMA a suddivisione di tempo: un ciclo di accesso alla memoria viene suddiviso in due intervalli, uno per la CPU uno per il DMA. Perdita di efficienza, maggiore prevedibilità.
7 Sistemi Real-Time L architettura degli elaboratori general purpose introduce elementi che possono minare il determinismo di un sistema. Arbitrato del bus causato da dispositivi di I/O intelligenti Cache multi-livello Memoria virtuale e unità di gestione della memoria (MMU) Pipeline di esecuzione delle istruzioni e predizione dei branch Gestione delle interruzioni generate da dispositivi periferici Elementi soggetti a ritardi anche superiori al tempo di esecuzione delle istruzioni. Introducono un fattore di aleatorietà. Ogni cache fault provoca l accesso in memoria. Ogni page fault provoca l accesso al disco. Ogni predizione sbagliata provoca la perdita della pipeline. Occorre considerare il caso peggiore (es. cache fault per ogni accesso in memoria) che è improbabile ma possibile. E preferibile non avere memoria cache o disabilitarla.
8 Sistemi Real-Time L architettura degli elaboratori general purpose introduce elementi che possono minare il determinismo di un sistema. Arbitrato del bus causato da dispositivi di I/O intelligenti Cache multi-livello Memoria virtuale e unità di gestione della memoria (MMU) Pipeline di esecuzione delle istruzioni e predizione dei branch Gestione delle interruzioni generate da dispositivi periferici Tipicamente nei sistemi non real-time le routine di servizio delle interruzioni sono prioritarie rispetto alle applicazioni. Può non essere vero nei sistemi RT. Disabilitare le interruzioni esterne (eccetto quella del timer). Gestione delle periferiche a carico delle applicazioni (polling dei dispositivi esterni), oppure a carico di routine di sistema periodiche. Affidare alle routine di servizio solo il compito di attivare un opportuno processo di gestione. Tale processo viene schedulato come un altro processo applicativo.
9 Sistemi Real-Time L architettura degli elaboratori general purpose introduce elementi che possono minare il determinismo di un sistema. GPCPU hanno caratteristiche, tecnologie e meccanismi che portano latenza e jitter non deterministici Accorgimenti per limitare questi problemi non eliminano il ritardo architetturale: il ritardo per un cambio di contesto (preemption latency) è superiore a 10 µs, fino a 20 µs CPU multi-core possono dedicare una CPU al controllo real-time ottenendo valori di preemption latency paragonabili a quelli ottenibili con hw DSP: qualche µs In questi casi si possono sviluppare algoritmi con una frequenza massima del controllo fino a 50 KHz (periodo 20 µs) Esistono altri problemi legati all hardware utilizzabile: es. alcune schede video occupano il bus per lungo tempo. Anche con processori dual-core non è sempre possibile implementare controllo ed interfaccia utente sulla stessa macchina
10 Sistemi Real-Time Cosa influenza il determinismo dell esecuzione dei processi nei moderni sistemi di elaborazione? Caratteristiche architetturali dell elaboratore Linguaggio di programmazione Sistema Operativo Per poter trattare applicazioni real-time il linguaggio di programmazione ad alto livello deve prevedere esplicitamente la gestione dei vincoli temporali.
11 Sistemi Real-Time Rispetto ai Sistemi Operativi general purpose nel nucleo dei SO Real- Time hanno particolare rilevanza le funzionalità riguardanti: La gestione dei processi La gestione delle interruzioni La sincronizzazione dei processi La mutua esclusione fra le risorse condivise Partendo dallo standard POSIX per sistemi operativi general purpose sono state definite alcune estensioni specifiche per i sistemi RT. La maggior parte dei sistemi embedded che operano secondo modalità RT usano SO proprietari progettati con l unico scopo di soddisfare i requisiti di una particolare applicazione, quindi sono poco interessati alla definizione di standard.
12 Lo standard POSIX (Portable Operating System Interface) Standard prodotto dalla IEEE Standardizza le funzioni di interfaccia col SO (API), i comandi del SO, i metodi di test Non è un sistema operativo e non indica modalità di implementazione Permette la massima portabilità del codice Può essere implementato anche solo in parte POSIX a: standard per le interfacce di base POSIX c: standard per la gestione dei thread Sono state definite estensioni per sistemi real-time: POSIX b, d, j (1003.1b è l unico comunemente implementato)
13 POSIX Real-Time Roadmap
14 Sistemi Operativi Real-Time (RTOS) Quale Sistema Operativo Real-Time scegliere? POSIX-conformant (completamente conforme allo std) POSIX-compliance (supporto parziale dello std) Scarso supporto POSIX LynuxWorks LynxOS Embedded: la certificazione lo favorisce nell impiego in ambienti governativi Wind River VxWorks: prestazioni elevate. RTOS più diffuso al mondo QNX Neutrino: alcune soluzioni innovative basate sulla struttura a micro-kernel. Offre una maggiore protezione del sistema Microsoft Windows CE: prestazioni non eccezionali e l ambiente di sviluppo Visual Studio lo rendono più adatto a sistemi che integrano anche l interfaccia grafica, piuttosto che a sistemi embedded molto esigenti Perché non usare Linux?
15 Linux: un po di storia 1991: Linus Torvalds (studente alla University of Helsinki) inizia lo sviluppo di Linux Cerca di inglobare le caratteristiche ritenute positive di UNIX 1994: Linux 1.0 (sistemi i386 uniprocessore) 1995: Linux 1.2 (supporto per altre architetture) 1996: Linux 2.0 (supporto per sistemi multiprocessore) 1999: Linux : Linux /2004: Linux 2.6
16 SO general purpose Linux: caratteristiche SO UNIX-like: kernel monolitico, moduli kernel caricabili a richiesta Free, utilizzabile gratuitamente Open-source: disponibilità del codice sorgente, possibilità di personalizzazioni Portabilità su numerose CPU differenti Disponibilità di strumenti di sviluppo gratuiti Ampia documentazione Meno intuitivo dei sistemi Windows
17 Linux: capacità Stabile, robusto, affidabile Buon supporto dei protocolli di rete Vicino allo standard POSIX: l obiettivo è essere POSIX-compliance (non obbligatoriamente, infatti alcune API POSIX sono fornite come funzioni di libreria) Buone prestazioni come sistema server/desktop E il supporto real-time?
18 Linux ed il Real-Time Linux kernel fino alla versione 2.4 Implementazione di alcune estensioni realtime previste dallo standard POSIX Insufficienti per garantire la corretta gestione di processi real-time Linux kernel versione 2.6 Evoluzione del kernel, caratteristiche più adatte ai sistemi real-time (almeno soft realtime)
19 Linux kernel Le modalità di esecuzione dei processi sono due: User mode Modalità di esecuzione dei programmi utente Sono adottate politiche di sicurezza per evitare l accesso a zone critiche del sistema Kernel mode Modalità di esecuzione privilegiata Permette di accedere incondizionatamente a tutte le risorse del sistema Modalità di esecuzione delle chiamate di sistema (System Calls)
20 System Calls Strato software con cui i processi utenti possono accedere alle risorse hardware Funzioni con cui il SO (kernel Linux) fornisce servizi all utente La modalità di attivazione di una system call è quella di un interrupt software Eseguite in modalità kernel
21 Linux scheduling E possibile effettuare preemption sui processi utente. Ad ogni processo sono associate: una politica di scheduling una priorità Politiche di scheduling (POSIX standard) Processi tradizionali: OTHER: politica di default, priorità statica pari a 0 Processi Real-Time: ROUND-ROBIN (RR) FIFO Priorità statica compresa tra 1 e 99 Processi schedulati con Fifo o RR sono prioritari rispetto ai processi tradizionali.
22 Scheduling FIFO Ogni processo ha solo un valore di priorità statica I processi al medesimo livello di priorità sono accodati secondo l istante di attivazione (FCFS) Il processore è assegnato al processo pronto a priorità maggiore Il processo in esecuzione perde l uso della CPU solo se termina, se si sospende o se c è un processo pronto a priorità maggiore Quando un processo perde l uso della CPU è posto in testa alla lista dei processi pronti al suo livello di priorità (eccetto in caso di terminazione)
23 Scheduling Round-Robin (RR) Per ogni processo è definito un valore di priorità statica e un periodo di tempo massimo durante il quale è assegnato alla CPU (time quantum) Il processore è assegnato al processo pronto a priorità maggiore Il processo in esecuzione perde l uso della CPU se termina, se si sospende, se c è un processo pronto a priorità maggiore o dopo aver esaurito il proprio time quantum Quando un processo termina il proprio quanto di tempo viene posto alla fine della lista dei processi pronti al suo livello di priorità Quando un processo subisce preemption da parte di un processo più prioritario è posto in testa alla lista dei processi pronti al suo livello di priorità
24 Scheduling Other Ad ogni processo è assegnato un quanto di tempo massimo di uso della CPU ed una priorità dinamica data dalla somma di un valore di base e di un valore che decresce all aumentare del tempo di CPU utilizzato Aggiornamento dinamico della priorità: quando tutti i quanti di tempo dei processi pronti sono esauriti vengono ricalcolate le priorità di tutti i processi Ha lo scopo di garantire un equa ripartizione della CPU tra tutti i processi, e di fornire buoni tempi di risposta per i processi interattivi
25 Gestione dello scheduler Alcune primitive (System Calls) per la gestione dello scheduler (sched.h) sched_setscheduler( ) Setta l algoritmo di scheduling (SCHED_FIFO, SCHED_RR, SCHED_OTHER) e la priorità statica per un processo. Richiede i privilegi di root. sched_getscheduler( ) Restituisce l algoritmo di scheduling di un processo sched_setparam( ) Setta la priorità statica di un processo sched_getparam( ) Ricava la priorità statica di un processo sched_rr_get_interval( ) Restituisce il valore del quanto di tempo assegnato ad un processo sched_get_priority_min( ) Restituisce il minimo valore di priorità possibile per un algoritmo di scheduling sched_get_priority_max( ) Restituisce il massimo valore di priorità possibile per un algoritmo di scheduling sched_yield() Fa assumere al processo chiamante lo stato READY
26 Esempio: scheduling FIFO/RR Schedulazione di 3 processi che eseguono un ciclo di stampe a video. Processo padre: crea i 3 processi che saranno schedulati con gli algoritmi real-time messi a disposizione da Linux. #include <sched.h>... #define int main(void) { int count; int fork_return; /* Crea i processi figli */ for (count = 1; count <= NO_OF_CHILDREN; count++) { if ((fork_return = fork()) == 0) { new_child(count); } else...
27 Esempio: scheduling FIFO/RR Processi figli: cambiano algoritmo di scheduling (OTHER di default) e avviano un ciclo di stampe a video. void new_child(int child_number) { int i; struct sched_param priority; L algoritmo di scheduling e la priorità dei processi sono definiti tramite #define } priority.sched_priority = PRIORITA; if (sched_setscheduler(0, ALGORITMO_SCHEDULING, &priority) < 0) { printf("errore nell'impostazione dello scheduler (devi essere root)\n"); exit(-1); } usleep(sleep_time); printf("processo %d iniziato\n", child_number); for (i = 1; i <= NO_OF_ITERATIONS; i++) { routine_perdi_tempo(); printf("processo %d: iterazione %d\n", child_number, i); } printf("processo %d terminato\n",child_number); exit(0);
28 Esempio: scheduling FIFO/RR #define ALGORITMO_SCHEDULING SCHED_FIFO SCHED_RR #define PRIORITA sched_get_priority_max(algoritmo_scheduling) child_number Scegliendo child_number i processi hanno priorità diverse, pari al loro numero identificativo. FIFO priorità uguali FIFO prio. diverse RR priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo 1: iterazione 3 Processo 1: iterazione 4... Processo 1 terminato Processo 2 iniziato Processo 2: iterazione 1 Processo 2: iterazione 2 Processo 2: iterazione 3... Processo 2 terminato Processo 3 iniziato Processo 3: iterazione 1 Processo 3: iterazione 2... Processo 3 terminato Processo 3 iniziato Processo 3: iterazione 1 Processo 3: iterazione 2 Processo 3: iterazione 3 Processo 3: iterazione 4... Processo 3 terminato Processo 2 iniziato Processo 2: iterazione 1 Processo 2: iterazione 2 Processo 2: iterazione 3... Processo 2 terminato Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2... Processo 1 terminato Processo 1 iniziato Processo 2 iniziato Processo 3 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo 1: iterazione 3 Processo 2: iterazione 1 Processo 2: iterazione 2 Processo 3: iterazione 1 Processo 3: iterazione 2 Processo 1: iterazione 4 Processo 1: iterazione 5... Processo 1 terminato Processo 2: iterazione 30 Processo 2 terminato Processo 3: iterazione 30 Processo 3 terminato
29 Problemi nei sistemi Real-Time Lo scheduler non ha nessuna conoscenza dei requisiti temporali dei processi (deadline, periodo, ) L algoritmo di scheduling OTHER ha durata imprevedibile (kernel 2.4): dipende dal numero N di processi attivi nel sistema (O(N)) Gli algoritmi di scheduling real-time offrono politiche insufficienti alla gestione di un sistema RT Cambiando lo scheduler si possono risolvere i problemi?
30 Linux kernel 2.4 Cambiando lo scheduler si possono risolvere i problemi? NO rimane un problema molto importante Quando può essere invocato lo scheduler? Linux non è preemptable quando sta eseguendo in spazio kernel Un processo funzionante in kernel mode (per es. system call) non può subire preemption Il cambio di contesto può avvenire solo al termine dell esecuzione in kernel mode System calls, interrupt ed exception (eseguiti tutti in spazio kernel) sono annidabili Il tempo di attesa per l assegnazione del processore ad un processo più prioritario di quello in esecuzione è indeterminabile.
31 Linux kernel 2.4 E il supporto real-time? scadente! Algoritmi di scheduling insufficienti Alta latenza di scheduling Kernel non preemptable Il periodo minimo di attivazione dell algoritmo di scheduling è 10 ms (frequenza del timer interno di Linux 100 Hz) Indeterminismo della latenza di scheduling Miglioramenti con la versione 2.6 del kernel Linux.
32 Linux kernel 2.6 Algoritmo di scheduling ottimizzato: algoritmo O(1) L overhead dovuto alle operazioni di scheduling è determinabile a priori e non è dipendente dal numero di processi attivi Frequenza interna del clock 1000 Hz Periodo minimo di esecuzione dello scheduler: 1 ms Kernel preemptable Introduzione di punti di preemption nel kernel in cui è possibile eseguire lo scheduling
33 Linux ed il Real-Time Con la vesione 2.6 del kernel Linux il supporto ai processi real-time è migliorato, ma rimane insufficiente per processi che hanno vincoli di tempo stringenti ed insuperabili. Versioni future del SO potranno essere orientate alle applicazioni Hard Real- Time? Apparentemente sì la pesantezza intrinseca di alcuni meccanismi di Linux (es. gestione degli interrupt) viene mascherata dalla velocità del microprocessore e dalla sua latenza architetturale. Per ora, in attesa di sviluppi e verifiche, Linux è utilizzabile solo per applicazioni Soft Real-Time Ottimo punto di partenza per realizzare un sistema Hard Real-Time
34 Estensioni Real-Time Estensioni real-time al kernel Linux sono possibili in due direzioni. User Space User Space Processi Real-Time Processi Standard Processi Real-Time Processi Standard System Calls System Calls Scheduler Preemptable Linux Kernel Real-Time Kernel Linux Kernel Hardware Hardware Evoluzione del kernel Linux per renderlo full preemptable e deterministico. Il kernel Real-Time gestisce il kernel Linux come un processo a bassa priorità.
35 Estensioni Real-Time RTOS Linux-based commerciali RTOS Linux-based free Montavista Linux LynuxWorks BlueCat Embedded Linux Wind River Linux Koan KaeilOS TimeSys Linux RTAI Linux µclinux Distribuzioni Linux per applicazioni in dispositivi embedded: trends di impiego. Da Embedded Linux Market Survey 2006, Linuxdevices.
36 Documentazione RTAI-Linux: un sistema real-time distribuito per applicationi di Motion Control, L. Dozio P. Mantegazza Sistemi in Tempo Reale, G. C. Buttazzo Linux Device Drivers, J. Corbet - A. Rubini - G. Kroah-Hartman Linux e real-time, D. Ciminaghi Linux e le sue applicazioni industriali, nei sistemi embedded e real-time, S. Pozzi Linux Kernel 2.6, G.P. Ghilardi yolinux.com,
Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
RTAI e scheduling. Andrea Sambi
RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo
ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX
Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata
Il Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
Algoritmi di scheduling
Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono
J. Assfalg Appunti di Sistemi Operativi
Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche
Schedulazione in RTAI
Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Scheduling della CPU
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling
Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Lezione 4 La Struttura dei Sistemi Operativi. Introduzione
Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)
Architettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
Architettura di un sistema di calcolo
Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un
Processi e Thread. Scheduling (Schedulazione)
Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L
STRUTTURE DEI SISTEMI DI CALCOLO
STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema
INFORMATICA. Il Sistema Operativo. di Roberta Molinari
INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:
Un sistema operativo è un insieme di programmi che consentono ad un utente di
INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli
Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base
Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi
Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
Il Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
Scheduling della CPU:
Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready
Lo scheduler di UNIX (1)
Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto
Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti
GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di
Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base
Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore
Sistemi operativi e reti A.A. 2013-14. Lezione 2
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I
Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.
Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere
Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
La Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
Sistemi Operativi SCHEDULING DELLA CPU
Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling
Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.
I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi
Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
Il Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti
Le Infrastrutture Software ed il Sistema Operativo
Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato [email protected] Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono
Corso di Sistemi di Elaborazione delle informazioni
Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del
Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione
Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia
Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche
Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Pronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
DMA Accesso Diretto alla Memoria
Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati
Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi
Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi
Corso di Informatica
Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso
Organizzazione Monolitica
Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/
Lezione R14. Sistemi embedded e real-time
Lezione R14 Sistemi embedded e 22 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R14.1 Di cosa parliamo in questa lezione? In
Lo scheduling. Tipici schedulatori
Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo
Scheduling. Lo scheduler è la parte del SO che si occupa di
Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto
Il sistema operativo TinyOS
tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio
Architetture Applicative
Alessandro Martinelli [email protected] 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
SCHEDULATORI DI PROCESSO
Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI
Dispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
Implementazione di sistemi real time
Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI
Scheduling della CPU
Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler
Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi
Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi
SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time RTAI e Xenomai per il kernel Linux
UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Elettronica Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time
Sistemi Operativi Kernel
Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni
Sistemi e schedulazione in tempo reale
Sistemi e schedulazione in tempo reale 1 Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo in cui i risultati sono prodotti. Possibili campi
Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
Principi di Schedulazione in tempo reale
Principi di Schedulazione in tempo reale 1 Task in tempo reale Un task t i è una sequenza di processi in tempo reale τ ik ciascuno caratterizzato da q un tempo d arrivo r ik (r=release time, oppure a=arrival
Sistemi di Controllo Real Time
Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI
LINUX. Che cos'e` un sistema operativo?
LINUX LINUX Introduzione Una versione completa e affidabile di UNIX Disponibile per PC x86 Intel/AMD e numerose altre piattaforme Strumento (quasi) indispensabile per le esercitazioni Include gli strumenti
ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche
ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e
Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput
Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
CAP. 6: Nucleo del sistema operativo (La gestione dei processi)
Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate
Scheduling. Scheduling 14/12/2003 1/7
Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling
Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi
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
Scheduling della CPU Simulazione in linguaggio Java
Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota
Infrastrutture Software
Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta
Architettura di un calcolatore
2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von
I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.
I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono
Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale
Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella [email protected] Prestazioni Si valutano in maniera diversa a seconda dell
Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.
Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei
Sistemi operativi. Esempi di sistemi operativi
Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema
Corso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni
Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica
Esercitazione E1 Scheduling, deadlock, monitor
Esercitazione E1 Scheduling, deadlock, monitor Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E1-1 Scheduling I cinque processi A,B,C,D,E richieste di CPU si presentano nell ordine. Le loro richieste
Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU
Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti
