sistemi operativi gestione dei processi. processi n concetto di processo n scheduling di processi n...

of 31 /31
Sistemi Operativi GESTIONE DEI PROCESSI

Author: rosina-oliva

Post on 01-May-2015

214 views

Category:

Documents


2 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Sistemi Operativi GESTIONE DEI PROCESSI
  • Slide 2
  • Processi n Concetto di Processo n Scheduling di Processi n Operazioni su Processi n Processi Cooperanti n Concetto di Thread n Modelli Multithread n I thread in Java
  • Slide 3
  • Concetto di Processo n Lesecuzione di programmi ha diversi nomi in diversi contesti: Sistemi Batch job Sistemi Time-sharing processo o task n I termini job e processo si usano spesso come sinonimi. n Processo : un programma in esecuzione; lesecuzione di un singolo processo avviene in maniera sequenziale. n Un processo include: sezione testo (codice), il program counter, lo stack, la sezione dati.
  • Slide 4
  • Stato del Processo n Durante la sua esecuzione un processo cambia il proprio stato che pu essere: new: Il processo viene creato. running: Il processo (le sue istruzioni) in esecuzione. waiting: Il processo in attesa di un dato evento. ready: Il processo pronto per essere eseguito. terminated: Il processo ha completato la sua esecuzione.
  • Slide 5
  • Diagramma di stato di un Processo 1 2 3
  • Slide 6
  • Process Control Block (PCB) n Il PCB contiene linformazione associata ad ogni processo: stato del processo program counter registri della CPU info sullo scheduling della CPU informazioni di memory-management informazioni di accounting stato dellI/O ID del processo ID dellutente.
  • Slide 7
  • Process Control Block (PCB) puntatore Stato del processo Program counter Registri limiti di memoria Lista dei file aperti......
  • Slide 8
  • Commutazione della CPU da Processo a Processo
  • Slide 9
  • Code di Scheduling n Coda dei processi linsieme di tutti i processi nel sistema. n Ready queue linsieme dei processi in memoria centrale pronti per essere eseguiti. n Coda del dispositivo linsieme dei processi in attesa di usare un dispositivo. (Pi code) n I processi passano da una coda allaltra mentre cambiano stato.
  • Slide 10
  • Ready Queue e code dei dispositivi di I/O
  • Slide 11
  • Scheduler n In un sistema possono esistere pi scheduler (es. sistemi batch): n Scheduler a lungo termine (o job scheduler) seleziona i processi da inserire nella ready queue (la coda dei processi pronti). n Scheduler a breve termine (o CPU scheduler) seleziona tra i processi pronti quelli che devono essere eseguiti.
  • Slide 12
  • Scheduler a medio termine n In alcuni sistemi time-sharing esiste uno scheduler a medio termine che gestisce i processi pronti in memoria centrale. (swapper) n In alcuni casi rimuove i processi dalla memoria (swap- out) per riportarli in memoria (swap-in) quando sar possibile. n Questo migliora lutilizzo della memoria in caso di una alta richiesta di esecuzione di processi.
  • Slide 13
  • Scheduler a medio termine
  • Slide 14
  • Schedulers n Lo scheduler a breve termine invocato molto frequentemente (millisecondi) (deve essere veloce). n Lo scheduler a lungo termine invocato non molto spesso (secondi, minuti) (pu essere lento). n Lo scheduler a lungo termine controlla il grado di multi- programmazione (n dei processi in memoria). n I processi possono essere classificati come: processi I/O-bound basso uso della CPU e elevato uso dellI/O. processi CPU-bound elevato uso della CPU e basso uso dellI/O.
  • Slide 15
  • Context Switch n Context switch: operazione di passaggio da un processo allaltro da parte della CPU. n Il tempo impiegato per il context-switch time un costo: il sistema non effettua lavoro utile per nessun processo utente. n Il tempo di context switch dipende dal supporto offerto dallhardware.
  • Slide 16
  • Operazioni sui Processi: Creazione n Un processo qualsiasi pu creare altri processi come suoi figli i quali possono creare altri processi, e cosi via. n Il sistema operativo crea i processi utente come processi figli. n Possibile condivisione di risorse: processi padri e figli condividono tutte le risorse. Un processo figlio condivide una parte delle risorse del padre. Processi padri e figli non condividono risorse. n Approcci di esecuzione: Processi padri e figli eseguono concorrentemente. Il padre rimane in attesa della terminazione dei figli.
  • Slide 17
  • Processi Indipendenti o Cooperanti n I processi indipendenti non interagiscono con altri processi durante la loro esecuzione. n I processi cooperanti influenzano o possono essere influenzati da altri processi. Il comportamento dipende anche dallambiente esterno. n Vantaggi della cooperazione: Condivisione dellinformazione Velocit di esecuzione Modularit Convenienza.
  • Slide 18
  • Processi Cooperanti n I processi cooperanti possono interagire tramite: Scambio esplicito di dati, Sincronizzazione su un particolare evento. Condivisione dellinformazione. n I sistemi operativi offrono meccanismi per realizzare queste diverse forme di cooperazione. n Ad esempio: send e receive semafori monitor chiamata di procedura remota n Alcuni linguaggi offrono anche meccanismi di cooperazione (es: Java).
  • Slide 19
  • Thread n Un thread, detto anche processo leggero, una unit di esecuzione che consiste di un program counter, lo stack e un insieme di registi. n Un thread condivide con altri thread la sezione codice, la sezione dati, e le risorse che servono per la loro esecuzione. n Un insieme di thread associati prendono il nome di task. n Un processo equivale ad un task con un unico thread. n I thread rendono pi efficiente lesecuzione di attivit che condividono lo stesso codice.
  • Slide 20
  • Thread n Il context switch tra thread molto pi veloce. n Un sistema operativo composto da thread pi efficiente. n I thread non sono tra loro indipendenti perch condividono codice e dati. n E necessario che le operazioni non generino conflitti tra i diversi thread di un task.
  • Slide 21
  • Task con thread singoli e multipli
  • Slide 22
  • Benefici n Velocit di risposta n Condivisione di risorse n Economia n Uso di architettura parallele (multiprocessore)
  • Slide 23
  • Thread in Java Tutti i programmi Java comprendono almeno un thread. Anche un programma costituito solo dal metodo main viene eseguito come un singolo thread. Inoltre, Java fornisce strumenti che consentono di creare e manipolare thread aggiuntivi nel programma Esistono due modi per implementare thread in Java: Definire una sottoclasse della classe Thread. Definire una classe che implementa linterfaccia Runnable. Questa modalit pi flessibile, in quanto consente di definire un thread che sottoclasse di una classe diversa dalla classe Thread.
  • Slide 24
  • Definire una sottoclasse della classe Thread 1.Si definisce una nuova classe che estende la classe Thread. La nuova classe deve ridefinire il metodo run() della classe Thread. 2.Si crea unistanza della sottoclasse tramite new. 3.Si chiama il metodo start() sullistanza creata. Questo determina linvocazione del metodo run() delloggetto, e manda in esecuzione il Thread associato.
  • Slide 25
  • Esempio di sottoclasse di Thread class Saluti extends Thread { public Saluti(String nome) { super(nome); } public void run() { for (int i = 0; i