Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni...

14
© 2015 Giorgio Porcu - Aggiornamennto 27/11/2015 ISTITUTO TECNICO SECONDO BIENNIO TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo Ripasso GIORGIO PORCU www.thegiorgio.it © 2015 Giorgio Porcu - Aggiornamennto 27/11/2015 TECNOLOGIE E PROGETTAZIONE Ripasso Il Sistema Operativo Sommario Concetti di base Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi di Scheduling Gestione della Memoria Caricamento di un Programma 2

Transcript of Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni...

Page 1: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

ISTITUTO TECNICO SECONDO BIENNIO

TECNOLOGIE E PROGETTAZIONE

Il Sistema Operativo Ripasso

GIORGIO PORCU www.thegiorgio.it

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Sommario

• Concetti di base Sistema Operativo

Risorse

Funzioni e Struttura

Bootstrap, Kernel, Shell

• Gestione dei Processi Processo e PCB

Algoritmi di Scheduling

• Gestione della Memoria Caricamento di un Programma

2

Page 2: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

Ripasso TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo

Concetti di base

3

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Definizione

• Sistema Operativo Software di base, essenziale al funzionamento di

un computer: Gestisce l’hardware del computer

Consente al software applicativo di interagire con le risorse hardware (interfaccia applicazioni-risorse)

Consente all’utente finale di utilizzare il computer senza conoscere i dettagli dell’hardware

(interfaccia utente)

4

Page 3: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Rappresentazione grafica

Sistema Operativo

SW applicativo

HW

5

Utente

Il funzionamento di un Sistema Operativo può essere rappresentato da un diagramma a livelli:

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Risorse

• Risorse Elementi HW e SW utilizzabili da un programma.

• Risorse Hardware Insieme dei dispositivi hardware effettivamente

utilizzabili da un programma su un computer. Le risorse hardware sono:

Limitate Non sempre accessibili in un certo istante di tempo

Ogni programma necessita di qualche risorsa (CPU, Memoria, …) per la sua esecuzione

6

Page 4: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Principali funzioni

Le principali funzioni del Sistema Operativo sono:

Gestione dei Processi

Gestione della Memoria

Gestione dell’I/O (o Gestione delle Periferiche)

Gestione del File System

Gestione dell’Interfaccia (o Shell)

Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme di programmi.

7

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Kernel

Struttura a livelli

La struttura logica di un Sistema Operativo può essere rappresentata da un diagramma a livelli in cui ogni livello si occupa di una specifica funzione:

Gestione dei Processi

Gestione della Memoria

Gestione dell’I/O

Gestione del File System

Gestione dell’Interfaccia

HW

8

Page 5: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Struttura a cipolla (Onion skin)

Una rappresentazione alternativa della struttura di un Sistema Operativo è un diagramma a buccia di cipolla (Onion Skin) equivalente a quello a livelli:

9

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Bootstrap

• Bootstrap Procedura di caricamento del Sistema Operativo. Consta

di una serie di fasi attuate all'accensione del computer: 1. Il BIOS, programma di diagnostica e configurazione

memorizzato su ROM, esegue una serie di test per verificare il corretto funzionamento dell'hardware.

2. Se i test sono andati a buon fine, il BIOS lancia una routine software che sceglie il dispositivo di boot (di solito il disco rigido) da cui avviare il Sistema Operativo.

3. Il controllo passa al dispositivo di boot che carica il kernel del Sistema Operativo in RAM e lo esegue.

10

Page 6: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Kernel

Kernel

• Kernel Parte più importante del SO costituita dai livelli più vicini

all’Hardware che comunicano direttamente con esso. Gestisce le operazioni di basso livello.

Il kernel è mantenuto sempre in memoria RAM.

Sistema Operativo

HW

Livello N

Livello N-1

Livello 1

Livello 2

11

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Kernel

Funzioni nel kernel

• La scelta di quanti livelli e quali funzioni costituiscano il Sistema Operativo, e quali tra essi costituiscano il kernel dipende dalle caratteristiche dello specifico sistema.

• La Gestione dei Processi e la Gestione della Memoria sono sempre parte del kernel poiché fondamentali in ogni Sistema Operativo.

Gestione dei Processi

Gestione della Memoria

12

Page 7: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Shell

• Shell (Interfaccia utente) Interfaccia di comunicazione tra l'utente e il Sistema

Operativo. Consente di selezionare ed eseguire funzioni e comandi. Può essere di tipo: GUI (Graphical User Interface) Interfaccia grafica basata su oggetti (Desktop, Icone). Interfaccia utente standard dei moderni Sistemi Operativi.

CUI (Command User Interface) Interfaccia testuale a linea di comando. Standard nei SO più datati, è utilizzabile come opzione

anche in quelli recenti (Prompt dei comandi, Terminale).

13

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

Ripasso TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo

Gestione dei Processi

14

Page 8: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Pro

gram

ma

Pro

gram

ma

Gestione dei Processi

La Gestione dei Processi è la funzione più importante del kernel del Sistema Operativo.

Realizza l’esecuzione dei programmi e l'assegnazione delle risorse da essi richieste.

Affronta problemi quali: • La limitatezza delle risorse utilizzate dai programmi • L'utilizzo efficiente del processore (CPU) • L'esecuzione simultanea di più programmi

15

CPU

Pro

gram

ma

RISORSE

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Processo e PCB

• Processo Programma in esecuzione (su un processore o CPU). E’ entità dinamica rispetto al programma (insieme statico di istruzioni memorizzato su supporto fisico).

Per ogni programma da eseguire su un computer il Sistema Operativo crea uno o più processi.

A ogni processo è associato un insieme di risorse HW (Memoria, Periferiche) e SW da esso utilizzate.

Le informazioni su ogni processo e le sue risorse sono mantenute in RAM in una struttura dati chiamata descrittore di processo (PCB, Process Control Block).

16

Page 9: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Multitasking

• Sistema multitasking Sistema Operativo che consente l'esecuzione contemporanea di più processi. I processi sono eseguiti in pseudoparallelismo: si alternano per breve tempo sul processore dando all’utente l’impressione della contemporaneità. Difatti:

Il processore funziona in modo sequenziale, in ogni istante può fisicamente eseguire un solo processo

Un computer possiede di norma un solo processore

Tutti i moderni SO sono multitasking.

17

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Scheduler

• Scheduler (Schedulatore) Componente software che gestisce nel tempo l’esecuzione dei processi e l'assegnazione delle risorse da essi richieste seguendo opportune strategie.

E' essenziale nel multitasking, ove in ogni istante più processi concorrono all'utilizzo di limitate risorse per la propria esecuzione

Utilizza un modello a stati per i processi

18

Page 10: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Stati di un processo (1/2)

• Per gestire più processi in contemporanea, a ciascuno di essi è assegnato in ogni istante di vita uno stato che ne descrive la situazione attuale: New (nuovo) Ready (pronto) Running (esecuzione) Wait (attesa) Terminate (terminato)

• Al lancio di un programma lo scheduler crea un processo New ponendolo in stato Ready in una Coda dei processi.

• Quando lo scheduler decide che un processo in coda ne ha i requisiti lo manda in effettiva esecuzione (Running).

19

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Stati di un processo (2/2)

• Un processo in esecuzione può interrompersi per scelta propria (in mancanza di risorse necessarie) o su richiesta esterna dello scheduler ponendosi in stato Wait. L’esecuzione riprenderà in seguito.

• Terminata l’esecuzione il processo è in stato Terminate.

20

Ready Running

Wait

Terminate New

Page 11: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Algoritmi di Scheduling (1/4)

• Algoritmo di scheduling Strategia di scelta del processo da eseguire utilizzata dallo Scheduler per garantire il multitasking. Ne esistono varie tipologie, ciascuna con vantaggi e svantaggi. I principali sono: FCFS (First Come, First Served)

SJF (Shortest Job First)

Priority

Round Robin

21

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Algoritmi di Scheduling (2/4)

• FCFS (First Come, First Served) I processi sono eseguiti in ordine di arrivo: la Coda dei Processi funziona come una lista FIFO. + Semplice da implementare. - Un processo lungo può bloccare indefinitamente la CPU.

• SJF (Shortest Job First) E' eseguito per primo il processo più breve in termini di tempo totale di esecuzione. Richiede una stima dei tempi di utilizzo di CPU da parte dei processi in Coda. + Ottimizza il tempo di utilizzo di CPU. - Un processo lungo può attendere indefinitamente in coda. - E' difficile stimare con esattezza l'utilizzo della CPU.

22

Page 12: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Algoritmi di Scheduling (3/4)

• Priority (First Come, First Served) I processi sono eseguiti in ordine di priorità. Richiede una preventiva assegnazione di un livello di priorità a ciascun processo da parte del SO. + Ottimizza l'esecuzione. - Un processo a bassa priorità può attendere

indefinitamente in coda.

23

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Algoritmi di Scheduling (4/4)

• Round Robin E' assegnato a priori un tempo massimo di esecuzione (time slice). Tutti i processi in Coda sono eseguiti in modo circolare per un time slice; se non è sufficiente, il processo è sospeso e si passa al successivo. + E' il più onesto nel condividere il processore. - E' difficile scegliere in modo ottimale il time slice in base

alle esigenze dei processi.

Nessuno tra gli algoritmi previsti è ottimale e tutti presentano svantaggi: nella pratica i SO usano una combinazione di essi

24

Page 13: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

Ripasso TECNOLOGIE E PROGETTAZIONE Il Sistema Operativo

Gestione della Memoria

25

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Gestione della Memoria

La Gestione della Memoria è una delle funzioni di base del Sistema Operativo.

Consiste nell’assegnare ai processi la porzione di RAM necessaria all’esecuzione e provvedere al loro caricamento.

Si occupa di risolvere problemi quali: • La limitata dimensione della RAM • La corretta strategia di assegnazione dello spazio in RAM • La possibilità che la RAM sia insufficiente a contenere

tutti i processi da eseguire

26

RAM Processo

Pro

gram

ma

Page 14: Il Sistema Operativo - Ripasso - thegiorgio · Il Sistema Operativo Ripasso GIORGIO PORCU ... Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme

© 2

01

5 G

iorg

io P

orc

u -

Agg

iorn

amen

nto

27/1

1/20

15

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Memoria Centrale e di Massa

La Memoria del Computer è di due principali tipologie:

• La Memoria Centrale (RAM) è essenziale per il funzionamento dei programmi ma limitata in dimensioni e utilizzabile solo a computer acceso.

• La Memoria di massa (Tipicamente: Disco Rigido) memorizza i programmi a lungo termine.

Ogni programma è caricato dalla memoria di massa (file eseguibile) in memoria centrale (processo) per l’esecuzione.

27

MEMORIA DI MASSA RAM

© 2

015

Gio

rgio

Po

rcu

- A

ggio

rnam

ennt

o 27

/11/

2015

TECNOLOGIE E PROGETTAZIONE

Ripasso Il Sistema Operativo

Caricamento di un Programma

Per caricare un programma (file eseguibile) in RAM (processo) il Sistema Operativo: 1. Crea un processo associato all'eseguibile 2. Verifica gli indirizzi di memoria indicati sull'eseguibile,

espressi di solito in forma relativa (indirizzi logici) 3. Utilizza un dispositivo Hardware detto MMU (Memory

Management Unit) per trasformare gli indirizzi logici in forma assoluta (indirizzi fisici). L'operazione è detta address binding.

4. Carica il processo in RAM seguendo una opportuna strategia di ottimizzazione. Questa operazione è detta allocazione della memoria.

28