Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.

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.
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.
La struttura fisica e logica di un elaboratore
Scheduling A. Ferrari.
Gestione dei processi A. Ferrari.
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
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.
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.
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Scheduling della CPU Concetti di base Criteri di scheduling
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
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.
Il sistema operativo Vito Perrone
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Informatica per medici
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.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
Architettura degli elaboratori
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
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.
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
1.1 Sistemi di elaborazione
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.
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
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)
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Il nucleo del Sistema Operativo
Estratto dalle slide di Informatica Industriale - DU - 10
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Gestione del processore (Scheduler)
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
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.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
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
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Scheduler e politiche di Marco Arcamone.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
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
Transcript della presentazione:

Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli anni Sessanta, che permette di avere in esecuzione più di un programma sullo stesso computer e nello stesso momento. In questo modo, il computer può anche servire più utenti su differenti terminali simultaneamente. Anche i classici Windows e Linux sono sistemi operativi time sharing.

Le idee che stanno alla base Il time sharing è basato sull'idea che un computer consumi la maggior parte del suo tempo in attesa che succeda qualcosa. In un sistema time sharing, perciò, si cerca di ovviare a questo problema; si riesce, infatti, a caricare più programmi alla volta in memoria in modo che, quando il computer non è in grado di eseguirne uno, passa ad un altro. I programmi che in quel dato momento non vengono eseguiti, non rimangono nella memoria occupando spazio inutilmente.

Come viene suddiviso il tempo? Grazie al time sharing, il calcolatore ammette la presenza simultanea di più processi attivi, ma ne esegue uno per volta a rotazione e dedicando ad esso un intervallo di tempo massimo brevissimo, detto “Time Slice” (“quanto di tempo”). Se il processo che ha l'attenzione non ha in quell'istante operazioni di CPU da svolgere, il sistema operativo passa subito al processo successivo; altrimenti esegue le istruzioni di quel processo per un time slice, quindi lo sospende e passa al processo successivo.

Chi ha la precedenza? Cosa decide quale processo ha la precedenza sull'altro? Qui entra in gioco lo “Scheduler” (“pianificatore”). Esso è un componente fondamentale dei sistemi operativi multitasking (ossia che permettono di eseguire più programmi contemporaneamente). La sua funzione è quella di gestire in modo ottimale i turni dei processi (task) sulla CPU attraverso l'omonima operazione di scheduling e definendo delle politiche di ordinamento, di gestione delle priorità.

Di cosa tiene conto lo Scheduler? Esistono vari algoritmi di scheduling che tengono conto di varie esigenze e che possono essere più indicati in alcuni contesti piuttosto che in altri. La scelta dell'algoritmo da usare dipende da cinque principali criteri: Utilizzo del processore: la CPU dev'essere attiva il più possibile, ovvero devo essere ridotti al minimo i tempi morti Produttività: il numero di processi completati in un determinato lasso di tempo Tempo di completamento: il tempo che intercorre tra la sottomissione di un processo e il completamento della sua esecuzione Tempo d'attesa: il tempo in cui un processo pronto rimane in attesa della CPU Tempo di risposta: il tempo che trascorre tra la sottomissione del processo e l'ottenimento della prima risposta

Obiettivi dello Scheduling Gli obiettivi principali degli algoritmi di scheduling sono: Fairness (equità): processi dello stesso tipo devono avere trattamenti simili Balance (bilanciamento): tutte le parti del sistema devono essere utilizzate al massimo Throughput: massimizzare il numero di lavori completati in un intervallo di tempo Turnaround Time: minimizzare il tempo di permanenza di un lavoro nel sistema Tempo di Risposta: minimizzare il tempo di risposta agli eventi Proporzionalità: assicurare un tempo di risposta proporzionale alla complessità dell'azione

Politiche di Scheduling Con questo termine si intende la strategia usata per assegnare la risorsa CPU ai vari processi. Un sistema di tipo time sharing deve gestire le risorse in modo tale da dare l'impressione che i vari processi procedano simultaneamente. Il sistema di gestione dell'attribuzione della risorsa CPU si basa sulla priorità di un processo; tale priorità varia in continuazione nel corso della vita di un processo. Può essere opportuno, infatti, rendere prioritari alcuni processi di particolare importanza o che accedono a strutture molto utilizzate per evitare code di processi in attesa. Bisogna fare in modo, però, che tutti i processi possano ottenere la CPU senza essere scavalcati continuamente da processi più importanti.

Calcolo delle priorità Un elaboratore è dotato del clock, un meccanismo hardware che genera di tanto in tanto delle interruzioni: il processo attualmente in esecuzione viene sospeso per effettuare alcune procedure di manutenzione del sistema, fra cui il calcolo della priorità dei processi. Questo calcolo tiene conto di una stima dell'utilizzo della CPU da parte dei processi con un fattore correttivo che può essere utilizzato dall'utente per influenzare le procedure per il calcolo della priorità. Chiaramente l'obiettivo di tale fattore non è quello di attribuire in modo esclusivo le risorse ad un solo processo, ma fare avanzare più rapidamente un processo rispetto ad un altro.

Politiche di gestione Esistono due politiche di gestione dello scheduling che vengono eseguite periodicamente, a intervalli regolari: “Schedcpu”: ricalcola la stima dell'utilizzo della CPU per tutti i processi. Se la priorità di qualche processo è diventata maggiore di quella del processo corrente, segnala la necessità di interrompere il processo corrente che avrà priorità più bassa e sarà rimpiazzato da quello con priorità più alta. “Roundrobin”: eseguita con frequenza maggiore rispetto alla prima, cerca di vedere se c'è la necessità di una sostituzione del processo corrente. Tale sostituzione avviene se c'è in coda un processo con priorità almeno uguale a quella del processo corrente.

Due tipi di Scheduling Senza pre-rilascio (non pre-emptive): un processo attivato viene eseguito fino a quando ha completato la sua esecuzione oppure è entrato in uno stato di attesa. Può capitare che, una volta che un processo a bassa priorità sia cominciato, uno con priorità più alta diventato pronto possa aspettare anche una notevole quantità di tempo prima di essere eseguito. Con pre-rilascio (pre-emptive): ad intervalli di tempo regolari viene controllato e deciso quale processo eseguire. Rispetto alla versione non-preemptive, ha il vantaggio che quando un processo viene eseguito non ci possono essere processi pronti con una priorità maggiore.

Esempio pratico: Linux In Linux lo scheduling si basa sul concetto di time sharing, per cui ad ogni processo è assegnato un quanto di tempo massimo per l'esecuzione. Di norma Linux prevede uno scheduling pre-emptive, per cui ad un processo viene tolta la CPU se: Esaurisce il quanto di tempo a sua disposizione Un processo a priorità più alta è pronto per l'esecuzione. Il tempo è suddiviso in periodi, detti epoche, che si ripetono ciclicamente. Quando un processo viene creato, il sistema operativo assegna un quanto di tempo al processo; quando tutti i processi eseguibili hanno esaurito il loro quanto, l'epoca corrente termina e ne inizia un'altra.