• Non ci sono risultati.

Vantaggi di un SO

N/A
N/A
Protected

Academic year: 2021

Condividi "Vantaggi di un SO "

Copied!
28
0
0

Testo completo

(1)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 1

Elemento principale del cosiddetto software di base.

Insieme di programmi tra loro interagenti e cooperanti per la gestione delle risorse hardware e software

Realizza un’interfaccia (software) tra l’utente e lo hardware facilitando l’uso del sistema e fornendo un sistema ‘virtuale’ più semplice da usare rispetto allo hardware effettivamente a disposizione

superamento dei problemi relativi alla gestione e limitazione delle risorse hardware

permettere la condivisione delle risorse, regolandone l’accesso da parte di utenti / programmi diversi

IL SISTEMA OPERATIVO

Il sistema operativo virtualizza le caratteristiche dello Hardware offrendo agli utilizzatori la visione di una macchina astratta più semplice da usare di quella fisicamente disponibile

IL SISTEMA OPERATIVO

HW

Sistema Operativo Software Applicativo

…. Sistema operativo come necessario intermediario ….

…. macchina virtuale a ‘strati’ ….

… ogni ‘strato’ risolve uno specifico problema ….

SW= Sistema Operativo + SW applicativo

(2)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 3

Sistema operativo

• ha accesso a tutte le risorse;

• stabilisce in che ordine e come le richieste di elaborazione ricevute devono essere soddisfatte

• può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore);

Software applicativo e Sistema Operativo

Programmi applicativi

• non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi)

• hanno accesso diretto ad un insieme ridotto di risorse;

• possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente);

IL SISTEMA OPERATIVO

Software di base per la gestione di:

risorse Hw

Gestione e allocazione della CPU, memoria, dispositivi I/O, ...

lavori

Pianificazione ed esecuzione dei lavori di utente

interpretazione richieste utente e attivazione lavori identificazione utente (password,diritti accesso, ...)

dati

Organizzazione logica e fisica dei dati nelle memorie di massa e per il trasferimento dei dati da e per le periferiche

In modo del tutto trasparente agli utenti

(3)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 5

Permette di:

• sviluppare programmi applicativi in modo (più) semplice e (più) indipendente dallo specifico calcolatore operante con un determinato sistema operativo;

• rendere trasparente ai programmi applicativi ed all’utente modifiche al software di base ed allo hardware

Vantaggi di un SO

senza un sistema operativo il programmatore deve :

• introdurre nei programmi anche le funzionalità di gestione dell’hardware.

• interagire direttamente con i dispositivi fisici,

• gestire le esecuzioni contemporanee di più programmi alla volta

il sistema operativo fornisce all'utente un'interfaccia conveniente che rende più semplice ed agevole l’uso della macchina

Esecuzione di programmi applicativi

• caricamento del programma (istruzioni e dati) nella memoria centrale

• inizializzazione dei dispositivi di ingresso/uscita

• preparazione e gestione di altre risorse come la rete di comunicazione Accesso ai dispositivi di ingresso/uscita

• gestione dei segnali necessari per il trasferimento dei dati

• consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura Archiviazione di dati e programmi

• fornire un’organizzazione logica dei dati sotto forma di cartelle (directory) e file

• gestire le operazioni di basso livello per il relativo ingresso/uscita Controllo di accesso

• condivisione di risorse da parte di più utenti o applicazioni

• meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso Contabilizzazione

• ottimizzare il tempo di risposta dei programmi interattivi

• contabilizzare agli utenti i costi dell’impiego del sistema Gestione dei malfunzionamenti

• rilevare e, se possibile, risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo

Principali funzioni di servizio di un SO

(4)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 7

PRINCIPALI ELEMENTI DI UN SISTEMA OPERATIVO

Sistema Operativo Utente

Nucleo (o kernel) [gestione processore]

Hardware Software

applicativo

Gestione periferiche

File

system Interfaccia

con la rete Gestione

memoria Interprete

comandi

Organizzazione di un S.O.

Gerarchia di macchine virtuali

Ogni macchina virtuale è un insieme di programmi che realizza delle funzionalità utilizzanti i servizi forniti a livello inferiore

Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone l’uso e mascherandone i limiti

La visione della macchina virtuale a livello N è quella fornita dallo HW e dagli strati del SO fino all’N-esimo incluso

(5)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 9

Un S.O. gestisce una qualsiasi elaborazione come:

“un insieme di unità di elaborazioni parziali”

dette P R O C E S S I Concetto di “processo”

PROCESSO:

La minima unità di lavoro che il S.O. predispone per la esecuzione e che possa individualmente richiedere l’uso della CPU

Programma:

entità statica composta da codice eseguibile dal processore.

Processo:

entità dinamica che corrisponde al programma in esecuzione, composto da:

• testo/codice (il programma);

• dati (quelli che servono per l’esecuzione del programma);

• stato (a che punto dell’esecuzione ci si trova, contenuto di registri, …).

N.B: ad un programma possono corrispondere diversi processi

contemporaneamente in esecuzione

Un processo può attivare l’esecuzione di un altro processo processo padre – processo figlio

Processo e programma

(6)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 11

Nucleo (kernel)

• Interagisce direttamente con l’hardware

• Si occupa dell’esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche.

• Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi.

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

• Gestisce il contesto di esecuzione dei vari processi

• Attua una politica di alternanza (scheduling) nell’accesso alla CPU da parte dei processi in esecuzione (definisce quale programma è da eseguire in ogni istante).

Gestore della memoria

• Controlla l’allocazione della memoria centrale ai diversi programmi che possono essere contemporaneamente in esecuzione, al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente.

• Si occupa di:

– proteggere programmi e relativi dati caricati nella memoria di lavoro;

– mascherare la collocazione fisica dei dati;

– permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi.

• Fornisce alle macchine la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile.

(7)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 13

Gestore della memoria

• Applica tecniche per gestire il conflitto fra dimensione della memoria fisica e spazio complessivo richiesto dai programmi che devono essere eseguiti in modo concorrente e dai relativi dati.

• Combina le seguenti strategie:

– consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria;

– ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e dei dati;

– condividere parte delle istruzioni (codice eseguibile) fra diversi processi corrispondenti a uno stesso programma.

• Il gestore della memoria

– garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che può essere superiore alla memoria fisica presente nel calcolatore

– mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio di lavoro assegnato a ogni processo.

Gestore della memoria Paginazione

• Frammentazione della memoria (logica e fisica) in blocchi di dimensioni prefissate: le pagine.

• Lo spazio logico di indirizzamento del processo è suddiviso in sezioni, di dimensioni fisse e uguali fra loro, dette pagine logiche

• Lo spazio fisico di indirizzamento disponibile nel calcolatore è anch’esso suddiviso in pagine fisiche, della stessa dimensione delle pagine logiche.

• Meccanismo: Vengono caricate, in alcune pagine fisiche della RAM, solo alcune pagine logiche del codice in esecuzione. Le pagine logiche

necessarie vengono caricate di volta in volta, in base all’esigenza.

• La paginazione permette di risolvere problemi per:

• Allocare un processo in memoria

• Superare il numero di processi che si possono gestire contemporaneamente

• Superare la dimensione fisica della memoria di lavoro

(8)

Elementi di Informatica Prof. G. A. Di Lucca - Univ. del Sannio

Memoria logica del processo 2 (4 pagine logiche) Spazio logico

PL0 PL1 PL2 Memoria logica PL3

del processo 1 (2 pagine logiche)

Spazio logico PL0 PL1

15

Gestore della memoria Paginazione

Memoria fisica del calcolatore suddivisa in 8 pagine

Spazio fisico PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7

Corrispondenza tra Pagine Logiche (PL) contigue e Pagine Fisiche (PF) non contigue

Gestore della memoria

Memory Management Unit - MMU

• Serve un dispositivo dispositivo hardware aggiuntivo in grado di convertire gli indirizzi logici cui fa riferimento il programma nei corrispondenti indirizzi fisici: Memory Management Unit.

• La MMU utilizza una tabella delle pagine:

– mantiene la relazione tra ogni pagina logica e l’indirizzo della pagina fisica corrispondente.

Memoria logica del processo 1 (2 pagine logiche)

Memoria fisica del calcolatore suddivisa in 8 pagine

Memoria logica del processo 2 (4 pagine logiche)

Spazio logico PL0 PL1

Spazio logico PL0 PL1 PL2 PL3 Spazio fisico

PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 Tabella pagine del processo 1

0 1

PF3 PF4

Tabella pagine del processo 2

0 1

PF1 PF2 2 3

PF0 PF5

(9)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 17

Gestore delle periferiche

• Gestisce l’accesso ai dispositivi di I/O

• Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte.

• Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita

• Controlla e maschera gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente ad uno stesso

dispositivo

• Ogni processo ha a disposizione delle periferiche virtuali

• Due elementi di base:

• BIOS (Basic Input Output System) : software usato per standardizzare l’accesso ai diversi tipi di periferica

• Driver: software per il controllo e funzionamento di interfacce Hw che consentono l’accesso a specifiche periferiche

Gestore delle periferiche

• Il BIOS (Basic Input Output System) svolge anche le funzioni necessarie all’avvio del computer (bootstrap)

• Inizializza lo Hw

• Controlla la memoria

• Verifica quali periferiche sono collegate

• Effettua diagnostica dei vari dispositivi / componenti

• Effettua il boot (caricamento) in memoria centrale della parte iniziale del sistema operativo

• Inizializza, e permette di modificare, il setup del computer

• Data e ora

• Numero e tipo di unità di memoria di massa

• ……

(10)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 19

• Obiettivo:

gestire l’allocazione fisica dei dati nelle memorie di massa, consentendone l’archiviazione ed il reperimento

presentare all’utente l’organizzazione logica dei dati e le operazioni che è possibile compiere su di essi.

• Operazioni di base di un file system:

– memorizzazione di dati nelle memorie di massa – recupero di dati precedentemente memorizzati;

– eliminazione (cancellazione) di dati obsoleti;

– modifica/aggiornamento di dati preesistenti;

– copia di dati (e.g. da HD a FD) per backup o per il trasferimento;

– …

servizi forniti sia ai programmi applicativi che direttamente agli utenti.

File system

File system

FILE

- File : l’oggetto elementare su cui opera il file system - Una raccolta di dati registrati su memoria di massa (il file è visto dal S.O. come una sequenza di byte)

Contenitore logico di informazioni (dati/istruzioni) permanenti

…. dal punto di vista dell’utilizzatore ...

…. dal punto di vista del S.O.

(11)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 21

File

- Caratterizzato da:

• Identificatore (nome.estensione)

• Periferica (device) e percorso sulla periferica

• Data creazione

• Dimensione

• Posizione effettiva dei dati nella memoria di massa

• Altre informazioni

• applicazione sw che consente all’utente di “usare” il file

• data di ultima modifica

• diritti di accesso al contenuto del file

• …

testo (ASCII): una sequenza di caratteri es. programma sorgente (es. in linguaggio C)

binari: una sequenza di byte eseguibili (programmi)

non eseguibili (es. immagine, documento word)

Alcuni S.O. (es. MS-Windows) associano tipi diversi a file prodotti con programmi diversi (es. Word, Excel, ...)

Tipi di File

Una prima distinzione di massima

I file dati prodotti da un programma possono essere di testo o binari (dipende dal programma)

(12)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 23

… un raccoglitore in cui sono memorizzati tutti i nomi dei file, più tutta una serie di informazioni ausiliarie...

Il Catalogo (directory o cartella)

I file sono organizzati in Cataloghi, detti anche directory o cartelle

… data e ora di creazione / ultima modifica, dimensioni, autore, diritti di accesso ...

… una directory (cartella) al suo interno conterrà file e/o altre cartelle ...

… una direcory è considerata essa stessa un file ...

Organizzazione gerarchica delle directory

Le directory sono organizzate in una struttura gerarchica

\

f 1 . . . f n D 1 . . . D i . . . D n f i1 . . . f in D i1 . . . D in

. . .

\:radice f:file D:cartella

… tipicamente, la radice dell’albero è costituita dall’unità di memoria di massa ...

… la gerarchia è rappresentabile secondo un albero ...

(13)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 25

Nomi di file e directory

Tipicamente i nomi di file si compongono di un nome e di un’estensione

Nomefile.Estensione

nome del file In genere 3 lettere che definiscono il “tipo” di file

- MS-Windows 95/98/XP/…. può gestire nomi lunghi fino a 254 caratteri

… regole per la composizione del nome dei file (tipicamente diverse per diversi S.O.) ...

- Es: in MS-Windows 95/98/XP ….

L’estensione:

.doc è associata a file prodotti con MS- Word

.mdb a file prodotti con MS-Access .xls a file prodotti con MS-Excel .exe a file eseguibili

N.B. in UNIX non c’è lo stesso concetto di estensione …

Nome di file e directory

Il nome di un file può essere completato con l’indicazione (percorso) delle directory in cui esso è contenuto

… il nome completo di un file individua quel file specificandone la collocazione nella struttura gerarchica del file system …

… il nome completo di un file specifica il percorso lungo l’albero per raggiungere la sua collocazione ...

percorso \ nomefile

Percorso => le directory da attraversare lungo l’albero per raggiungere la collocazione del file

\ => separatore tra nomi directory

Il nome di un file individua univocamente un file all’interno di una directory

… in una directory non possono esserci più file con lo stesso nome …

… in directory diverse possono esserci file con lo stesso nome …

Il nome completo di un file è indicato con la notazione

(14)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 27

Nome di file e directory

Il percorso individua le directory da percorrere per raggiungere la cartella che contiene il file

Il percorso può essere:

Assoluto: parte dalla radice

Relativo: parte dalla directory corrente Esempio, in MS-Windows:

C:\Programmi\Microsoft Office\Office\Excel.exe

… è un percorso assoluto…

didattica\elementi_di_Informatica_2002_03\sistop.ppt

… è un percorso relativo …

Il simbolo

..

indica, tipicamente, la directory padre di quella corrente

Nome di file e cartelle: esempi

Ricerca Didattica Uffici

\

Corsi

. . . . . .

EI

. . .

directory corrente

Percorso relativo:

Corsi\EI

. . .

Lab

Percorso assoluto:

\Didattica\Corsi\EI

..

\Uffici\Lab directory padre

(15)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 29

Volumi

- Le unità disco (più in generale, le memorie di massa) sono dette volumi - Ogni unità disco ha una sua struttura gerarchica

- Esiste un’unità corrente ...

- Bisogna anteporre l’identificativo del volume al percorso (se l’unità non è corrente)

- il volume è la radice della gerarchia

… regole diverse per identificare i volumi in differenti S.O. ….

In genere, per far riferimento ad un file, oltre al percorso, è necessario far riferimento anche al supporto di memorizzazione (es. unità disco)

A: Floppy Disk C: Disco rigido D: CD-ROM Esempio:

denominazioni standard in MS-DOS e Windows (ma potrebbero essere diverse):

Esempio percorso assoluto sull’unità C: C:\Didattica\Corsi\FI Esempio percorso assoluto sull’unità A: A:Corsi\FI

Operazioni su file (e directory)

- creazione - cancellazione - accesso

- copia / spostamento (da un catalogo all’altro) - condivisione / protezione

… una operazione su una directory è effettuata su tutti gli elementi in essa contenuti …

Esempio:

la cancellazione di una directory comporta la cancellazione di tutti gli elementi in essa contenuti

(16)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 31

Interprete dei comandi

• Modulo del SO direttamente accessibile dall’utente

• Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i programmi corrispondenti.

• Le principali operazioni che svolge sono:

– Leggere il comando immesso e riconoscere la sua correttezza sintattica – Interpretare il comando immesso

– Attivare gli appositi moduli del S.O. per eseguire il comando

• caricamento dalla memoria di massa del programma relativo al comando nella memoria centrale;

Selezione del comando da una lista a video (menù) di possibili operazioni da intraprendere

Linguaggio di comando

Uso di Interfacce grafiche (GUI - Graphical User Interface)

a Menù

Selezione di ideogrammi (icone) atti a ricordare l’operazione da effettuare;

azione specificata da uno o più “clic”

del mouse

a Icone

Vantaggi: facilitazione dell’uso che risulta più immediato e meno mnemonico

(17)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 33

Linguaggio di comando

Il dialogo tra l’utente ed il S.O. avviene tramite un linguaggio di comando Il dialogo si può attuare con tecniche diverse:

- FRASI

Uso di interfacce utenti a caratteri

Comando

parola chiave esplicativa del comando

oggetti

elementi su cui viene compiuta l’azione

[opzioni]

modalità di esecuzione del comando

Esempio, per visualizzare la lista dei file contenuti in una directory:

• in MS-Dos: dir miadirectory /p

• in UNIX: ls –l miadirectory

Ciascun comando è esplicitato con una frase la cui forma generica è:

I sistemi operativi si classificano in base alla modalità di gestione dei processi

S.O. e “processi”

S.O. monoprocesso

S.O. multiprocesso

Supporta la esecuzione di un unico processo alla volta

ciascun processo inizia la sua esecuzione e la completa prima che possa avere inizio un nuovo processo (es. MS-DOS)

Supporta la esecuzione di più processi

in un dato intervallo di tempo più processi avanzano sul sistema di elaborazione (es. Windows, UNIX)

Un processo è caratterizzato, essenzialmente, da un identificatore (nome) e dalle risorse (quali CPU, memoria, I/O devices, dati) che necessita per la sua esecuzione

(18)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 35

Processi sequenziali

più processi (P1, P2, ... , Pn) sono detti sequenziali se formano un insieme completamente ordinato, ovvero essi devono essere eseguiti secondo una assegnata sequenza. L’esecuzione del processo Pi inizia dopo la

terminazione dell’esecuzione del processo Pi-1 Processi concorrenti

più processi (P1, P2, ... , Pn) sono detti concorrenti se non costituiscono un insieme completamente ordinato, ovvero l’esecuzione di ciascuno di essi può avere inizio indipendentemente dalla fine dell’esecuzione degli altri

disgiunti: i processi sono indipendenti, ognuno opera su un proprio insieme di informazioni

cooperanti: i processi cooperano per l’esecuzione di un compito, scambiandosi informazioni

S.O. e “processi”

S.O. mono e multiprogrammati MONOPROGRAMMATI

Sistemi atti a supportare unicamente applicazioni sequenziali. Sono, tipicamente, sistemi mono-utenti

MULTIPROGRAMMATI

Sistemi atti supportare le concorrenza dei processi: in un dato intervallo di tempo, avanzano più processi. Sono, tipicamente, sistemi multi-utenti

(19)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 37

S.O. monoprogrammati

Tempo di occupazione della CPU Tempo operazioni di I/O

… tempi per l’I/O molto maggiori di quelli della CPU …

…. CPU inattiva per la maggior parte del tempo ….

• Un solo processo utente effettivamente in esecuzione nella CPU

• Ogni operazione di I/O consiste in una chiamata al sistema operativo e quindi in una sospensione del processo utente per l’esecuzione

dell’operazione di I/O da parte del kernel

S.O. multiprogrammati

… nei tempi di I/O di un processo la CPU viene assegnata ad un altro processo...

P1 P2 P3

Nel sistema sono presenti diversi processi, ognuno con un proprio tempo di elaborazione e propri tempi di attesa per le operazioni di ingresso/uscita.

Per evitare che la CPU venga utilizzata in modo esclusivo (o per troppo tempo) da parte di un solo processo, il tempo viene idealmente suddiviso in unità elementari, dette quanti, da assegnare secondo opportune politiche di scheduling a tutti i processi.

P1 P2 P3 … la CPU è sempre

attiva …

(20)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 39

Sistemi operativi multiprogrammati

SISTEMI BATCH

I processi da eseguire sono raggruppati in gruppi, ed il lavoro procede dall’inizio alla fine senza alcuna interazione con l’utente

SISTEMI INTERATTIVI

Il lavoro richiede l’interazione con l’utente: l’utente fornisce un input, il sistema lo elabora, restituisce un output e ... il colloquio continua fino al termine dell’elaborazione

SISTEMI REAL TIME

L’elaborazione deve fornire i risultati entro un determinato tempo utile (real time).

Es. applicazioni per il controllo di un processo produttivo, applicazioni di tipo gestionale, ...

Sistemi operativi multiprogrammati

SISTEMI TIME SHARING

Servono più utenti, e forniscono a ciascun utente la sensazione di disporre dell’intero sistema e di essere immediatamente serviti

• Permette la condivisione della CPU tra più processi interattivi

• Il tempo di esecuzione del processore è condiviso tra più utenti

• Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione

(21)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 41

Round-robin:

assegnare a rotazione la disponibilità di un quanto di tempo della CPU ai vari programmi/processi presenti contemporaneamente in memoria.

La durata del quanto di tempo incide significativamente sia sulle prestazioni del sistema che sull’efficacia del quasi parallelismo,

che tende a scomparire se la durata diviene eccessiva e degrada nella sequenzializzazione dei programmi.

La scelta di un valore molto piccolo, pur migliorando in generale le proprietà di parallelismo, può comportare un degrado delle prestazioni complessive del sistema, qualora il tempo di commutazione fra processi sia dello stesso ordine della durata del quanto di tempo (un valore tipico per il sistema operativo Unix è 100 ms).

Sistemi operativi multiprogrammati

Round Robin

I/O Fin

e I/O

E

E

E

E

E

E

E

E

E

E Processo 3

Processo 2 Processo 1

E = Processo in elaborazione su CPU I/O = richiesta operazione I/O

(22)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 43

Stati di un processo

Processo Processo

attivo

attivo ProcessoProcesso

in attesa in attesa

Richiesta Richiesta operazione di I/O operazione di I/O Completamento operazione di Completamento operazione di

I/O (si verifica l’evento I/O (si verifica l’evento

atteso) atteso)

Un processo può essere in uno stato attivo in esecuzione sulla CPU o in uno stato di attesa di una qualche risorsa

ad esempio una unità di I/O

Il verificarsi di eventi (fine del quanto di tempo, disponibilità risorsa, …) provoca transizioni tra gli stati.

Gestione dei Processi in un S.O.

In una macchina monoprocessore e multiprocesso un solo processo alla volta può essere in esecuzione sulla CPU

Gli altri processi sono rispettivamente

• in attesa (di un evento, quale il completamento di un’operazione di I/O)

• pronti (ad essere eseguiti, aspettano che la CPU si liberi e sia loro assegnata )

Ciascun processo può trovarsi in uno dei seguenti stati : esecuzione:

sta effettivamente usando il processore per la sua esecuzione pronto:

è potenzialmente in condizione di usare il processore che è però occupato da un altro processo in esecuzione

attesa:

aspetta la terminazione di un evento esterno (es. operazione di I/O)

(23)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 45

Diagramma degli stati di un processo

Processore ‘libero’

creazione

Termine quanto di tempo

Termine elaborazione

Esecuzione (E) Pronto

(P)

Attesa (A)

Richiesta operazione di I/O Completamento operazione di

I/O (evento esterno atteso)

Diagramma degli stati di un processo

Selezione primo processo pronto e sua esecuzione

Processo in esecuzione Processi

pronti Creazione

(accodamento ai processi pronti)

Termine quanto di tempo

Termine elaborazione

Processi in attesa

Richiesta operazione di I/O Completamento operazione di

I/O (evento esterno atteso)

… una lista di processi ‘pronti’ …

(24)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 47

• Pronto  Esecuzione

– Il SO stabilisce quale dei processi “pronti”

debba essere mandato in “esecuzione”.

– La scelta è fatta da algoritmi di scheduling per ottimizzare efficienza ed efficacia.

Transizioni tra stati di un processo

E P

A

E P

A

• Esecuzione  Attesa

– il processo chiede delle risorse che non sono attualmente disponibili o attende un evento – il SO salva tutte le informazioni necessarie a

riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi – Contemporaneamente un altro processo passa

da “pronto” a “esecuzione”.

Transizioni tra stati di un processo

• Attesa  Pronto

– Si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti.

E P

A

E P

A

• Esecuzione  Pronto

– Termina il quanto di tempo e il

processo in “esecuzione” lascia spazio a un altro processo “pronto”.

– Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta.

– Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.

(25)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 49

1. Il processo viene creato e viene posto nella coda dei processi pronti;

2. il primo processo (in base alla strategia di scheduling) tra i processi pronti viene posto in esecuzione;

3. il processo in esecuzione dispone delle risorse del sistema fino a

a. il termine del quanto di tempo

• il nucleo (kernel) interrompe il processo e lo rimette in coda ai processi pronti;

• quando arriva in cima alla coda dei processi pronti, il processo torna in stato in esecuzione, proseguendo con l’elaborazione dell’istruzione successiva a quella su cui era stato interrotto;

b. la richiesta di un’operazione di ingresso/ uscita

• il kernel sposta il processo attivo nello stato di attesa;

• quando l’operazione di ingresso/ uscita si completa il processo può proseguire l’elaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente;

c. il termine delle propria esecuzione (istruzione finale)

• il processo viene eliminato e rimosso dall’elenco dei processi esistenti;

in ogni caso il kernel provvede a sostituirlo con il primo dei processi pronti.

Esempio di transizioni di stato di un processo

Contesto di un processo

insieme dei dati che rappresentano lo “stato” del processo:

situazione della memoria, contenuto dei registri, livello di priorità, …

Quando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a salvare il suo contesto in una struttura dati chiamata descrittore del processo;

Quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto, recuperando i dati precedentemente salvati nel descrittore.

Contesto di un Processo e Cambio di Contesto

(26)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 51

Cambio di contesto (context swapping)

si verifica quando un processo P1 in esecuzione viene sostituito da un altro processo P2 (il primo del processi pronti);

il SO provvede a:

1. salvare il contesto di P1 e gestirne l’evoluzione (Pronto vs Attesa) 2. ripristinare il contesto di P2 per consentirgli una corretta evoluzione.

Contesto di un Processo e Cambio di Contesto

Round Robin

I/O Fin

e I/O

E P P

E P

P E

P

P E

A

P E

A P E

P P

E A

P

Cambio di contesto

E P

A

P1

E P P

E P P P2 P3

P E P Processo 3

Processo 2 Processo 1

(27)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 53

Il controllo degli accessi

• Identificazione degli accessi al sistema.

– Associare a ogni utente un account (login) e una parola d’ordine (password).

– All’interno del sistema operativo, in un apposito archivio, è contenuta la lista di tutti gli account e delle relative password: solo se viene specificato un account fra quelli previsti (utente abilitato) e la password corrisponde a quella

memorizzata (certificazione di identità) viene consentito l’accesso al sistema.

• Questo consente di personalizzare il sistema, per esempio definendo:

– la distribuzione dei costi di gestione fra i vari utenti;

– la visibilità del sistema in termini di porzione del file system complessivo, periferiche e programmi applicativi disponibili;

– la personalizzazione dell’ambiente operativo.

• Consente di controllare gli accessi ai file:

– livello di protezione a livello di file o di directory;

– altro metodo: Access Control List

File system di rete

• Un sistema operativo che consente una gestione distribuita del file system deve:

– integrare in modo organico i singoli file system dei calcolatori della rete;

– risolvere i problemi dell’univocità dei nomi di file e directory per i calcolatori della rete;

– consentire un accesso efficiente anche a file presenti su calcolatori remoti.

• Questi requisiti vengono soddisfatti con un file system di

tipo client-server.

(28)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 55

Virtualizzazione delle risorse di rete

• Estendere anche a processi in esecuzione su calcolatori diversi il principio di virtualizzazione delle risorse.

• Condividere in modo trasparente dati, periferiche e unità di elaborazione.

• In particolare si tratta di poter gestire le periferiche e il file

system.

Riferimenti

Documenti correlati

- La prima tabella (tabella 4) “ Dimensione campionaria complessiva e sua sensibilità alla variazione del 10% della precisione desiderata” fornisce la dimensione campionaria

 Compito di uno scheduler è quello di selezionare tra i processi disponibili il successivo processo da eseguire.

• Controlla l’allocazione della memoria centrale ai diversi programmi che possono essere contemporaneamente in esecuzione, al fine di risolvere le relative esigenze dei vari

La memoria virtuale permette una gestione e condivisione più efficiente della memoria centrale fra più processi che consente l’esecuzione di programmi la cui dimensione è

Quando la configurazione ha esito positivo, è possibile visualizzare l'interfaccia dell'app come mostrato nella schermata seguente.. Toccando [Fine], è possibile visualizzare

I vantaggi offerti dalla distillazione a membrana consistono in: totale reiezione nei confronti di ioni, macromolecole, colloidi, cellule ed altri composti non volatili;

ESEMPIO: alloca spazio per un intero e memorizza in p l’indirizzo della memoria allocata int *p;.. p = (int*)

Procedura e scadenze per la selezione delle strategie di sviluppo locale I riferimenti sono contenuti nelle informazioni specifiche della misura. Giustificazione della selezione,