La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Menu Struttura di un SO Struttura SO Algoritmo Programma Processo Gestione dei Processi."— Transcript della presentazione:

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

2 Menu Dal problema allalgoritmo Chiamiamo 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. Algoritmo Un algoritmo è un insieme di istruzioni chiare e non ambigue, effettivamente calcolabili, che eseguito fornisce un risultato in una quantità di tempo finita. Lalgoritmo descrive le istruzioni da eseguire per giungere alla soluzione di un problema. Struttura SO Algoritmo Programma Processo Gestione dei Processi

3 Menu Proprietà principali di un algoritmo La sequenza di istruzioni che compone un algoritmo deve essere: finita : lesecutore 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 lazione descritta sia effettuata allo stesso modo da qualsiasi esecutore. eseguibile - effettivamente calcolabili ciascuna azione deve rientrare nelle effettive capacità dellesecutore. Lesecutore di un algoritmo non devessere necessariamente un automa ma può essere anche un sistema biologico. Struttura SO Algoritmo Programma Processo Gestione dei Processi

4 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi Leggi A A>10 A=A+1 A=A-1 FV Può essere tradotto in un linguaggio con listruzione Read A; ISTRUZIONE La struttura condizionale può essere tradotta nelle seguenti istruzioni: if (A>10) THEN A=A-1 ELSE A=A+1 Dallalgoritmo al programma Il Blocco di Input

5 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 allesecutore è necessaria la compilazione. La compilazione consiste nel tradurre lintero 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. COMPILATORE CODICE SORGENTECODICE OGGETTO

6 Menu Dal linguaggio di programmazione al linguaggio macchina Traduciamo un semplice programma, che effettua la somma di due numeri A=5; // alla variabile A è assegnato il valore 5 READ(B); // la variabile B è assegnato un valore in INPUT C=A+B; // la variabile C contiene la somma A + B Struttura SO Algoritmo Programma Processo Gestione dei Processi Mostriamo una traduzione possibile nel linguaggio macchina (in realtà è un linguaggio detto assembly) del programma MOV R0, #5 MOV Rn, 5 ADD R0,Rn STA 7 Non preoccupatevi se risulta incomprensibile al momento, lo dettaglieremo di seguito COMPILAZIONE

7 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi ISTRUZIONI MACCHINA MOV R0, #5 MOV Rn, 5 ADD R0,Rn STA 7 Le istruzioni del programma, cosi come le variabili usate dal programma sono memorizzate in memoria 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

8 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C I 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 lesecutore delle istruzioni, quindi sono previsti meccanismi per cui le istruzioni da eseguire sono trasferite dalla memoria allUNITA CENTRALE DI ELABORAZIONE

9 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C Un processo pronto per lesecuzione, attende che la risorsa CPU sia disponibile per poter eseguire le proprie istruzioni. Il programma caricato in memoria prende il nome di Processo.

10 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi Nei sistemi operativi MULTITASKING sono presenti più processi in esecuzione che competono per luso 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

11 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi Tra le informazioni principali esso conserva: Program Counter (lindirizzo 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 processoI/O 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.

12 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 unistruzione di I/O. Ready(Pronto per lesecuzione) Un processo si trova nello stato READY quando dispone di tutte le risorse necessarie al suo avanzamento ed è in attesa dellassegnazione della CPU Nella slide successiva vedremo il diagramma di transizioni degli stati di un processo

13 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 lesecuzione di un INTERRUPT per cui necessità della CPU per «servire» la gestione dellinterrupt. Un processo passa dallo stato RUN allo stato WAIT quando richiede e attende il completamento di unoperazione di I/O. Un processo torna nello stato READY quando loperazione richiesta di I/O stata completata e ha tutte le risorse a disposizione per competere all assegnazione della CPU.

14 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 INTERRUPT O TIME-SLICE SCADUTO ASSEGNAZIONE CPU

15 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).

16 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi GESTORE DEI PROCESSI Lalgoritmo di scheduling Round-Robin Lalgoritmo che già conosciamo va sotto il nome di Round-Robin Tale algoritmo assegna una stessa quantità di tempo ad ogni processo nellutilizzo 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). Lalgoritmo 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 lutilizzo della CPU.

17 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 nellassegnazione 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 allutilizzo 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.

18 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 combinano diversi algoritmi di scheduling. Esempio: Multiple Level Feedback Queues più 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 Robin i processi possono muoversi da una coda allaltra, in base alla loro storia: 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)

19 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi GESTORE DEI PROCESSI Come funzionano gli INTERRUPT Uninterruzione è 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… Uninterruzione sincrona invece è in corrispondenza di un evento di clock, ad esempio lo scadere del time-slice assegnato a un processo.

20 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 lesecuzione dellistruzione che sta eseguendo 2.Salvare le informazioni relative al processo in quel momento in esecuzione 3.Eseguire la particolare procedura(ROUTINE) di gestione relativa al segnale di INTERRUPT 4.Terminata la ROUTINE di gestione dellinterruzione, recuperare le informazioni relative al processo interrotto e riprendere lesecuzione del processo interrotto dallistruzione successiva allultima eseguita prima di gestire linterruzione.

21 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi GESTORE DEI PROCESSI Schema di funzionamento degli INTERRUPT CPU PC REGISTRI STATUS IR MEMORIA Istruzione 1 Istruzione 2 Istruzione 3 STATO PROCESSO Il processore sta eseguendo listruzione 2 quando arriva un segnale di INTERRUPT INTERRUZIONE Il processore termina lesecuzione dellistruzione 2 e salva le informazioni sullo stato del processo in memoria.

22 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi GESTORE DEI PROCESSI Schema di funzionamento degli INTERRUPT CPU PC REGISTRI STATUS IR MEMORIA Istruzione 1 Istruzione 2 Istruzione 3 STATO PROCESSO Istruzione 1 Istruzione 2 Istruzione 3 Routine di interrupt Il processore esegue la routine dellinterrupt Al termine della routine di gestione dellinterrupt Vengono ricaricate le informazioni sul processo interrotto e lesecuzione riprende dallistruzione successiva a quella precedentemente interrotta.

23 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 lunica linea sorge il problema di identificare il dispositivo che ha sollevato linterruzione. Esistono 2 tecniche : 1.POLLING 2.INTERRUZIONI VETTORIZZATE

24 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi GESTORE DEI PROCESSI TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT POLLING La tecnica del POLLING richiede che la CPU interroghi tutti i dispositivi finché non trova quello che ha generato linterruzione. Siccome tale tecnica potrebbe impegnare la CPU in modo considerevole, si preferisce la tecnica dellinterrupt vettorizzato. INTERRUPT VETTORIZZATO Il dispositivo che ha generato linterrupt invia sul BUS un codice di riconoscimento che contiene lindirizzo di un vettore (VETTORE DEGLI INTERRUPT) che contiene lindirizzo di memoria iniziale della routine di gestione dellinterrupt. VETTORE DEGLI INTERRUPT DISPOSITIVODISPOSITIVO 2 MEMORIA 100 ROUTINE

25 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi … e il nostro programmino??? 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 5 READ(B); // la variabile B è assegnato un valore in INPUT C=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 allinterno dei registri. MOV R0,#5 carica il valore 5 nel registro R0 MOV 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 ACCUMULATORE STA 7 Salva il risultato nella locazione di memoria di indirizzo 7 ( VALORE DELLA VARIABILE C)

26 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi … e il nostro programmino??? MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C In nero listruzione da eseguire Carica 5 nel registro R0 5 R0 Rn 2 PC MOV R0,#5 IR

27 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi … e il nostro programmino??? MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C In nero listruzione 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 3 PC MOV Rn, 5 IR

28 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi … e il nostro programmino??? MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C In nero listruzione da eseguire SOMMA IL CONTENUTO DI R0 E Rn e il risultato è memorizzato nel registro accumulatore. 5 B R0 Rn B+5 ACC 4 PC ADD R0,Rn IR

29 Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi … e il nostro programmino??? MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C In nero listruzione da eseguire Abbiamo eseguito C=5+B 4 istruzioni macchina 5 B R0 Rn B+5 ACC STA 7 IR Memorizza il contenuto del registro accumulatore nella locazione di memoria di indirizzo 7

30 Sistemi Operativi : Gestore dei processi FINE PRESENTAZIONE A cura di Alberto Landi


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

Presentazioni simili


Annunci Google