I Processi. Il Concetto di Processo

Documenti analoghi
I Processi. Il Concetto di Processo

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

Il Concetto di Processo

Il Concetto di Processo

Il Concetto di Processo

Processi e thread. Concetto di processo

Sistemi Operativi. Processi e Thread

Sistemi Operativi T. Processi e Thread

Processi e Thread. Concetto di processo

Sistemi Operativi T Processi e Thread

dati: variabili globali program counter alcuni registri di CPU stack: parametri, variabili locali a funzioni/procedure

dati: variabili globali program counter alcuni registri di CPU stack: parametri, variabili locali a funzioni/procedure

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

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

Sistemi Operativi (modulo di Informatica II) I processi

Il Concetto di Processo

Sistemi Operativi. Lezione 3 Processi e Thread

Introduzione ai thread

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

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

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

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

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

I THREAD O PROCESSI LEGGERI

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

Processi. Capitolo 3 -- Silberschatz

Sistemi Operativi: Concetti Introduttivi

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Scheduling della CPU

IL SISTEMA OPERATIVO

Il Sistema Operativo Processi e Risorse

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

Il supporto al sistema operativo

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

System call per la gestione di processi

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

System call per la gestione di processi

Prof. G. Ascia. Sistema Operativo

Interazione tra Processi. Sistemi Operativi T AA

Cenni di sistemi operativi

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

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

LABORATORIO DI SISTEMI OPERATIVI

I Processi nel SO UNIX

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

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

I Processi nel Sistema Operativo Unix

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

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

I Processi nel SO UNIX

Sistemi Operativi: Concetti generali. Sistemi Operativi: Concetti generali

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

Sistemi Operativi (modulo di Informatica II) I processi

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

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

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

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

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

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

I processi: concetti di base, context switch e scheduling

Il Sistema Operativo Ripasso

Corso di Informatica Modulo T3 1-Nucleo e processi

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Sistemi Operativi. Lezione 3 Processi e Thread

ACSO Programmazione di Sistema e Concorrente

Capitolo 4: Processi

Le risorse. Alcune definizioni

Introduzione al Multithreading

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

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

Sistemi Operativi. La gestione delle risorse

Anno Scolastico 2018/2019 SETTE ANTONIO LOSITO ANTONIO TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TEL.

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

Interazione tra Processi. Sistemi Operativi T AA

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

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à Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Elaborazione parallela

Modelli di interazione tra processi

Corso di Informatica

il tipo di parallelismo dipende dal grado di cooperazione

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Libreria Linux Threads. Threads nel S.O. Linux. Primitive per la gestione dei thread. Portabilità: libreria pthreads (Posix).

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

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 in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Scheduling della CPU

Il Sistema Operativo Thread

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B

Richiami sui Concetti Fondamentali dei Processi

Corso di Informatica

Principles of Concurrent Programming

LINUX: struttura generale

Transcript:

I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite in sequenza, secondo l ordine specificato nel testo del programma) Un S.O. Multiprogrammato consente l esecuzione concorrente di più processi. D ora in poi faremo implicitamente riferimento al caso di sistemi operativi multiprogrammati. 2004-2005 Sistemi Operativi 2

Il Concetto di Processo Programma = entità passiva Processo = entità attiva Il processo è rappresentato da: codice (text)) del programma eseguito Dati: variabili globali Program Counter Alcuni registri di CPU Stack: parametri, variabili locali a funzioni/procedure 2004-2005 Sistemi Operativi 3 Il Concetto di Processo Processo = {PC, registri, stack, text,, dati, } Inoltre, a un processo possono essere associate delle risorse del sistema operativo; ad esempio: files aperti connessioni di rete etc. 2004-2005 Sistemi Operativi 4

Stati di un processo Un processo, durante la sua esistenza può trovarsi in vari stati: Init: : stato transitorio durante il quale il processo viene caricato in memoria e il sistema operativo inizializza i dati che lo rappresentano Ready: : il processo è pronto per acquisire la CPU Running: : il processo sta utilizzando la CPU Waiting: : il processo è sospeso in attesa di un evento Terminated: : stato transitorio relativo alla fase di terminazione e deallocazione del processo dalla memoria. 2004-2005 Sistemi Operativi 5 Stati di un processo Transizioni di stato: processo attivo creazione Assegnazione CPU init ready evento Revoca CPU running Attesa di un evento terminazione terminated waiting 2004-2005 Sistemi Operativi 7

Stati di un Processo In un sistema multiprogrammato: un solo processo (al massimo) si trova nello stato running più processi possono trovarsi negli stati ready e waiting: necessità di strutture dati per mantenere in memoria le informazioni su processi in attesa di acquisire la CPU (ready) di eventi (waiting) Descrittore di processo 2004-2005 Sistemi Operativi 8 Rappresentazione dei Processi Come vengono rappresentati i processi nel sistema operativo? Ad ogni processo viene associata una struttura dati (descrittore): Process Control Block (PCB). Il PCB contiene tutte le informazioni relative al processo: Stato del Processo Program Counter Contenuto dei registri di CPU (SP, accumulatori, etc.) Informazioni di scheduling (priorità, puntatori alle code, etc.) Informazioni per gestore di memoria (registri base, limite, etc.) Informazioni relative all I/O (risorse allocate, file aperti etc.) Informazioni di accounting (tempo di Cpu utilizzato, etc.)... 2004-2005 Sistemi Operativi 9

Process Control Block stato del processo identificatore del processo PC registri limiti di memoria file aperti... Il sistema operativo gestisce i PCB di tutti i processi, organizzandoli zandoli in opportune strutture dati (ad es., code di processi) 2004-2005 Sistemi Operativi 10 Scheduling dei processi È l attività mediante la quale il sistema operativo effettua delle scelte tra i processi, riguardo a: il caricamento in memoria centrale l assegnazione della CPU In generale, il sistema operativo compie tre diverse attività di scheduling: scheduling a breve termine (o di CPU) scheduling a medio termine (o swapping) scheduling a lungo termine 2004-2005 Sistemi Operativi 11

Scheduler a lungo termine Lo scheduler a lungo termine è quella componente della CPU che seleziona i programmi da eseguire dalla memoria secondaria per caricarli in memoria centrale (creando i corrispondenti processi): controlla il grado di multiprogrammazione (numero di processi contemporaneamente presenti nel sistema) è una componente importante dei sistemi batch multiprogrammati nei sistemi time sharing: Interattività: spesso è l utente che stabilisce direttamente il grado di multiprogrammazione => lo scheduler a lungo termine non è presente. 2004-2005 Sistemi Operativi 12 Scheduler a medio termine (swapper) Nei sistemi operativi con memoria virtuale: la quantità di memoria fisica può essere minore della somma delle dimensioni degli spazi logici di indirizzi allocati a ciascun processo. Il grado di multiprogrammazione non è, in generale, vincolato dalle esigenze di spazio dei processi Swapping: trasferimento temporaneo in memoria secondaria di processi (o di parti di processi), in modo da consentire l esecuzione di altri processi. 2004-2005 Sistemi Operativi 13

Scheduler a breve termine (o di CPU) È quella parte del S.O. che si occupa della selezione dei processi a cui assegnare la CPU. Nei sistemi time sharing,, allo scadere di ogni quanto di tempo, il sistema operativo: decide a quale processo assegnare la CPU (scheduling di CPU) effettua il cambio di contesto (context switch) 2004-2005 Sistemi Operativi 14 Cambio di Contesto È la fase in cui l uso della CPU viene commutato da un processo al successivo. Quando avviene un cambio di contesto tra un processo P i ad un processo P i+1 (cioè, P i cede l uso della CPU a P i+1 ): Salvataggio dello stato di P i : il S.O. copia PC, registri, etc. del processo deschedulato P i nel suo PCB Ripristino dello stato di P i+1 : il S.O. trasferisce i dati del processo P i+1 dal suo PCB nei registri di CPU, che può così riprendere l esecuzione. Il passaggio da un processo al successivo può richiedere onerosi trasferimenti da/verso la memoria secondaria, per allocare/deallocare gli spazi di indirizzi dei processi (v. gestione della memoria) 2004-2005 Sistemi Operativi 15

Scheduler a breve termine (o di CPU) Lo scheduler a breve termine gestisce : la coda dei processi pronti: contiene i PCB dei processi che si trovano nello stato Ready. Altre strutture dati necessarie: le code di waiting (una per ogni tipo di attesa: dispositivi I/O, timer,..): ognuna di esse contiene i PCB dei processi Waiting in attesa di un evento del tipo associato alla coda. 2004-2005 Sistemi Operativi 16 Code di Scheduling Coda dei processi pronti (ready( ready queue): primo ultimo PCB i PCB j PCB k la strategia di gestione della ready queue dipende dalle politiche (algoritmi) di scheduling adottate dal S.O. 2004-2005 Sistemi Operativi 17

Diagramma di accodamento init Coda processi pronti CPU Fine I/O Arrivo interrupt Coda di I/O Richiesta di I/O Quanto di tempo terminato Attesa di interrupt Revoca CPU 2004-2005 Sistemi Operativi 18 Operazioni sui Processi Ogni S.O. multiprogrammato prevede dei meccanismi per la gestione dei processi. Meccanismi necessari: creazione terminazione interazione tra processi Sono operazioni privilegiate (esecuzione in modo kernel) definizione di system call 2004-2005 Sistemi Operativi 19

Creazione di Processi Un processo (padre)può richiedere la creazione di un nuovo processo (figlio). padre Creazione (fork) figlio... É possibile realizzare gerarchie di processi. 2004-2005 Sistemi Operativi 20 Gerarchie di processi (es. Unix) init shell shell Processo 3 Processo 1... Processo 2... 2004-2005 Sistemi Operativi 21

Relazione Padre-Figlio Vari aspetti: concorrenza:» padre e figlio procedono in parallelo (es., Unix), oppure» il padre si sospende in attesa della terminazione del figlio condivisione di risorse :» le risorse del padre (ad esempio, i file aperti) sono condivise con i figli (es. Unix), oppure» il figlio utilizza risorse soltanto se esplicitamente richieste da se stesso spazio degli indirizzi :» duplicato: lo spazio degli indirizzi del figlio è una copia di quello del padre (es: fork() in Unix), oppure» differenziato: gli spazi degli indirizzi di padre e figlio contengono codice e dati diversi (es: VMS, exec() in Unix) 2004-2005 Sistemi Operativi 22 Terminazione Ogni processo: è figlio di un altro processo può essere a sua volta padre di processi Il sistema operativo deve mantenere le informazioni relative alle relazioni parentali nel descrittore: riferimento al padre. Se un processo termina: il padre può rilevare il suo stato di terminazione tutti i figli terminano 2004-2005 Sistemi Operativi 23

Processi pesanti Da quanto visto finora: Processo = {PC, registri, text,, dati, stack,...} In generale, quindi: processi diversi eseguono codici distinti processi diversi accedono a dati diversi i processi non condividono memoria Processi con queste caratteristiche vengono anche chiamati: PROCESSI PESANTI Il costo del cambio di contesto per processi pesanti può essere elevato (dimensione del descrittore, accessi in memoria). 2004-2005 Sistemi Operativi 24 Processi leggeri (threads) Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread ad esso associati. Task = insieme di threads che riferiscono lo stesso codice e gli stessi dati. codice e dati non sono caratteristiche del singolo thread,, ma del task al quale appartiene. Quindi: Thread= = {PC, registri, stack,...} Task= {thread1, thread2,..., threadn, text, dati} 2004-2005 Sistemi Operativi 25

Processi leggeri (threads) codice threads.. dati task Il processo pesante equivale a un task con un solo thread. 2004-2005 Sistemi Operativi 26 Vantaggi dei Threads Condivisione di memoria: a differenza dei processi (pesanti), un thread può condividere variabili con altri (appartenenti allo stesso task). Minor costo di context switch: il PCB di un thread non contiene alcuna informazione relativa a codice e dati il cambio di contesto ha un costo notevolmente inferiore al caso dei processi pesanti. Minor protezione: threads appartenenti allo stesso task possono modificare dati gestiti da altri threads. 2004-2005 Sistemi Operativi 27

Interazione tra processi I processi possono, in generale, interagire. Classificazione: processi indipendenti: due processi P1 e P2 sono indipendenti se l esecuzione di P1 non è influenzata da P2, e viceversa. processi interagenti: P1 e P2 sono interagenti se l esecuzione di P1 è influenzata dall esecuzione di P2, e/o viceversa. 2004-2005 Sistemi Operativi 28 Processi interagenti Tipi di interazione: Cooperazione: l interazione consiste nello scambio di informazioni, al fine di eseguire un attività comune. Competizione: i processi interagiscono per sincronizzarsi nell accesso a risorse comuni. Interferenza: interazione non desiderata e potenzialmente deleteria tra processi. 2004-2005 Sistemi Operativi 29

Processi interagenti Supporto all interazione: l interazione può avvenire mediante: memoria condivisa (modello ad ambiente globale): il sistema operativo consente ai processi (threads) di condividere variabili; l interazione avviene tramite l accesso dei processi interagenti a variabili condivise. scambio di messaggi (modello ad ambiente locale):i processi non condividono variabili e interagiscono mediante oppurtuni meccanismi di trasmissione/ricezione di messaggi; il sistema operativo prevede dei meccanismi a supporto dello scambio di messaggi. 2004-2005 Sistemi Operativi 30 Processi Interagenti Aspetti: concorrenza -> velocità suddivisione dei compiti tra processi -> modularità condivisione di informazioni: assenza di replicazione: ogni processo accede alle stesse istanze di dati necessità di sincronizzare i processi nell accesso a dati condivisi 2004-2005 Sistemi Operativi 31

Processi Cooperanti Esempio: produttore&consumatore : Due processi accedono ad un buffer condiviso di dimensione limitata: un processo svolge il ruolo di produttore di informazioni che verranno prelevate dall altro processo (il consumatore). Il buffer rappresenta un deposito di informazioni condiviso 2004-2005 Sistemi Operativi 32 Produttore & Consumatore msg produttore consumatore buffer 2004-2005 Sistemi Operativi 33

produttore&consumatore Necessità di sincronizzare i processi: quando il buffer è vuoto (il consumatore non può prelevare messaggi) quando il buffer è pieno (il produttore non può depositare messaggi ) 2004-2005 Sistemi Operativi 35