Passa ai contenuti principali

Teoria: Il Sistema Operativo (Parte 3)

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:
  1. il registro base
  2. il timer
  3. 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

Post popolari in questo blog

EDVAC

EDVAC (Electronic Discrete Variable Automatic Computer) L' E lectronic D iscrete V ariable A utomatic C omputer ( EDVAC ) è uno dei primi computer elettronici digitali della storia, uno dei primi computer della storia basato sull'architettura di Von Neumann e uno dei primi computer a programma memorizzato della storia. L' ENIAC era veloce, ma disponeva di pochissimo spazio di archiviazione . Inoltre, per la programmazione doveva essere ricablato , un'operazione che richiedeva da poche ore a giorni interi; era, inoltre, poco affidabile, a causa delle molte valvole tubolari utilizzate, che richiedevano, tra l'altro, moltissima energia e molto spazio per funzionare e generavano molto calore. Il che faceva lievitare costi di gestione.

Colossus

Colossus " Colossus fu il primo elaboratore elettronico al mondo: fu realizzato in Gran Bretagna nel 1943, alla fine della seconda guerra mondiale, dall’intuizione del Dott. Thomas Flowers. Operativo dal 1944 a Bletchley Park, sostituì Heath Robinson, un macchinario più semplice, nel decifrare le comunicazioni criptate della Germania nazista. Entro la fine del conflitto furono costruiti dieci esemplari di Colossus, un “gigante” da 1.600 valvole termoioniche. Il Dott. Flowers aveva concepito il progetto prima della guerra, però il centro di ricerca britannico non era convinto che fosse davvero realizzabile: la tenacia dell’ingegnere, alla lunga, s’è rivelata determinante. " Citazione - Tratta da:   http://www.downloadblog.it/post/16765/colossus-il-primo-elaboratore-elettronico-a-essere-stato-realizzato

MANIAC

Verso la fine della guerra, gli scienziati di Los Alamos stavano utilizzando il primo computer elettronico . John Von Neumann fu il protagonista principale di questo cambiamento, che condusse, poi, allo sviluppo del programma per calcolare il comportamento degli esplosivi nucleari. I calcoli iniziali concernenti la diffusione dei neutroni in un montaggio critico di uranio furono effettuati da Eldred Nelson e da Stanley Frankel , che erano membri del gruppo di Robert Serber presso il Radiation Laboratory dell' università di Berkeley , California, nel 1942.  A Los Alamos  ordinarono lo stesso tipo di macchine che avevano utilizzato in California.