Sei sulla pagina 1di 11

PROCESSI I primi aspetti che un SO deve incontrare per quanto riguarda i processi sono

1
ALTERNARSI PROCESSI
composto DEI

è da :

CODICE
,
INSIEME DI DATI
,
UN NUMERO

GESTIONE DELLE RISORSE (es ,
processore )
• CREAZIONE E COMUNICAZIONE TRA PROCESSI
Di attributi CHE descrive lo

STATO DEL PROCESSO IN ESECUZIONE

(
es :

running reodiy
. . . .

)
,
PROCESS CONTROL BLOCK
-0 un numero

mentre processo è esso


un
running
dei registri
ha un numero di elementi che
→ valore all' interno

risiedono P.C.be il
. nel .

quale
è
gestito dal sistema operativo .

GESTIONE DEI PROCESSI

la il
un
processo running
chiama •

fork ( ) per creare


processo figlio ,

entrambi procedono concorvent amante

PROCESS Tree

la chiamata Walt c) si che padre


fa un
processo

aspetti la terminazione del


figlio prima
di continuare

oppure vvcntpidl ) per un


figlio specifico

Quando
" "

un PC viene acceso con INITIAL PROGRAM onde detto BOOTSTRAP PROGRAM

si occupa di : inizializzare EPU a memoria coricava il 50 nella memoria e statore il 50


, ,
Il 50
fa partire il
primo processo ,
chiamato IN 1T ,
e
aspetta eventi ( es .
interruzioni
)
da
gestire

PROCESSO FIGLIO : E. ritorna 0 00 -11 in caso di insuccesso

PROCESSO PADRE l'


: • viene ritornato
identificativo del
figlio
• -
1 in caso di insuccesso

tutti
"
"
i
permessi del padre per file ,
memoria . . . .
sono concessi anche al
figlio

serve
per
-àGEfofFeseguire
~ programmi


(
ci consente di
far
comunicare i processi

caratteristiche dei
processi :
i
SCHEDULING /EXECUTION l' esecuzione dei processi è

intervallata

RESOURCE OWNERS HIP

MULTITHREADING
umpwcessodefemiseunospozcoc.org
✓JAy
risorse dinamiche
gun me

www.dmigradaom
1 thread

all'altro
µ processo processor

-
WINDOWS
PROCESSI e THREADS
Ti
& hanno una Zona
ha la
ognuno sua di memoria condivisa

memoria
user ADDRESS
SPACE

THREADS

ogni thread ha i uno stato di esecuzione thread Contax salvati stock di esecuzione
,
, ,

variabili locali conservate ,


accesso a risorse a memoria del proprio processo

Anche i threads ( come i processi ) hanno uno stato di esecuzione : Runnin a


/ Ready , blocked a

una sincronizzazione

VANTAGGI • veloci nella terminazione rispetto ai


:
piu creazione a

processi

lo tra threads
switching

è veloce rispetto tra
piu a
quello
processi


possono comunicare tra loro senza il kernel ( perche abbiamo memoria condivisa
)

NB i threads
azioni
folte su un
processo agiscono su tutti al

(terminazione tutti
suo interno del
processo TERMINAZIONE Di I THREADS
)

SINGLE

THREAD
REMOTE PROCEDURE CALL

RPC

UN THREAD

PER SERVER
IMPLEMENTAZIONI THREAD
_
Èra FM
KERNEL LEVEL THREAD ( KLT ) USER LEVEL THREAD ( ULT )

il la thread
kernel mantiene le informazioni gestione dei è

fatta dalle

il threads
per processo e
per i
applicazioni
VANTAGGI VANTAGGI
• il kernel sdednlore piu thread simultaneamente • lo switch tra trend non richiede i
privilegi del
puo
kernel
dal
processo piu processi
a

SVANTAGGI

se un thread in un
processo è bloccato
call bloccante di thread
,

• una
system un

il kernel blocca tutti i thread del processo


sdedulore Hco thread dello
puo un •

stesso processo

SVANTAGGI

switch il controllo
serve al kernel trasferire

uno
per

da un thread a un altro in uno stesso


processo

PTHREAD

Pthread possono essere creati con meno overhead del SO


,
hanno
bisogno
di meno risorse di sistema e sono + veloci

Per
deve
usufruire
essere
dei

organizzato
PTHREAD

in task
un
programma
indipendenti
{ SEQUENZIALI

concovventemente
}
che
possano essere
eseguite overlap

thread
manager

MODELLO DI
• thread Workers
PROGRAMMA THREAD • abbiamo una
pipeline

- Tutti i thread hanno a


disposizione una memoria condivisa e una privata ,
i
programmatori sono responsabili dell' accesso alla memoria condivisa

è THREAD SAFÉ
un codice sa
piu thread esecuzione senza
-
in

interazioni indesiderate
CREAZIONE
-

pthveceol _
create C) : crea un thread
pronto per essere usato

pthreod exitc )
/ pthueod detach () N.B. libera
-

_ -
non risorse

esempio
-
pthneod -
Cancel ( ) : da un altro thread

exitl ) :
per l' intero
programma
-

in Java VUMCJ mewc ) start C ) Join ()


, , ,

CATEGORIE DI COMPUTER SYSTEM

Single istruzioni Single Data ( SISD )


un
singolo processore esegue una
singola Ina
lstvuz .

istruzione sui dati


per operare ( un solo
dato


Single istruzioni Multiple Data (SIMD)
diversi dati
stessa istruzione
eseguita su


Multipla istvuction
Single Data (MMISD)
un
singolo dato con + istruzioni


Multiple istvuctcon Multipla Data (MIMD )
'

istruzioni su dati
piu piu
CONCORRENZA

OPERAZIONI ATOMICHE :
sequenza di una o
piu operazioni indivisibili

CRITICAL SECTION :
sezione di codice che accede a risorse condivise e che NON
altro parte codice
puo essere
eseguito se un
processo è nella stessa di

ESCLUSIONE è Critical
MUTUA quando processo Sanction
garantire mutua
: un in e .

significa garantire che nessun altro asceta a


quella sezione

RACE CONDITION :
PIU processi o thiead vanno in concorrenza e il risultato

dipende dal
timing di esecuzione

DEADLOCK :
processi incapaci di
proseguire a causa di altri
processi
LIVE Lock continuamente il
piu processi
i
cambiano loro stato ma non riescono
ad andare SIGNIFICATIVAMENTE avanti

STARVATION ad andare avanti lo


scheduling
un
:
processo non riesce per

principi della concorrenza

INTERVALLI NIG OVER tapping

l' esecuzione dei processi è +


processi in esecuzione

intervallata
'

,
un
po uno

l' altro
un
po

Abbiamo diverse
difficolta nella concorrenza

① condivisione di risorse
globali
② allocazione ottimale di risorse da parte del 50

③ localizzare
'

errori → la causa sono le tante variazioni

Un 50 deve essere in
grado di

• tenere traccia di vari processi


allocare decelerare
ogni
• a risorse
per processo

proteggere

garantire che
gli output siano
indipendenti dalla velocita del

processo

Processi concorrenti entrano in COMPETIZIONE


quando usano le stesse risorse
,
in

questo caso
possono andare in contro a 3 problemi : mutua ESCLUSIONE
,
DEADLOCK
,
STARVATION
SOLUZIONI PER MUTUA ESCLUSIONE

compare and swap




- -

exchange

Per la concorrenza dei processi abbiamo dei meccanismi

SEMAFORI è su
un valore intero
quale sono
definita 3 operazioni :

① iniziali zarlo ad un valore non


negativo

qdecrementarlosamwcntj-30lmcrementar.IO
la
Sem
Signale )

il
coda serve
per tenere i processi che
aspettano semaforo

SEMAPHOres il rilascio
STRONG
politica FIFO
per
di
processi
ci sta un
è ⇐o

se
il semaforo che devo far partire
coda
WEEK l' ordine
specificato
in
SEMAPHORES di usata non è →
processo

SEMAFORO BINARIO

è
Semafori in Posti

MONITOR

00 Le variabili locali sono accessibili solo dalle


procedure del monitor e non da procedure esterne

• Un processo entra in un monitor invocando una sua procedura


• Solo volta monitor
un
processo alla
puo
essere
eseguito nel

Un
funzione il
• chiama monitor si di metterlo coda
processo una e occupa in

La SINCRONIZZAZIONE è
raggiunta tramite VARIABILI DI CONDIZIONE usate tramite

possoaverecvncte-comdizcunfc.ua

( ) it
sospende l'
c :
esecuzione del
processo chiamato con condizione C

C
signale ( c ) :
riprende l' esecuzione del processo bloccato dalla cwait (c) con la stessa condizione

→ coda ☐ ' entrata

sincronizzazione e COMUNICAZIONE sono

← facilitati dal MESSAGE PASSING

coda
DI
variabili
CONDIZIONE
/ \
Senol (destination massage) receiver (destination / massage)
i / a destinazione puo essere o

da chi ricevo o da chi


voglio ricevere

CODA DI EMERGENZA 4-
"

bing.sc#gfyoaguandonon
"" "


→ costruttore (? )

ricevere
esplicito da chi voglio
→ valore di ritorno
ricevute possiedono un

le primitive l'
FORMAT DEL EGIL

perde messa
imgur.az

y-dmehoiff-Eiff-ib-dc.ve
processo la andrà
continuare
un a prendere coda
posso a

fare altro

MESSAGGIO

eventuale collezione

→ di errori
Produttore CONSUMATORE

idea di base

Uno le
piu produttori informazioni buffer
}
mettono ""
generano
:[È
o e in un " """ °

hanno accesso uno

Uno °
P " consumatori
prendono informazioni dal bugger uno alla volta
,

BUFFER BUFFER
INFINITO FINITO

PRODUTTORE CONSUMATORE NEI monitor LEITORE SCRIITORE

i lettori tutti
leggere

possono insieme

I scrittore alla volta


puo
messaggi
• uno scrivere
050 scrittore sta scrivendo i lettori non
possono
• se uno

leggere

WRITER
READER

ti
'

atvikho.in
→ durante la lettura ho
possono accedere pence prima
fatto sem
signore

il contatore dei reode


gestisco

TIPOLOGIA DI RISORSE

RISORSE RIUTILIZZABILI :
RISORSE CONSUMABILI

Possono essere utilizzata da un


processo vengono create (prodotte ) e successivamente
alla volta e non si esauriscono
distrutte ( consumate )

Lock
condizioni per DEAD
SUFFICIENTI
NECESSARIE MA NON
CIRCULAR
Holt n°
MUTUA Walt
and pre EMPTION
-

ESCLUSIONE Walt una catena chiusa di


nessuna processi nel
quale ogni
mantenere
risorsa
puo essere
processo ha utile
un
processo puo " mossa da che la
una risorsa
un
processo al
prossimo processo anella
allocate risorse mentre e-
mantiene
in

catena
attesa dell' allocuzione di oltre
Come possiamo approcciare al deadlock ?

① prevert deadlock :
politica che esclude la
possibilità di deadlock

• INDIRETTO prevenire una delle 3 condizioni necessarie

• Diretta prevenire l' occorrenza dalla Circular Unit

② ovoide deadlock :
fare
la scelta
giusta basata sul corrente stato delle risorse allocate

2 approcci

③ detect deadlock :
trovare il deadlock e risolvere

Potrebbero piacerti anche