Il Sistema operativo è rappresentato dagli insiemi di programmi che

Introduzione al Sistema Operativo
Il sistema operativo è un insieme di programmi che permettono di
 gestire in modo ottimale le risorse del computer
 facilitare l'uso del computer svincolando l’utente dalle conoscenze delle caratteristiche
fisiche della macchina.
I primi sistemi operativi erano semplici, costituiti da pochi programmi che rendevano il computer
poco autonomo nella esecuzione dei lavori. L' operatore doveva avviare e seguire le singole fasi
necessarie allo svolgimento di un determinato job. In caso di errore l'operatore doveva intervenire
direttamente per identificare l'errore e rimuoverlo.
Gli attuali sistemi operativi invece rendono la macchina molto più autonoma. L'utente una volta
richiesto l'esecuzione di un compito, deve solo attendere in pochi secondi l'espletamento del
compito
e se si dovessero verificare situazioni di errore il sistema operativo provvede a
riconoscere e a comunicare all'utente il tipo di errore che si è verificato.
Un' altra caratteristica degli attuali S.O. è il Plug and Play (inserisci e vai) che consiste nella
capacità del S.O. di riconoscere e far funzionare i nuovi dispositivi aggiunti al computer senza che
l'utente debba provvedere all'installazione dei driver ( programma pilota del dispositivo) necessari
al funzionamento degli stessi.
L' esigenza di rendere sempre più facile l'uso del computer e di utilizzare al meglio le risorse del
computer stesso ha determinato una continua evoluzione dei sistemi operativi.
I primi sistemi operativi erano sistemi in monoprogrammazione, questi sfruttavano poco la
capacità elaborativa della CPU, ad essi seguirono i sistemi in multiprogrammazione prima,
e i sistemi in time sharing poi che hanno permesso un uso più efficiente della CPU e delle
altre risorse del computer.
Sistema operativo in monoprogrammazione
Si parla di sistema in monoprogrammazione quando un solo programma utente è residente in
ogni istante in memoria centrale e viene eseguito.
Nel sistema in monoprogrammazione, quando viene richiesta l'esecuzione del programma, la CPU
inizia ad eseguire le istruzioni del programma, una alla volta, cominciando dalla prima. Quando
incontra un’ operazione di I/O, la CPU affida l'esecuzione dell'operazione all'elaboratore di canale
e si pone in attesa che l'operazione sia completata. Terminata l'operazione di I/O la CPU riprende
l'esecuzione del programma. Vedi figura
Tcpu
R
U
N
Tcpu
Tcpu
R
U
N
R
U
N
attesa
Inizio programma
attesa
Fine programma
Tempo
Si può rilevare che, durante l'esecuzione del programma, il tempo che la CPU è inattiva è di gran
lunga maggiore del tempo in cui la CPU è operativa, questo perché i dispositivi coinvolti nello
svolgimento delle operazioni di I/O hanno dei tempi di lavoro dell'ordine di secondi o minuti mentre
la CPU ha tempi di lavoro di nano secondi (1 nanosecondo= 1 miliardesimo di secondo). La CPU
nei sistemi in monoprogrammazione risulta quindi essere una risorsa poco sfruttata.
Per un migliore utilizzo della CPU, sono stati sviluppati i sistemi operativi in multiprogrammazione.
1
Sistema operativo in multiprogrammazione
S.O.
A
B
Memoria centrale
In un sistema in multiprogrammazione l'elaboratore intercala l'esecuzione di due o più programmi
presenti in memoria pronti per essere eseguiti. Il sistema operativo assegna la CPU al programma
che ha la priorità più alta, supponiamo A, il programma A entra in esecuzione. Dopo un certo
intervallo di tempo il programma A dovrà fermarsi in attesa che venga eseguita una operazione di
Input/Output. Il S.O. salva lo stato di avanzamento del programma A e avvia l'esecuzione del
programma B. Il programma B entra in esecuzione fino a quando non si verifica
un'interruzione(=segnale emesso dalla periferica interessata all'operazione di I/O) che segnala
alla CPU che l'operazione di I/O del programma A è terminata. Il S.O. a questo punto memorizza
lo stato di avanzamento del programma B e fa riprendere l'esecuzione del programma A.
L'elaborazione in multiprogrammazione riduce il tempo in cui la CPU resta inutilizzata in quanto si
eseguono più programmi in minor tempo.
Nel sistema in multiprogrammazione, tuttavia, un programma che richiede molte operazioni di
calcolo potrebbe monopolizzare per troppo tempo la CPU, ai danni di altri in attesa; viceversa un
programma con molte operazioni di I/O risulta penalizzato e può avere un tempo di esecuzione
molto più lungo di quello che avrebbe in un sistema monoprogrammato. Per ovviare anche a
questo inconveniente e per migliorare l’efficienza del sistema sono stati introdotti i sistemi
operativi in time sharing o a ripartizione di tempo.
Sistema in time sharing
In un sistema operativo in time sharing a ciascun programma viene assegnato un tempo massimo
di utilizzo della CPU, detto “time slice”, superato il quale il programma viene forzatamente
interrotto. La CPU, quindi, cicla da un programma all'altro dedicando qualche millisecondo a
ciascuno dei programmi presenti in memoria centrale. I sistemi multiutente lavorano in time
sharing. La configurazione che, in generale, un sistema multiutente presenta è un elaboratore
centrale al quale sono collegati più terminali attraverso i quali ciascun utente richiede l'esecuzione
di un determinato compito. Ciascun utente ha l'impressione di avere a disposizione l'intero sistema
di elaborazione. Infatti, data l'alta velocità elaborativa della CPU nei confronti dell'operatore
umano, il tempo che l'utente impiega per inviare da terminale la richiesta di una elaborazione, la
CPU lo impiega per servire gli altri utenti.
Osservazione
Nei sistemi operativi in mutiprogrammazione e in time sharing aumenta il carico di lavoro del
sistema operativo (overhead system) che deve effettuare il context switch (cambiamento di
contesto) ossia
• salvare lo stato del processo interrotto (PCB Process control block è una struttura dati
del sistema operativo che contiene le informazioni essenziali per la gestione del processo)
• scegliere il processo da far avanzare
• caricare lo stato(PCB) del nuovo processo
2
Modalità di elaborazione dati

Modalità batch: nell'elaborazione batch o a lotti i dati da elaborare vengono accumulati negli
archivi magnetici (file) durante un periodo ed elaborati a determinate scadenze in una unica
operazione di lettura , elaborazione, emissione. L'elaborazione delle paghe settimanali è un
esempio di elaborazione a lotti : i dati sulle paghe si accumulano durante il periodo di una
settimana e poi sono elaborati. Si usa questo tipo di elaborazione anche per l'aggiornamento
delle scorte di magazzino, per il calcolo degli estratti conto di una banca e così via.

Modalità real time : nell'elaborazione in tempo reale i dati da elaborare arrivano
ininterrottamente al computer e vengono elaborati istantaneamente influenzando elaborazioni
successive. Per esempio per le prenotazioni su linee aeree o ferroviarie ogni prenotazione
viene registrata dal sistema elaborativo non appena viene formulata in una delle varie agenzie
in modo che il calcolatore possa fornire in ogni istante la situazione aggiornata delle
disponibilità dei posti su un dato volo o treno.

Modalità interattiva : nella modalità di elaborazione interattiva l'utente attraverso la tastiera,
può condurre un vero e proprio colloquio con il sistema in modo da seguire direttamente i vari
passi relativi alla elaborazione richiesta. I risultati dell'elaborazione, letti direttamente dall'utente
nell'istante che sono prodotti, danno luogo da parte dell'utente stesso a richieste che vengono
comunicate all'elaboratore e che possono influire sulla elaborazione successiva
3