1-Processi Concorrenti
1-Processi Concorrenti
LEZIONE 1
I PROCESSI
B
IN QUESTA LEZIONE IMPAREREMO...
i modelli di elaborazione dei processi
Il ciclo di vita dei processi
• Il modello a processi
N o n o s t a n t e l ' e v o l u z i o n e t e c n o l o g i c a a b b i a i n c r e m e n t a t o le c a p a c i t à c o m p u t a z i o n a l i grazie a l l ' a u -
m e n t o d e l l a v e l o c i t à delle GPU, l a gestione d e l p r o c e s s o r e a n c o r a oggi deve essere o t t i m i z z a t a per-
c h é spesso p r e s e n t a s i t u a z i o n i d i c r i t i c i t à : t u t t i i m o d e r n i SO c e r c a n o d i s f r u t t a r e a l m a s s i m o le
potenzialità d i parallelismo fisico dell'hardware per m i n i m i z z a r e i t e m p i d i risposta e aumentare i l
t h r o u g h p u t d e l sistema, ossia i l numero di programmi eseguiti per unità di tempo.
I l p r o g r a m m a , c o m p o s t o da u n i n s i e m e d i b y t e c o n t e n e n t e le i s t r u z i o n i c h e d o v r a n n o essere ese-
guite, è u n ' e n t i t à p a s s i v a finché n o n viene caricato i n m e m o r i a e m a n d a t o i n esecuzione: diviene
u n processo c h e evolve m a n m a n o c h e le i s t r u z i o n i v e n g o n o eseguite d a l l a GPU, c i o è si t r a s f o r m a
in un'entità attiva,
PROCESSO
U n p r o c e s s o è un'entità l o g i c a in e v o l u z i o n e .
Q u e s t a t e c n i c a d i gestione d e l l a C P U si c h i a m a m u l t i p r o g r a m m a z i o n e , c h e r i c h i e d e l a c o n t e m -
p o r a n e a p r e s e n z a d i più p r o g r a m m i i n m e m o r i a : d a t o c h e l ' e s e c u z i o n e d i u n p r o g r a m m a , q u i n d i
2
I processi Lezione 1
I
È a n c h e p o s s i b i l e a v e r e in e s e c u z i o n e c o n t e m p o r a n e a m e n t e più i s t a n z e d i u n p r o g r a m m a ,
q u i n d i p i ù p r o c e s s i o r i g i n a t i d a l l o s t e s s o c o d i c e : p e r e s e m p i o si p o s s o n o a v e r e a p e r t e d u e
f i n e s t r e c o n l o s t e s s o p r o g r a m m a in e s e c u z i o n e .
R i a s s u m e n d o , a b b i a m o q u i n d i t r e m o d e l l i d i c o m p u t a z i o n e p e r i processi:
• modello di computazione indipendente;
I modello d i computazione con cooperazione;
• modello di computazione con competizione.
D i a m o u n a d e f i n i z i o n e p e r le d u e u l t i m e s i t u a z i o n i :
PROCESSI COOPERANTI
Un p r o c e s s o è c o o p e r a n t e se influenza o p u ò essere i n f l u e n z a t o d a altri p r o c e s s i in e s e -
c u z i o n e n e l s i s t e m a (un p r o c e s s o c h e c o n d i v i d e d a t i c o n altri processi).
PROCESSI IN COMPETIZIONE
D u e p r o c e s s i s o n o in c o m p e t i z i o n e se p o s s o n o e v o l v e r e i n d i p e n d e n t e m e n t e m a e n t r a -
n o in c o n f l i t t o sulla r i p a r t i z i o n e d e l l e r i s o r s e .
3
UdA 1 Processi sequenziali e paralleli
L'esempio più s e m p l i c e d i c o m p e t i z i o n e n e l l a m u l t i p r o g r a m m a z i o n e è d a t o d a l l o s c h e d u l i n g d e i
processi, dove t u t t i competono per la CPU; u n ' a l t r a risorsa che è s e m p r e condivisa è la s t a m p a n t e ,
e p e r a c c e d e r v i i processi d e v o n o a t t e n d e r e i n c o d a (competono per la risorsa stampante).
In q u e s t o v o l u m e a n a l i z z e r e m o l e p o s s i b i l i f o r m e d i i n t e r a z i o n e , d e s i d e r a t e e i n d e s i d e r a t e , e
I a f f r o n t e r e m o il p r o g e t t o d i a p p l i c a z i o n i c o n c o r r e n t i s c r i v e n d o n e la c o d i f i c a i n l i n g u a g g i o d i
programmazione.
STATO DI UN PROCESSO
C o n s t a t o d i u n p r o c e s s o i n t e n d i a m o q u i n d i u n a t r a le c i n q u e p o s s i b i l i s i t u a z i o n i in c u i
u n p r o c e s s o in e s e c u z i o n e p u ò t r o v a r s i : p u ò a s s u m e r e u n a sola v o l t a lo s t a t o d i e
di " m i n a t o , m e n t r e p u ò essere p e r più v o l t e n e g l i altri t r e stati.
RL
4
Seguiamo o r a l a v i t a d i u n processo d a l p r i n c i p i o : a l n u o v o processo v i e n e assegnato u n i d e n t i f i c a t o -
re ( P I D , Process I D e n t i f i e r ) e v i e n e i n s e r i t o n e l l ' e l e n c o dei processi p r o n t i ( R L , Ready L i s t ) i n attesa
che a r r i v i i l suo t u r n o d i u t i l i z z o d e l l a C P U .
CONTEXT SWITCHING
Tutte queste azioni d i salvataggio e ripristino v e n g o n o chiamate c o n t e x t switching.
5
Processi sequenziali e paralleli
Nome PID
Stato
Program counter " Contesto
Altri registri del processo
Priorità
Limiti di memoria
File aperti
S a p p i a m o c h e il p r o g r a m c o u n t e r e i r e g i s t r i f o r m a n o il c o n t e s t o d e l p r o c e s s o : q u e s t i c a m p i
p r e n d o n o a n c h e il n o m e d i a r e a d i s a l v a t a g g i o d e l l o s t a t o d e l l a C P U .
Zoom su...
COMANDI PER LA CREAZIONE, SOSPENSIONE
E TERMINAZIONE DEI PROCESSI
N e i s i s t e m i -4 * N I X L i k e • l a c r e a z i o n e d i u n
p r o c e s s o a v v i e n e m e d i a n t e la f u n z i o n e : < * N I X L i k e C o n * N I X si i n t e n d o n o
i sistemi operativi UNIX e XENIX c h e
hanno parecchie analogie e con *NIX
pid f o r k ( ) ;
Like i sistemi o p e r a t i v i che s o n o loro
" s o m i g l i a n t i " , c o m e Linux c h e s a p -
All'atto della chiamata viene generato un
p i a m o essere d i r e t t a m e n t e derivato
n u o v o P I D p e r il f i g l i o e u n n u o v o d e s c r i t t o - da UNIX. •
re d e l p r o c e s s o P C B , v e n g o n o c o p i a t i nella
6
memoria del nuovo processo i s e g m e n t i d a t i e d a t i d i s i s t e m a in m o d o d a a v e r e d u e coppie
d i s e g m e n t i i d e n t i c h e , d a t o c h e il " f i g l i o " è u n c l o n e d e l " p a d r e " : l ' u n i c a d i f f e r e n z a è il v a l o r e
restituito dalla f o r k Q stessa.
La t e r m i n a z i o n e d i u n p r o c e s s o a v v i e n e m e d i a n t e la f u n z i o n e :
void e x i t ( i n t s t a t u s ) ;
A l l a s u a c h i a m a t a v e n g o n o e s e g u i t e le o p e r a z i o n i d i c h i u s u r a d e i f i l e a p e r t i , v i e n e r i l a s c i a t a la
m e m o r i a , v i e n e s a l v a t o il v a l o r e d e l l ' e x i t s t a t u s n e l d e s c r i t t o r e d e l p r o c e s s o i n m o d o c h e potrà
e s s e r e r e c u p e r a t o d a l p a d r e m e d i a n t e le f u n z i o n e waitQ (di s e g u i t o d e s c r i t t a ) .
È i m p o r t a n t e o s s e r v a r e c o m e il n o n v i e n e r i l a s c i a t o e il d e s c r i t t o r e n o n v i e n e d i s t r u t t o ,
m a v i e n e s e g n a l a t a al p r o c e s s o p a d r e la t e r m i n a z i o n e d i u n f i g l i o .
Un p r o c e s s o p a d r e può s o s p e n d e r e la p r o p r i a a t t i v i t à i n a t t e s a c h e il f i g l i o t e r m i n i c o n l'istru-
zione:
A l l a c h i a m a t a d i q u e s t a f u n z i o n e il p r o c e s s o p a d r e si s o s p e n d e in a t t e s a d e l l a t e r m i n a z i o n e d i u n
p r o c e s s o f i g l i o : q u a n d o q u e s t o a v v i e n e , r e c u p e r a il v a l o r e d e l l o s t a t o d i u s c i t a s p e c i f i c a t o d a l l a
f u n z i o n e ex/t() n e l f i g l i o .
In p a r t i c o l a r e il v a l o r e c h e v i e n e r e s t i t u i t o è c o m p o s t o d a d u e b y t e :
> n e l b y t e m e n o s i g n i f i c a t i v o d e l l a v a r i a b i l e v i e n e i n d i c a t a la r a g i o n e d e l l a t e r m i n a z i o n e , che
può essere stata naturale o m e d i a n t e un segnale;
• n e l b y t e p i ù s i g n i f i c a t i v o d e l l a v a r i a b i l e v i e n e s c r i t t o il v a l o r e d e l l o s t a t o d i u s c i t a specificato
nella f u n z i o n e exit() d e l f i g l i o
Il S O r i l a s c i a il P I D d e l f i g l i o , rimuove il s u o d e s c r i t t o r e d i p r o c e s s o e r e s t i t u i s c e il P I D d e l f i g l i o
terminato.
E s i s t e a n c h e la p o s s i b i l i t à c h e u n p r o c e s s o f i g l i o t e r m i n i p r i m a c h e il p a d r e a b b i a invocato
| la f u n z i o n e waitQ, il p r o c e s s o f i g l i o d i v e n t a " d e f u n c t " o " z o m b i , " : i n q u e s t o c a s o il p r o -
c e s s o è t e r m i n a t o m a il d e s c r i t t o r e n o n p u ò e s s e r e rilasciato.