41

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

Embed Size (px)

Citation preview

Page 1: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 2: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 3: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 4: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 5: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 6: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 7: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 8: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 9: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 10: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 11: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

CONCLUSIONE - Nucleo (o Kernel)

• Interagisce direttamente con l’hardwareInteragisce direttamente con l’hardware• Si occupa dell’esecuzione dei programmiSi occupa dell’esecuzione dei programmi e della risposta agli e della risposta agli

eventi esterni generati dalle unità periferiche.eventi esterni generati dalle unità periferiche.• Scopo principaleScopo principale: : gestire i processigestire i processi corrispondenti ai corrispondenti ai

programmi che sono contemporaneamente attiviprogrammi che sono contemporaneamente attivi applicazioni utente processi di servizio

• Fornisce alle macchine virtuali di livello superiore la Fornisce alle macchine virtuali di livello superiore la visione di visione di un insieme di unità di elaborazione virtualiun insieme di unità di elaborazione virtuali ciascuna dedicata ciascuna dedicata a un processo presente in memoriaa un processo presente in memoria

• Gestisce il contesto di esecuzione dei vari processiGestisce il contesto di esecuzione dei vari processi• Attua una politica di alternanza (Attua una politica di alternanza (schedulingscheduling) nell’accesso alla ) nell’accesso alla

CPU da parte dei processi in esecuzione.CPU da parte dei processi in esecuzione.

Page 12: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

CPU

dati

controllo

indirizziBUS

Memoriadi lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

Nucleo: macchina astrattaNucleo: macchina astratta

Page 13: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

dati

controllo

indirizziBUS

Memoriadi lavoro

Memoria di massa

Interfaccia I/O

Video/tastiera(terminale)

Interfaccia I/O

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

CPUvirtuale

processo

… … …

Page 14: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 15: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 16: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 17: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 18: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 19: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 20: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 21: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

Interruzione interna

• L’esecuzione di un processo attivo si interrompe ad es. per operazioni di input/output (operazioni costose in termini di tempo)

• Lo stato corrente (contenuto registri ecc) del processo interrotto viene salvato in memoria

• Il processo passa allo stato in attesa• Il controllo passa ad un processo di sistema che assegna la

CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU)

Page 22: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

Interruzioni interne

attivopronto

Salvastato

Ripristinastato

Fine

Inizio

Page 23: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

Interruzioni esterne• Una periferica segnala la fine di un operazione• L’esecuzione del processo corrente viene interrotta • (il processo passa allo stato pronto) e passa al gestore delle

interruzioni – Quindi interruzioe esterna perche’ riguarda le operazioni di un’altro processo!

• Il gestore delle interruzioni provvede a trasferire dati in memoria e risvegliare il processo in attesa che passa allo stato pronto

• Il controllo passa poi al nucleo che manda in esecuzione uno dei processi in stato pronto

• Il gestore lavora con interruzioni disabilitate

Page 24: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

Interruzioni esterne

attivopronto

attesa

Salvastato

Ripristinastato

Fine

Inizio

Acknowledg. operazione

Page 25: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

CREAZIONE: un processo utente INVOCA l’operazione

processo padre: processo invocanteprocesso figlio: processo creato

caratteristiche del processo• ereditate dal processo padre• parametri interni

fasi• verifica della congruità dei parametri di chiamata• assegnazione di un identificatore valido•individuazione delle risorse necessarie

Page 26: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

TERMINAZIONE DI UN PROCESSO

Determina il rilascio delle risorse possedute e l’avvio delle attività previste per la chiusura del programma

Invocato• dal programma stesso• dal s.o. per necessità interne• Richiesto da un altro processo• quando avviene un’anomalia nell’esecuzione del processo• un’operazione di I/O di cui non si avevano i diritti

Page 27: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

COMMUTAZIONE DI UN PROCESSO (context switch)

OPERAZIONE CHE DETERMINA L’AVVICENDAMENTO DEI PROCESSI NELL’USO DELLA CPU

I valori posseduti nei registri vengono salvati nel PCB, mente i valori del nuovo processo (quando passa in stato di run) vengono prelevati dal PCB e spostati nei registri della CPU.Tale operazione impiega fino ad 1 millisecondo

Page 28: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

LIMITI DEL MODELLO A PROCESSI• Lentezza delle operazioni fondamentali:– Creazione e commutazione sono operazioni complesse

• Inadeguatezza dello scambio dati:– Lo scambio messaggi utilizzato per il trasferimento di un

dato da un processo ad un altro è accettabile solo per poche informazioni

Funzioni e informazioni necessarie allo scambio di contesto e all’avanzamento del processo

Funzioni e informazioni necessarie al possesso e controllo delle risorse

Page 29: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

IL THREAD (flusso di esecuzione)

Si è scomposto il processo in un insieme di flussi sequenziali di istruzioni (ll thread) ognuno caratterizzato dalla propria evoluzione anche contemporanea con altri flussi, mentre si è lasciato all’entità logica “processo” il compito di possedere e condividere tutti i thread.

Page 30: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

APPROCCIO TRADIZIONALE – processo un solo thread (single-thread)

In genere il thread è dato dalla sequenza del PC durante l’esecuzione del processo (ad ex 2502, 2503, 2504, 2505, 2506, 2504, 2505, 2506, 2504, 2505, 2506, 2507

L’esistenza di un solo thread in un processo significa che al processo può essere assegnato un solo processore

In memoria ci sono il codice del programma, i dati, lo stack, il PCB, lo spazio di servizio per la gestione del thread da parte del s.o.

Page 31: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

APPROCCIO TRADIZIONALE – processo con un solo thread (single-thread)

Il processo è contraddistinto dal PCB con tutte le informazioni, ma le informazioni dinamiche (dati codici, diritti, informazioni sulla risorse) sono contenute in un’altra tabella chiamata TCB = thread control block che segue la vita del thread.CREAZIONE, TERMINAZIONE, COMMUTAZIONE coinvolgono solo il TCB. Quando più processi sono in esecuzione , ad ogni processo è associato un solo thread.

Page 32: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più thread

In sistemi dove sono presenti più di un processore e quando i s.o. sanno gestire processi con più flussi di informazione (più thread), è possibile fare eseguire i thread contemporaneamente in parallelo rendendo più veloce l’esecuzione del programma.

In questo caso i thread condividono lo stesso spazio di memoria e lo stesso file.

La struttura complessiva del processo è diversa perché deve tener conto della presenza di più thread.

Page 33: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più thread

Esempio: thread di WORD:• Gestione tastiera – immissione testo -

memorizzazione in MC• Formattazione del testo• Salvataggio periodico sull’ HD

Page 34: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più threadIn comune ai thread di uno stesso processo ci sono:• il codice• I dati• Il PCB• Lo spazio per la gestione dei file• Ogni thread ha un proprio PC• Ogni thread ha propri registri• Ogni thread ha propri stack

Le informazioni contenute nel PC, registri e stack servono per tener conto dello stato di esecuzione del singolo thread e sono contenute nel TCB

Page 35: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 36: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più thread

Il processo ha un suo PCB, ma ogni thread del processo:

• è indipendente dagli altri • Ha un suo TCB riservato• Condivide le informazioni comuni con tutti gli

altri thread• Ogni thread può avanzare– parallelamente agli altri thread del processo stesso

(multiprocessor) oppure– avanzamento alternato (monoprocessor)

Page 37: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più thread

risolve:problema della lentezza delle operazioni fondamentali : scambio di poche informazioni (nei registri : + veloce)

• problema dello scambio delle informazioni : si utilizza la memoria comune assegnata al processo dove le informazioni sono a disposizione di tutti i thread alla quale tutti i thread possono accedere non si ha più lo scambio delle informazioni che sono sempre a disposizione.

Page 38: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione

PROCESSO con più thread

esempio: SITO WEB:L’applicazione che lo gestisce si chiama server, è

sempre attiva in attesa delle richieste dei client.Quando arriva la richiesta di utilizzo di un file,

l’applicazione server risponde inviando le informazioni richieste.

Si può pensare di avviare un processo per ogni client riducendo i tempi di risposta del server.

Page 39: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 40: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione
Page 41: CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione