Sei sulla pagina 1di 8

Dispense di Calcolatori Elettronici 1

Capitolo 6 - IL SISTEMA OPERATIVO

6.1 - GENERALITA’
Il sistema operativo (S.O.) è un programma che agisce da interfaccia tra gli utilizzatori di
un calcolatore e l’hardware dello stesso, fornendo un ambiente per l’esecuzione dei
programmi (si veda fig. 6-1). In effetti esso si pone i seguenti obiettivi:
• Rendere agevole l’uso del sistema
• Consentire un uso efficiente dell’hardware
Da un punto di vista terminologico il sistema operativo fa parte del cosiddetto software di
sistema.

HARDWARE

SISTEMA OPERATIVO

ALTRO SW DI SISTEMA

SW APPLICATIVO

UTI LIZZATORI

Figura 6-1. Interazioni tra le componenti di un calcolatore

Nella presentazione che segue si percorrera’ lo sviluppo temporale delle realizzazioni di


sistema operativo considerandone i seguenti tipi:
• Primi sistemi
• Batch primitivo
• Batch intermedio
• Batch avanzato
• Time sharing
Si fara’ inoltre cenno ai sistemi a multiprocessore ed alle problematiche del tempo reale.

E’ bene rilevare che lo sviluppo dei sistemi operativi è stato attuato su calcolatori medio-
grandi (“Mainframe”). Successivamente è stato trasportato sui minicalcolatori ed oggi sui
personal computer, grazie alla diminuzione dei prezzi dell’hardware ed all’aumento delle
prestazioni.

Capitolo 6 6.1
Dispense di Calcolatori Elettronici 1
6.2 - PRIMI SISTEMI

Le caratteristiche salienti di questi sistemi erano:


• Coincidenza di ruoli e persone tra programmatore e operatore;
• Necessita’ di procedere alla prenotazione dell’ uso;
• Caricamento dei programmi dalla consolle.
Ne derivavano come principali inconvenienti :
• Presenza di tempi morti tra i lavori eseguiti dal calcolatore;
• Incidenza negativa dei tempi di approntamento del sistema.

6.3 - BATCH
Con il termine batch si fa riferimento alla politica di raccogliere i lavori da eseguire in gruppi
(“lotti“) in modo tale da consentire una più conveniente ed efficiente elaborazione.

Batch primitivo
Le prime realizzazioni di sistemi operativi batch riguardavano calcolatori con lettore di
schede come unita’ tipica di ingresso e stampante come unita’ tipica di uscita.
In essi la presenza di un operatore professionale portava ad una diminuzione dei tempi
morti e la costituzione di lotti di lavori omogenei porta ad una diminuzione dei tempi di
approntamento.

Batch intermedio
Anche questa evoluzione del sistema operativo faceva riferimento a calcolatori con lettore di
schede e stampante.
La novita’ consisteva nella sequenzializzazione automatica dei lavori per mezzo di:
- Schede di controllo
- Monitor, inteso come la parte del sistema operativo permanentemente residente in Mp
durante il funzionamento del calcolatore (si veda fig. 6-2)
- Modo utente e modo supervisore

In particolare il monitor comprendeva:


- Sequenziatore lavori
- Interprete delle schede di controllo
- Gestore dei vettori di interruzione
- Driver per le unita’ di I/O
In questi sistemi nascevano due esigenze:
- Protezione della memoria in cui risiede il monitor (con l’uso del registro barriera)
- L’introduzione di un temporizzatore avviato dal monitor (per es. per evitare cicli infiniti)

Mp

Monitor

Programma
Utente

Figura 6-2. Suddivisione della Mp nel caso di batch intermedio


Capitolo 6 6.2
Dispense di Calcolatori Elettronici 1

Batch avanzato
In queste realizzazioni del sistema operativo sono presenti le caratteristiche dei sistemi di
tipo batch intermedio (monitor, modo utente e modo supervisore, registro barriera) ma si ha
a che fare con calcolatori nei quali unita’ di ingresso e di uscita sono molto diversificate ed
in particolare tra le prime scompaiono via via i lettori di schede.
Le principali caratteristiche nuove sono:
• Introduzione di un buffer per I/O
(sovrapposizione di I/O di un lavoro con la sua elaborazione)
• Esecuzione di operazioni di I/O off-line
(esempio: schede ---> nastro; nastro ---> stampante; si veda fig. 6-3)
• Introduzione dello Spool ( Simultaneous Peripheral Operation On Line)
(sovrapposizione di I/O di un lavoro con l’esecuzione di altri lavori)
• Introduzione della multiprogrammazione
(più programmi residenti contemporaneamente in Mp)

Per poter sfruttare le possibilita’ offerte dai nuovi elementi introdotti, oltre all’introduzione
sistematica di unita’ a disco, si devono soddisfare esigenze di:
• Gestione memoria
• Schedulazione dispositivi I/O
• Controlli aggiuntivi: stallo o “deadlock” (si veda fig. 6-4), concorrenza, protezione

Viene anche introdotto ed impiegato sistematicamente il concetto di tempo di risposta


(“turnaround time”), definito in modo soggettivo (def. a) od obiettivo (def. b):
Def.a - Intervallo di tempo che intercorre tra il momento in cui l’ utente sottopone il lavoro al
sistema ed il momento in cui riceve l’ elaborato (“stampa”) del sistema.

Def.b - Intervallo di tempo che intercorre tra il momento in cui il lavoro è preso in carico dal
S.O. ed il momento in cui il S.O. ne rilascia il controllo.

Calcolat.
Elettron.

Figura 6-3. Operazioni off - line


Capitolo 6 6.3
Dispense di Calcolatori Elettronici 1

Figura 6-4. Esempio di stallo ad un incrocio stradale


(i rettangoli rappresentano veicoli )

6.4 - TIME SHARING


Si tratta di un sistema operativo multiprogrammato ed interattivo (nel senso che esiste la
possibilità di comunicazioni in linea tra utente e sistema).

Le principali caratteristiche sono:


• Il processore centrale è commutato velocemente da un programma ad un altro
• I comandi (da terminale) sostituiscono le schede di controllo
• Coesiste spesso con il funzionamento di tipo batch

Viene definito in modo diverso il tempo di risposta (che in lingua inglese e’ denominato in
questo caso “response time”); si veda fig. 6-5.

Immissione Risposta
del comando del sistema
inizio termine inizio termine

TEMPO
tempo di risposta tempo di
del sistema riflessione

TRANSAZIONE

Figura 6-5. Tempo di risposta per un sistema time sharing

6.5 – SISTEMI A MULTIPROCESSORE


L’obiettivo di questi sistemi, che utilizzano piu’ processori centrali, e’ quello di aumentare la
potenza di calcolo e l’affidabilità del sistema.

Le soluzioni attualmente utilizzate rientrano in due categorie:


Capitolo 6 6.4
Dispense di Calcolatori Elettronici 1
• Processori con compiti specifici
(esempio: operazioni in virgola mobile, operazioni su vettori)

• Insieme di processori equivalenti


• Rete di calcolatori autonomi (pochi, complessi)
• Rete di calcolatori coordinati (molti, semplici)

6.6 - TEMPO REALE (REAL TIME)


Prima definizione: Un sistema funziona in tempo reale se fornisce risposta agli ingressi in
tempo utile per influenzare gli ingressi successivi.

Dalla definizione si evince che la caratteristica principale sta nell’esistenza di vincoli


temporali rigidi, quali si incontrano (sia pure con esigenze diverse) per esempio nelle
applicazioni di controllo di processi e nella Computer Assisted Instruction (C.A.I.).

Seconda definizione: Un sistema in tempo reale è un sistema di elaborazione la cui valutazione


è fatta essenzialmente in termini della sua capacità o meno di rispettare predeterminati vincoli
temporali nella esecuzione dei programmi.

Da questo punto di vista i sistemi in tempo reale sono suddivisibili in due categorie:
• “HARD”
Il mancato rispetto dei vincoli temporali può originare effetti catastrofici (morti, feriti,
severe perdite finanziarie)
ƒ “SOFT”
Il mancato rispetto dei vincoli temporali non produce effetti catastrofici.

6.7 - SERVIZI OFFERTI DAL S.O.


Come gia’ detto, il S.O. serve per agevolare la programmazione semplificando lo svolgimento
di attivita’ quali:
• Operazioni di I/O
• Esecuzione programmi
• Manipolazione archivi
• Rilevazione degli errori
Esso serve inoltre per migliorare l’efficienza d’uso del calcolatore intervendo nella:
• Allocazione di risorse
• Contabilità
• Protezione

6.8 - STRUMENTI A DISPOSIZIONE DEL S.O.


Un sistema operativo utilizza vari strumenti i principali dei quali sono:
• Programmi di sistema
• Chiamate al Sistema Operativo o Supervisor Call (SVC) o System Call
• Interruzioni
• Istruzioni privilegiate (si tratta di istruzioni utilizzabili solo da particolari utenti e
destinate al S.O.)

Capitolo 6 6.5
Dispense di Calcolatori Elettronici 1
PROGRAMMI DI SISTEMA
Sono classificabili in varie categorie:
• Manipolazione di archivi (“file”)
Esempi: copiare, cambiare nome, stampare, trasferire
• Modifica di archivi (“editing”)
• Fornitura di informazioni sullo stato del sistema
Esempi: data, ora, numero di utenti, tempo di risposta, memoria disponibile
• Supporto di linguaggi di programmazione
• Caricamento ed esecuzione di programmi
Esempi: caricatori, caricatori rilocabili, editori di collegamento, sistemi per messa a
punto di programmi
• Programmi applicativi di uso generale
Esempi: tracciatori di grafici, basi di dati, programmi di analisi statistica, compositori di
testi, programmi di ordinamento e di fusione
• Interprete dei comandi

CHIAMATE AL S.O.
Sono solitamente disponibili come dichiarazioni del linguaggio assemblativo, che
interrompono l’esecuzione del programma e passano il controllo al supervisore:
• Controllo di lavori (“job”)
Esempi: definizione attributi, caricamento, esecuzione, termine, interruzione, traccia,
dump, attesa
• Manipolazione di archivi
Esempi: creazione, cancellazione, definizione attributi
• Gestione dei dispositivi
Esempi: richiesta, rilascio, lettura, scrittura, riposizionamento
• Traferimento delle informazioni tra S.O. e programma
Esempio: data, ora, dati sul sistema, attributi di lavori e archivi

INTERRUZIONI
Si tratta di segnali il cui presentarsi indica quasi sempre che si sono verificati eventi che
interessano il S.O..
Le interruzioni provengono da
• Chiamate al sistema
• Dispositivi di I/O
• Errori originati dal programma

Interruzioni originate da chiamate al sistema


• Completamento normale (di un lavoro)
• Completamento anormale (previsto dall’utente)
• Richiesta di informazioni sullo stato del sistema
• Richiesta di risorse
• Richiesta di I/O

Interruzioni originate da dispositivi di I/O


Le interruzioni sono conseguenti all’accoglimento di richieste avanzate da un programma.

Avviata l’operazione di I/O si può:


• Attenderne il completamento
• Restituire il controllo al programma utente

A sua volta l’attesa del completamento si può attuare con


• Istruzione WAIT
• Ciclo di attesa del tipo: LOOP: JUMP LOOP
In questo modo c’ è sempre una ed una sola richiesta di I/O in sospeso.

Capitolo 6 6.6
Dispense di Calcolatori Elettronici 1
Restituendo invece subito il controllo al programma utente si deve tener conto di una
eventuale molteplicità di richieste inevase per mezzo della tabella dello stato dei
dispositivi. Ad ogni dispositivo è necessario associare una lista delle richieste (si veda fig.
6-6).

T AB E LLA D E LLO S T AT O L IS T E D E LLE


D E I D IS P O S IT IV I R IC H IE S T E

D is p o s itiv o : le tto r e s k
In d i r iz z o : 1
S ta to : in a ttiv o

D is p o s itiv o : s ta m p a n te F ile : A A A
In d i r iz z o : 2
S ta to : a ttiv o In d : 0 3 6 5 4

D is p o s itiv o : d is c o
In d i r iz z o : 3
S ta to : in a ttiv o

D is p o s itiv o : d is c o
In d i r iz z o : 4
S ta to : in a ttiv o

D is p o s itiv o : d is c o F ile : B B B F ile : C C C


In d i r iz z o : 5 O p e ra z : O p e ra z :
S ta to : a ttiv o le ttu ra s c r ittu r a
In d : 3 0 1 2 0 In d : 9 1 2 2

In d iriz z o = d e n o m in a z io n e
c o n v e n z io n a le d e l d is p o s itiv o In d iriz z o = p o s iz io n e a p a rtir e
a ll’ in te rn o d e l c a lc o la to re ( d e f in ito d a lla q u a le s i v u o le
a lla “g e n e ra z io n e ” d e l S .O . ) e f f e ttu a re l’ o p e ra z io n e

Figura 6-6. Utilizzo della tabella dello stato dei dispositivi e delle liste delle richieste

Se si vede il Sistema Operativo come un programma pilotato da eventi si puo’ tracciare il


diagramma semplificato di fig. 6-7.

Capitolo 6 6.7
Dispense di Calcolatori Elettronici 1

In t e r r u z io n e

S a lv a t a g g io r e g is t r i

T ip o d i in t e r r u z io n e

C o m p le t a m . E rro re R ic h ie s t a R ic h ie s t a C o m p le t a m
la v o r o n o n I/ O I/ O I/ O

Dum p

E s e c u z io n e
A l s u c c e s s iv o
In iz io
la v o r o o c o m a n d o
s o d d is f a c im . A g g io r n a m .
o a tte s a t a b e lla s t a t o
c o n a g g io r n . d is p o s it iv i
t a b e lla

A l p ro g ra m m a
u te n te

Figura 6-7. Schema generale di flusso di un sistema operativo

6.9 - COMPONENTI ESSENZIALI DI UN SISTEMA OPERATIVO


Le componenti essenziali di un sistema operativo sono costituite da:
• Gestore delle interruzioni
• Programmi di gestione dei dispositivi (“driver”)
• Interprete dei comandi
• Routine per le chiamate al sistema
• Gestore della memoria primaria
• Gestore dei processori
• Gestore dell’I/O
• Gestore dei file (“File System”)

Le ultime quattro componenti verranno descritte nei capitoli seguenti.

Capitolo 6 6.8