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

Documenti analoghi
LINUX: struttura generale

Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008

LABORATORIO DI SISTEMI OPERATIVI

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

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

I Processi. Il Concetto di Processo

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

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)

Introduzione al Multithreading

Richiami sui Concetti Fondamentali dei Processi

Introduzione ai thread

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

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

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

System call per la gestione di processi

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

System call per la gestione di processi

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

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

System Calls per la Gestione dei 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. Lezione 3 Processi e Thread

I Processi. Il Concetto di Processo

Corso di Informatica Modulo T3 1-Nucleo e processi

I THREAD O PROCESSI LEGGERI

Il Concetto di Processo

Sistema operativo e processi. Il Sistema Operativo ed i Processi. Il sistema operativo. Il sistema operativo

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

Il Concetto di Processo

Sistemi Operativi I. a.a. 2008/09. Copyright c 2008 Giorgio Delzanno

Gestione del processore. Il modello a processi sequenziali

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

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

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

Processi. Concetto di processo. Scheduling dei processi. Operazioni sui processi. Stati dei processi. Esempio in Unix

Processi. Concorrenza. Processi e programmi. Processi e programmi

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

CAPITOLO 11 GESTIONE DEI PROCESSI

THREAD, SMP, MICROKERNEL

Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I

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

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

Processi. Capitolo 3 -- Silberschatz

Gestione dei processi nel sistema operativo Unix

Struttura dei Sistemi di Calcolo

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

Corso di Informatica

I Processi nel SO UNIX

Il Concetto di Processo

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

Il Concetto di Processo

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

Dati: variabili globali Program Counter Alcuni registri di CPU Stack: parametri, variabili locali a funzioni/procedure

I Processi nel Sistema Operativo Unix

i. Diagramma di GANTT relativo all esecuzione dei quattro processi:

2. Teoria. [7 punti] La comunicazione tra processi nel sistema UNIX.

Sistemi Operativi. Lezione 3 Processi e Thread

I processi: concetti di base, context switch e scheduling

Sistemi Operativi Modulo I. I Processi

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

I thread. Non bastavano i processi?

Processi. Laboratorio Software C. Brandolese

I Processi nel SO UNIX

Sistemi Operativi 20 giugno 2013 Compito B

Corso di Informatica

Componenti di un sistema operativo

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

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Il supporto al sistema operativo

Sistemi Operativi. Lezione 4 Processi e Thread

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

Sistemi Operativi Modulo I. I Processi

Sistemi Operativi (modulo di Informatica II) I processi

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Il Sistema Operativo Ripasso

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

sono forniti di un sistema operativo più o meno complesso; i programmi d utente (o programmi del sistema, ma lo fanno attraverso il sistema

Sistemi Operativi. Processi e Thread

Il Sistema Operativo Processi e Risorse

il Nucleo e la gestione dei processi

Sistemi Operativi. Lezione 3 Processi e Thread

Gestione del processore. Il modello a thread

Il Sistema Operativo Thread

Lab 1: Java Multithreading

I Processi nel SO UNIX

Università degli Studi di Cassino

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

Università degli Studi di Cassino

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 10 aprile 2008.

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008.

Modi di esecuzione user / kernel

Sistemi Operativi. Bruschi Martignoni Monga. Strutture dati per la gestione dei processi Context switch Thread. Scheduling

Sistemi Operativi. Lezione 4 I processi: implementazioni

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

Il Sistema Operativo

Transcript:

Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un Processo? Cosa è un Processo? Processi e Programmi Processi figli Concorrenza e Parallelismo Programma P Spazio di indirizzamento di P (Memoria di P) Istruzioni, area dati, heap e stack di P Un Programma (a) e una visione astratta della sua esecuzione (b) Processo: Programma in esecuzione che utilizza le risorse ad esso allocate Un processo è definito da sei componenti: (id, codice, dati, stack, risorse, stato della CPU) 5.3 5.4

Processi e Programmi Processi figli Un programma è un insieme di funzioni e procedure Tali funzioni possono determinare processi separati, o possono costituire il codice di un unico processo Relazioni possibili tra processi e programmi Relazione Uno-a-uno Molti-a-uno Esempio Un unica esecuzione di una sequenza di istruzioni Più esecuzioni di uno stesso programma, esecuzione di programmi concorrenti Il Kernel inizia l esecuzione di un programma creando un processo per il prog Tale processo (primario) può usare system call per creare altri processi (figli), che possono generare altri figli albero dei processi Tipicamente, un processo crea uno o più processi figli e delega loro parte della computazione Multitasking all interno dell applicazione 5.5 5.6 Processi Figli (cont.) Alcuni Benefici conseguenti dall uso di sottoprocessi Benefici Esempi: Processi figli in un applicaz. Real-Time registro Velocità di computazione Priorità per azioni critiche Azioni altrimenti eseguite sequenzialmente dal processo primario, sono eseguite concorrentemente. Possibile riduzione del tempo complessivo di computazione Un processo figlio che esegue istruzioni critiche può avere priorità più alta: può garantire vincoli real-time. Registratore - dati copiacampione salvacampione Protezione del processo padre dalle conseguenze di errori Il kernel elimina il processo figlio in caso di errore. Il processo padre può continuare la computazione, eventualmente iniziando un azione di recovery copiacampione Salvacampione Analizzacampione Memoria Analizzacampione Un applicazione real-time: (a) albero dei processi; (b) attività dei processi 5.7 5.8

Concorrenza e Parallelismo Implementazione dei Processi Parallelismo: esecuzione contemporanea due task sono paralleli se sono in esecuzione nello stesso istante Ottenuto mediante l uso di CPU multiple sistemi multiprocessore Concorrenza è un illusione di parallelismo Due task sono concorrenti se si ha l impressione che vengano eseguiti in parallelo, anche se ad ogni istante solo uno di essi è in esecuzione Ottenuta dal SO alternando i processi sulla CPU Concorrenza e parallelismo possono migliorare il throughput 5.9 Per il SO, un processo è un unità della computazione Compito principale del Kernel: il funzionamento dei processi per l uso efficace del computer Evento Salvataggio del contesto Gestione dell evento Scheduling Uscita dal Kernel Funzioni fondamentali del Kernel per il controllo dei processi 5.10 Stati di un Processo e Transizioni di Stato Stato del processo: il termine che descrive la natura dell attività corrente del processo Stato /Running/Esecuzione Attesa/Blocked /Ready Terminato/Terminated Nuovo/New La CPU sta eseguendo le istruzioni del processo Il processo attende che la richiesta di una qualche risorsa venga soddisfatta. Attende un qualche evento Il processo richiede l uso della CPU per continuare l elaborazione, ma è in attesa di essere schedulato L esecuzione del processo è stata completata, o terminata dal Kernel Il processo è stato appena creato 5.11 Stati di un Processo e Transizioni di Stato (cont.) Una transizione di stato di un processo è il cambiamento della sua attività (stato) Causata dal verificarsi di un qualche evento Inizio o fine di un operazione di I/O Nuovo Prelazione Risorsa ottenuta attesa terminata Transizioni di stato fondamentali per un processo Completamento Richiesta di risorsa o attesa Terminato Bloccato 5.12

Transizione di Stato Attesa Attesa Stati e Transizioni (cont.) Il processo è soggetto a dispatching. La CPU comincia o riprende l esecuzione delle sue istruzioni Una richiesta fatta dal processo viene soddisfatta o si verifica un evento per il quale il processo era in attesa Il processo è sottoposto a prelazione perché il kernel ha deciso di schedulare un altro processo. Un processo con priorità più alta è passato in stato di pronto oppure il quanto di tempo è terminato. Il processo attivo effettua una system call per richiedere una risorsa o attendere il verificarsi di un evento. Principali cause: Richiesta di I/O Richiesta di una risorsa (stampante, rete, etc) Richiesta di rimanere in attesa per un fissato lasso di tempo Attesa di un messaggio da un altro processo Attesa di una qualche azione di un altro processo Esempio: Transizioni di Stato un sistema con due processi: P 1 : CPU-burst di 15ms; I/O di 100 ms P 2 : CPU-burst di 30ms; I/O di 60 ms Transizioni di stato in un sistema Time-Sharing con quanto di 10 ms Nuovo Stato Tempo Evento Conseguenze P1 P2 0 P1 e schedulato 10 P1 e prelazionato P2 e schedulato 20 P2 e prelazionato P1 e schedulato 25 P1 avvia I/O P2 e schedulato Attesa Terminato L esecuzione del programma è completata. Ragioni principali per la terminazione: Richiesta di terminazione da parte del processo stesso. Uso di una system call specifica (es. exit(), abort()) Terminazione richiesta dal processo padre. Violazione dei limiti di utilizzo di una risorsa Condizioni anormali, errori Interazione con altri processi. Es. deadlock 5.13 35 P2 e prelazionato - Attesa P2 e schedulato Attesa 45 P2 avvia I/O - Attesa Attesa 5.14 Processi Sospesi Il kernel usa altri stati addizionali per descrivere processi sospesi a causa dello swapping Completamento Richiesta di risorsa o attesa Terminato Constesto del Processo e Process Control Block Il Kernel alloca risorse ad un processo e lo schedula per l uso della CPU Il kernel ``vede il contesto di un processo attraverso un process control block Nuovo In Swapping Out Prelazione Risorsa ottenuta attesa terminata Bloccato In Swapping Out Info Memoria Info Risorse Puntatori ai File Codice Dati Stack Contesto del Processo Process Control Block Id del Processo Stato del Processo Contenuto Registri (GPR) Program Counter swapped Risorsa ottenuta attesa terminata Blocked swapped Stati e transizioni di stato per un sistema che prevede stati di swap 5.15 La visione di un processo da parte del Kernel 5.16

Alcuni campi del Process Control Block (PCB) Campo del PCB Id del Processo Id dei processi figli e del processo padre Priorita Stato Status Word (PSW) Registri CPU (GPR) Informazione sugli eventi e sui segnali Informazioni sulla memoria Contenuto L identificativo assegnato al processo alla sua creazione Per la sincronizzazione dei processi, es. per permettere al processo di controllare la terminazione di un figlio In genere un valore numerico. Assegnata alla creazione del processo, puo essere modificato dal kernel dinamicamente Lo stato corrente del processo (attivo, pronto, bloccato, etc.) Memoria allocata, Dati della PSW risalenti all ultima volta che il processo e stato prelazionato o bloccato. Vengono ricaricati nella PSW alla riattivazione del processo Contenuto dei registri general purpose al momento dell ultima prelazione o blocco Per un processo in stato di attesa, contiene info sull evento atteso dal processo Informazioni relative alla gestione dei segnali Tavole di paginazione Salvataggio del Contesto, Scheduling, e Funzione di salvataggio del contesto: Salva lo stato della CPU nel PCB, insieme alle informazioni relative al contesto Cambia lo stato del processo da attivo a pronto Funzione di Scheduling: Usa le informazioni di stato dei processi nei PCB per scegliere un processo pronto da eseguire e ne passa l id alla funzione di dispatching Funzione di : Riabilita il contesto del processo, cambia lo stato a attivo, ristabilisce lo stato della CPU dai dati salvati in PCB Svuota i buffer per la traduzione degli indirizzi della MMU Informazioni per Scheduling Puntatore al PCB Informazioni di gestione Include un puntatore usato per mantenere una lista di PCB Uso della CPU, uso dell I/O, etc. 5.17 5.18 Caso di Studio: Processi in Unix Caso di Studio: Processi in Unix Strutture dati Struttura proc (id, stato, priorita, event info, interrupt mask, mem management) u-area o user-area (CPU state, user e grp id, signal handlers, open files, etc. Tipi di processo (utente, demoni, kernel) Creazione e terminazione dei processi Init, login, shell, processi utente Copy on write Processi Zombie Un Processo esegue codice kernel al verificarsi di un interrupt o system call (kernel/user running states) Un processo P i puo attendere (wait) la terminazione di un processo figlio Creazione e terminazione di processi in UNIX 5.19 Creazione e terminazione di processi in UNIX 5.20

Processi in Unix (cont.) Alcuni segnali definiti in UNIX Segnale SIGCHLD Terminazione di un figlio SIGFPE Errore aritmetico SIGINT CTRL-C SIGKILL Terminazione processo SIGSEGV Segmentation fault SIGSYS System call invalida Interrupt/ System Call user mode kernel mode Prelazione Return da Interrupt/ System Call Exit Servizio richiesto o wait() Zombie Transizioni di stato dei processi in UNIX Servizio fornito Ritorno da wait Attesa 5.21