• Non ci sono risultati.

Corso di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Informatica"

Copied!
12
0
0

Testo completo

(1)

08/08/2013 M. Malatesta 2-Stati di un processo-05

1

Modulo T3

2-Stati di un processo

Corso di Informatica

Prerequisiti

 Concetto intuitivo di coda

 Cooperazione e competizione

 Prerilascio di una risorsa

 Concetto intuitivo di interruzione

(2)

08/08/2013 M. Malatesta 2-Stati di un processo-05

3

Introduzione

I primi elaboratori richiedevano ai programmatori ampie conoscenze dell’hardware sottostante (memoria, processore, unità a disco, ecc) Le tecnologie informatiche portarono allo sviluppo di software di base che

evitava al programmatore di dover conoscenze la parte elettronica del computer: il sistema operativo (SO).

Quali criteri può seguire il nucleo per assegnare la CPU ai processi?

Cosa succede se un processo richiede un’operazione di I/O?

Come rappresentare gli stati in cui si può trovare un processo?

Un processo che svolge calcoli ha priorità rispetto a uno che fa I/O?

A queste domande diamo una risposta in questa Unità.

08/08/2013 M. Malatesta 2-Stati di un processo-05

4

Stati di un processo

Durante il suo ciclo di vita, l’avanzamento di un processo può essere considerato come una serie di transizioni di stato.

Normalmente, per semplicità didattica, consideriamo un sistema hardware monoprocessore. Distinguiamo i soli tre stati seguenti:

1. attesa 2. pronto 3. esecuzione

Il passaggio di un processo da uno stato ad un altro prende il nome di transizione ed è effettuato dal nucleo in base a delle tecniche che vedremo in seguito.

(3)

08/08/2013 M. Malatesta 2-Stati di un processo-05

5

Stati di un processo

- attesa

Un processo P si trova in stato di attesa, o blocco, quando esso attende l’ottenimento di una risorsa (hardware o software) esterna alla CPU.

Possiamo distinguere:

 attesa passiva (il processo non occupa la risorsa e quando questa si libera segnala la sua disponibilità, mediante la tecnica delle interruzioni)

 attesa attiva (il processo detiene la risorsa fino a quando non si liberi, tecnica nota come busy waiting).

I processi in attesa, sono mantenuti in una lista dei processi bloccati..

Uno dei motivi per cui un processo P va in stato di attesa potrebbe essere la necessità di sincronizzarsi con un altro processo P’. Quando la

sincronizzazione avviene, P viene rimosso dallo stato di blocco.

Stati di un processo

- pronto

Un processo P si trova in stato di pronto quando esso attende il solo ottenimento della CPU per poter avanzare, disponendo di tutte le altre risorse.

I processi in stato di pronto (più precisamente i loro descrittori) sono mantenuti in una lista detta lista dei pronti (ready list).

La lista dei pronti viene mantenuta ordinata e gestita come una coda semplice o come una coda con priorità.

(4)

08/08/2013 M. Malatesta 2-Stati di un processo-05

7

Stati di un processo

- esecuzione

Un processo P si trova in stato di esecuzione quando, disponendo di tutte le risorse (la CPU e tutte quelle di cui necessita), avanza realmente.

08/08/2013 M. Malatesta 2-Stati di un processo-05

8

Grafo degli stati

Le transizioni di un processo da uno stato ad un altro possono essere rappresentate mediante il seguentte schema, detto grafo degli stati.

(5)

08/08/2013 M. Malatesta 2-Stati di un processo-05

9

Transizioni di stato

- pronto    esecuzione 

Quando il processore si rende libero, il nucleo decide quale processo prelevare dalla ready list e gli si assegna il processore, consentendogli così di avanzare.

Il nucleo sceglie di volta in volta il processo da mandare in esecuzione, in base ad un algoritmo detto schedulatore a basso livello o schedulatore a breve termine (short term scheduler), o semplicemente schedulatore che sfrutta tecniche descritte più avanti..

Quando l’avanzamento di un processo si interrompe in favore di un altro, si dice che avviene una commutazione di contesto (context switching).

Ovviamente questa operazione richiede il salvataggio ed il conseguente caricamento dei registri, della mappa della memoria, di tabelle, liste ecc.

Transizioni di stato

- esecuzione    pronto 

Il nucleo toglie al processo P in corso di esecuzione l’uso della CPU e P commuta in stato di pronto.

Ciò può avvenire quando:

 il processo P termina;

 scade il quanto di tempo di CPU assegnato a P;

 sopraggiunge un processo P’ a priorità maggiore.

Negli ultimi due casi si ha il prerilascio della risorsa CPU da parte di P.

(6)

08/08/2013 M. Malatesta 2-Stati di un processo-05

11

Transizioni di stato

- esecuzione    blocco 

Il processo P per avanzare necessita di una risorsa diversa dalla CPU; sono necessari i seguenti passi:

 P richiede la risorsa attraverso una chiamata di sistema al nucleo;

 il nucleo verifica se esiste un processo P’ in grado di soddisfarla;

 se P’ è disponibile, il nucleo sincronizza P con P’ e quando sarà il suo turno, P riprenderà ad avanzare.

Ovviamente, il nucleo nel sincronizzare i processi, dovrà verificare se si tratti di una competizione per l’uso di una stessa risorsa, o se di una cooperazione.

Naturalmente, nel caso di sistemi multiprocessore, al nucleo spetterà il delicato compito di gestire il flusso di tutti i processi sui vari processori e tutte le interazioni fra i vari processi che possono essere contemporaneamente in memoria o in esecuzione.

08/08/2013 M. Malatesta 2-Stati di un processo-05

12

Transizioni di stato

- esecuzione    blocco 

Se P’ è un processo, la sincronizzazione avviene mediante una chiamata di sistema al nucleo.

Se P’ è uno pseudoprocesso (come i driver di I/O, che hanno il compito di far comunicare i processi con i dispositivi di I/O), la sincronizzazione avviene mediante il trattamento di un segnale di interruzione.

Quando un processo richiede l’intervento di un dispositivo di I/O:

1. il processo viene posto dal nucleo in stato di blocco fino all’arrivo del segnale di interruzione da parte del dispositivo.

2. il segnale di interruzione produce il wake up del driver corrispondente che trasferisce il dato.

3. il processo richiedente viene risvegliato

(7)

08/08/2013 M. Malatesta 2-Stati di un processo-05

13

Transizioni di stato

- blocco     pronto

Il processo viene risvegliato, cioè ottiene la risorsa richiesta e solo potenzialmente è in grado di avanzare (waking up).

Viene inserito nella ready list e al momento opportuno passerà in stato di esecuzione.

Struttura del nucleo

Il nucleo, o kernel, è costituito da un insieme di routine assembly, che risiede in una apposita area di memoria principale.

Gli algoritmi del nucleo che svolgono le transizioni di stato di un processo devono essere veloci per evitare che il nucleo occupi troppo tempo macchina, sottraendolo ai processi utente.

Dato che le dimensioni del nucleo vanno generalmente mantenute ridotte (nucleo minimo) è interessante notare che le sue routine assembly possono essere implementate attraverso firmware e in tal caso si hanno notevoli vantaggi in termini di velocità operativa (nucleo microprogrammato).

(8)

08/08/2013 M. Malatesta 2-Stati di un processo-05

15

Kernel mode e user mode

Come sappiamo, il nucleo ha il compito di gestire le risorse in modo che gli utenti non possano usufruirne direttamente e ciò per motivi di sicurezza e integrità dell’intero sistema.

Una delle soluzioni adottate a questo scopo è fare in modo che l’esecuzione di istruzioni potenzialmente pericolose, dette istruzioni privilegiate sia compito esclusivo del nucleo del SO.

Quando è in esecuzione il nucleo del SO si dice che la CPU è in stato supervisore (Kernel Mode), altrimenti si dice che si trova in stato problema (User Mode).

08/08/2013 M. Malatesta 2-Stati di un processo-05

16

Kernel mode e user mode

La transizione da User Mode a Kernel Mode si verifica proprio grazie alle istruzioni (non privilegiate) che abbiamo già definito chiamate di sistema o SC (Supervisor Call o System Call) che possono essere indicate con

SC (parametro)

dove parametro indica il particolare servizio richiesto al nucleo.

(9)

08/08/2013 M. Malatesta 2-Stati di un processo-05

17

Kernel mode e user mode

La transizione da Kernel Mode a User Mode avviene invece con una istruzione privilegiata che restituisce la CPU al processo interrotto e che ha la forma

LPS (parola_di _stato)

dove parola_di_stato indica l’indirizzo di memoria che contiene la rappresentazione del nuovo stato in cui si dovrà portare subito dopo l’esecuzione dell’istruzione LPS()

Interruzioni

Quindi il compito delle routine del nucleo è quello di gestire le interruzioni. Possiamo avere i seguenti tipi di interruzione :

 interne (sincrone): causate dall’esecuzione di un’istruzione cui consegue la chiamata di primitive del sistema del tipo SVC() (ad esempio, l’istruzione int(i) con cui si chiede l’utilizzo di un interrupt i);

 esterne (asincrone): causate da dispositivi esterni alla CPU (pseudoprocessi).

(10)

08/08/2013 M. Malatesta 2-Stati di un processo-05

19

La portabilità

La portabilità di un programma si riferisce alla possibilità di adattarlo, con il minimo sforzo e le minime modifiche, ad un’altra piattaforma hardware o software nella quale presenti le stesse funzionalità.

Quindi definendo in modo astratto (indipendente dalla particolare macchina concreta) le funzioni del nucleo, si comprende come sia possibile implementarle su una macchina diversa, in modo però che esibiscano lo stesso comportamento.

08/08/2013 M. Malatesta 2-Stati di un processo-05

20

Il successo di UNIX

UNIX (e tutte le distribuzioni basate su questo, come Linux) deve la sua diffusione alla sua maggiore portabilità rispetto ad altri SO.

Gli ideatori (D.Ritchie e K Thompson) hanno scritto tutto il SO linguaggio C, mentre alcune parti del nucleo sono scritte in assembly della macchina ospite.

Queste parti vengono riassemblate (trasformate in esegsuibile) lle varie piattaforme e consentono di avere l’intero SO disponibile con tute le sue funzionalità

(11)

08/08/2013 M. Malatesta 2-Stati di un processo-05

21

API e portabilità

Spesso tra il nucleo e i programmi degli utenti viene interposto un ulteriore strato software costituito dalle API (Application Program Interface).

Le API:

 sono una serie di funzioni raccolte in una libreria che consentono all’utente di utilizzare facilmente i molti servizi del nucleo (SC per i processi, per i file, per la memoria, ecc);

 dipendono dal particolare SO ma conservano la stessa interfaccia. La loro implementazione in diversi ambienti è lasciata al progettista del compilatore C, ma resta assicurata la portabilità dei programmi utente.

Argomenti

 Stati di un processo – attesa

– pronto – esecuzione

 Grafo degli stati

 Transizioni di stato – pronto  esecuzione – esecuzione  pronto – esecuzione  blocco – blocco  pronto

 Struttura del nucleo

 Kernel mode e user mode

 interruzioni

 La portabilità

 Il successo di UNIX

 API e portabilità

(12)

08/08/2013 M. Malatesta 2-Stati di un processo-05

23

Altre fonti di informazione

 A. Lorenzi, D.Rossi – I fondamenti della programmazione-ATLAS

Riferimenti

Documenti correlati

ALE PIANGE, È TRISTE E NON SA COME FARE, MA ECCO NOEMI CHE LO CHIAMA A GIOCARE:!. "VIENI CON ME SULLO SCIVOLO ROSSO, CI DIVERTIAMO A PIÙ

Il rango di una matrice e’ l’ordine massimo dei suoi minori nonsingolari.. Sia A una matrice di

Si pu` o dunque dividere la parte baricentrale, che risulta libera, da quella del moto relativo che risulta armonica. Per i fermioni bisogna opportunamente scegliere la parte di spin

o più archi uguali e conduciamo le tangenti nei punti di divisione otteniamo un poligono regolare circoscritto alla circonferenza. I triangoli AMB , BNC , CPD , DQE , ERF

Possiamo finalmente dimostrare che all’interno del disco dove converge uniforme- mente sui compatti, una serie di potenze definisce una funzione olomorfa... Allora f e tutte le

NETTUNO – Network per l’Università ovunque Corso: Laurea a distanza in Ingegneria Informatica Insegnamento: Reti di Calcolatori II..

Anche se non esistono trial clinici randomizzati e control- lati che dimostrano l’efficacia delle mascherine a livello di popolazione per rallentare il contagio e non tutte le

4 A. L ONATI , L’astensione del difensore dalle udienze nei processi con imputati in custodia cautelare: in attesa di un intervento del legislatore riemerge per il giudice il