Gestione dei processi 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.
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.
Scheduling A. Ferrari.
Gestione della memoria
TEORIA DEI SISTEMI OPERATIVI
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.
Gestione del processore
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
Processi Concetto di processo Scheduling dei processi
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.
I Thread.
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
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.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
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
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
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.
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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,
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.
Processi.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Threads.
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.
I processi.
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
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
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.
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
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:
Scheduler e politiche di Marco Arcamone.
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

Gestione dei processi A. Ferrari

Multiprogrammazione Tutti i Sistemi Operativi moderni sono in grado di eseguire contemporaneamente più di un programma Il numero di programmi in esecuzione è superiore al numero di processori del sistema. L’utente ha la sensazione che le proprie applicazioni siano eseguite contemporaneamente dal computer. In realtà la sensazione di contemporaneità è data dall’elevata velocità di esecuzione dei programmi da parte del computer.

Esecuzione “parallela”

MAC OSX Monitoraggio attività

Windows Task Manager

Linux System monitor

Programma -> Processo Un programma è costituito dal codice oggetto generato dalla compilazione del codice sorgente E’ salvato sotto forma di uno o più file. E’ un'entità statica, che rimane immutata durante l'esecuzione. Il programma esiste indipendentemente dal computer che è in grado di eseguirlo. Un processo è definito come un’istanza di un programma in esecuzione. Al momento dell’esecuzione del programma il SO crea il processo. E’ un'entità dinamica, che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi. E’ caratterizzato, oltre che dal codice eseguibile, dall'insieme di tutte le informazioni che ne definiscono lo stato. Da un solo programma possono scaturire più processi distinti.

Thread Un thread è una suddivisione di un processo in due o più filoni, che vengono eseguiti concorrentemente dal processore. In generale, si può dire che un thread è contenuto all'interno di un processo. Un processo ha sempre almeno un thread (se stesso), ma in alcuni casi un processo può avere più thread che vengono eseguiti in parallelo. I vari thread dello stesso processo condividono alcune risorse (lo spazio d'indirizzamento del processo), mentre processi differenti non condividono le loro risorse. I thread sono spesso utilizzati per la parallelizzazione di un programma, per sfruttare i moderni processori multi core.

Processo vs Thread Processo Thread Il processo è l'oggetto del sistema operativo a cui sono assegnate tutte le risorse di sistema per l'esecuzione di un programma, tranne la CPU. Il thread è l'oggetto del sistema operativo o dell'applicazione a cui è assegnata la CPU per l'esecuzione.

Un esempio Un esempio di applicazione che può far uso di più thread è un browser Web, che usa un thread distinto per scaricare ogni immagine in una pagina Web che contiene più immagini.

Dual Core - multi core Una CPU dual core (doppio nucleo) unisce due processori indipendenti in un singolo package. I primi dual core sono gli IBM PowerPC del 2003. Il termine multi core si usa per descrivere una CPU composta da tre o più core: più nuclei di processori fisici montati sullo stesso package.

Identificativo di processo Il Sistema Operativo assoccia a ogni processo (al momento della creazione) un identificativo numerico univoco, detto PID (Process Identifier). Ad un processo sono associate le seguenti strutture dati: Uno o più segmenti di codice. Uno o più segmenti di memoria dati. I descrittori di eventuali risorse in uso (file, finestre, periferiche, ecc.) Uno o più thread.

Process control block Il Process Control Block (Blocco di Controllo del Processo) o PCB di un processo è una struttura dati del nucleo del sistema operativo che contiene le informazioni essenziali per la gestione del processo.

Contenuto del PCB Program counter Area per il salvataggio dei registri Stato corrente di avanzamento del processo (Pronto, In Esecuzione, Bloccato) Identificatore unico del processo Puntatore al processo padre e ai processi figli se esistenti Livello di priorità Informazioni per la gestione della memoria Identificatore della CPU su cui è in esecuzione Informazioni per lo scheduling (gestione) del processo, come il tempo di run (esecuzione) o wait (attesa) accumulato … Informazioni sullo stato di I/O del processo

Context-switching Operazioni eseguite dal SO per passare la risorsa processore da un processo ad un altro. Si interrompe momentaneamente il primo processo per riprendere temporaneamente l’esecuzione del secondo. Nel context-switching viene salvato il PCB del primo processo e caricato il PCB del secondo.

CPU e context-switching

Stati di un processo Ogni processo può essere in uno dei 3 stati: Pronto (ready) Il processo non è in esecuzione, ha tutte le risorse necessarie tranne la CPU Attesa (wait) (sleep) Il processo non è in esecuzione, ha invocato un servizio (es I/O) ed è in attesa di un segnale da parte di un altro processo relativo al completamento del servizio richiesto. Esecuzione (run) Il processo dispone di tutte le risorse necessarie ed è in esecuzione sulla CPU

Stati di un processo Ready Wait Run

Transizione 1 Ready Wait Run Il processo viene creato e posto nello stato di “pronto” (ready) Ready Wait Run

Code d’attesa Più processi possono essere in stato di ready pronti per ottenere la risorsa CPU e passare in esecuzione. I processi vengono quindi messi in coda d’attesa.

Transizione 2 Ready Wait Run Il Sistema Operativo seleziona uno dei processi in stato Ready e lo pone in esecuzione (run) Ready Wait Run

Scheduler Lo scheduler (da to schedule letteralmente "mettere in lista”) è un programma che, dato un insieme di richieste di accesso ad una risorsa, stabilisce un ordinamento temporale per l'esecuzione di tali richieste, privilegiando quelle che rispettano determinati parametri, in modo da ottimizzare l'accesso a tale risorsa e consentire così l'espletamento del servizio. Lo short-time-scheduler (scheduler della CPU) deve garantire l’esecuzione di ogni processo, in modo ordinato, concedendo e revocando la CPU alternativamente mediante operazioni dette commutazioni di contesto tra i processi.

Politiche di scheduling L'attenzione posta su alcuni parametri piuttosto che su altri, differenzia la politica di scheduling: lo scheduler può eseguire le richieste in base al loro ordine di arrivo (politica FIFO), oppure dare precedenza a quelle che impegnano per meno tempo la risorsa; possono esistere politiche che si basano su principi statistici o sulla predizione per individuare un ordinamento delle richieste che si avvicini il più possibile quello ottimale.

Obiettivi dello scheduler Fairness (Equità) - processi della stesso tipo devono avere trattamenti simili Massimizzare il throughput (produttività dell'intero sistema), minimizzando i tempi in cui la risorsa è inutilizzata. Minimizza il tempo che intercorre tra l'istante in cui la richiesta è generata e quello in cui la richiesta è soddisfatta. Evitare fenomeni indesiderati come la starvation ovvero "l'attesa eterna" di alcune richieste. "Corre voce che quando fu chiuso l'IBM 7094 al MIT, nel 1973, si scoprì che un processo con bassa priorità sottoposto nel 1967 non era ancora stato eseguito". Dare all'utilizzatore del sistema la percezione che le richieste vengano soddisfatte contemporaneamente.

Transizione 3 Ready Wait Run Il Sistema Operativo interrompe l’esecuzione di un processo e lo pone in stato di ready Ready Wait Run

Time sharing I Sistemi Operativi moderni adottano la tenica del time-sharing per la gestione del processore. Ad ogni processo viene assegnato un “quanto” di tempo (time slice dell’ordine dei millisecondi) dopo il quale deve rilasciare il processore passando dallo stato di run a quello di ready. Preemption (prerilascio) è l'operazione in cui un processo viene temporaneamente interrotto, senza alcuna cooperazione da parte del processo stesso, al fine di permettere l'esecuzione di un altro processo.

Transizione 4 Ready Wait Run Nel corso dell’esecuzione il processo richiede un servizio al Sistema Operativo e viene posto nello stato di wait Ready Wait Run

Transizione 5 Ready Wait Run Il Sistema Operativo completa la richiesta di un processo che passa quindi allo stato di ready Ready Wait Run

Transizione 6 Ready Wait Run Il processo termina l’esecuzione e viene distrutto dal Sistema Operativo Ready Wait Run

Algoritmi di schedulazione Round-robin time-sharing e politica FIFO (First In First Out) di selezione dei processi in coda di ready Scheduling a priorità Un valore di priorità (intero) è associato a ciascun processo. La CPU viene allocata al processo con la priorità più alta

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