Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoMarietta Bassi Modificato 10 anni fa
1
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Gestione dei Processi
2
Algoritmo Dal problema all’algoritmo
Menu Dal problema all’algoritmo 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. L’algoritmo descrive le istruzioni da eseguire per giungere alla soluzione di un problema. Struttura SO Algoritmo Programma Processo Gestione dei Processi
3
Proprietà principali di un algoritmo
Menu Proprietà principali di un algoritmo La 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
4
Dall’algoritmo al programma
Menu Dall’algoritmo al programma Il Blocco di Input Struttura SO Algoritmo Programma Processo Gestione dei Processi Leggi A Può essere tradotto in un linguaggio con l’istruzione Read A; ISTRUZIONE La struttura condizionale A>10 A=A+1 A=A-1 F V può essere tradotta nelle seguenti istruzioni: if (A>10) THEN A=A-1 ELSE A=A+1
5
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. Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi COMPILATORE CODICE SORGENTE CODICE OGGETTO
6
Dal linguaggio di programmazione al linguaggio macchina
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 COMPILAZIONE 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
7
1 2 3 4 5 6 7 Menu ISTRUZIONI MACCHINA MOV R0, #5 MOV Rn, 5 ADD R0,Rn
STA 7 Struttura SO Algoritmo Programma Processo Gestione dei Processi Le istruzioni del programma, cosi come le variabili usate dal programma sono memorizzate in memoria. 1 2 3 4 5 6 7 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
1 2 3 4 5 6 7 Le istruzioni del programma sono memorizzate dalla locazione 1 alla locazione 4 MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi I dati su cui operano le istruzioni sono contenute nella locazione di indirizzo 5 e nella locazione di indirizzo 7 BUS CPU 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
9
1 2 3 4 5 6 7 Il programma caricato in memoria prende il nome di Processo. MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi Un processo pronto per l’esecuzione , attende che la risorsa CPU sia disponibile per poter eseguire le proprie istruzioni.
10
GESTORE 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.
11
Il SO tiene traccia dei processi presenti attraverso il PCB
GESTORE DEI PROCESSI Menu Struttura SO Algoritmo Programma Processo Gestione 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. 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
12
Ready(Pronto per l’esecuzione)
GESTORE DEI PROCESSI Menu Struttura SO Algoritmo Programma Processo Gestione 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
13
DIAGRAMMA DI TRANSIZIONE DEGLI STATI
GESTORE DEI PROCESSI Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi DIAGRAMMA DI TRANSIZIONE DEGLI STATI RUN Un processo passa dallo stato RUN allo stato WAIT quando richiede e attende il completamento di un’operazione di I/O. 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. READY WAIT 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.
14
DIAGRAMMA DI TRANSIZIONE DEGLI STATI
GESTORE DEI PROCESSI Menu Struttura SO Algoritmo Programma Processo Gestione dei Processi DIAGRAMMA DI TRANSIZIONE DEGLI STATI RUN ASSEGNAZIONE CPU Richiesta I/O INTERRUPT O TIME-SLICE SCADUTO READY WAIT Completamento I/O
15
La lista dei processi PRONTI la Ready List
GESTORE DEI PROCESSI Menu La lista dei processi PRONTI la Ready List Struttura SO Algoritmo Programma Processo Gestione dei Processi 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
L’algoritmo di scheduling Round-Robin
GESTORE DEI PROCESSI Menu L’algoritmo di scheduling Round-Robin Struttura SO Algoritmo Programma Processo Gestione dei Processi L’algoritmo che già conosciamo va sotto il nome di Round-Robin Tale 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.
17
La lista dei processi PRONTI la Ready List
GESTORE DEI PROCESSI Menu La lista dei processi PRONTI la Ready List Struttura SO Algoritmo Programma Processo Gestione dei Processi 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.
18
La lista dei processi PRONTI la Ready List
GESTORE DEI PROCESSI Menu La lista dei processi PRONTI la Ready List Struttura SO Algoritmo Programma Processo Gestione dei Processi 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 all’altra, 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
Come funzionano gli INTERRUPT
GESTORE DEI PROCESSI Menu Come funzionano gli INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi 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.
20
Come funzionano gli INTERRUPT
GESTORE DEI PROCESSI Menu Come funzionano gli INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi Quando la CPU rileva la presenza di una richiesta di INTERRUPT deve necessariamente eseguire le seguenti azioni: Completare l’esecuzione dell’istruzione che sta eseguendo Salvare le informazioni relative al processo in quel momento in esecuzione Eseguire la particolare procedura(ROUTINE) di gestione relativa al segnale di INTERRUPT 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.
21
Schema di funzionamento degli INTERRUPT
GESTORE DEI PROCESSI Menu Schema di funzionamento degli INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi MEMORIA Istruzione 1 Istruzione 2 Istruzione 3 STATO PROCESSO Il processore sta eseguendo l’istruzione 2 quando arriva un segnale di INTERRUPT INTERRUZIONE CPU PC REGISTRI STATUS IR Il processore termina l’esecuzione dell’istruzione 2 e salva le informazioni sullo stato del processo in memoria.
22
Schema di funzionamento degli INTERRUPT
GESTORE DEI PROCESSI Menu Schema di funzionamento degli INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi MEMORIA Istruzione 1 Istruzione 2 CPU PC REGISTRI STATUS IR Istruzione 3 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. Routine di interrupt Il processore esegue la routine dell’interrupt STATO PROCESSO Istruzione 1 Istruzione 2 Istruzione 3
23
TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT
GESTORE DEI PROCESSI Menu TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi 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 : POLLING INTERRUZIONI VETTORIZZATE
24
TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT
GESTORE DEI PROCESSI Menu TECNICHE DI RICONOSCIMENTO DEGLI INTERRUPT Struttura SO Algoritmo Programma Processo Gestione dei Processi POLLING La 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 VETTORIZZATO Il 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. MEMORIA 100 ROUTINE VETTORE DEGLI INTERRUPT 1 2 3 4 5 6 300 50 100 DISPOSITIVO 2
25
1 2 3 4 5 6 7 … e il nostro programmino??? Menu MOV R0,#5
Struttura SO Algoritmo Programma Processo Gestione dei Processi 1 2 3 4 5 6 7 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 MOV R0,#5 carica il valore 5 nel registro R0 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 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
1 2 3 4 5 6 7 … e il nostro programmino??? Menu MOV R0,#5 MOV Rn,5
Struttura SO Algoritmo Programma Processo Gestione dei Processi 1 2 3 4 5 6 7 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 5 R0 Rn 2 PC MOV R0,#5 IR
27
1 2 3 4 5 6 7 … e il nostro programmino??? Menu MOV R0,#5 MOV Rn,5
Struttura SO Algoritmo Programma Processo Gestione dei Processi 1 2 3 4 5 6 7 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 3 PC MOV Rn, 5 IR
28
1 2 3 4 5 6 7 … e il nostro programmino??? Menu MOV R0,#5 MOV Rn,5
Struttura SO Algoritmo Programma Processo Gestione dei Processi 1 2 3 4 5 6 7 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 Rn e il risultato è memorizzato nel registro accumulatore. 5 B R0 Rn B+5 ACC 4 PC ADD R0,Rn IR
29
1 2 3 4 5 6 7 … e il nostro programmino??? Menu MOV R0,#5 MOV Rn,5
Struttura SO Algoritmo Programma Processo Gestione dei Processi 1 2 3 4 5 6 7 MOV R0,#5 MOV Rn,5 ADD R0,Rn STA 7 VALORE DI B VALORE DI C In nero l’istruzione da eseguire Memorizza il contenuto del registro accumulatore nella locazione di memoria di indirizzo 7 Abbiamo eseguito C=5+B 4 istruzioni macchina 5 B R0 Rn B+5 ACC STA 7 IR
30
Sistemi Operativi : Gestore dei processi
FINE PRESENTAZIONE A cura di Alberto Landi
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.