Estratto del documento

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

1. Introduzione

Sistema operativo: è la parte software che si appoggia direttamente all’harware di cui ci fornisce

una visione più astratta.

Esso ha essenzialmente due obiettivi:

• Convenienza, ovvero rendere facile da usare l’hardware disponibile su una certa macchina

• Efficienza, ovvero eseguire programmi utenti e fare in modo di risolvere in maniera

semplice i problemi degli utenti, mantenendo il processore attivo il più possibile

Il sistema operativo ha 3 aspetti che possono essere considerati sue caratteristiche peculiari:

• Resorce allocator: un sistema che si occupa di gestire le risorse della macchina nel migliore

dei modi

• Control Program: tutte le attività eseguite non devono danneggiarsi tra loro

• programma sempre in esecuzione e che non termina mai

Kernel:

Storia. Una volta i sistemi di calcolo erano molto lenti, la memoria molto limitata e il sistema

operativo stava perennemente su essa.

1) Sistemi Batch.

Veniva eseguita una e una sola applicazione alla volta. Questo però presentava

un’ inconveniente: non c’è uno sfruttamento ottimale delle risorse per esempio

durante un’ operazione di I/O il processore rimane inattivo fino al termine.

Sergio Malavolti 2

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

2) Sistemi Batch Multiprogrammati

Per ovviare a questo inconveniente essi hanno la caratteristica di eseguire

più istruzioni contemporaneamente. Per esempio quando c’è un’ operazione

di I/O il processore, invece di rimanere in attesa, seleziona l’attività

successiva e la esegue fino a quando non termina l’operazione di I/O.

Successivamente il processore decide se riprendere l’attività precedente o se

continuare a eseguire quella corrente; questa decisione può essere

influenzata da diversi fattori, come ad esempio la priorità.La

multiprogrammazione è adatta per sistemi con grande quantità di memoria.

Ovviamente è necessario un meccanismo della gestione della memoria, in

modo che le operazioni di lettura e scrittura siano fatte sui processi corretti e

non su altri

3) Sistemi Time-Sharing. Attuano una forma di multiprogrammazione spinta, ovvero vengono

applicati context switch frequenti dal sistema operativo in modo da dare l’impressione all’utente di

avere la macchina in suo possesso. Questa idea è resa possibile dai processori che diventano più

veloci, le memorie più grandi e dall’introduzione di memorie secondarie.

Il sistema operativo assegna un quanto di tempo ad un’ attività: se essa entro la fine del quanto di

tempo non ha effettuato una richiesta di I/O il sistema operativo sottrae la CPU al processo e

l’assegna ad un altro. Col time-sharing diventa possibile l’interazione con la macchina perché non si

utilizzano più le schede perforate come nei precedenti sistemi; questo concetto oggi è utilizzato da

tutte le macchine.

4) Personal Computer. Con essi arriva una macchina dove l’idea principale, oltre l’efficienza, è

quella della convenienza, ovvero chiunque può utilizzare in maniera veloce e semplice la macchina

senza che gli siano richieste conoscenze approfondite. Sostanzialmente c’è un’interattività tra la

macchina e l’utente.

Tra gli altri aspetti importanti nei PC, che hanno fatto sì che la differenza tra essi e le altre macchine

sia diventata molto più piccola, troviamo:

• Sicurezza e protezione

• Utilizzati come server

• Utilizzati come rete

5) Sistemi paralleli. Sono macchine che hanno al proprio interno più di un processore, quindi c’è

più efficienza e un miglioramento del througput ovvero il numero di attività che sono portate a

termine per unità di tempo. La memoria centrale è una sola.

Sergio Malavolti 3

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

Essi si dividono in due categorie:

• Simmetrici: sulla macchina sono presenti più processori identici in grado di eseguire più

attività contemporaneamente. Un vantaggio di questi sistemi è la robustezza, ovvero se si

verifica un guasto sul processore ci sono comunque altri processori che possono essere

impiegati

• Asimmetrici: sulla macchina sono presenti più processori ma non identici, per esempio un

processore grande e altri piccoli processori secondari dedicati ad attività particolari.

6) Sistemi Real-Time. Ci sono attività che hanno dei vincoli di tempo forti che devono essere

rispettati, per sempio la riproduzione di un video multimediale.

Anche questi sistemi si dividono in due categorie:

• Hard real-time: i vincoli di tempo sono forti, nel senso se arrivano certi eventi importanti

devono essere eseguiti immediatamente e senza ritardi. Qui la gestione della memoria è

relativamente semplice (non viene impiegata la memoria virtuale)

• Soft real-time: hanno caratteristiche meno restrittive. I processi d’elaborazione in tempo

reale critici hanno priorità sugli altri processi e la mantengono fino al completamento

dell’operazione

7) Sistemi Distribuiti. Sono un’evoluzione dei sistemi paralleli. Si tratta di più macchine collegate

tra loro che possono scambiarsi i dati e cooperare. Ogni processore ha la sua memoria centrale.

Presentano diversi vantaggi:

• Resistenza ai guasti

• Condivisione di risorse anche fisicamente distanti tra loro

• Comunicazione

• Più copie del file system su tutte le macchine in modo tale che se vi sono guasti su una

macchina il file system viene mantenuto e comunque l’accesso è più veloce da macchina a

macchina.

Sergio Malavolti 4

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

2. Architettura del calcolatore

Bus. Formato da una serie di cavetti microscopici dove passano comandi e dati. E’ la strada

attraverso la quale il processore comunica con le altre unità.

Controller. Dispositivo costituito da un piccolo circuito che gestisce fisicamente l’hardware.

Siccome lavora a un livello molto basso deve essere a completa conoscenza dell’hardware della

periferica di cui si occupa. Nel caso dei dischi controlla i bracci del disco per arrivare alle

operazioni e dati richieste.

Buffer e altri registri. Sono associati ai vari controller e servono per memorizzare i dati che si

vogliono leggere o scrivere.

Driver. Parte del sistema operativo che dialoga col controller. I particolare deve essere aggiunto al

sistema operativo attuale per permettere il dialogo tra il controller e il dispositivo hardware. Per

mette al sistema operativo di mascherare la differenza tra le varie periferiche.

Processore. E’ la risorsa più importante della macchina che ne costituisce il vero cervello.

E’ costituito da due componenti importanti:

• L’ALU: unità nella quale vengono

effettuati i calcoli.

• Control Unit: esegue tutte le

funzioni tramite 3 comandi:

1. fetch = estrae l’istruzione

2. decode = interpreta l’istruzione

3. execute = esegue l’istruzione (che

può essere inviata all’ALU per

eventuali calcoli)

Sergio Malavolti 5

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

Pipelining. Tecnica parallelistica in base alla quale divido la CPU S1 S2 S3 S4 S5

T1 T2

in momenti e ad ogni ciclo della viene eseguita una parte di

un’istruzione. Ogni momento necessita del risultato prodotto dal

momento precedente.

Unità di Memoria.

• MAR: indica un indirizzo di memoria (1234)

• MDR: riporta i dati che si vogliono scrivere o

leggere sulla memoria

• Command: riporta l’istruzione che si vuole

scrivere in memoria (“write”)

Questi tre elementi costituisco un’ interfaccia attraverso

la quale il processore comunica attraverso la memoria.

Program Counter. Puntatore a una certa cella di memoria che contiene

l’istruzione che sarà eseguita al passo successivo

Istruction Register. Registro dove è presente l’istruzione attualmente

eseguita

Avvio PC. All’accensione del PC (detto BOOT) il sistema operativo viene caricato in memoria e

successivamente si metterà in ascolto per le istruzioni che devono essere eseguite.

Interrupt. E’ un segnale hardware che arriva al processore per comunicargli che il sistema

operativo deve intervenire perché si è verificato un evento, per esempio:

1) la terminazione di un’operazione I/O

2) una divisione per zero

3) un’istruzione che cerca di accedere a una locazione di memoria sbagliata

Quando arriva l’interrupt, se la CPU sta eseguendo un’attività, essa viene interrotta e salvata in

memoria per poi essere ripresa in seguito. A questo punto il sistema operativo tratta l’interrupt. Essa

che è

può avere un bit e alcune informazioni che mi indicano come localizzarla sull’interrupt vector,

un’insieme di indirizzi contenente l’interrupt che a sua volta punta alla procedura che deve essere

eseguita. Terminata, la CPU riprende il controllo del processo che stava eseguendo.

E’ importante che l’interrupt vector sia di proprietà del sistema operativo e che sia gestito

interamente da esso.

Mentre tratto un’interrupt ci può essere la possibilità che ne arrivino altre: a questo punto possiamo

valutarle per importanza.

Unità Input/Output. Possono essere gestite in due modi

• Sincrono: il processore testa in continuazione un bit sul controller per verificare se l’attività

di I/O è terminata. Questo metodo, utilizzato diverso tempo fa, è ovviamente svantaggioso

perché il processore perde tempo che potrebbe benissimo impiegare per svolgere altri

compiti.

• Asincrono: quando l’attività di I/O è terminata viene inviata un’interrupt per informarne il

processore senza bisogno che testi continuamente la situazione. In questo modo può

avolgere altro lavoro.

Sergio Malavolti 6

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

Per gestire questo meccanismo asincrono

con interrupt il sistema operativo utilizza

una tabella (Device Status Table) che mi

indica per ciascuna delle periferiche che

ho il suo stato e se eventualmente ci

sono code.

Memorie.

DMA. Se le interrupt sono troppo frequenti il tempo di gestione (overhead) diventa troppo alto e il

processore si ritroverebbe a eseguire solo quello. Il DMA è un dispositivo che fornisce un altro

modo di interazione del processore con le periferiche I/O. Sostanzialmente mi permette un

collegamento diretto tra una periferica veloce e la memoria centrale. C’è una sola interrupt che

informa la CPU del completamento dell’attività.

Svantaggio: competizione tra CPU e DMA per l’accesso alla memoria, in particolare quest’ultimo

può rubare cicli alla CPU.

Memoria RAM. Memoria abbastanza veloce, ma volatile, cioè perde il suo contenuto allo

spegnimento del PC. Di conseguenza serve una memoria permanente per contenere i dati

Memoria secondaria.

Costituita da vari piatti contenenti informazioni su entrambe le

superfici. Sono presenti dei bracci che si muovono sui vari

piatti per selezionare le informazioni

• Settore: circa 500 byte

• Track: insieme cilindrico dei settori

• Braccio: lento (movimento in millisecondi)

Gerarchia Memorie. Registri, cache, ram, dischi elettronici, dischi magnetici, dischi ottici, nastri

magnetici. I primi sono i più veloci e quindi più costosi mentre gli ultimo sono i più lenti ma anche i

più economici.

Memoria Cache. Tipo di memoria più veloce da utilizzare da parte del processore perché è più

vicina rispetto al processore stesso rispetto alla ram. Ne abbiamo una interna al cip del processore e

una esterna. Esistono per ragioni di efficienza. L’idea è avere una memoria abbastanza vicina al

processore che contenga le informazioni che hanno la più alta probabilità di essere eseguite in un

dato momento. Quando viene eseguita un’istruzione essa viene anche caricata sulla cache compresi

i dati che vengono utilizzati in modo che successivamente possano riessere utilizzati più

velocemente.

Sergio Malavolti 7

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

Esempio: se devo eseguire un loop un certo numero di volte, pago un pò all’inizio per trasferire i

dati dalla RAM alla cache, ma poi ho un guadagno perché tutti i dati (variabili e codice del loop)

sono già presenti sulla cache in modo tale da impiegare pochissimo tempo per utilizzarli.

Caching: questa tecnica viene chiamata tale e, oltre a un semplice loop. può essere applicata su

qualunque tipo di istruzione arbitraria.

Principio di località dei programmi. Se in un certo momento sto eseguendo una certa istruzione

su un certo insieme di dati, negli istanti successivi ho un’altra probabilità che le istruzioni

successive siano strettamente correlate a tali dati. Essi non cambiano in maniera brusca, ma in

maniera contigua. Sfruttando questo principio, anche tramite la cache, i sistemi operativi moderni

riescono quasi al 100% (generalmente 95-98%) a funzionare utilizzando solo la cache.

La cache complica la vita al sistema operativo in caso di multiprogrammazione time-sharing.

1) Perché quando si cambia processo la cache va aggiornata

2) Consistenza dei dati: il processore opera sui dati che trova più vicino. Se la CPU modifica il

valore il valore di una variabile sul livello più vicino al processore, tale valore non è

modificato negli altri livelli. Se quindi si presenta un problema devo andare a recuperare la

variabile su un altro livello e questa non sarà aggiornata e, di conseguenza, avrà un valore

diverso.

Protezione dell’hardware.

Vi sono alcune tecniche per monitorare e proteggere l’attività di controllo del sistema operativo

1) Dual-Mode: mi permette di sapere se, all’interno del processore, l’attività in esecuzione è del

sistema operativo o dell’utente. Vi sono attività rischiose che devono essere eseguite dal sistema

operativo per consentire che tutto venga fatto in maniera corretta, come operazioni I/O o modifica

di variabili residenti in memoria

C’è un bit che mi dice se l’attività in esecuzione è

del sistema operativo o dell’utente. Per esempio se

sto eseguendo un’attività il bit è settato a 1. Se

arriva un’interrupt che mi dice che deve essere

eseguita un’istruzione da parte del sistema operativo

il bit viene settato a 0

2) Protezione I/O. Le operazioni di I/O devono essere eseguite da parte del sistema operativo. Di

conseguenza sono dette istruzioni privilegiate.

3) Protezione memoria. Tutte le volte che accedo alla memoria il sistema

operativo deve verificare che le porzioni di istruzioni eseguite siano nelle

celle giuste. Esiste uno schema di base per controllare la memoria.

Le informazione sull’istruzione attualmente eseguita sono contenute in 2

registri presenti nella CPU:

1) Base Register: contiene l’indirizzo della locazione di memoria

2) Limit Register: contiene lo spazio assegnato all’istruzione da

eseguire

Sergio Malavolti 8

Appunti delle Lezioni di “Sistemi Operativi”. 2005-06

Scienze di Internet

Vengono effettutati 2 controlli:

1) Il primo per vedere se non occupiamo

una locazione di memoria sbagliata.

2) Il secondo per constatare che non siamo

oltre il limite della memoria richiesta.

4) Protezione CPU. Bisogna evitare che l’istruzione che viene eseguita rimanga sul processore per

sempre. Viene implementato un clock che mi invia dei tic regolari e un contatore che, ad ogni tic

del clock, viene automaticamente decrementato: quando raggiunge l valore 0 viene emessa

un’interrupt che dice al sistema operativo di togliere il controllo della CPU sul processo attualmente

in esecuzione e di selezionarne un altro.

System Call. Sono messe a disposizione dal sistema operativo per

eseguire queste istruzioni privilegiate e possono essere utilizzate

dai programmi utenti. Sono istruzioni che mi fanno intervenire il

sistema operativo per esempio quando un programma utente vuole

effettuare un’operazione I/O. Dipendono dall’architettura specifica

della macchina che stiamo utilizzando.

Funzionamento: quando voglio effettuare un’operazione I/O

invoco la system call e il controllo della macchina viene passato al

sistema operativo, che setta il bit dual-mode a “0”. Terminata

l’operazione il bit viene settato a “1” e il controllo ripassa

all’utente che continua ad eseguire il suo programma.

Esempio pratico di system call: supponiamo di analizzare cosa succede quando invochiamo una

semplice utility (programma di sistema che si appoggia al sistema operativo) che effettua la copia di

un file con la sintassi “cp file1 file2”.

• Vengono letti i nomi dei due file (intervengono system call per leggere l’input da tastiera).

• Viene effettuato l’accesso al primo file (anche qui viene fatta una system call perché

l’accesso è riservato al sistema operativo).

• Viene creato il file di output (occorre verificare che il file2 non esista già e il tal caso

decidere se procedere dialogando con l’utente o ignorando la cosa).

• Si entra in un ciclo dove i caratteri sono copiati dal file1 al file2 (anche questa è

un’operazione effettuata dal sistema operativo).

• Vengono chiusi entrambi i files.

Quando invochiamo una system call vengono passati dei parametri al sistem

Anteprima
Vedrai una selezione di 9 pagine su 36
Sistemi Operativi: Appunti delle Lezioni Pag. 1 Sistemi Operativi: Appunti delle Lezioni Pag. 2
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 6
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 11
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 16
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 21
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 26
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 31
Anteprima di 9 pagg. su 36.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Appunti delle Lezioni Pag. 36
1 su 36
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ieio1983 di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Sangiorgi Davide.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community