Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

30
Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi

Transcript of Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Page 1: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu Struttura di un SO• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Page 2: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu Dal problema all’algoritmoChiamiamo problema una qualsiasi situazione per cui è necessario elaborare una strategia per identificare una sua soluzione, ovvero una serie azioni da compiere per raggiungere il risultato.AlgoritmoUn algoritmo è un insieme di istruzioni chiare e non ambigue, effettivamente calcolabili, che eseguito fornisce un risultato in una quantità di tempo finita. L’algoritmo descrive le istruzioni da eseguire per giungere alla soluzione di un problema.

• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Page 3: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu Proprietà principali di un algoritmoLa sequenza di istruzioni che compone un algoritmo deve essere:•finita : l’esecutore deve arrivare prima o poi al risultato richiesto, quindi le azioni descritte sono un numero finito e ciascuna azione deve essere eseguita un numero finito di volte.•non ambigua : ciascuna istruzione deve essere descritta chiaramente ed interpretata univocamente, di modo che l’azione descritta sia effettuata allo stesso modo da qualsiasi esecutore.•eseguibile - effettivamente calcolabili ciascuna azione deve rientrare nelle effettive capacità dell’esecutore.L’esecutore di un algoritmo non dev’essere necessariamente un automa ma può essere anche un sistema biologico.

• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Page 4: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi Leggi A

A>10

A=A+1 A=A-1

F V

Può essere tradotto in un linguaggio con l’istruzione Read A; ISTRUZIONE

La struttura condizionale

può essere tradotta nelle seguenti istruzioni:if (A>10) THEN A=A-1 ELSE A=A+1

Dall’algoritmo al programmaIl Blocco di Input

Page 5: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Per tradurre un programma scritto in un linguaggio di programmazione (programma sorgente) nel linguaggio macchina comprensibile all’esecutore è necessaria la compilazione.

La compilazione consiste nel tradurre l’intero programma sorgente prima di eseguirlo.

La compilazione traduce ogni singola istruzione del programma sorgente in istruzioni nel linguaggio macchina equivalenti.

Il risultato della compilazione crea un codice in linguaggio macchina detto codice oggetto.

COMPILATORECODICE SORGENTE CODICE OGGETTO

Page 6: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu Dal linguaggio di programmazione al linguaggio macchinaTraduciamo un semplice programma, che effettua la somma di due numeriA=5; // alla variabile A è assegnato il valore 5READ(B); // la variabile B è assegnato un valore in INPUTC=A+B; // la variabile C contiene la somma A + B

• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

COMPILAZIONE

Page 7: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

ProcessiLe istruzioni del programma, cosi come le variabili usate dal programma sono memorizzate in memoria.

1234567

MOV R0,#5

MOV Rn.5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

Rappresentazione della memoria che contiene istruzioni e dati del programma

Page 8: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI CI dati su cui operano le istruzioni sono contenute nella locazione di indirizzo 5 e nella locazione di indirizzo 7

Le istruzioni del programma sono memorizzate dalla locazione 1 alla locazione 4

CPU

BUS

E’ la CPU l’esecutore delle istruzioni, quindi sono previsti meccanismi per cui le istruzioni da eseguire sono trasferite dalla memoria all’UNITA’ CENTRALE DI ELABORAZIONE

Page 9: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

Un processo pronto per l’esecuzione , attende che la risorsa CPU sia disponibile per poter eseguire le proprie istruzioni.

Il programma caricato in memoria prende il nome di Processo.

Page 10: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Nei sistemi operativi MULTITASKING sono presenti più processi in esecuzione che competono per l’uso delle risorse.E’ indispensabile che ci sia una politica di assegnazione delle risorse necessarie, tale politica va sotto il nome di SCHEDULING.

La risorsa principale è la CPU che deve essere assegnata in modo che tutti i processi siano eseguiti senza che nessuno venga penalizzato .

Il modulo del SO che si occupa della esecuzione, della terminazione, della attivazione e della sincronizzazione dei processi prende il nome di GESTORE DEI PROCESSI.

GESTORE DEI PROCESSI

Page 11: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

Tra le informazioni principali esso conserva:

•Program Counter (l’indirizzo della prossima istruzione da eseguire)•Area salvataggio registro di stato•Stato corrente di avanzamento del processo (Pronto, In Esecuzione, Bloccato)•Identificatore unico del processo•Livello di priorità•Informazioni per il memory management(Gestione della memoria in particolare per la memoria virtuale) •Informazioni per lo scheduling (gestione) del processo, come il tempo di run (esecuzione) o wait (attesa) accumulato•Informazioni sullo stato di I/O del processo

GESTORE DEI PROCESSI

Il SO tiene traccia dei processi presenti attraverso il PCB (Process Control Block)

Il PCB è una struttura dati che memorizza lo stato dei processi.

Page 12: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

Come descritto nelle informazioni conservate dal PCB, un processo può trovarsi in 3 stati possibili

RUN(esecuzione)Un processo si trova nello stato RUN quando ha tutte le risorse necessarie per poter svolgere il proprio compito ed è in quel momento in esecuzione avendo la CPU a disposizione per potere eseguire le proprie istruzioni

WAIT(Sospeso)Un processo si trova nello stato WAIT quando non ha tutte le risorse di cui necessita per avanzare , oppure , è in attesa di un completamento di un’istruzione di I/O.

Ready(Pronto per l’esecuzione)Un processo si trova nello stato READY quando dispone di tutte le risorse necessarie al suo avanzamento ed è in attesa dell’assegnazione della CPU

Nella slide successiva vedremo il diagramma di transizioni degli stati di un processo

Page 13: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

DIAGRAMMA DI TRANSIZIONE DEGLI STATI

RUN

WAITREADY

Un processo transita dallo stato READY allo stato RUN , quando gli viene assegnata la risorsa CPU è può eseguire le proprie istruzioni.

Un processo transita dallo stato RUN allo stato READY, quando o è scaduto il time-slice, oppure il sistema ha richiesto l’esecuzione di un INTERRUPT per cui necessità della CPU per «servire» la gestione dell’interrupt.

Un processo passa dallo stato RUN allo stato WAIT quando richiede e attende il completamento di un’operazione di I/O.

Un processo torna nello stato READY quando l’operazione richiesta di I/O stata completata e ha tutte le risorse a disposizione per competere all’ assegnazione della CPU.

Page 14: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

DIAGRAMMA DI TRANSIZIONE DEGLI STATI

RUN

WAITREADY

Richiesta I/O

Completamento I/O

INTE

RRUP

T O

TIM

E-SL

ICE

SCAD

UTO

ASSE

GNAZIO

NE CP

U

Page 15: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

La lista dei processi PRONTI la Ready List

Tra tutti i processi che si trovano nello stato READY (PRONTO) lo scheduler deve scegliere attraverso opportune politiche di scheduling il processo a cui sarà assegnata la CPU.I processi in questo stato sono inseriti in una ready list (lista dei processi pronti).

Page 16: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

L’algoritmo di scheduling Round-Robin

L’algoritmo che già conosciamo va sotto il nome di Round-RobinTale algoritmo assegna una stessa quantità di tempo ad ogni processo nell’utilizzo della CPU, allo scadere di questo tempo (quanto o time-slice) la CPU viene associata a un altro processo e il processo fino a quel momento in esecuzione viene riaccodato nella lista dei processi pronti (READY-LIST).

L’algoritmo di Round-Robin non fa differenza tra processi Utente e processi di S.O. e questo tipo di scheduling potrebbe compromettere le prestazioni del sistema.

Nella realtà si utilizzano più LISTE dei processi pronti considerando anche il concetto di priorità di un processo per l’utilizzo della CPU.

Page 17: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

La lista dei processi PRONTI la Ready List

Ad ogni processo è assegnata una priorità di utilizzo della CPU. Esistono tantissimi parametri nell’assegnazione del valore di priorità a un processo, qui illustriamo quelli più significativi.

Una prima considerazione è quella di classificare i processi rispetto al numero di operazioni di I/O e all’utilizzo della CPU.

Si parla di processi CPU BOUND se essi prevedono un elevato uso della CPU (elevata quantità di computazioni)Si parla di processi I/O BOUND se essi prevedono prevalentemente operazioni di I/O.

Contrariamente a quanto uno potrebbe essere portato a pensare , conviene assegnare priorità più alta ai processi I/O BOUND. Infatti una volta assegnati al processore (Schedulati) essi lascerebbero al risorsa processore libera per eseguire altri processi.

Se invece assegnassimo una priorità alta a un processo CPU/BOUND questo userà molto probabilmente la CPU per tutta la durata del time-slice.

Page 18: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

La lista dei processi PRONTI la Ready List

Nei sistemi operativi reali, spesso si combinanodiversi algoritmi di scheduling.Esempio: Multiple Level Feedback Queuespiù code, ognuna associata a un tipo di job diverso (batch, interattivi (I/O-BOUND), CPU-bound, etc.)ogni coda ha una diversa priorità: scheduling delle code con prioritàogni coda viene gestita con scheduling FCFS o Round Robini processi possono muoversi da una coda all’altra, in base alla lorostoria:•passaggio da priorità bassa ad alta: processi in attesa da molto tempo (feedback positivo)•passaggio da priorità alta a bassa: processi che hanno già utilizzato molto tempo di CPU (feedback negativo)

Page 19: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

Come funzionano gli INTERRUPT

Un’interruzione è un evento di natura asincrona, cioè può verificarsi in qualsiasi istante indipendentemente dalle azioni che sta svolgendo il processore.Esempi di eventi asincroni sono : la fine di un processo di stampa, la pressione di un tasto della tastiera o del mouse, etc…Un’interruzione sincrona invece è in corrispondenza di un evento di clock, ad esempio lo scadere del time-slice assegnato a un processo.

Page 20: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

Come funzionano gli INTERRUPT

Quando la CPU rileva la presenza di una richiesta di INTERRUPT deve necessariamente eseguire le seguenti azioni:

1.Completare l’esecuzione dell’istruzione che sta eseguendo2.Salvare le informazioni relative al processo in quel momento in esecuzione3.Eseguire la particolare procedura(ROUTINE) di gestione relativa al segnale di INTERRUPT4.Terminata la ROUTINE di gestione dell’interruzione, recuperare le informazioni relative al processo interrotto e riprendere l’esecuzione del processo interrotto dall’istruzione successiva all’ultima eseguita prima di gestire l’interruzione.

Page 21: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

Schema di funzionamento degli INTERRUPT

CPU

PC

REGISTRISTATUS

IR

MEMORIA

Istruzione 1

Istruzione 2

Istruzione 3

STATO PROCESSO

Il processore sta eseguendo l’istruzione 2 quando arriva un segnale di INTERRUPT

INTERRUZIONE

Il processore termina l’esecuzione dell’istruzione 2 e salva le informazioni sullo stato del processo in memoria.

Page 22: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

Schema di funzionamento degli INTERRUPT

CPU

PC

REGISTRISTATUS

IR

MEMORIA

Istruzione 1

Istruzione 2

Istruzione 3

STATO PROCESSO

Istruzione 1

Istruzione 2

Istruzione 3

Routine di interrupt

Il processore esegue la routine dell’interrupt

Al termine della routine di gestione dell’interrupt Vengono ricaricate le informazioni sul processo interrotto e l’esecuzione riprende dall’istruzione successiva a quella precedentemente interrotta.

Page 23: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT

La CPU ha un piedino INT dove riceve i segnali per la richiesta degli interrupt (INTERRUPT REQUEST).

Essendo l’unica linea sorge il problema di identificare il dispositivo che ha sollevato l’interruzione.Esistono 2 tecniche :1.POLLING2.INTERRUZIONI VETTORIZZATE

Page 24: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

GESTORE DEI PROCESSI

TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT

POLLINGLa tecnica del POLLING richiede che la CPU interroghi tutti i dispositivi finché non trova quello che ha generato l’interruzione.Siccome tale tecnica potrebbe impegnare la CPU in modo considerevole, si preferisce la tecnica dell’interrupt vettorizzato.

INTERRUPT VETTORIZZATOIl dispositivo che ha generato l’interrupt invia sul BUS un codice di riconoscimento che contiene l’indirizzo di un vettore (VETTORE DEGLI INTERRUPT) che contiene l’indirizzo di memoria iniziale della routine di gestione dell’interrupt.

VETTORE DEGLI INTERRUPT

0123456

30050

100

DISPOSITIVO

2

MEMORIA

100

ROUTINE

Page 25: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

… e il nostro programmino???

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

A=5; // alla variabile A è assegnato il valore 5READ(B); // la variabile B è assegnato un valore in INPUTC=A+B; // la variabile C contiene la somma A + B

R0 E Rn sono due registri della CPU, i registri sono delle memorie ad accesso veloce (nella gerarchie delle memorie sono al primo livello) che possono contenere o dati o un istruzione contenuti in una locazione di memoria.Prima di effettuare operazioni logico aritmetiche la CPU carica i dati su cui operare all’interno dei registri.

MOV R0,#5 carica il valore 5 nel registro R0MOV Rn,5 carica il contenuto della locazione di memoria di indirizzo 5 nel registro Rn (VALORE DI B)ADD R0,Rn somma i contenuti dei registri R0 e Rn e salva il risultato in un altro registro detto ACCUMULATORESTA 7 Salva il risultato nella locazione di memoria di indirizzo 7 ( VALORE DELLA VARIABILE C)

Page 26: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

… e il nostro programmino???

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

In nero l’istruzione da eseguire

Carica 5 nel registro R0

5R0

Rn

2PC MOV R0,#5IR

Page 27: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

… e il nostro programmino???

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

In nero l’istruzione da eseguire

Carica il valore della locazione di indirizzo 5 nel registro Rn

Carica il valore dalla locazione 5 in Rn

5

B

R0

Rn

3PC MOV Rn, 5IR

Page 28: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

… e il nostro programmino???

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

In nero l’istruzione da eseguire

SOMMA IL CONTENUTO DI R0 E Rne il risultato è memorizzato nel registro accumulatore.

5

B

R0

Rn

B+5

ACC 4PC ADD R0,RnIR

Page 29: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Menu• Struttura SO• Algoritmo• Programma• Processo• Gestione dei

Processi

… e il nostro programmino???

1234567

MOV R0,#5

MOV Rn,5

ADD R0,Rn

STA 7

VALORE DI B

VALORE DI C

In nero l’istruzione da eseguire

Abbiamo eseguito C=5+B4 istruzioni macchina

5

B

R0

Rn

B+5

ACC STA 7IR

Memorizza il contenuto del registro accumulatore nella locazione di memoria di indirizzo 7

Page 30: Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi.

Sistemi Operativi : Gestore dei processi

FINE PRESENTAZIONEA cura di Alberto Landi