Protezione, unità a disco, file system
Con l'uso di un sistema operativo, l'elaboratore è utilizzato da almeno due utenti simultanei: l'operatore di sistema, che utilizza il sistema operativo per far funzionare in modo efficiente l'elaboratore; e l'utente finale/programmatore, che ha consegnato all'operatore il programma applicativo e i dati, che utilizza il programma applicativo per elaborare i propri dati. Nei sistemi multi-programmati ci possono essere altri utenti simultanei.
Se un programma contiene degli errori o comunque degli algoritmi che usano le risorse in modo non economicamente conveniente (per esempio, impiegano dei minuti per eseguire un calcolo che potrebbe essere eseguito in pochi secondi), danneggia gli altri utenti. Siccome i programmi applicativi spesso contengono difetti, un sistema di elaborazione dati multiutente deve impedire ai programmi applicativi tali comportamenti devianti e dannosi.
Il problema non si presenta per i difetti che può avere il sistema operativo stesso, in quanto, se il sistema operativo genera un malfunzionamento, comunque il funzionamento del software applicativo è compromesso.
Quindi un obiettivo del sistema operativo è fare in modo che qualunque comportamento possa avere un programma applicativo, questo non possa danneggiare l'esecuzione del sistema operativo stesso e di altri programmi in esecuzione simultanea o che verranno eseguiti in seguito. Questo era semplicemente impossibile nei primi computer negli anni '50 e nei primi microprocessori (quelli a 8 bit).
Per renderlo possibile sono state apportate modifiche all'hardware dei computer. Tali accorgimenti tecnici prendono il nome di "protezione hardware".
La protezione hardware dei primi sistemi operativi si basava essenzialmente su tre concetti:
- il registro base
- il timer
- la modalità del processore
Il registro base
Quando vengono assegnati gli indirizzi per leggere e scrivere un dato o caricare una istruzione, un particolare circuito controlla che l'indirizzo per cui vangono utilizzate tali operazioni non sia più basso dell'indirizzo base stabilito.
Il Timer
Non è altro che un dispositivo che, assegnato un determinato tempo ad un programma (o ad un processo) allo scadere dello stesso interrompe il processo e passa il controllo al sistema operativo.
La modalità del processore
Il processore, in questo caso, ha due modalità di funzionamento:
- la modalità protetta
- la modalità utente
Nella modalità protetta le eventuali operazioni possono essere eseguite solo dal sistema operativo e non hanno limitazioni, si definiscono anche come "istruzioni privilegiate".
Nella modalità utente vengono eseguite le operazioni del software applicativo o di quei software che, comunque, non può portare discapito al funzionamento del sistema nel suo complesso. Quando devono essere eseguite delle istruzioni privilegiate da parte del software in user mode, questo effettua quelle che vengono definite delle chiamate di sistema (system call), quindi, se queste vengono accettate, si passa alla modalità protetta per eseguirle e, successivamente, si ripassa alla modalità utente per eseguire il resto dell'applicativo.
Dato che la memoria dei primi calcolatori era molto piccola, essa poteva contenere solo le istruzioni e i dati che dovevano essere elaborati. Spesso, alla fine di un ciclo di calcolo dello stesso programma, si dovevano ricaricare altre istruzioni ed altri dati, dato che la memoria non era sufficiente a contenere contemporaneamente il tutto.
Il File System
L'uso dei nastri magnetici (ad accesso sequenziale) non si dimostrò molto efficiente a questo scopo. Fu necessario introdurre un altro tipo di memoria, quella ad accesso diretto, stiamo parlando dei "tamburi magnetici" e dei "dischi magnetici". L'operazione di caricare parti del programma quando serviva (e di dati, ovviamente) era molto più veloce che con i nastri magnetici. Il problema era, inizilmente, che finite tutte le operazioni, il contenuto del tamburo magnetico e, successivamente, dei dischi magnetici veniva cancellato per fare spazio ad altre istruzioni e dati. Fu presa in considerazione, quindi, l'opzione di trovare un sistema di conservazione permanente dei dati. Questo avrebbe permesso di poter effettuare ricerche sulle informazioni anche a distanza di tempo notevole rispetto alla loro elaborazione.
Un altro problema era la ricerca efficiente delle informazioni stesse. Non bastava avere, semplicemente, le informazioni registrate su un disco, magari, in comune, bisognava sapere dove queste si trovavano. In sintesi si doveva provvedere ad un sistema di "catalogazione" e "ricerca rapida" dei dati. Tale compito, affidato al sistema operativo era svolto attraverso quello che si definisce il "file system".
Per condividere una unità disco tra vari programmi, assicurando che nessun programma possa danneggiare le funzionalità degli altri programmi è ovviamente necessario che tutti gli accessi all'unità disco siano mediati dal sistema operativo, cioè che l'unico modo in cui un programma possa leggere o scrivere dati su un disco sia chiedendo al sistema operativo di svolgere tale servizio per conto del programma applicativo. I primi sistemi operativi per microcomputer, come CPM e MS-DOS, non avevano, ad esempio, alcuna protezione hardware, neanche per l'accesso all'unità disco, ma questo non creava, al tempo, problemi in quanto i programmtori che utilizzavano tali macchine si preoccupavano di accedere alle unità a disco solo attraverso richieste al sistema operativo (chiamate di sistema). Questi sistemi erano sistemi mono-utente e venivano considerati a bassa criticità.
Sistemi ad alta criticità,al contrario, avevano la necessità di un controllo più sofisticato a livello di protezione hardware. Quindi il sistema operativo, attraverso la gestione di un file system dedicato, doveva assicurare una efficiente gestione delle informazioni e un'alta sicurezza. In sintesi:
- impedire ai programmi applicativi l'accesso diretto alle unità disco
- impedire ai programmi applicativi l'accesso a parti dell'unità disco per cui l'utente del programma non è autorizzato
- impedire accessi non autorizzati neanche smontando il disco e collegandolo a un altro computer
- impedire a un programma applicativo di occupare troppo spazio su disco, con il rischio di impedire il funzionamento di altri programmi
Commenti
Posta un commento