Processi. Laboratorio Software 2008-2009 C. Brandolese



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

Sistemi Operativi (modulo di Informatica II) I processi

Il Sistema Operativo

Pronto Esecuzione Attesa Terminazione

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

GESTIONE DEI PROCESSI

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Scheduling della CPU:

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Inter Process Communication. Laboratorio Software C. Brandolese

Corso di Sistemi di Elaborazione delle informazioni

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

Il Concetto di Processo

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Scheduling della CPU

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Sistemi Operativi SCHEDULING DELLA CPU

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Il Sistema Operativo (1)

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

I processi Unix. Entry della tabella dei processi

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Processo - generalità

Il descrittore di processo (PCB)

STRUTTURE DEI SISTEMI DI CALCOLO

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

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

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Introduzione ai Sistemi Operativi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Introduzione alle applicazioni di rete

Introduzione ai sistemi operativi

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

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

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Infrastrutture Software

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

Protezione. Protezione. Protezione. Obiettivi della protezione

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Architettura di un sistema di calcolo

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Organizzazione Monolitica

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Il software. la parte contro cui si può solo imprecare. Il software

Algoritmi di scheduling

Hardware di un Computer

Architettura di un sistema operativo

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

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

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

La Gestione delle risorse Renato Agati

Capitolo 3 -- Silberschatz

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Scheduling della CPU Simulazione in linguaggio Java

Tecniche Automatiche di Acquisizione Dati

Corso di Informatica

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

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

CAPITOLO 7 - SCAMBIO DI MESSAGGI

Capitolo 5: I thread

TITLE Sistemi Operativi 1

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

Protezione. Sistemi Operativi mod. B 16.1

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

L API socket ed i daemon

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

Java Virtual Machine

Sistemi operativi. Esempi di sistemi operativi

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Lo scheduling. Tipici schedulatori

Funzioni del Sistema Operativo

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

SCHEDULATORI DI PROCESSO

Processi e Thread. Scheduling (Schedulazione)

Sistemi Operativi (modulo di Informatica II)

Il File System. Il file system

IL SISTEMA OPERATIVO

FONDAMENTI di INFORMATICA L. Mezzalira

Transcript:

Processi Laboratorio Software 2008-2009

Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina web Riproduzione di musica Ricezione di una mail Il concetto di processo permette ad un sistema di Svolgere più attività simultanee Seguirne l evoluzione Si introduce la nozione di stato di un processo I processi passano da uno stato all altro Il sistema operativo svolge operazioni sui processi Creazione, distruzione, sospensione, ripresa, 2 Laboratorio Software 2008-2009

Definizione Un processo è una istanza di un programma in esecuzione Concetto dinamico Un processo dispone di un suo spazio di indirizzamento Text Data Codice che il processo deve eseguire (programma) Variabili statiche Memoria allocata dinamicamente Stack Variabili automatiche Frame di attivazione delle procedure 3 Laboratorio Software 2008-2009

Categorie Esistono diverse categorie di processi Definite in base alla criticità Processi batch Ricevono tutti i dati d ingresso all inizio dell esecuzione Producono tutti i risulatati alla fine Non vi è interazione Processi interattivi Eseguono una attività in burst successivi Richiedono l interazione con un utente a terminale Processi real-time Interagiscono con dispositivi o sistemi esterni Sono soggetti a vincoli temporali stringenti Il mancato rispetto dei vincoli costituisce un problema grave 4 Laboratorio Software 2008-2009

Gestione Un sistema operativo fornisce i seguenti servizi per la gestione dei processi Creazione Distruzione Sospensione Ripresa Cambiamento della priorità Blocco Risveglio Dispatch Comunicazione 5 Laboratorio Software 2008-2009

Stati Un processo passa attraverso una serie di stati Running Il processo è in esecuzione sul processore Non attende alcuna risorsa Un solo processo per ogni processore può essere in questo stato Ready Il processo è pronto per l esecuzione su un processore Attende la disponibilità del processore Blocked Il processo è in attesa di un evento Il sistema operativo mantiene Una lista dei processi ready Una lista dei processi blocked 6 Laboratorio Software 2008-2009

Transizioni Dispatching Assegna il processore al primo processo nella lista ready Quanto di tempo Il sistema operativo può utilizzare un timer per assegnare ad ogni processo un quanto di tempo in cui è in esecuzione Il multitasking cooperativo permette di completare ogni processo Transizioni di stato A questo punto si hanno 4 possibili transizioni Se un processo è dispatched, passa da ready a running Se il quanto di tempo termina, passa da running a ready Se un processo si blocca, passa da running a blocked Se si verifica uno specifico evento, passa blocked a ready 7 Laboratorio Software 2008-2009

Transizioni Release Exit New Admit 8 Laboratorio Software 2008-2009

Implementazione a singola coda new process Admit Ready queue (FIFO) Dispatch CPU Release Timeout Event occurs Blocked queue (FIFO) Event wait 9 Laboratorio Software 2008-2009

Implementazione a code multiple new process Admit Ready queue (FIFO) Dispatch CPU Release Timeout Event 1 occurs Blocked queue 1 (FIFO) Event 1 wait Event 2 occurs Blocked queue 2 (FIFO) Event 2 wait 10 Laboratorio Software 2008-2009

Descrittori Un descrittore di processo o Process Control Block (PCB) Mantiene le informazioni necessarie al sistema operativo per la sua gestione Informazioni nel PCB Identificatore univoco (PID) Per esempio un indice nella tabella dei processi Identificatore del processo padre Cioè del processo che ha creato il proceso in esame Identificatore dell utente Quale utente ha creato il processo Registri del processo visibili all utente (GPRs) Regsitri di controllo e di stato Program Status Word, registro EFLAGS nei Pentium Process stack pointers 11 Laboratorio Software 2008-2009

Descrittori Informazioni nel PCB [continua] Informazioni di stato State del processo, priorità di scheduling, evento atteso, Informazioni per interprocess communication Flags, segnali, messaggi, Privilegi Instructions eseguibili, accesso alla memoria, Gestione della memoria Informazioni a proposito della memoria virstuale utilizzata Risorse Proprietà Utilizzo 12 Laboratorio Software 2008-2009

Descrittori Tabella dei processi o Process Table Il sistema mantiene i puntatori ai vari PCB in una tabella Unica per tutto il sistema Specifica per ogni utente Facilità di accesso ai PCB Creazione di un processo Nuovo PCB e nuovo puntatore Allocazione delle risorse necessarie Distruzione di un processo Rimozione del PCB Eliminazione del puntatore dalla tabella Rilascio delle risorse 13 Laboratorio Software 2008-2009

Descrittori 14 Laboratorio Software 2008-2009

Operazioni Creazione Perché può avvenire Richiesta di un nuovo job batch Login di un utente Richiesta di un servizio Spooler, server web,... Richiesta di un altro processo Il creatore è detto padre o parent Il creato figlio o child Quando un processo termina Distrugge tutti i processi figli Permette ai figli di completare l esecuzione indipendentemente dal processo gentitore 15 Laboratorio Software 2008-2009

Operazioni Creazione La creazione di un processo comporta le seguenti fasi Assegnazione di un nuovo id unico Aggiunta di una nuova voce nella tabella dei processi Allocazione dello spazio per Descrittore di processo Immagine del processo Inizializzazione del descrittore di processo Inizializzazione dei puntatori allo stack Inizializzazione liste Aggiunta del processo alla lista utilizzata per lo scheduling Altre attività Inizializzazione delle attività di accounting 16 Laboratorio Software 2008-2009

Operazioni Creazione Esempio: La gerarchia dei processi in Linux 17 Laboratorio Software 2008-2009

Operazioni Distruzione Perché può avvenire Terminazione naturale Richiesta di un altro processo Superamento di un limite temporale Errore o malfunzionamento Errori di memoria (non disponibile, out of bound, ) Errore di protezione: Scrittura su un file read-only, Errore artimetico: Divisione per 0, Errore di I/O Istruzione non valida: esecuzione di dati, istruzione privilegiata La distruzione di un processo richiede le seguenti fasi Richiesta d intervento del sistema operativo Output dei dati verso il processo padre Deallocazione delle risorse associate 18 Laboratorio Software 2008-2009

Operazioni Sospensione e Ripresa La sospensione Elimina un processo dalla competizione per il processore Non distrugge il processo Molto uitle per Debugging, individuare minacce alla sicurezza,... Può essere richiesta Dal processo stesso che viene sospeso Da un altro processo Si definiscono due stati di sospensione Suspended-Ready Suspended-Blocked La ripresa di un processo Deve essere richiesta da un altro processo 19 Laboratorio Software 2008-2009

Operazioni Sospensione e Ripresa Transizioni di stato con sospensione e ripresa New Admit Admit Release Exit 20 Laboratorio Software 2008-2009

Context Switch Eseguito dal sistema operativo per Interrompere l esecuzione di un processo running Iniziare l esecuzione di un processo ready Il context switch comporta Salvataggio del contesto del processo running nel corrispondente PCB Caricamento del contesto del processo ready dal corrispondente PCB Il context switch Deve essere trasparente al processore Il processore non può fare nulla di utile nel frattempo Il sistema operativo deve quindi minimizzare il tempo di context-switch In alcune architetture viene svolto da hardware dedicato 21 Laboratorio Software 2008-2009

Context Switch 22 Laboratorio Software 2008-2009

Context Switch Quando avviene Interrupt evento esterno Clock: il processo ha esaurito il quanto di tempo I/O: un altro richiede la stessa risorsa di I/O Memory fault: la richiesta di un indirizzo si riferisce ad una pagina della memoria virtuale che deve essere caricata Trap Evento interno Tipicamente un errore Se l errore è fatale causa la distruzione del processo Chiamata di sistema Il processo richiede un servizio di sistema operativo Il passaggio ad una routine di servizio Richiede il salvataggio del contesto del chiamante Non modifica lo stato del processo interrotto 23 Laboratorio Software 2008-2009

Context Switch Process P0 Operating System Process P1 Running Save state in PCB0 Reload state from PCB1 Ready Ready Running Running Save state in PCB1 Reload state from PCB0 Ready 24 Laboratorio Software 2008-2009

Context Switch e interrupt Un interrupt Flusso di esecuzione simile a due processi che si alternano Context switch è realizzato mediante un meccanismo specifico 25 Laboratorio Software 2008-2009

Context Switch Process P0 Operating System ISR0 Running Save P0 state Running Running Reload P0 state Running 26 Laboratorio Software 2008-2009

IPC Inter-Process Communication Molti sistemi operativi forniscono un meccanismo per la comunicazone tra processi I processi devono poter comunicare per esepio In ambienti multiprogrammati In ambienti e sistemi operativi di rete La comunicazione e la sincronizzazione Sono essenziali per coordinare più processi che concorrono a realizzare una funzione comune Sistemi operativi diversi dispongono di meccanismi diversi per la comunicazione e la sincronizzazione 27 Laboratorio Software 2008-2009

IPC Segnali Un segnale o interrupt software Utilizzato per notificare un evento ad un processo Diversi tipi di segnali a seconda dei tipi di eventi Allarmi, Errori,... Si tratta di un meccanismo di sincronizzazione I processi non possono scambiarsi dati mediante segnali Un processo può decidere come trattare un segnale Accettare e gestire (catch) È necessario specificare una routine di gestione Ignorare (ignore) Viene utilizzata una routine di gestione di default del sistema operativo Mascherare (mask) Una maschera di bit indica quali segnali devono essere consegnati ad un processo per la gestione e quali no 28 Laboratorio Software 2008-2009

IPC Messaggi La comunicazione tra processi può usare messaggi Anche altri meccanismi: memoria condivisa,... I messaggi possono essere Monodirezionali Un processo è il mittente (sender) e l altro è il ricevente (receiver) Bidirezionali Ogni processo può agire come sender o come receiver Bloccanti Il receiver deve notificare al sender (che è in attesa) l avvenuta ricezione Non-bloccanti Il sender può contunuare la sua attività subito dopo l invio Diverse implementazioni Pipe, FIFO, socket,... 29 Laboratorio Software 2008-2009

Esempio: I processi UNIX Tutti i processi dispongono di Un insieme di indirizzi di zone di memoria Implementano uno spazio di indirizzamento virtuale Si utilizza la cosiddetta virtual address table Il PCB di ogni processo È mantenuto dal kernel in una zona di memoria protetta I processi utente non possono accedervi Un PCB contiene I registri del processo Il PID Il program counter Lo stack di sistema Tutti i processi (PCBs) sono contenuti nella process table 30 Laboratorio Software 2008-2009

Esempio: I processi UNIX I processi Interagiscono con il sistema operativo per mezzo delle system call o chaimate di sistema Hanno una priorità indicata da un valore tra -20 e 19 Un valore numerico basso indica una alta priorità Un processo può generare altri processi Un processo viene creato con la chiamata di sistema fork() Crea una nuova copia del processo padre Il processo figlio riceve una copia di tutte le risorse del padre Comunicazione UNIX dispone di diversi meccanismi per la comunicazione Pipe, FIFO, socket,... 31 Laboratorio Software 2008-2009

Esempio: I processi UNIX Alcune chaiamte di sistema: fork() Crea un nuovo processo ed una copia delle risorse exec() Carica un programma nello spazio di un processo wait() Blocca il processo chiamante in attesa della fine di un suo processo filgio signal() Installa una routine di gestione per uno specifico tipo di segnale exit() Termina il processo corrente kill() Invia un seganle ad un determinato processo nice() modifica la priorità di scheduling di un processo 32 Laboratorio Software 2008-2009