Scheduling A. Ferrari.

Slides:



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

STRUTTURA DEL SISTEMA OPERATIVO
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Gestione della memoria centrale
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione dei processi A. Ferrari.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
12. Il Sistema Operativo Ing. Simona Colucci
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)
Il sistema operativo.
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
I processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Scheduling della CPU Concetti di base Criteri di scheduling
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
1 Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona Corso di.
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
Introduzione ai PLC.
Scheduling dei processi.
Scheduling della CPU.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
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.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
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,
Il sistema operativo Vito Perrone
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
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.
Il sistema operativo.
Architettura degli elaboratori
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Scheduling della CPU.
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
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
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
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 NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Il Sistema Operativo Processi e Risorse
Scheduling (Schedulazione)
Transcript della presentazione:

Scheduling A. Ferrari

Terminato Nuovo in Pronto esecuzione Coda Pronti bloccato interruzione uscita ammissione attesa evento (es. I/O) evento verificato assegnazione Coda Pronti Code di Attesa

Tipi di processi CPU Bound I/O Bound Processi che sfruttano pesantemente le risorse computazionali del processore, ma non richiedono servizi di ingresso/uscita dati al sistema operativo in quantità rilevanti. Es. i programmi di calcolo matematico, i quali necessitano spesso di un'enorme potenza di calcolo, ma sfruttano l'I/O solo all'inizio della loro vita (per caricare gli input) ed alla fine di essa (per produrre gli output). I/O Bound molti accessi alle periferiche, il processo è spesso interrotto per attendere il completamento delle richieste di I/O.

P1 (CPU bound) P2 /I/O bound) Lungo burst di CPU Attesa completamento I/O Corto burst di CPU P2 tempo In esecuzione In attesa

Classi di scheduling Nella gestione delle risorse di un elaboratore, il fattore tempo porta a identificare tre tipi di scheduling: Scheduling a breve termine Scheduling a medio termine Scheduling a lungo termine

Scheduling a lungo termine E’ impiegato nella scelta dei programmi, presenti in memoria secondaria, da caricare in memoria centrale per la creazione dei corrispondenti processi individua i programmi da ammettere all’esecuzione regola la presenza in memoria centrale di processi I/O bound e CPU bound controlla il livello di multiprogrammazione

Scheduling a medio termine Gestisce la permanenza in memoria dei processi non in esecuzione coordina le operazioni di trasferimento temporaneo dei processi in memoria secondaria (swap out): interviene nella gestione dei processi in attesa di eventi da lungo tempo

Scheduling a breve termine Si occupa della selezione del nuovo processo da eseguire, quando il processo in esecuzione passa allo stato di attesa o ritorna allo stato di pronto oppure termina un processo passa dallo stato di attesa allo stato di pronto si verificano eventi particolari (interruput, chiamate al S. O.) Quando la CPU rimane inattiva, il process scheduler (modulo del kernel) seleziona dalla ready queue (coda dei processi pronti) il prossimo processo a cui assegnare la CPU e decide da quale momento e per quanto tempo farlo eseguire.

Context switch Il context switch (commutazione di contesto) è la fase in cui l’uso della CPU passa da un processo pi al suo successivo pi+1 Nella fase di passaggio il SO realizza, in sequenza, le seguenti operazioni: Salvataggio dello stato del processo pi uscente Selezione del nuovo processo pi+1 Ripristino dello stato del processo pi+1 entrante Si modifica, in questo modo, il contesto in cui lavora il processore.

Durata del context switch Il tempo utilizzato dal SO per le operazioni di context switch, in rapporto al time-slice (quanto di tempo di CPU), non deve essere causa di riduzione dell’efficienza della CPU lunghi tempi di risposta A tal fine, il tempo di context switch non deve superare il 25% del time-slice (solitamente di circa 100 ms)

Dispatcher L’effettiva assegnazione della CPU al processo prescelto per l’esecuzione è affidata al dispatcher, modulo del kernel che gestisce il context switch il passaggio al modo utente il salto alla giusta posizione del programma utente (impostazione del program counter)

Politiche di scheduling: obiettivi massimizzare il throughput (numero di processi utente completati nell’unità di tempo) l’utilizzo della CPU (percentuale media di utilizzo della CPU nell’unità di tempo) minimizzare l’overhead (numero di processi di sistema completati nell’unità di tempo) il tempo di turnaround (tempo di permanenza di un processo nel sistema) il tempo di risposta (tempo trascorso tra l’immissione di un comando e l’emissione della prima risposta) il tempo di attesa (tempo totale trascorso da un processo nello stato di pronto) garantire fairness (equità) (imparzialità nell’attribuzione dei time-slice ai processi)

Tipi di sistemi Ogni algoritmo di scheduling della CPU è finalizzato al raggiungimento di alcuni obiettivi. Nei sistemi batch (elaborazione a lotti) si cerca di massimizzare il throughput e di minimizzare l’overhead. Nei sistemi interattivi (tempi di risposta immediati) è essenziale minimizzare i tempi di risposta e di attesa dei processi.

Parentesi storica IBM 7094

IBM 7094 The 7094 was IBM's most powerful scientific computer in 1963. It could perform 500,000 logical decisions, 250,000 additions or subtractions, 100,000 multiplications, or 62,500 divisions in one second. It had hardware to do double-precision floating-point arithmetic. The computer gained considerable I/O bandwidth from its separate data channels with direct memory access, and so it was also used to run business and general-purpose applications. The 7094 had an operating system called IBSYS, and FORTRAN and COBOL compilers. A typical system cost $3,134,500. IBM stopped selling them in 1969.

Dati tecnici Manufacturer: Memory technology: First introduced: IBM Memory technology: magnetic core First introduced: 1963 Memory size: 32K 36-bit words CPU technology: transistor Cycle time: 2 microseconds (0.5 MHz)

Sfruttare al massimo la potenza di calcolo

Sistemi batch Non interattività dei programmi Esecuzione non immediata ma rimandata nel tempo dei programmi Il termine batch risale all'epoca della programmazione per schede perforate. In quel contesto, i programmatori solitamente non avevano accesso diretto al computer, bensì preparavano i propri programmi "off-line" e li passavano a un amministratore di sistema, il quale aveva il compito di mandarli in esecuzione quando possibile (accodandoli rispetto ad altri programmi in esecuzione e spesso accorpando più programmi in un'unica unità di esecuzione), restituendo poi in seguito i risultati dell'elaborazione agli interessati.

Sistemi interattivi Nei sistemi interattivi il tempo di risposta deve essere il minimo possibile per dare l'idea di continuità all'utente e la proporzionalità deve essere rispettata, ossia il tempo di risposta deve essere proporzionale alla complessità dell'azione.

Classificazione delle politiche di scheduling Le politiche di scheduling della CPU si differenziano in base a tre criteri di classificazione: senza prelazione/con prelazione senza priorità/con priorità statiche/dinamiche

Prelazione (pre-rilascio) Politiche senza prelazione (non pre-emptive) Politiche con prelazione (pre-emptive) una volta che la CPU è stata assegnata ad un processo, essa non può più essergli tolta se non quando il processo ha esaurito il suo tempo di servizio o necessita di un'operazione di I/O. la CPU può essere forzatamente tolta al processo in corso di esecuzione per essere assegnata ad un altro processo.

Politiche senza priorità Politiche con priorità pongono i processi sullo stesso piano, dal punto di vista dell’urgenza di esecuzione. distinguono e suddividono in classi i processi in stato di pronto, a secondala della loro importanza o urgenza di esecuzione. Sono necessarie nei sistemi real- time e interattivi.

Statiche/dinamiche Politiche statiche Politiche dinamiche un processo conserva nel tempo i suoi diritti di accesso all’unità centrale (priorità) i processi modificano nel tempo i propri diritti di accesso all’unità centrale.

Politiche di schedulazione FCFS: First Come First Served SJF: Shortest Job First -> (SRTF) Per priorità Round Robin

FCFS: First Come First Served La CPU è assegnata ai singoli processi in base al loro ordine nella coda dei processi pronti (ready queue), stabilito in base al tempo di arrivo oppure dal numero identificativo (PID) La ready queue è gestita in modalità FIFO (First In First Out) al processo che giunge nella ready queue viene attribuito l’ultimo posto della coda la CPU è assegnata al processo situato alla testa alla ready queue

FCFS: caratteristiche E’ senza prelazione: il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O Tende a penalizzare i processi I/O bound e quelli di breve durata, poiché costretti a lunghe attese dietro processi CPU bound Tempi di attesa molto variabili e generalmente lunghi. La gestione dei dispositivi è poco efficiente ed è adeguata per sistemi batch (mancanza di interattività).

SJF: Shortest Job First La CPU è assegnata al processo il cui intervallo di tempo previsto per l’utilizzo della CPU è più breve Nel caso in cui più processi pronti presentino gli stessi tempi di servizio, la scelta viene fatta secondo la politica FCFS

SJF: due casi SJF senza prelazione SJF con prelazione il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O. SJF con prelazione se, ad un certo istante, nella coda dei processi pronti giunge un processo con un tempo di servizio più breve di quello che rimane (da completare) al processo in esecuzione, la CPU viene rilasciata e ceduta al processo appena arrivato (Shortest Remaining Time First - SRTF)

Scheduling per priorità A ciascun processo, in fase di generazione, viene attribuito un livello di priorità, espresso da un numero intero La CPU è assegnata al processo che presenta la massima priorità. A parità di priorità, si ricorre alla politica FCFS

Per priorità: due casi Senza prelazione Con prelazione il processo in esecuzione trattiene la CPU sino al termine del suo tempo di servizio o fino a quando non necessita di un’operazione di I/O. Con prelazione se nella coda dei processi pronti arriva un processo con priorità maggiore di quella del processo in esecuzione, questo rilascia la CPU, cedendola al processo appena arrivato.

Determinare la priorità Priorità definite dal S. O. (p. interna) Priorità definite dall’utente (p. esterna) Priorità statica una volta stabilita, non varia nel tempo Priorità dinamica varia nel tempo per evitare che alcuni processi possano essere bloccati per un tempo indefinito (starvation), a causa della costante presenza nella ready queue di processi a più elevata priorità

Starvation (attesa indefinita) Una possibile soluzione allo starvation è data dalla procedura di aging (invecchiamento): la priorità di un processo può aumentare al crescere del suo tempo di attesa diminuire al crescere del tempo di CPU già utilizzato

Round Robin La CPU viene assegnata, a turno, ad ogni processo per un certo periodo q di tempo massimo (time-slice o quanto di tempo) Se, alla fine di tale periodo, il processo in esecuzione non è terminato, esso viene ricondotto nella coda dei processi pronti, all’ultima posizione Alla messa in esecuzione, il S. O. avvia un dispositivo timer, trascorso l’intervallo q, il timer genera un’interruzione che provoca il prerilascio della CPU

time-slice Un time-slice troppo grande rischia di far tendere la politica Round Robin a quella FCFS. Un time-slice troppo piccolo consente tempi di risposta brevi ma impegna eccessivamente la CPU per le operazioni di context switch, con conseguente calo della produttività e dell’efficienza del sistema. Nei sistemi reali il valore del time-slice che garantisce buone prestazioni è compreso tra 20 e 50 millisecondi.