lucidi in bianco e nero per stampa (6 per pagina)

Transcript

lucidi in bianco e nero per stampa (6 per pagina)
Fondamenti di Informatica
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Nota di Copyright
Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright
e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi
inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio,
musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli
Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca,
scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero
dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di
lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su
supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non
esplicitamente autorizzata per iscritto, a priori, da parte degli autori.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della
pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in
progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza
preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi
incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento
dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste
slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono
mai essere rimossi e devono essere riportati anche in utilizzi parziali.
FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO
Facoltà di Ingegneria
Università degli Studi di Udine
Gestione dei processi
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
1
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Process Control Block
Processi
• Chiameremo PROCESSO, TASK o JOB
un
programma in esecuzione
• Un processo è identificato da un PID
(Process IDentifier - un numero)
• Ad ogni processo è associato un Process
Control Block (PCB)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
3
• Contiene tutte le informazioni necessarie
al funzionamento del processo:
– identificatore del processo e del proprietario
– stato di avanzamento
– contesto (registri e flag della CPU)
– priorità e altre informazioni per lo scheduling
– memoria allocata
– informazioni contabili (es. CPU usata, limiti,
ecc.)
– risorse allocate (dispositivi hw, file, ecc.)
– ...
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
Programmi in memoria
4
Fondamenti di Informatica - Gestione dei processi
Esecuzione dei programmi
• Monoprogrammazione: un solo
programma alla volta può occupare la
memoria
• Multiprogrammazione: più programmi
possono essere presenti
contemporaneamente in memoria
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
2
• Monotasking: un solo programma in
esecuzione per volta
• Multitasking: più programmi in
esecuzione simultaneamente
5
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
6
1
Fondamenti di Informatica
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Utenti
Monitor
• Monoutente (“single user”): un singolo
utente per volta
• Multiutente (“multiuser”): più utenti
possono lavorare contemporaneamente
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
• Per terminali intelligenti e console di
controllo di elettrodomestici ed
apparecchiature
– semplice
– monotasking, monoutente
– legge comandi dalla tastiera e invia
messaggi sul video o sul display
– normalmente residente in ROM
7
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Batch
Batch
P1
input
(card reader)
elaborazione
(CPU)
output
(printer)
Ancora in uso per applicazioni particolari,
in cui il multitasking non è possibile.
Quando le CPU erano molto costose e
non esisteva ancora la tecnologia per il
multitasking, permetteva di massimizzare
l'utilizzo dei calcolatori
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
9
i1
Multiprogrammazione
elaborazione
c1
o1 i2
c2
o2
Sottosistema
di ingresso
o3
i input
c elaborazione
o output
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
10
Fondamenti di Informatica - Gestione dei processi
P1
i1
c1
o1
i2
P2
interrupt
elaborazione
elaborazione
c3
i3
Multiprogrammazione
CPU principale
per l'elaborazione
interrupt
P3
P2
Fondamenti di Informatica - Gestione dei processi
input
8
c2
o2
c3
i3
P3
c1
o3
c3
c2
CPU
Sottosistema di
uscita
output
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
11
Input
Output
i1
i2
i3
o1
o2
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
o3
12
2
Fondamenti di Informatica
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Come funziona il multitasking?
Multitasking
• Ogni processo “vede” una “macchina
virtuale”:
• Consente l’interattività senza lasciare
inattiva la CPU
• Si appoggia su:
– set di istruzioni disponibili leggermente ridotto
(alcune istruzioni sono riservate al sistema
operativo)
– memoria virtuale
– accesso alle periferiche esclusivamente tramite
librerie di sistema
– protezioni e funzioni di lock nel file system
– multiplexing della CPU (la velocità di elaborazione
dipende quindi dal carico effettivo, cioè da quante
macchine virtuali sono attive)
– multiprogrammazione (coesistenza di più
programmi in memoria)
⇒memoria virtuale
– condivisione della capacità elaborativa
della CPU (che può eseguire una sola
istruzione alla volta)
⇒time-sharing
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
13
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Time-sharing
Time-sharing
• Sistema multiprogrammato con multiplexing
della CPU che consente il multitasking con una
singola CPU
• Ogni processo viene eseguito finché:
– non si esaurisce la sua time slice
– non esegue un'operazione di I/O
– il S.O. ne salva il contesto (registri, ed in particolare
la Processor Status Word - PSW)
– il processo successivo in ordine di priorità viene
riattivato (resumed)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
process A
resume
15
CPU
interrupt
suspend
process B
Quando la CPU riceve l'interrupt
per l'esaurimento del time slice, o
quando il processo in esecuzione
si pone in wait per I/O, viene
attivato lo scheduler che decide
quale processo deve essere posto
in esecuzione
process C
• Quando un processo viene interrotto:
process D
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
16
Fondamenti di Informatica - Gestione dei processi
Time-sharing
Time-sharing
execute
schedulazione
richiesta di I/O
P1
esaurimento
time slice
I/O proc. 1
ready
I/O proc. 2
termine operazione di I/O
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
c2
i3
P3
c2
o1
o2
c3
c3
o2
i1
i2
c1
c1
i1
P2 i2
blocked
14
i3
o3
o3
o1
c2 c1 c3 c2 c1 c3
CPU
17
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
18
3
Fondamenti di Informatica
Fondamenti di Informatica - Gestione dei processi
Fondamenti di Informatica - Gestione dei processi
Confronto dell'efficienza
Elapsed time vs. CPU time
• Elapsed time
– tempo “utente” trascorso tra l’attivazione
del processo e il suo completamento
Batch
Multiprog.
– tempo totale per il quale il processo ha
impegnato la CPU
CPU time ≤ Elapsed time
19
o2
o3
o3
o1
i3
c2 c1 c3 c2 c1
c3
20
Fondamenti di Informatica - Gestione dei processi
• Via di mezzo tra batch e interattivo:
– permettono di continuare a lavorare in quanto non
monopolizzano il terminale
– utilizzano il terminale per l'output, e talvolta anche
per l'input
– sono normalmente dei sottoprocessi: la loro
esistenza è legata all'esistenza del processo che li
ha generati
– comunissimi nei sistemi con interfaccia a window:
il programma lanciato effettua l'I/O in una finestra
indipendente da quella da cui è stato attivato
output
(file di log)
• Utile per elaborazioni lunghe (anche ore o
giorni): non richiede alcun dispositivo di I/O
(es. terminale) dedicato
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
o3
Programmi in background
• L'elaborazione batch esiste ancora nei
sistemi time-sharing:
elaborazione
time-sharing
(CPU)
c3
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Gestione dei processi
Batch e time-sharing
i2
i3
i3
o2
i1
o2
c3
c2
i2
i1
c2
i2
o1
Time-sharing
input
(file di comandi)
o1
c1
• CPU time
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
c1
i1
21
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
22
Fondamenti di Informatica - Gestione dei processi
Real-time
• I dati devono essere elaborati entro tempi
vincolanti, determinati dalla velocità di
funzionamento degli elementi fisici esterni che
interagiscono con il processore
• Applicazioni:
– controllo di macchinari e servomeccanismi
– processori ausiliari per sistemi di I/O ad alta velocità,
es. dischi, grafica (anche giochi)
• È incompatibile con il time-sharing, in quanto
non è ammissibile che un maggior carico del
sistema allunghi i tempi di elaborazione dei dati
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
23
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
4