kernel il nucleo del sistema operativo hw. la contesa della cpu la cpu è la componente più costosa...

19
Kernel Kernel Il nucleo del Sistema Operativo HW

Upload: flavio-federici

Post on 02-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Kernel

Kernel

Kernel

Kernel

Il nucleo delSistema Operativo

HWHW

Page 2: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

La Contesa della CPU

• La CPU è la componente più costosa e più importante di un computer

• Tutti i programmi necessitano della CPU per essere eseguiti ma la CPU è in genere unica

• Esiste un meccanismo di “contesa” della CPU• È quindi molto importante quel modulo del S.O. che organizza

la modalità con cui la CPU viene assegnata ai programmi

Page 3: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Compiti del Kernel

Le funzioni del “nucleo” di un S.O. sono:

1. Aggiornare lo “Stato” della CPU.

2. Decidere a chi assegnare la CPU

3. Assegnare la CPU

4. Rilasciare la CPU

Page 4: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Configurazione hardware

Sui PC la configurazione HW più frequente è:

1. Sistema multiprogrammabile.2. Cpu Unica 3. Più processori dedicati di i/o (controller usb,

hdmi, lan, wifi….)4. Più periferiche standard (mouse, printer, video…)5. Più memorie di massa (hdd, dvd…)

Page 5: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Processo

• Algoritmo = istruzioni organizzate e scritte che l’elaboratore deve eseguire secondo un certo ordine.

• Processo = fase di esecuzione dell’algoritmo a cui sono assegnate le risorse che egli chiede (cpu, ram, video, tastiera, mouse…)

Page 6: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Stati di un processo

Page 7: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Diagramma degli stati

Page 8: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Liste

• Nel Kernel esistono delle “liste” per ogni possibile stato di un processo

• In ogni lista ci sono indicati tutti i processi che si trovano nella specifica condizione

• Per esempio questa è la lista dei “ready”:

3156

1021

1022

3150

2040

2041

2045

1007

Page 9: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Kernel

La gestione dei processi è affidata ad una serie di

programmi che:

• Costituiscono il kernel• Sono sempre caricati e residenti in memoria centrale.

Page 10: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Programmi del Kernel

Job scheduler: si occupa di selezionare un lavoro dalle liste.

Process scheduler : sceglie il processo che potrà usare la cpu

Traffic controller: sposta i processi e aggiorna le liste

Interrupt manager: segnala alla cpu lo scambio di processi

Sincronizzazione : permette la comunicazione tra processi.

Page 11: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Job scheduler

1. Quando un lavoro viene richiesto dall’utente, viene messo nello stato HOLD (in un file speciale sul hdd)

2. Lo Schedulatore accede alla lista degli hold in cui ogni lavoro (job) è identificato da un numero (JCB job control block)

3. Ammissione: al momento opportuno lo Schedulatore dei lavori lo selezionerà tra gli altri per portarlo in memoria centrale passando allo stato READY.

HddLista hold

Lista ready

job

Page 12: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Job scheduler (JS)

• Lo JS preleva un lavoro dalla lista hold su disco fisso e lo manda in memoria nella lista dei ready.

Page 13: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

JCB = job control block

1. Identificativo del programma2. Occupazione in memoria (KB)3. Indirizzo sulla memoria di massa4. Identificativo periferica5. Puntatore allo JCB successivo

1. Identificativo del programma2. Occupazione in memoria (KB)3. Indirizzo sulla memoria di massa4. Identificativo periferica5. Puntatore allo JCB successivo

Il jcb contiene informazioni su:

Page 14: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Traffic controller

1. Il Controllore del traffico elimina il JCB dalla lista degli hold e crea un PCB (process control block) nella lista dei ready.

3156 1021 1022 3150 2040 2041 2045 1007 1009

Page 15: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

PCB = process control blockInformazioni nel PCB 1. PID, numero progressivo che identifica un processo2. ID del padre (il PCB che puntava ed esso)3. Il puntatore ai figli4. Lo stato del processo (ready, run…)5. Registro di salvataggio6. Indirizzo in memoria centrale7. Identificatore periferica8. File aperti

Page 16: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

From ready to run (dispatching)

• Quando la cpu è libera il Process Scheduler (PS) sceglie un processo ready da mandare alla cpu

• il Traffic Controller (TC) modifica il campo “stato” in “run”

A B C

HH LL

Page 17: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Uscita dallo stato run

1. Ci sono 3 eventi che portano a liberare la CPU da un processo e sono:

Lista dei running

Il processo

chiede i/o

processo

Il processo

ha terminat

o

È scaduto

il Time slice

HDD(ready)

Page 18: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Stato end

• Il passaggio allo stato end è detto “terminazione”.• Viene cancellato il suo PCB• Viene liberata la memoria

PCB 07 PCB 84

LISTA DEI READY (IN RAM)

Page 19: Kernel Il nucleo del Sistema Operativo HW. La Contesa della CPU La CPU è la componente più costosa e più importante di un computer Tutti i programmi necessitano

Ritorno allo stato di ready o wait

• Se viene esaurito il time slice il processo viene rimesso in coda alla cpu nello stato ready

• Se invece il processo chiede un i/o allora viene messo in attesa del device (wait), dopo aver utilizzato la risorsa i/o viene riportato in coda ready.