FlavioT di FlavioT
Ominide 21 punti

Sistemi operativi

Che cosa è un sistema operativo?

Un sistema operativo è l'unico programma che gira sempre nel sistema in attesa di ricevere richieste.
Nello specifico è:
- un ambiente di esecuzione per programmi applicativi
- un'interfaccia di comunicazione tra gli utenti (persone o programmi) e l'hardware
- un gestore di risorse (hardware e software)
- un fornitore di servizi
- un programma di controllo

Un sistema operativo rende utilizzabile un sistema di calcolo ovvero l'insieme di componenti hardware, programmi e dati.
Attenzione: Non fanno parte del sistema operativo:
- i tool di sviluppo software (compilatori, librerie ecc..);
- programmi di utility (editor di testi, calcolatrici ecc..);
- Applicativi vari (grafica, internet, database ecc..).

Storia dei sistemi operativi

ENIAC

Fu il primo computer interamente elettronico. Entrò in funzione nel 1946 presso il centro di ricerca balistica dell' US Army.
Pesava 30 tonnellate ed eseguiva 300 moltiplicazioni al secondo. Era in grado di leggere dati in input da un lettore di schede perforate e produceva l'output con un perforatore di schede. Per eseguire un programma bisognava impostare a mano seimila interruttori e relativi collegamenti elettrici.

Mainframe

Sono i primi computer "commerciali". UNIVAC fu il primo nel 1950 in grado di risolvere problemi di calcolo scientifico e gestionale.
Pesava 5 tonnellate e il programma, scritto in binario su schede perforate, era caricato in memoria da un operatore attraverso una consolle. I dati erano anch'essi su schede perforate e venivano ugualmente caricati a mano dall'operatore. Dato l'elevato costo di un mainframe spesso chi ne possedeva uno dava in affitto il tempo macchina.

La seconda generazione

Le valvole vengono rimpiazzate dai Transistor e nascono i primi linguaggi Assembler.
L'IBM sviluppa il linguaggio Fortran nel 1954 e tre anni dopo nasce la Digital con l'obiettivo di produrre calcolatori per medie imprese detti poi MINI. Nel 1960 la marina USA sviluppa il linguaggio Cobol.

Il monitor residente

Fu la prima rudimentale forma di sistema operativo, un programma sempre in memoria che si occupava di caricare in memoria da scheda o da nastro magnetico e trasferirgli il controllo. Successivamente era possibile caricare in memoria i dati richiesti e aspettare la sua fine normale o errata. Dunque era in grado di segnalare errori e caricare direttamente il programma successivo.
il monitor residente richiedeva l'intervento dell'operatore per soddisfare le richieste dei vari programmi. Per evitare i tempi morti di questo tipo di interventi, nel 1958 nacquero i primi due sistemi operativi BATCH.

Sistemi operativi batch

Il primo fu un'iniziativa commerciale dell'IBM con il GM/NAA-I/O.
Il secondo fu il progetto S.O.S. nato da una comunità open source per la condivisione di software ed esperienze informatiche.
Questa evoluzione dei monitor residenti riduceva al minimo l'intervento dell'operatore. Questi, infatti, ordinava i JOB in gruppi omogenei detti BATCH il cui primo job era il programma richiesto.
A causa della lentezza dei lettori e perforatori di schede, la costosissima CPU rimaneva inattiva per troppo tempo. Quando si diffusero le più veloci unità a NASTRO MAGNETICO sorsero dei problemi: copiare programmi e dati dalle sche ad un nastro e copiare l'output da un nastro a delle schede o ad una stampante.
Per eseguire queste copie vennero utilizzati dei veri e propri computer di I/O che lavoravano in parallelo con il mainframe. Un nastro, però, è un dispositivo ad accesso sequenziale. Se i job di un batch sono su un nastro, l'unica possibilità è leggerli ed eseguirli uno alla volta...se un job si ferma in attesa di qualcosa la CPU rimane inattiva.

Dischi a multi programmazione

I dischi permettono l'accesso CASUALE: se i job di un certo batch sono su un disco, il sistema operativo può accedere ad essi in qualunque ordine. In un sistema multiprogrammato la memoria centrale contiene contemporaneamente più programmi caricati da un disco.
- il sistema operativo esegue uno dei job caricati e gli lascia il controllo finché non si blocca in attesa di qualcosa
- il controllo passa ad un altro job che usa la CPU mentre l'altro aspetta;
- quando anche questo si blocca, può tornare in esecuzione il primo e se non è ancora pronto ne può mandare in esecuzione un altro.

Questo meccanismo introduce nuove problematiche legate alla programmazione del sistema:
Job Scheduling (quali job presenti in memoria devono essere caricati) - CPU Scheduling (quale tra i job caricati deve andare in esecuzione) - Gestione della memoria (i job non devono invadere spazi di altri job e quindi vanno MAPPATI) - Spooling (l'uso dell' I/O da parte dei vari job non deve interferire tra loro)

Sistemi operativi time sharing

L'avvento di tastiere e monitor testuali monocromatici contribuì all'idea di far interagire gli utenti direttamente con le macchine. Inoltre un mainframe o un mini potevano servire tranquillamente molti utenti in contemporanea. Data l'enorme lentezza umana in confronto ad una CPU, questa può servire più utenti a rotazione dedicando pochi millisecondi a ciascuno dando l'impressione all'utente che il computer gli sia totalmente dedicato.
Il primo sistema operativo time sharing risale al 1961 e fu l'IBM 7090 anche se il primo calcolatore venduto con questo tipo di sistema operativo fu il Digital PDP-1 nel 1962. La differenza con i sistemi batch è che nei sistemi time sharingè l'utente a scegliere cosa mandare in esecuzione. Inoltre un utente può eseguire più programmi in maniera concorrente e più utenti possono eseguire lo stesso programma. Il concetto di job non funziona più con il time sharing. Il job, infatti, può essere eseguito solo una volta mentre nel time sharing più utenti potrebbero richiedere l'esecuzione dello stesso programma. Dunque ciascuna entità in esecuzione è un processo diverso.
Essendo condiviso si aggiungono nuove problematiche da risolvere:
Memoria virtuale (usare il disco come appoggio per far fronte alla limitatezza della memoria fisica e garantire a tutti gli utenti la memoria necessaria)

Gestione del filesystem (impedire che un utente manometta dati di un altro utente).
Questo ha permesso alle aziende dell'epoca di avere migliaia di impiegati connessi al mainframe via linea telefonica che potevano comunicare con il sistema tramite un interprete di comandi detto Shell.

La terza generazione

E' basata sui cicuiti integrati che permisero di costruire macchine più veloci e piccole e molto meno costose. In concomitanza con lo sviluppo di nuovi linguaggi di programmazione nacque il sistema operativo MULTICS capostipite dei S.O. Unix.
Nonostante il primo PC (il P101) sia stato costruito dalla Olivetti nel 1965, la vera rivoluzione si ebbe nel 1971 quando l'Intel inventò il Microprocessore.
Un PC, essendo costruito per essere monoutente, non necessita di prestazioni eccezionali ma deve essere di facile utilizzo per utenti non esperti.
ne consegue che un S.O. per PC non deve affrontare problemi di uso efficiente delle risorse nè di protezione ma deve avere un'interfaccia semplice e immediata.
Le prime CPU per PC non offrivano nessun supporto per la sicurezza e robustezza di un S.O..I primi S.O. per PC come MS-DOS (1981) e Macintosh (1984) potevano essere tranquillamente distrutti da un programma utente. Il sistema Macintosh è stato il primo a proporre un'interfaccia a finestre, seguito poi da Microsoft che mise Windows (1985) su Ms-Dos.
Con l'avvento di internet e la sempre meno chiara demarcazione tra workstation e PC, questi S.O. hanno adottato le tecnologie tipiche del time sharing. Ad oggi I S.O. per PC più diffusi sono LINUX (1991, versione PC di Unix), la famiglia di sistemi WINDOWS (1995) e Mac 0S (1997).

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email