Riassunto sistemi operativi 4 IA ITI Bearzi

1,495 views

Published on

Riassunto sistemi operativi 4 IA ITI Bearzi

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,495
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Riassunto sistemi operativi 4 IA ITI Bearzi

  1. 1. + Riassunto Sistemi 4IA Dr. Paolo Casoto, Ph.D - 2012
  2. 2. + Il processo n  Entità dinamica associata all’esecuzione di un programma n  Lo stato dell’esecuzione di un processo è determinato dai valori assunti dal Program Counter, dai registri utente e di stato, dalla memoria e dallo stack. n  Possiede una traccia di esecuzione, rappresentata dalla sequenze di istruzioni identificate, di volta in volta, dal Program Counter n  L’ordine di esecuzione altera i valori delle strutture dati che compongono il processo n  E’ associato ad in insieme di informazioni quali: n  Codice del programma n  Aree dati n  Risorse n  Strutture dati di controllo e schedulazione Dr. Paolo Casoto, Ph.D - 2011
  3. 3. + Il processo n  Un programma può essere associato a più processi n  E.g.: esecuzione in contemporanea di più istanze del medesimo programma n  Un processo è caratterizzato da uno stato e da un insieme di possibili transizioni fra i valori che lo stato può assumere n  NEW: il processo è stato creato dal sistema operativo, le sue strutture dati sono state create ma nessuna risorsa è stata associata al processo stesso. n  READY: il processo è pronto per essere assegnato ad un processore per l’esecuzione n  RUNNING: il processo è attualmente in esecuzione all’interno del processore n  Il numero di processi in stato RUNNING dipende, naturalmente, dal numero di processori a disposizione. Dr. Paolo Casoto, Ph.D - 2011
  4. 4. + Il processo n  Quando un processo termina l’esecuzione del programma associato il suo stato assume valore TERMINATED n  I processi terminati non possono più accedere al processore ed alle altre risorse. n  Quando un processo è interrotto dal processore perché ha esaurito il tempo di esecuzione ad esso associato (time slice), il suo stato torna a READY. n  Quando un processo richiede una operazione di I/O bloccante, passa, in attesa del completamento di quest’ultima, in stato WAITING, liberando il processore per l’esecuzione di un altro processo in stato READY. Dr. Paolo Casoto, Ph.D - 2011
  5. 5. + Il processo n  Quando i dati richiesti dal processo sono disponibili, mediante un interrupt, il sistema operativo può ricollocare il processo in stato READY. n  Vi sono quindi 2 cicli principali n  Passaggio dallo stato READY allo stato RUNNING e viceversa (mediante un meccanismo di prerilascio, e.g.: ROUND ROBIN) n  Passaggio dallo stato RUNNING allo stato WAITING e, successivamente al completamento delle operazioni di I/O, allo stato READY n  La somma dei processi in stato READY, RUNNING e WAITING rappresenta la somma dei processi attivi Dr. Paolo Casoto, Ph.D - 2011
  6. 6. + Stati di un processo Dr. Paolo Casoto, Ph.D - 2011
  7. 7. + I processi dormienti n  Processi rimossi dalla memoria centrale da parte del sistema operativo, collocati all’interno del disco in modo temporaneo n  In caso di mancanza di processi in stato READY il S.O. può riattivare “SWAP IN” uno dei processi dormienti presenti su disco, al fine di mantenere elevato il grado di utilizzo della CPU n  Al contrario in caso di mancanza di risorse, il S.O. può spostare un processo all’interno del disco “SWAP OUT” n  I processi dormienti possono essere in stato READY o WAITING n  Con conseguente gestione degli interrupt associati n  L’attività di swapping è onerosa (coinvolge il disco) e va gestita con attenzione dal S.O. al fine di non incidere negativamente sulle prestazioni. Dr. Paolo Casoto, Ph.D - 2011
  8. 8. + Gestione dei processi e strutture dati n  Un processo associato ad un programma è costituito dalle seguenti struttura dati: n  Codice n  Dati n  Stack n  Informazioni di controllo sullo stato del processo (Process Control Block – PCB), a sua volta ripartite in: n  Puntatori: consentono di creare liste di processi n  Identificatori: codice univoco che identifica il processo n  PSW: lo sapete dal ripasso di ASSEMBLER n  Informazioni di stato: informazioni legate allo stato, alla schedulazione, alle risorse associate al processo, registri limite, et al. Dr. Paolo Casoto, Ph.D - 2011
  9. 9. + Nel dettaglio n  Program counter n  Area per il salvataggio dei registri general purpose e floating point n  Area salvataggio registro di stato n  Stato corrente di avanzamento del processo n  Livello di priorità n  Identificatore della CPU su cui è in esecuzione n  Informazioni per lo scheduling del processo n  Segnali pendenti ed informazioni sullo stato di I/O del processo Dr. Paolo Casoto, Ph.D - 2011
  10. 10. + Code et al. n  E’ possibile quindi rappresentare lo stato di un insieme di processi in esecuzione come un insieme di code FIFO implementate mediante code di puntatori. n  Un processo, nel corso del proprio ciclo di vita, è puntato da altri processi o dalla testa di una delle code rappresentanti i possibili stati del processo. n  E.g.: coda dei processi RUNNING n  I registri limite rappresentano i confini dello spazio di memoria utilizzabile da un processo n  Garantiscono l’indipendenza fra i processi: nessun processo può accedere alla memoria inclusa fra i registri limite di un altro processo n  Salvo disporre di opportuni meccanismi di Inter Process Comunication (IPC) Dr. Paolo Casoto, Ph.D - 2011
  11. 11. + Il cambio di contesto n  Insieme delle operazioni necessarie per passare dall’esecuzione di un processo P all’esecuzione di un processo Q 1.  Salvataggio del PC e dei registri del processore all’interno della specifica area del PCB del processo P; 2.  Passaggio del processore in modalità privilegiata per gestire l’interruzione che ha comportato il cambio di processo n  E.g.: fine del time slice, I/O, terminazione del processo, et al. 3.  Gestione dell’interruzione e selezione dal parte del sistema operativo del processo Q 4.  Aggiornamento dello stato di P (e.g.: da running a ready) e caricamento del PCB di Q Tutto questo 5.  Passaggio alla modalità di esecuzione utente introduce un overhead !!! Dr. Paolo Casoto, Ph.D - 2011
  12. 12. + I thread n  Flusso (o meglio flussi) di esecuzione di un processo n  Ciascun thread, all’interno di un unico processo è caratterizzato da un insieme di informazioni univoche quali: il program counter, lo stato dei registri e dello stack n  Un processo con più thread è caratterizzato da un PCB composto da più informazioni, alcune condivise ed altre limitate ai singoli thread n  A differenza di due processi distinti i thread condividono lo stesso spazio di indirizzamento in memoria n  Possono accedere alle medesime informazioni n  Detti anche lightweight process o processi leggeri Dr. Paolo Casoto, Ph.D - 2011
  13. 13. + I thread n  Ma perché utilizzare i thread? n  Ovvero perché non utilizzo processi differenti ? n  Minor overhead in fase di context switch n  Memoria condivisa e nessuna necessità di rischedulazione dei processi n  Utilizzo di risorse parallele (e.g.: sistemi multicore o multithread) n  Riduzione dei tempi di accesso alle informazioni condivise fra i processi n  Non necessità di strumenti di IPC n  E in generale… ottimizzare l’utilizzo della CPU Dr. Paolo Casoto, Ph.D - 2011
  14. 14. + La schedulazione n  Determina l’ordine di esecuzione dei processi all’interno del S.O. n  In particolare la transizione di un processo da Ready a Running n  Tre livelli di schedulazione: breve, medio e lungo termine n  Breve termine: si occupa della schedulazione dei processi che possono passare dallo stato Ready allo stato Running. E’ quella utilizzata con maggior frequenza e che incide maggiormente sulle prestazioni n  Medio termine: gestisce la schedulazione dei processi in stato sospeso (swap out); opera meno frequentemente rispetto alla precedente n  Lungo termine: applicata generalmente ai sistemi batch, determina quando un nuovo processo può essere portato in stato Ready. Dr. Paolo Casoto, Ph.D - 2011
  15. 15. + Criteri di schedulazione n  I criteri di schedulazione devono tener conto di molteplici indicatori, spesso in disaccordo gli uni con gli altri: n  Percentuale di utilizzo della CPU. n  Throughput: percentuale di processi completati in un dato intervallo di tempo. n  Sovraccarico della CPU: ridurre al minimo i tempi dedicati dalla CPU all’esecuzione di istruzioni del sistema operativo, a vantaggio dei processi degli utenti. n  Turnaround: tempo medio di esistenza di un processo dalla sua creazione alla sua terminazione. n  Tempo di risposta: tempo necessario ai processi interattivi per la generazione dell’output utente. n  Starvation: mancata esecuzione di un processo in stato Ready. Dr. Paolo Casoto, Ph.D - 2011
  16. 16. + Schedulazione FCFS n  Chi prima arriva meglio alloggia… n  Senza prerilascio, un processo può restituire il controllo al sistema operativo solo passando in stato Waiting o terminando la sua esecuzione. n  Ordine di arrivo come unico criterio n  Poco efficace rispetto a processi brevi o con molteplici operazioni di I/O, per i quali aumenta il tempo di turnaround n  Un processo deve attendere che tutti i suoi predecessori “liberino” la CPU n  Ma possiamo migliorare l’algoritmo, osservando che i processi più brevi potrebbero trarre vantaggio da una esecuzione anticipata? Dr. Paolo Casoto, Ph.D - 2011
  17. 17. + Schedulazione Shortest Job First n  Sempre senza prerilascio, ma con l’utilizzo di una code di priorità che ordina tutti i processi in stato Ready in modo crescente rispetto alla loro durata ipotetica. n  Infatti si pone un problema, come determino a priori la durata di un processo ? n  E se è while(true){} ??? n  Lo stimiamo, valutando la durata di utilizzo della CPU da parte di un processo per ciascun periodo di esecuzione n  Tempo stimato di esecuzione al prossimo turno = a*B + (1-a)*P dove a funge da peso per valorizzare maggiormente la storia passata (P) o solo il tempo dell’ultima esecuzione (B) n  Avvantaggio I/O rispetto ai CPU n  Avvantaggio i processi brevi a quelli più lunghi Dr. Paolo Casoto, Ph.D - 2011
  18. 18. + Schedulazione con priorità n  Schedulazione con prerilascio: il S.O. può intervenire e sospendere l’esecuzione di un processo Running. n  Coda di processi in stato Ready, ordinata rispetto alla priorità dei singoli n  Come decido la priorità ? Dipende, spesso è una valutazione complessa che utilizza più indici fra quelli che abbiamo visto. n  Quando calcolo la priorità dei processi e riordino la coda? Ogni volta che avviene l’inserimento di un processo in stato Ready all’interno della coda. n  Ovvero quando arriva un nuovo processo o un processo in stato Waiting ritorna ad essere Ready. n  Non tutti i processi sono eguali fra loro in termini di importanza Dr. Paolo Casoto, Ph.D - 2011
  19. 19. + Round Robin n  Al contrario tutti i processi sono considerati di uguale importanza n  E’ nuovamente utilizzata una semplice coda FIFO, poiché non ho bisogno di effettuare ordinamenti basati sulla priorità dei processi n  A ciascun processo è associato un quanto di tempo, il time slice. n  Se il processo in esecuzione non rilascia volontariamente la CPU entro lo scadere del suo time slice, tale rilascio è forzato dal sistema operativo mediante una opportuna interruzione n  Il processo torna all’interno della code dei processi Ready ed attende l’esecuzione di tutti i processi che lo precedono all’interno della coda. Dr. Paolo Casoto, Ph.D - 2011
  20. 20. + Schedulazione a retroazione n  Fusione delle due metodologie di schedulazione con prerilascio che abbiamo visto nelle slide precedenti. n  Più code in parallelo per i processi Ready, ciascuna con una priorità differente. n  La priorità dei processi è legata alla storia di un processo in termini di burst di CPU n  Privilegio i processi con burst brevi di CPU n  Ciascuna priorità ha associato un time slice differente. Priorità maggiore implica time slice di durata minore n  Quando un processo rilascia la CPU prima della scadenza del proprio time slice, esso aumenta di priorità. Conseguentemente aumentano le sue possibilità di essere eseguito, seppure per time slice di durata inferiore. Dr. Paolo Casoto, Ph.D - 2011
  21. 21. + Domande ??? Grazie a tutti per l’attenzione Dr. Paolo Casoto, Ph.D - 2012

×