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