+ All Categories
Home > Technology > Riassunto sistemi operativi 4 IA ITI Bearzi

Riassunto sistemi operativi 4 IA ITI Bearzi

Date post: 06-Dec-2014
Category:
Upload: paolo-casoto
View: 881 times
Download: 1 times
Share this document with a friend
Description:
Riassunto sistemi operativi 4 IA ITI Bearzi
21
+ Dr. Paolo Casoto, Ph.D - 2012 Riassunto Sistemi 4IA
Transcript
Page 1: Riassunto sistemi operativi 4 IA ITI Bearzi

+

Dr. Paolo Casoto, Ph.D - 2012

Riassunto Sistemi 4IA

Page 2: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 3: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 4: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 5: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 6: Riassunto sistemi operativi 4 IA ITI Bearzi

+Stati di un processo

Dr. Paolo Casoto, Ph.D - 2011

Page 7: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 8: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 9: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 10: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 11: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

5.  Passaggio alla modalità di esecuzione utente

Dr. Paolo Casoto, Ph.D - 2011

Tutto questo introduce un overhead !!!

Page 12: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 13: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 14: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 15: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 16: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 17: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 18: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 19: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 20: Riassunto sistemi operativi 4 IA ITI Bearzi

+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

Page 21: Riassunto sistemi operativi 4 IA ITI Bearzi

+

Domande ??? Grazie a tutti per l’attenzione

Dr. Paolo Casoto, Ph.D - 2012


Recommended