Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Documenti analoghi
Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

I processi: concetti di base, context switch e scheduling

I Processi. Il Concetto di Processo

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Il Concetto di Processo

Gestione dei Processi

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Processi e thread. Concetto di processo

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

Capitolo 4: i processi

2. Nucleo del sistema operativo (la gestione dei processi)

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Capitolo 4: Processi

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Capitolo 3 -- Silberschatz

Organizzazione di un SO monolitico

II parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo

I THREAD O PROCESSI LEGGERI

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

2. Nucleo del sistema operativo (la gestione dei processi)

Il Concetto di Processo

System call per la gestione di processi

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

I Processi nel Sistema Operativo Unix

Il supporto al sistema operativo

System Calls per la Gestione dei Processi

I Processi nel SO UNIX

Scheduling della CPU

Introduzione al Multithreading

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Sistema Operativo. (hardware e software) della della macchina

Processi. Concorrenza. Processi e programmi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

Sistemi Operativi. La gestione delle risorse

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

il Nucleo e la gestione dei processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

GESTIONE DEI PROCESSI

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Il modello a thread : motivazioni

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Sistemi Operativi: Concetti Introduttivi

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Sistemi Operativi. 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Processi - II. Franco Maria Nardini

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

Processi Concetti di base. Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi

Sistemi Operativi. Lezione 4 I processi: implementazioni

Il Sistema Operativo

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Struttura dei Sistemi di Calcolo

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Scheduling della CPU. Capitolo 6 - Silberschatz

Processi. Laboratorio Software C. Brandolese

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Lezione XII: La gestione delle eccezioni in MINIX

Componenti di un sistema operativo

I Sistemi Operativi. Prof.ssa Antonella Serra

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

CAPITOLO 10 - Controllo dei Processi

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Il software di sistema

Software. Elementi di Informatica. Sistema Operativo (SO) Categorie di Software. Un Po di Storia - 2. Un Po di Storia - 1

Struttura Logica del S.O:

Lab 1: Java Multithreading

I SISTEMI OPERATIVI (1)

Corso di Laboratorio di Sistemi Operativi

Sistema operativo: Gestione dei processi

Fondamenti di informatica I. Sistemi operativi II

Struttura interna del sistema operativo Linux

Sistemi Operativi ed interazione con HW e CAD

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O.

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore,

Il supporto al Sistema Operativo

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX)

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Sistemi Operativi. Lezione 3 I Processi

ACSO Programmazione di Sistema e Concorrente

Transcript:

DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo

Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto Operazioni sui processi

Il concetto di processo (1) Un SO esegue una varietà di programmi: Sistema a lotti (batch system) lavoro (jobs) Sistema a condivisione di tempo (time-sharing) programmi utente (tasks) I termini job e processo spesso usati come sinonimi Processo un programma in esecuzione Codice Dati Flusso di controllo

Il concetto di processo (2) Componenti: Codice del programma (text o code section) Dati del programma Variabili globali in memoria centrale (data section) Variabili locali e non locali (stack) Variabili temporanee generate dal compilatore (registri del processore) Variabili allocate dinamicamente (heap) anche se l'allocazione e la deallocazione della memoria all'interno di questo segmento sono a carico del programmatore Stato di evoluzione della computazione Program counter Valore delle variabili Informazioni di gestione del contesto della chiamata di procedure (indirizzo di ritorno, frame pointer, stack pointer)

Memory layout di un processo Stack Frame precedente Stack Frame. Argomento 1 Argomento 2 Registri salvati Variabili temporanee e locali Frame pointer Indirizzo di ritorno Argomenti chiamate SP

Programma Processo Programma Entità passiva Lista istruzioni Processo Entità attiva Valori delle variabili Risorse in uso Anche se due processi possono essere associati allo stesso programma, essi sono due differenti istanze di esecuzione dello stesso codice!

Lo stato di un processo E lo stato di uso del processore da parte di un processo Possibili stati: Nuovo (new): Il processo è stato creato In esecuzione (running): le istruzioni vengono eseguite In attesa (waiting): il processo sta aspettando il verificarsi di qualche evento Pronto all esecuzione (ready): il processo è in attesa di essere assegnato ad un processore Terminato (terminated): il processo ha terminato l esecuzione

Diagramma degli stati di un processo

Supporti per la gestione dei processi (1) Process Control Block (PCB) Struttura dati del kernel che mantiene le informazioni sul processo Stato del processo Identificatore del processo (Numero) Program counter Registri della CPU Info per la gestione della memoria centrale (limiti di memoria) Info sullo stato dell I/O (ad es.: file aperti) Info per la schedulazione della CPU Info per l accounting ecc PCB

PCB di Linux (vers. 0.01 dal file include/linux/sched.h)

PCB di Linux (vers. 0.01 dal file include/linux/sched.h) (cont.) 416 in un kernel linux 3.13

Supporti per la gestione dei processi (2) Le code di schedulazione dei processi Coda di lavori (job queue) contiene tutti i processi nel sistema Coda dei processi pronti (ready queue) contiene tutti i processi che risiedono nella memoria centrale, pronti e in attesa di esecuzione Coda della periferica di I/O (device queues) contiene i processi in attesa di una particolare periferica di I/O Il processo si muove fra le varie code

Supporti per la gestione dei processi (2) Code dei processi nei vari stati

Supporti per la gestione dei processi (3) Transizioni tra le code

Gli schedulatori (1) Schedulatore a lungo termine (long-term scheduler) seleziona quale processo (attualmente in memoria di massa) deve essere inserito nella coda dei processi pronti Controlla il grado di multi-programmazione Richiamato solo quando un processo abbandona il sistema (termina) Schedulatore a breve termine (Short-term scheduler) seleziona quale processo (in memoria) deve essere eseguito e alloca la CPU ad esso Schedulatore a medio termine (Medium-term scheduler) SWAPPING rimuove un processo dalla memoria centrale e lo pone in memoria di massa Supportato solo da alcuni SO come i sistemi time-sharing

Gli schedulatori (2) Diagramma delle code con aggiunta dello schedulatore a medio termine Rimuove processi dalla memoria centrale: swapping out Reintroduce in memoria centrale i processi: swapping in

Gli schedulatori (3) Lo schedulatore a breve termine è eseguito molto frequentemente (millisecondi) (deve essere veloce) Lo schedulatore a lungo termine è eseguito molto meno frequentemente (secondi, minuti) (può essere lento) In alcuni SO può essere assente (ad es. in sistemi time-sharing, come Unix e MSWindows, il grado di multi-programmazione è regolato dallo schedulatore a medio termine) Ci si limita a caricare tutti i nuovi processi in memoria

Processi CPU-bound e I/O-bound I processi possono essere classificati come: processo I/O-bound processo che spende più tempo facendo I/O che elaborazione molti e brevi utilizzi di CPU processo CPU-bound processo che spende più tempo facendo elaborazione che I/O pochi e lunghi utilizzi di CPU Un sistema di buone prestazioni presenta una combinazione bilanciata di processi CPU-bound e I/O-bound Lo swapping può essere necessario per migliorare la distribuzione dei processi tra le due tipologie oppure perché un cambiamento di richieste della memoria centrale ha superato la memoria disponibile

Il cambio di contesto (1) context switch E il passaggio della CPU da un processo ad un altro Context Switch = sospensione del processo in esecuzione + caricamento del nuovo processo da mettere in esecuzione Il dispatcher è il modulo che passa effettivamente il controllo della CPU ai processi scelti dallo scheduler a breve termine Il tempo per il cambio di contesto (latenza di dispatch) è puro tempo di gestione del sistema poichè durante il cambio non vengono compiute operazioni utili per la computazione dei processi I tempi per i cambi di contesto dipendono sensibilmente dal supporto hardware tipicamente inferiore ai 10 millisecondi

Il cambio di contesto (2)

Processi come flussi di operazioni Processo = flusso di esecuzione di computazione Flussi separati = processi separati Come si generano? Come un programma si trasforma in un insieme di processi? Come interagiscono i processi? Flussi sincronizzati processi evolvono sincronizzandosi Flussi indipendenti processi evolvono autonomamente

Modellazione della computazione a processi Modelli di computazione: Processo monolitico Processi cooperanti Modelli di realizzazione del codice eseguibile: Programma monolitico Programmi separati Realizzazione dei modelli di computazione: Programma monolitico è eseguito come processo monolitico Programma monolitico genera processi cooperanti Programmi separati sono eseguiti come processi cooperanti (ed eventualmente generano ulteriori processi cooperanti)

Creazione (o generazione) di un processo Il processo in esecuzione invoca una chiamata di sistema che crea e attiva un nuovo processo Ad es. in SO Unix-like la chiamata fork() Processo generante processo padre Processo generato processo figlio

Albero dei processi Il processo padre crea processi figli, i quali a loro volta creano altri processi formando un albero di processi eseguito in user mode Es. albero dei processi in un sistema Unix-like

Risorse dei processi Un nuovo processo può ottenere risorse in diversi modi: Condivise col padre Parzialmente condivise col padre Indipendenti dal padre (ottenute dal sistema) Limitare le risorse del figlio ad un sottoinsieme di quelle del padre aiuta ad evitare che un processo crei troppi figli Inoltre alla creazione un processo figlio riceve dal padre i dati di inizializzazione Parametri utili per l esecuzione del processo Ad es. un processo che permette di visualizzare un immagine riceverà dal padre il percorso del file

Spazio di indirizzamento (1) Lo spazio di indirizzamento (memoria) del processo figlio è sempre distinto da quello del processo padre Due possibili scenari: Il figlio è un duplicato del padre stesso programma stessi dati all atto della creazione Il figlio ha un nuovo programma caricato nel proprio spazio di indirizzamento In Unix la chiamata fork() crea un duplicato del padre Lo spazio degli indirizzi può essere successivamente sovrascritto

Esecuzione dei processi Due scenari possibili: Il padre continua l esecuzione in modo concorrente ai figli modalità asincrona Il padre attende finchè tutti (o alcuni) i suoi figli sono terminati modalità sincrona

Esempio in UNIX La chiamata di sistema exec, usata dopo la fork, carica un nuovo programma nello spazio di memoria del processo che la esegue

Terminazione di un processo (1) Terminazione normale dopo l ultima istruzione tramite la chiamata exit figlio può restituire un valore di stato (di solito un intero) al padre Nell es. tramite la chiamata wait() le risorse del processo sono deallocate dal SO

In Windows STARTUPINFO e PROCESS_INFORMAT ION sono strutture dati contenenti info sui processi ZeroMemory alloca la memoria per il nuovo processo CreateProcess() equivale alla fork() Riceve molti parametri WaitForSingleObject() è il corrispettivo di wait() Riceve come parametro il processo da attendere

Terminazione di un processo (2) Terminazione in caso di anomalia (aborto) Il padre può terminare l esecuzione di uno dei suoi figli per varie ragioni: Eccessivo uso di una risorsa Compito non più necessario Terminazione a cascata se il padre sta terminando, alcuni SO non permettono ad un processo figlio di proseguire

Esempi di terminazione in C Con uno stato non determinato: