PROCESSI
AP 1
( THREAD
E
:
Un del dati
composto codice insieme
possibilmente di
da degli
è condiviso
processo un
: ,
,
stato
attributi mentre
descrivono lo in
è
che esecuzione
ne .
elementi identificatore
Gli di stato priorità
in esecuzione
processo program
sono :
un ,
,
,
informazioni
puntatori information
counter data
contest accounting
I/O
memoria
a .
,
, ,
,
Il elementi
Control
Processo contiene
Block ) ed
gli del
( creato
PCB è e
processo
supporta
dall' inoltre
gestito anche più
OS processi
, . figlio
fork
call
System chiamato che
C ) processo
nuovo
un
crea processo
: )
( l' intera memoria
copia
ne ,
duplicato
concorrente Ogni
mente
eseguito padre
al di
viene cui è un
ne processo
.
, il
albero
fork la
delle
altri radice
creando cosi cui è processo
può crearne un
con
" imiti bootstrap
Quando il
computer inizializza
vi che registri
viene è i
program
acceso
un fa
controller l' lo
device
della la nella
memoria
i memoria
05
carica
CPU e
e
, ,
partire imiti
il
lui inizia processo
e
forte
La restituisce di
in
-1 errore ;
caso
i figlio
nel del Églio
caso
o identificatore del
l' del
nel padre
caso .
cambia
Tra padre figlio solo l' la della file
perché registri i
i
memoria
ID cpu
e e
,
aperti li quello
eredita del
il di
copia padre
anche è
PCB una
e . della fork
di
( )
esempio
System exit un uso
call chiamata
la
)
( eseguendo
: FETTINA
) funzioni
exit salviamo
( lo le
status
status atexitlfun )
eseguiamo
, ffluslrl
exit gli )
( chiudiamo
Stream
scarichiamo
fon ) con
e on - ,
, exit
le aperti
file ( )
connessioni chiamiamo status
i exà
e si
qui
e può usare
- . nuovi processi
11 creare
per
System eseguendo exit
exit ) salviamo
(
)
call t status
: _ figli
dallo la li
ha
chiamo
lo iuit
status memoria il assegniamo
processo a
se
e
, .
Inoltre padre attivo risultato richiede
il la
finché
conserviamo il
è
se ancora non
Tutto
del
wait nello
entra
figlio
questo stato
la il di
in muore
caso non ma
:
con ,
figlio
zombie morto
padre il
Se termina
il invece
è , .
. , figlio
qualsiasi
System blocca
call finché
il
)
waitl ritorna
termina
padre
: e
non
un
figlio altrimenti
esiste figlio
specifico
aspettare
del
il se vogliamo
id -1
an
pro se uno
, ,
blocca finché figlio
la chiamata
dobbiamo waitpid )
( il
che padre
usare un con
particolare termina
D
processi
un .
] caratteristiche lo
hanno schednling
processi 2 : ;
o possedimento
il di risorse
o .
Un supportare casi
può
OS 4 : thread
singolo
singolo
supporta
1 MS-Dos processo un
con
un
. .
multipli
Alcuni presentano thread
sistemi singolo
processi
2 Unix con
ognuno un .
. environment supporta thread
molteplici
Un time
3 java processo
run un con
-
. . molteplici
molteplici thread
Windows supportano
4 moderni
sistemi più
i processi
Unix con
ognuno
e
. .
thread salvati
ha contenuti
Ogni stato mentre
i running
di esecuzione in
è
: uno non ,
, alle
variabili
alcuni
stock accedere
locali
le
contenitori
di esecuzione possono
uno per
, ,
' dentro
del loro counter indipendente
alla memoria E
risorse e processo processo
un
program
un
. .
mettono
Vantaggi thread
dei terminare
dei crearsi
tempo processi
ci ;
a
: meno e
- di processi
veloce
altro
all' switched
thread più
da è ;
passare un
- kernel
comunicare loro
Tra chiamare il
di
possono senza
- .
tutti
Sospendendo sospendono terminano
terminando i
si
processo
un
o o
thread nel processo .
J thread seguenti blocked
nei ready
Trovare stati
si running
possono : .
,
, sbloccarlo
cambiare bloccarlo
altro thread
Per thread
lo stato di possiamo creare un
:
un , , ,
registri lo
contenuti stack Esempio Remote
terminarlo duello Procedure (all
cavolo i nei e :
. .
gestione
implementare la
lo
thread
Per in thread
level
i dei
Thread ) cui
cult
user
useremo :
fatta dell'
nell'
applicazioni thread
l' esistenza
dalle dei
è è
os conoscenza
e a
space
user non .
schednling
le applicazioni gestiscono
Vantaggi lo thread
dei
ULT ;
: - lo dei privilegi
thread richiede dell'
switching i os ;
non
- ogni
gira su os
- .
bloccare blocca tutti
thread li
Svantaggi nel
ULT : un processo ;
- architetture multiprocessori
multi
vantaggi
sfrutta i di core
pieno o
a
non
- .
' mixato
L anche
anche
ULT può essere )
level
(
il kernel thread
kit
con .
I thread (
in )
pthread.li
C : *
( *
create t
int pthread altra
thread altri
pthread
pthread Const
-
. , _ ,
* *
void )
void *
( *
)
start )
routine d
( voi arg ;
,
-
l' del thread
memorizziamo attr
creato
thread
Jn ID ; Nulli
è sempre ,
funzione
la
start puntatore
da
routine argomento
il da
eseguire è
è passare come
arg
;
-
funzione
alla routine
start .
- dell'
Restituisce la
di
0 in successo o causa
caso
: errore .
,
( )
thread exit
d * value
void ptr
voi p ;
- .
termina corrente
thread rendendo il
disponibile valore .pt
il value per una
( )
)
cancello termina
pthread
eventuale thread
altro
operazione join
di invece
un
.
-
. .
(
int )
thread value
pthreadt
pthread void ptr
*
join * ;
,
. _
attende !
la value
Thread
terminazione del thread ptr
Se vi
id Nun
con =
. .
eventuale
valore
il restituito thread
memorizza dal .
Restituisce dell'
in altrimenti
di
0 la
caso successo
: errore
causa
, .
pthread
pthread
int thread )
(
detach t ;
-
.
notifica al sistema thread
che di
operazioni
ci join
saranno
non su .
dell'
Restituisce in altrimenti
di
0 la
caso successo
: errore
causa
, .
performance
le
Misurare :
lrt
Bisogna linkare e
-
lm
- .
Processi Thread
vs :
Performance lanciare terminare rispetto
veloce
/ thread più
è
° un a
: lanciare / Terminare processo
un .
forte
Memoria la la dell'
quando abbiamo intera
)
lancia copia
si con
° un processo
: Tutti
thread hanno
del alla stessa
mentre
padre memoria
memoria i accesso
,
globale condivisa . stesso
Comunicazione thread
i la
di condivisa
memoria
° per
processo usare
possono
uno
: Comunicativi
Inter
richiedono Processi
meccanismi
i processi di
comunicare i - .
,
Un safe
detto thread
thread multipli
simultaneamente
codice eseguirlo
è possono
se
- (
inaspettate
interazioni valore
incrementano insieme il
avere se
senza es :
.
aumentandolo
variabile solo
di arriva
ultimo
solo invece l'
di di che che
1 ;
n se
una )
modifica variabile
il di
valore una .
Categorie system
computer
di :
instruction singolo
singola
singole Data )
CSISD
singola
° processore
: una
esegue
un
dati custoditi
istruzione in singola
memoria
operare su una
per .
Instruction
Single Multiple istruzione
) eseguita
CSIMD ogni
Data è
° su un
:
dati
insieme diverso
di da processore
un .
Multiple instruction dati
)
Data (
Simgd
trasmessa
di è
° MISD : una sequenza
processori
di
insieme diversa
che sequenza
esegue
a ognuno una
un .
,
Multiple )
Instruction (
Multipla processori
Data di
insieme
MIND
° esegue
: un dati
simultaneamente istruzioni di
diverse diversi
di insiemi
sequenze su .
Architetture di
considerazioni multiprocessore
design di paralleli
OS processori
su :
concorrenti thread
processori
° o .
schednling
° .
sincronizzazione
° .
della
gestione
° memoria .
fault
affidabilità tolerawa
° e .
CONCORRENZA
2
AP
( :
Parole correlate
chiave alla concorrenza :
Operation
Atomic implementata
funzione un'
• azione sequenza
una
una come
: o indivisibili
istruzioni iniziano
che arrivano
di appaiono
più se
s come
o :
l' garantisce l'
atomicità
fine
alla isolamento dai
allo iniziale
tornano stato
o .
concorrenti
processi .
Critical action alle
codice in richiede risorse
di
sezione che accesso
• : una processo
un utilizzata
eseguita altro
deve da
condivise viene
mentre processo
un
e non essere .
Mutua esclusione trova critica delle
sta usando
sezione
in
si
se
° processo
un e
una
: altro in
si
condivise che
critica
risorse trovare sezione
può
nessun processo una
quelle stesse risorse condivise
usa . dati
Race thread
condition leggono condivisi
più scrivono
° processi e
o e
: )
tempo
finale (
dal
il delle Il
risultato loro lento
dipende esecuzioni scrive
più
. .
fare
due
Deadlock nulla
più aspetta
perché
processi
° che
possono
non
o
: ognuno )
altri faccia (
degli fa
aspetta aspetta
qualcosa nulla
es pz
: ps Ps
pz nessuno
e
uno : .
.
Live cambiano continuo
lock il nulla
fare
loro
due stato
di
più processi senza
° : o del
utile fini
di ai programma .
Starvation trascurato dalla la
schedula
viene riceve mai
• i un processo cpu
non
: .
Alcune difficoltà della concorrenza sono :
la globali
condivisione di risorse ;
- ottimale
dell'
difficoltà l' allocazione
la di modo
risorse in
di organizzare ;
os
- la localizzare
difficoltà di errori programmazione
di
- .
Il sistema operativo deve :
traccia
tenere (
vari
di )
processi PCB
saper ;
- attivo
allocare duello risorse ciascun ;
care
e processo
per
- proteggere fisiche dall' interferenza altri
le risorse dati processi
di
di ciascun ;
e processo
- indipendenti
output dalla velocità
i
che gli
processi siano dei
assicurarsi processi
e
- .
Se competono
i in
processi risorse
per
affrontare necessità
bisogna 3
comune :
mutua
la necessità di esclusione
avere ;
• deadlock ;
no
• stanati on
• no .
esclusione
mutua
No
•
esclusione
Mutua :
Un garantire mutua stamattina
deve esclusione
sempre no
programma e
no
,
deadlock Inoltre nella critica
trova sezione
che deve
si
un processo sua non non
. mentre nella
processi entrare
interferire altri critica
sezione
per
con me
sua
, finito
tempo
trovare
altro deve
ci
ci deve stare
si per
e un
sene .
facciamo
Non velocità
sul loro
sulla
alcuna dei
assunzione processi o
numero .
Tentativi
Ora alcuni supporto esclusione
problema
hardware
vediamo della
al
di mutua :
)
efficiente
sistemi le (
processori disabilitiamo interrupt
uni
° → poco .
)
( hardware
circuito 1
o
o deadlock
Esclusione
mutua
si no ,
,
stonati
potrebbe esserci
& valore in on
compariamo
swap
° compare : un 0
0 fare controllo
il
vogliamo
Avari cui
su
o
• ;]
presto es
→
1 a
o →
valore test
memoria di se sono
con e
un 0
facciamo
uguali lo il
swap nuovo
con
Garantisce deadlock garantisce
valore starvaltion
no no
non .
,
. hardware )
circuito
(
Istruzioni di scambia
exchange contenuto
il
° : [
registro 1
di o
di memoria
con uno
un .
Garantisce garantiscano stanati
deadlock
no on
non
, .
Sono utilizzabili multiprocessori Busy waiting
semplici Decide possibili
costoso
più
anche Stan
cs
con e
e con -
. , .
.
, presenti le
tutte architetture
in
Non sono .
software
)
(
Meccanismi semafori variabile
binari
la condition
mutex
comuni per concorrenza e
: non ,
,
,
monitor Flags / spiulocks
event mailbox messagli
es
, .
,
, hanno
i
Semafori semafori possibili
variabile intera operazioni
cui 3
su sono :
una
:
inizializzazione valore negativo
- a non
un .
seenwait
la decremento valore
il
- il
la valore
incrementa
sansigual
- .
Se il il
valore rappresenta
zo
è numero
di rappresenta
disponibili
risorse il
lo
se
,
di attesa
processi in di risorse
numero . qual
implementazione di sensi
seenwait e
] ( )
semafori altrimenti
la stornati
strong FIFO ci
weak può
è
guerra
sono essere on
se , .
semafori
mutua esclusione i
con potrebbero implementare
si semafori 8
la
i compare swap
con
)
pseudo codice
( l'
interrupt implementazione
Noi usiamo
le posix
o con .
semafori ( )
dei weak
è
che :
semaforo
staticamente
sunt il
sein creare
per
; .
(
init )
* int restituisce
sent value
pshared umsigued
sene 0 -1
;
sene errore
successo
- , .
,
, di
la d condivisibili
bene risorse
numero
o
( )
wait *
sent ;
seni sene
. donothiug
mettendo while t ) di
prima
;
un . -
.
)
*
(
sent implementare
covnt
post countxt
s
; possiamo
sera o
sen s
-
-
. . le
semafori and
i compare
con l'
(
destroy )
* interrupt exchange
sent le
Sun swap o
; con con
o
sene
- nel while
operazioni
giuste
le
con .
implementati in c +
⇐
e
non
( hanno facili
Monitor le funzionalità
stesse semafori da
dei più
sono usare
: ma
, .
del
locali solo
variabili accessibili
Le Con
le stesse
le
monitor
procedure
sono con .
troveranno
monitor
nel gli altri
entra in di
mentre
si coda
processi si una
attesa .
La condizionali
variabili
sincronizzazione contenute
delle
ottenuta
accessibili
è e
con
Possiamo
monitor variabili
il queste
dentro
da
solo operare con a
su
.
funzioni l' esecuzione
csignalcc sospende
cwaitcc condizione
dopo
)
) e una
: base della
riprende sulla
la condizione
stessa
( e .
Massage due interagiscono loro
passing tra soddisfare
devono
processi due
che
: ) (
la
(
la esclusione
requisiti sincronizzazione mutua la comunicazione per
: e
per fornisce
)
funzioni
Jl
informazioni queste
entrambe
scambiare Passing
massage
.
lavorando distribuiti multiprocessori
sistemi memori
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.