Sistemi Operativi. Lezione 4 Processi e Thread
|
|
- Giancarlo Giuseppe
- 4 anni fa
- Visualizzazioni
Transcript
1 Sistemi Operativi Lezione 4 Processi e Thread
2 Introduzione Sino ai sistemi batch, di prima generazione, la CPU di un sistema svolgeva un attività (definita attraverso un programma), la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione la CPU di un elaboratore si trovava impegnata nella gestione di più attività in parallelo Il sistema operativo doveva quindi provvedere a tenere traccia di queste attività garantendone la corretta esecuzione Ciascuna di queste attività è chiamata PROCESSO (JOB) 2
3 Pseudo parallelismo 3
4 Parallelismo 4
5 Le operazioni su un processo Un processo è quindi un attività eseguita sul sistema e come tale avrà un inizio ed una fine Per poter implementare un processo bisogna definire le operazioni di: Creazione Evoluzione Terminazione 5
6 Creazione di un processo Un processo viene creato a seguito di: una richiesta esplicita da parte dell utente; una richiesta esplicita da parte di un processo (vedi fork()) Durante l inizializzazione del sistema Tramite l esecuzione di un apposita routine di sistema 6
7 Terminazione di un processo Le condizioni che determinano la terminazione di un processo sono: Terminazione normale (esecuzione dell istruzione exit) Scadenza del tempo di permanenza nel sistema Memoria non disponibile Violazione delle protezioni Errori durante l esecuzione 7
8 Evoluzione dei processi (1) 8
9 Evoluzione dei processi (2) 9
10 Evoluzione dei Processi (3) 10
11 Evoluzione dei processi 11
12 Context switch (1) La sospensione dell attività in corso in favore di un altra attività Operazione necessaria in tutte le situazione in cui si volgiano essere più attività con un unica risorsa disponibile Abbiamo un context switch ogni volta che un processo utente viene interrotto per consentire l esecuzione di un altro processo utente (process switch) Abbiamo anche un context switch quando un processo utente viene interrotto per favorire l esecuzione del Sistema Operativo 12
13 Context Switch (2) Durante questa operazione i dati significativi del processo in esecuzione devono essere salvati, e sostituiti da quelli necessari per eseguire la nuova attività L operazione di context switch è interrupt driven 13
14 Quando si effettua un context switch Clock interrupt I/O interrupt Memory fault Supervisor call Eccezioni 14
15 Processi: aspetti realizzativi 15
16 Process ID I processi sono identificati attraverso un ID, numero intero positivo, assegnato loro dal SO In Unix ogni processo conosce anche l'identificatore del proprio genitore, il processo padre, il processo radice è il processo init Per conoscere il PID di un processo e di quello del padre si può fare ricorso alle funzioni getpid and getppid Esempio #include <stdio.h> #include <unistd.h> int main (void) { printf( I am process %ld\n, (long)getpid()); printf( My parent id is %ld\n, (long)getppid()); 16
17 Creazione di un processo La system call fork() crea una copia del processo chiamante Al termine della fork() fork() saranno in esecuzione due processi Il processo figlio eredita dal padre una copia esatta del codice, stack, file descriptor, heap, variabili globali, e program counter Il figlio riceve un nuovo pid, time; no signals, file locks, fork() restituisce -1in caso di errore 0 al processo figlio il PID del figlio al processo padre 17
18 Esempio #include <stdio.h> #include <unistd.h> int main(void) { pid_t x; x = fork(); if (x == 0) printf( In child: fork() returned %ld\n, (long) x); else printf( In parent: fork() returned %ld\n", (long) x); } 18
19 Creazione di processi I processi padre generano i processi figli che a loro volta generano altri processi in questo modo si crea una gerarchia di processi UNIX: process group Windows non possiede nozioni di gerarchia di processi Tutti i processi sono uguali 19
20 Copyright : Nahrstedt, Angrave, Abdelzaher Esempi pid_t childpid = 0; for (i=1;i<n;i++) if (childpid = fork()) break; pid_t childpid = 0; for (i=1;i<n;i++) if ((childpid = fork()) <=0) break; Parent Parent Child Child Child Child 20 20
21 Terminazione di un processo Normale (volontaria) Al termine della procedura main() exit(0) Per errore (volontaria) exit(2) o abort() Errore imprevisto (involontaria) Divisione per 0, seg fault, exceeded resources Killed (involuntaria) Signal: kill(procid) 21
22 Operazioni di terminazione Quando un processo termina: I file aperti vengono chiusi I file Tmp sono cancellati Le risorse dei processi figli sono deallocate File descriptor, memoria, semafori, ecc. Il processo padre viene notificato via signal Lo stato di terminazione (Exit status) è disponibile al genitore attraverso la syscall wait() 22
23 System call: wait(), waitpid() wait() il genitore si sospende in attesa che qualche processo figlio termini wait() il pid e un codice di ritorno sono restituiti al genitore waitpid() il genitore si mette in attesa della terminazione di un determinato figlio errno ECHILD EINTR EINVAL Cause Caller has no unwaited-for children Function was interrupted by signal Options parameter of waitpid was invalid 23 23
24 Esempio #include <errno.h> #include <sys/wait.h> pid_t childpid; childpid = wait(null); if (childpid!= -1) printf( waited for child with pid %ld\n, childpid); 24
25 Strutture Dati Per gestire i processi il sistema operativo usa una particolare struttura dati, detta Process Control Block (PCB) All avvio di ogni processo il sistema provvede a costruire il PCB per il nuovo processo Il PCB è deallocato quando il processo termina Esiste un PCB distinto per ogni processo 25
26 PCB 26
27 Process Control Block (1) Le informazioni per l identificazione del processo contengono: Identificatore del processo Identificatore del processo padre Identificatore dell utente proprietario del processo 27
28 Process Control Block (2) Lo stato del processore Tutti i registri del datapath accessibili dai processi utente PC Condition codes Variabili di stato: flag di interrupt, execution mode Stack pointer: puntatori allo stack associato al processo 28
29 Stato del processore Contenuto dei registri Registri del datapath Control e status registers Stack pointer Program status word (PSW) Contiene informazioni circa lo stato del processore Example: the EFLAGS register on Pentium machines 29
30 Pentium II EFLAGS Register 30
31 Process Control Block (3) Process Control Information Process state: running, ready, waiting, halted. Priorità di scheduling Informazioni per l algoritmo di scheduling: tempo di permanenza nel sistema, tempo di CPU, Eventi: identificativo dell evento di cui il processo è eventualmente in attesa 31
32 Process Control Block (4) Process Control Information Campi di strutture dati: puntatori utilizzati quando il PCB è inserito in code di attesa Variabili per la comunicazione tra processi Eventuali privilegi concessi al processo: quantità di memoria, risorse del sistema 32
33 Process Control Block (5) Process Control Information Gestione della Memoria Tabelle delle pagine o dei segmenti Risorse utilizzate File aperti e/o creati 33
34 Context Switch Salva lo stato del processore Aggiorna il PCB del processo in esecuzione Sposta il suddetto PCB nella coda adeguata - ready, blocked Seleziona un altro processo per l esecuzione 34
35 Change of Process State Aggiorna il PCB del processo selezionato Aggiorna le strutture di gestione della memoria Rispistina il contesto del processore relativo al processo selezionato 35
36 I Thread
37 Thread La necessità di ottimizzare al meglio il tempo di esecuzione di un processo o il suo tempo di risposta ha portato all introduzione della nozione di thread I thread sono delle sotto attività di un processo che godono della proprietà di poter essere eseguite tutte in parallelo 37
38 Thread: il modello (1) 38
39 Cosa condividono i thread I thread all interno di un processo condividono: Process ID (PID) Spazio degli indirizzi Codice (istruzioni) Dati non locali Open file descriptors Signals and signal handlers Current working directory User and group id 39
40 Cosa non condividono Thread ID (TID) L insieme dei registri, compresi EIP (Program counter) e Stack pointer Stack per le variabili locali e record di attivazione Maschera signal 40
41 Operazioni sui Thread Tre sistemi (librerie) principali Win32 threads C-Threads POSIX Pthreads Operazioni comuni Create Exit Suspend Resume Sleep Wake Join (instead of wait()) Le operazioni sui thread sono di solito molto più veloci che le corrispondenti operazioni sui processi 41
42 Thread: il modello (2) 42
43 Thread in User Space 43
44 Thread Modello #1 User-level threads Implementati attraverso librerie a user-level Creazione, scheduling, sincronizzazione thread OS ignora la presenza dei thread OS vede solo i processi con un singolo thread Vantaggi Non è richiesto aclun supporto da parte del SO à portabilità Possono essere predispostep olitiche di scheduling adeguate all applicazione Le operazioni su thread sono efficienti perché non richiedono l esecuzione di syscall Svantaggi Non può sfruttare sistemi multiprocessore L intero processo si blocca quando si blocca un solo thread 44
45 Thread a livello Kernel 45
46 Thread Modello #2 Kernel-level threads: SO associa ad ogni thread a livello user un kernel thread Ogni kernel thread viene schedulato indipendentemente Tutte le operazioni sui thread sono eseguite dal SO operations (creazione, scheduling, sincronizzazione) Vantaggi Ogni kernel-level thread può essere eseguito in parallelo su un sistema multiprocessore Quando un thread si blocca, altri thread appartenenti allo stesso processo possono essere eseguiti Svantaggi Operazioni sui thread più costose in termini di tempo Il SO deve must scale well con un numero crescente di thread 46
47 Hybrid Implementations 47
48 Thread Modello #3 Modello ibrido basato su Kernel e user-level threads L applicazione crea m threads Il SO fornisce un pool di n kernel thread Ad un kernel thread sono solitamente associati più user-level thread Advantages Strategia per ottenere il meglio dalle implemenentazioni user-level e kernel-level Funziona bene con molti short-lived user threads di breve durata, suddivisi in gruppi di dimensione costante Svantaggi Complicato Selezione del mapping tra le due tipologie di thread Determinazione del numero ottimale di kernel thread Definito dall utente Il SO aggiusta in numero dinamicamente in funzione del carico 48
49 Interprocess Communication (IPC) Per poter cooperare fattivamente, thread e processi devono poter comunicare tra loro Esistono tre meccanismi principali per lo svolgimento di questa attività Shared Memory Message Passing Signals 49
50 IPC: Shared Memory Processi Ogni process dispone di una spazio privato di indirizzamento Per poter comunicare deve esplicitamente predisporre un segmento di memoria condivisa Thread Condividono per costruzione lo spazio di memoria del processo Vantaggi La condivisione di memoria è facile e veloce Svantaggi Gli accessi ai dati condivisi devono essere opportunamente sincronizzati per evitare errori 50
51 IPC: Message Passing Usato principalmente tra processi I dati sono trasmessi esplicitamente da un processo sender (src) a un processo receiver (destination) Esempio: Unix pipes Vantaggi: La condivisione dei dati è esplicita -> più facile individuare i legami trai vari moduli Non è necessario un rapporto di fiducia tra sender e receiver Svantaggi: Performance overhead per la copia dei messaggi Problematiche: Come identificare mittente e destinatario? Processo, insieme di processes, o mailbox (port) Il processo mittente deve bloccarsi in attesa del destinatario? Blocking: rallenta il mittente Non-blocking: richiede buffering nei due processi 51
52 IPC: Signal Signal Interrupt Software che notifica il verificarsi di un evento ad un processo Esempi: SIGFPE, SIGKILL, SIGUSR1, SIGSTOP, SIGCONT Quando un processo riceve una signal può svolgere una delle seguenti azioni: Catch: specificare la routine (signal handler) per la sua gestione Ignore: basarsi su azioni standard previste dal SO Abort, memory dump, suspensione Mask: bloccare il segnale affinchè non sia consegnato Svantaggi Non possono essere comunicati dati Difficile da gestire con i thread 52
53 Thread e Signal Problema: in un sistema multi threaded a quale thread di un processo il SO consegna la signal? Opzione 1: il sender deve specificare il thread id destinatario Il Sender può non conoscere i thread che compongono un processo Opzione 2: è il SO che sceglie il thread di destinazione POSIX: ogni thread ha una signal mask (serve per disabilitare specifici signal) Il SO consegna un signal a tutti i thread che non lo hanno disabilitato 53
Sistemi Operativi. Lezione 3 Processi e Thread
Sistemi Operativi Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch, di prima generazione, la CPU di un sistema svolgeva un attività (definita attraverso un programma), la portava a termine
DettagliSistemi Operativi. Lezione 3 Processi e Thread
Sistemi Operativi Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch, di prima generazione, la CPU di un sistema svolgeva un attività (definita attraverso un programma), la portava a termine
DettagliSistemi Operativi. Lezione 4-5 Processi e Thread. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010
Sistemi Operativi Lezione 4-5 Processi e Thread 1 Introduzione Sino ai sistemi batch, di prima generazione, la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra
DettagliSistemi Operativi. Lezione 3 Processi e Thread
Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione
DettagliSistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliSistemi Operativi. Lezione 3 Processi e Thread
Sistemi Operativi Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch, di prima generazione, la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività
DettagliSistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliSistemi Operativi. Lezione 3 I Processi
Sistemi Operativi Lezione 3 I Processi Processi Con il termine processo si denota l esecuzione di un programma (sequenza di istruzioni) nell ambito di un determinato ambiente esecutivo caratterizzato da:
DettagliSistemi Operativi. Lezione 5 Threads e Concorrenza
Sistemi Operativi Lezione 5 Threads e Concorrenza I Thread Processi Con il termine processo si denota l esecuzione di un programma (sequenza di istruzioni) nell ambito di un determinato ambiente esecutivo
DettagliIntroduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
DettagliI Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliIntroduzione ai thread
Introduzione ai thread Processi leggeri. Immagine di un processo (codice, variabili locali e globali, stack, descrittore). Risorse possedute: : (file aperti, processi figli, dispositivi di I/O..),. L immagine
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux caratteristiche
DettagliSommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads
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
DettagliUniversità 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. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei
DettagliSistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I
Marzo-Giugno 2011 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi
DettagliRichiami sui Concetti Fondamentali dei Processi
Processi Processi 1 Richiami sui Concetti Fondamentali dei Processi Processi 2 Definizione Nell ambito dei sistemi operativi esistono diverse definizioni di processo, ad es. un programma in esecuzione
DettagliSISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi
SISTEMI OPERATIVI THREAD 2 Motivazioni» Un programma complesso può eseguire in modo concorrente più funzioni attraverso la creazione e gestione di processi figli attraverso il meccanismo dei thread» La
DettagliSistemi Operativi. Bruschi Martignoni Monga. Strutture dati per la gestione dei processi Context switch Thread. Scheduling
1 Mattia Lezione VI: Lo Dip. di Informatica e Comunicazione Universita degli Studi di Milano, Italia mattia.monga@unimi.it batch batch a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi
DettagliSystem Calls per la Gestione dei Processi
System Calls per la Gestione dei Processi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Process Context Identificativi getpid() getppid()
DettagliUniversità 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. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa
DettagliSystem call per la gestione di processi
System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:
DettagliSystem call per la gestione di processi
System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:
DettagliI THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
DettagliSistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliSistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliConcetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi
Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi 3.3 Silberschatz, Galvin and Gagne 2005 1 Un SO esegue diversi tipi di programmi Sistema
DettagliLaboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3
Marzo-Giugno 2008 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi
DettagliSistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1
GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di
DettagliLINUX: struttura generale
LINUX: struttura generale User Interface The layers of a UNIX system. 1 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa
DettagliChiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it
Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliUniversità 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. 2017-18 Pietro Frasca Lezione 6 Martedì 24-10-2017 1 Sostituzione del codice Tipicamente, dopo una
DettagliI processi: concetti di base, context switch e scheduling
Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva
Dettagliil tipo di parallelismo dipende dal grado di cooperazione
Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale
DettagliPag. 1. Il Nucleo del sistema operativo (la gestione dei processi)
shell Programmi utente Modo utente Il Nucleo del sistema operativo (la gestione dei processi) Interfaccia delle chiamate di sistema File system Gestione processi Device driver Gestione memoria HARDWARE
DettagliSistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Il concetto di processo Schedulazione dei processi Operazioni sui processi
Dettagli5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:
1 Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: codice del programma in esecuzione un area di memoria contenente le strutture dati dichiarate
DettagliI Processi. Il Concetto di Processo
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
DettagliThreads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX)
Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali
DettagliSistemi Operativi I. a.a. 2008/09. Copyright c 2008 Giorgio Delzanno
Sistemi Operativi I a.a. 2008/09 Copyright c 2008 Giorgio Delzanno (giorgio@disi.unige.it) 1 Processi in UNIX Creazione dei processi: fork e execve Strutture dati per gestire processi Ciclo di vita Context
DettagliInformatica II Sistemi Operativi DIGIP - a.a. 2015/16
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à
DettagliCorso di Informatica Modulo T3 1-Nucleo e processi
Corso di Informatica Modulo T3 1-Nucleo e processi 1 Prerequisiti Concetto stack Programmazione elementare Struttura elementare del computer Concetto intuitivo di sottoprogramma 2 1 Introduzione Vediamo
DettagliGestione del processore. Il modello a thread
Gestione del processore Il modello a thread 1 Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare
DettagliACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
DettagliModello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
DettagliUniversità 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. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione
DettagliUniversità 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. 2016-17 Pietro Frasca Lezione 6 Giovedì 27-10-2016 Appunti di Sistemi Operativi, 2015-2016 - Pietro
DettagliCorso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 7 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Threads Un thread è l unità di base per l utilizzo della CPU. Composto
DettagliProcessi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)
Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi
DettagliLibreria Linux Threads. Threads nel S.O. Linux. Primitive per la gestione dei thread. Portabilità: libreria pthreads (Posix).
Threads nel S.O. Linux Il thread è un processo leggero che può condividere uno spazio di indirizzi (o parte di esso) con il padre e gli altri processi della gerarchia cui appartiene. Realizzato a livello
DettagliSISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi
SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il
DettagliEsercitazione n.1 24 Ottobre Obiettivi:
Esercitazione n.1 24 Ottobre 2013 Obiettivi: Gestione dei thread mediante libreria pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join 1 Richiami sui thread 2 Processi Immagine
DettagliProgrammazione multiprocesso
DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di
DettagliUniversità 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. 2017-18 Pietro Frasca Lezione 5 Martedì 17-10-2017 Descrittore del processo (PCB) Ogni processo è rappresentato
DettagliComputazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
DettagliSistemi Operativi. Lezione 5 Threads e Concorrenza. Corso: Sistemi Operativi Danilo Bruschi A.A. 2014/2015
Sistemi Operativi Lezione 5 Threads e Concorrenza 1 I Thread 2 Processi Con il termine processo si denota l esecuzione di un programma (sequenza di istruzioni) nell ambito di un determinato ambiente esecutivo
DettagliProcessi Concetti di base. Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi
Processi Concetti di base Esecuzione parallela e sequenziale Il concetto di processo Gestione dei processi Esecuzione sequenziale I sistemi di calcolo più semplici consentono unicamente l'esecuzione sequenziale
DettagliSistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma
Sistemi di Calcolo (.. 2014-2015) Corso di Laurea in Ingegneria Informatica e utomatica Sapienza Università di Roma Esercizi riepilogativi sulla seconda parte del Modulo I Eccezioni e processi Domanda
DettagliI thread. Non bastavano i processi?
I thread Non bastavano i processi? 1 Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento, vediamo cosa significa... 2 Spazi di indirizzamento distinti
DettagliI Processi nel SO UNIX
I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliI Processi nel SO UNIX
I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliProcessi. Concetto di processo. Scheduling dei processi. Operazioni sui processi. Stati dei processi. Esempio in Unix
Processi Concetto di processo Scheduling dei processi Operazioni sui processi Stati dei processi Esempio in Unix 1 Concorrenza Un sistema operativo consiste in un gran numero di attività che vengono eseguite
DettagliProcessi. Concorrenza. Processi e programmi. Processi e programmi
Concetto di processo Scheduling dei processi Operazioni sui processi Stati dei processi Esempio in Unix Processi Concorrenza Un sistema operativo consiste in un gran numero di attività che vengono eseguite
DettagliUniversità degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto fork() & exec() Roberto Perdisci A.A. 2004/2005 1 Dettagli
DettagliUniversità 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. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare
DettagliDati: variabili globali Program Counter Alcuni registri di CPU Stack: parametri, variabili locali a funzioni/procedure
Il Concetto di Processo Il processo è un programma in esecuzione. I Processi È l unità di esecuzioneall interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono eseguite
DettagliIl Sistema Operativo Thread
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Processo e Immagine LightWeight Process Realizzazione di Implementazione di Multitasking e Multithreading Stati di un 2 3 Processo
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliIl modello a thread : motivazioni
Sistemi Operativi Giuseppe Prencipe Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare i
DettagliTransizioni di stato in UNIX
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto Processi in Linux Roberto Perdisci A.A. 2004/2005 1
DettagliGestione dei Processi
Gestione dei Processi Processo Un sistema operativo esegue una varietà di programmi: Sistemi batch lavori o jobs Sistemi in time-sharing programmi utente o tasks I termini job e process sono usati quasi
DettagliUniversità 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. 2017-18 Pietro Frasca Lezione 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La
DettagliControllo dei Processi 1
Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti
Dettagli2. Nucleo del sistema operativo (la gestione dei processi)
Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia
DettagliI Processi nel Sistema Operativo Unix
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliII parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo
1 II parte: Gestione dei Processi processi (cap. 3) Thread (cap. 4) Scheduling della CPU (cap. 5) Sincronizzazione fra processi (cap. 6) Deadlock (stallo dei processi) (cap. 7) 3. Processi 2 Il processo
DettagliLezione XII: La gestione delle eccezioni in MINIX
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliSincronizzazione tra processi in Unix: i segnali
Sincronizzazione tra processi in Unix: i segnali 1 Sincronizzazione tra processi I processi interagenti possono avere bisogno di sincronizzazione. Unix: non c è condivisione di variabili tra processi:
DettagliProcessi. Laboratorio Software 2008-2009 C. Brandolese
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
DettagliCorso di Programmazione Concorrente Processi. Valter Crescenzi
Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema
DettagliPosix Threads: l evoluzione dei processi UNIX
Posix Threads: l evoluzione dei processi UNIX Raffaele Quitadamo, PhD in Computer Science Università di Modena e Reggio Emilia quitadamo.raffaele@unimore.it Sommario Pthreads vs Unix processes L API per
DettagliI Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliGestione dei processi nel sistema operativo Unix
Gestione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8) 1 Argomenti Processi Strutture dati associate ai processi boot, init, shell Process Scheduling
DettagliSistemi Operativi. Lezione 4 I processi: implementazioni
Lezione 4 I processi: implementazioni UNIX Creazione di un processo Assegna al processo un identificatore univoco Alloca spazio per il processo Inizializza il PCB Predisponi gli opportuni agganci con strutture
DettagliLaboratorio di Sistemi Operativi
primavera 2009 Controllo dei processi (2) Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD il padre può ignorare il segnale (default) oppure lanciare una funzione
DettagliLABORATORIO DI SISTEMI OPERATIVI
LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux (parte II)
DettagliPag. 1. modello di esecuzione parallela
Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel calcolatore. Costituisce la parte essenziale del cosiddetto software di sistema (o di base) in quanto
DettagliControllo dei Processi. M. R. Guarracino - Primitive di Controllo dei Processi
Controllo dei Processi Introduzione Come possiamo creare nuovi processi? Come possiamo eseguire un programma? Come possiamo terminare un processo? Introduzione Unix fornisce le primitive per la creazione
DettagliSistemi Operativi. Processi e Thread
Sistemi Operativi Processi e Thread 1 Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, esecuzione sequenziale (istruzioni vengono eseguite
DettagliModelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
DettagliLa creazione di un nuovo processo in UNIX
La creazione di un nuovo processo in UNIX #include int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la
DettagliUniversità 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. 2017-18 Pietro Frasca Lezione 7 Giovedì 26-10-2017 1 Comunicazione tra processi I processi in esecuzione
DettagliProcessi e thread. Concetto di processo
Processi e thread Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliProcessi - II. Franco Maria Nardini
Processi - II Franco Maria Nardini Processi Programmi in esecuzione in memoria sono chiamati processi. Caricati in memoria da una delle sei funzioni exec(3). Ogni processo ha un identificatore univoco
Dettagli