Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Introduzione 1900, evoluzioni e catastrofi tesina
La seguente tesina di maturità descrive il 1900, un secolo di evoluzioni e di catastrofi. La tesina di maturità abbraccia le varie materie scolastiche: in Italiano Primo Levi, in Storia Seconda guerra mondiale, in Inglese Second World War, in Informatica gli alberi, in Sistemi di elaborazione la storia dei sistemi operativi, in Calcolo e statistica la Ricerca Operativa e in Elettronica la storia dei transistor.
Collegamenti
1900, evoluzioni e catastrofi tesina
Italiano-Primo Levi.
Storia-Seconda guerra mondiale.
Inglese-Second World War.
Informatica-Gli alberi.
Sistemi di elaborazione-La storia dei sistemi operativi.
Calcolo e statistica-Ricerca Operativa.
Elettronica-La storia dei transistor.
ALBERO BINARIO DI
RICERCA (ABR)
Un albero binario si dice di ricerca quando:
Per ogni nodo dell'albero il campo informativo è maggiore dei campi informativi del sottoalbero sinistro e
minore delle informazioni che si trovano nel sottoalbero destro
La visita in ordine di un ABR produce le chiavi in modo ordinato
Albero Binario Di Ricerca
All'interno dei nodi dell'albero è indicato solo il valore del campo informativo ipotizzando che esso sia di
tipo numerico. 6
LA STORIA DEI
SISTEMI OPERATIVI
DAGLI ANNI 40 A OGGI
Anni 40-50: Elaborazione seriale
I calcolatori venivano realizzati con le valvole elettroniche quindi avevano dimensioni e prezzi
grandissimi, tanto da scoraggiare l’uso se non per usi di ricerca come nelle università o per usi
bellici (come la Seconda Guerra Mondiale). Erano lentissimi rispetto alla velocità d’esecuzione dei
giorni d’oggi, tipicamente 5.000 istruzioni al secondo. Erano così costosi e complessi che erano
fatti su ordinazioni e ognuno era diverso e finalizzato solo allo scopo per cui era stato progettato,
realizzato e venduto. Ma la differenza più evidente tra i calcolatori di questi anni e quelli odierni è
l’assenza del concetto di Sistema Operativo. Quando questi calcolatori venivano venduti, venivano
associati dei tecnici in grado di fare manutenzione e capaci ad usarli.
Metà anni 50: elaborazione a batch
In questi anni vennero applicati i Transistor all’informatica, che rivoluzionarono notevolmente il
mondo dei calcolatori, riducendone di molto le dimensioni e il prezzo, aumentando così la velocità
d’esecuzione. In questi anni nascono i primi linguaggi di programmazione ad alto livello come
l’Assembler, iniziarono così anche le produzioni standard aumentando le vendite. La fase di
esecuzione comprendeva: la predisposizione del compilatore adeguato, l’inserimento del codice
sorgente, compilazioni con eventuale uso di librerie o moduli esterni ed esecuzione del codice
prodotto dall’elaboratore. Il problema di fondo è che ad ogni operazione richiedeva un operatore
che preparava ogni fase. Così per ridurre i tempi e il personale, vennero raggruppati tutti i
programmi con caratteristiche simili (stesso compilatore, stesse librerie, stessi moduli) in lotti detti
Batch, che venivano eseguiti sequenzialmente per risparmiare i tempi di impostazione del
calcolatore, fu sviluppato un modulo software specifico, chiamato Monitor, capace di interpretare
un numero ristretto di istruzioni utilizzate dai calcolatori per automatizzare i meccanismi di
esecuzione di un programma, come: il caricamento dei compilatori e dei moduli, l’avvio delle fasi 7
di esecuzione, la memorizzazione del codice prodotto, l’esecuzione del programma stesso, la
gestione dell’input e dell’output e la ricerca di eventuali errori. I dispositivi d’input tipici erano i
lettori dei schede perforate, quindi l’ordine delle istruzioni era l’ordine in cui le schede erano
fisicamente inserite nel lettore, mentre dispositivi d’uscita tipici erano le stampanti. Si può quindi
affermare che il monitor è il precursore dei moderno Sistemi Operativi. Ma questa tecnica aveva
uno svantaggio, visto l’elevato costo di una CPU non ci si poteva permetter di non sfruttarla a
pieno, infatti durante l’input e l’output rimaneva inattiva aumentando il tempo d’esecuzione.
Fine anni 50 (Batch multitasking)
Il problema del poco uso della CPU è stato risolto con la tecnica dello spolling. Lo spolling
prevedeva che la CPU prendesse dati in input dal disco e l’output fosse fatto su disco così da
velocizzare le operazioni, era poi compito di un secondo calcolatore mettere a disposizione sul
disco i dati in input e a stampare i dati in output. Ma per essere funzionale il secondo calcolatore
deve fornire i dati prima di quando la CPU ne abbia bisogno, usando anche più periferiche
contemporaneamente. Ma questa tecnica non basta a velocizzare abbastanza i processi, così
vengono aggiunte nuove funzioni al monitor, viene programmato in modo da riuscire a portare
avanti più programmi contemporaneamente. Per far ciò la CPU eseguiva il codice di un solo
programma quando il programma aveva bisogno di una periferica di input o di output il monitor
attivava il secondo calcolatore lasciando così che la CPU continuasse l’esecuzione di altri
programmi. Ma questa tecnica funziona solo nel caso in cui più programmi non richiedano
contemporaneamente l’uso dello stesso dispositivo di input o output. Questa architettura è detta
batch multitasking 8
Il termine calcolatore viene sostituito col termine mainframe. Nel monitor vengono aggiunte
funzioni ancora oggi importanti come la gestione condivisa della memoria che permette
l’allocazione in memoria di più programmi contemporaneamente. All’inizio era possibile
adottando partizioni di memoria, ma successivamente furono adottate partizioni di memorie
virtuali, creando spazi logici, uno per ogni programma in esecuzione, tutti riferiti a spazi di
memoria disponibili. Un’altra funzione importante implementata nel monitor è il meccanismo di
protezione che garantisce che i vari programmi non interferiscano col Sistema Operativo, o tra di
loro; era implementato a livello hardware progettando due utenze diverse con privilegi diversi:
modalità utente in cui il programma ha accesso solo al suo spazio su dico e modalità protetta
(Kernel) in cui il monitor, ha accesso a tutte le aree di memoria e può cambiare modalità
operativa.
Primi anni 60 (elaborazione a divisione del tempo)
Benché il multitasking desse grandi vantaggi in ambito di velocità d’esecuzione, aveva ancora degli
svantaggi come la mancanza di interattività tra utente e programma, e soprattutto i programmi
che usavano più frequentemente i dispositivi di input e output erano svantaggiati. Per questo
problema il monitor (diventato a tutti gli effetti un Sistema Operativo) lascia al programma
l’utilizzo della CPU per una frazione di tempo, quando questa frazione di tempo si esaurisce o il
programma ha bisogno di un dispositivo di input o di output il controllo della CPU torna al Sistema
Operativo, se il tempo non è sufficiente per la completa esecuzione del programma il Sistema
Operativo riprende il controllo della CPU e l’esecuzione del programma viene momentaneamente
bloccata finche il programma torna a controllare la CPU e continua l’esecuzione del programma da
dove si era bloccata. Con l’avvento dei circuiti integrati questa frazione di tempo è stata fissata a
qualche decina di millisecondi. Questa tecnica prese il nome di time-sharing e garantì
un’interattività tra utente e calcolatore. In questo modo il calcolatore esegue
contemporaneamente più applicazioni di utenti diversi. Questa frazione di tempo si chiama time-
slice. I tempi di risposta della CPU dipendono dalla capacità del sistema e dal numero di
programmi in esecuzione, due parametri controllati dal Sistema Operativo. Il time-sharing è
implementato a livello hardware tramite interrupt, facilmente gestibile a livello software. Ora il
problema era scegliere quale programma sarebbe stato eseguito alla fine del time-slice. Problema
risolto con l’utilizzo della politica di scheduling. In questi anni cambiarono anche i termini, il
termine programma fu sostituito da processo, l’esecuzione quindi diventò un esecuzione di tipo
multiprocessing, il termine mainframe, il computer centrale, venne chiamato minicomputer,
capace con un solo time-sharing di gestire 10-100 utenze.
Anni 60-70 (Architettura dei Sistemi Operativi a Kernel)
Le funzioni implementate nel Sistema Operativo erano così complesse che è sorto il bisogno di
frammentarle in più programmi. I programmi venivano divisi in base alla necessità che il
calcolatore aveva di eseguirli, i programmi indispensabili erano: il modulo che gestisce la politica
di scheduling, il modulo che gestisce la fine del time-sharing e il modulo che gestisce
l’indirizzamento della memoria virtuale e degli spazi fisici nella memoria centrale. Questi e altri
moduli costruiscono la base del Sistema Operativo devono rimanere sempre in memoria pronti
per essere eseguiti, l’unione di questi moduli prende il nome di Kernel del Sistema Operativo. Di
questi anni è anche la creazione dei primi Floppy Disk precisamente nel 1967. 9
Anni 80(Personal Computer)
Negli anni 70 venne introdotto il Personal Computer, un calcolatore di dimensioni e capacità,
ridotte in grado di essere posto sopra una scrivania, e pensato per utenze singole. Non vi fu
introdotto il multitasking perché era inizialmente costruito per pochi appassionati e ricercatori, e
non aveva senso munirli di time-sharing dato che l’utente che vi lavorava era sempre lo stesso.
Un’innovazione dei Personal Computer era quella di poter lavorare sulla stessa macchina, non
contemporaneamente, con due sistemi operativi diversi visto che il sistema di boot, caricato ad
ogni accensione del Computer, veniva prelevato dalla memoria di massa prestabilita come un
Floppy Disk o il disco rigido. I Sistemi Operativi dei primi Personal Computer poteva gestire un solo
utente e eseguire un programma alla volta, il loro unico obbiettivo era quello di gestire le risorse.
La possibilità di installare lo stesso sistema operativo in macchine diverse garantì la trasportabilità
anche dei programmi, cioè era possibile eseguire lo stesso programma su due macchine diverse,
con CPU uguali ma con risorse diverse. Ciò fu possibile grazie al’interfaccia tra Sistema Operativo e
programmatore che diventò uno standard. La diffusione fu aiutata dal fatto che, essendo un
dispositivo che doveva essere utilizzabile da tutti, venne migliorata l’interfaccia utente, fino ad
allora l’interfaccia era una shell a linea di comando adatta solo da esperti. Nel 1984 l’Apple e la
Digital introdussero l’uso del mouse e un’interfaccia più semplice da usare. Negli anni 80 ci fu un
cambiamento radicale nel mondo dell’informatica, si passò da un’informatica centralizzata a
un’informatica distribuita grazie alla diffusione e quindi all’abbassamento dei prezzi dei computer,
così anche le strutture dei sistemi operativi cambiarono di conseguenza. Nelle imprese
l’informatica trova ampio sfogo in pochi dipendenti, la presenza di un mainframe all’interno di
un’azienda significava relegare a periferia il resto dell’azienda e riuniva in un unico punto, la
memorizzazione e l’elaborazione dei dati. Questa architettura aveva grandi vantaggi come il
controllo totale delle procedure e la standardizzazione dei dati, ma aveva lo svantaggio di non
permettere facilmente la gestione in locale dei propri dati. L’avvento dei personal computer
modificò i compiti delle aziende informatiche sostituendo la struttura a un solo livello con una
struttura gerarchica in cui i livelli intermedi potessero elaborare autonomamente e potessero sia
fornire servizi che usufruirne.
Anni 80-90(sistemi distribuiti)
L’avvento dell’informatica distribuita fece sorgere la necessità di instaurare un colloquio tra i
diversi calcolatori instaurando funzionalità specifiche come:
Il networking: l’insieme delle attività che permettono di collegare in rete più utenti, per
realizzarlo è necessaria la presenza di un sistema di interconnessione utile per connettere i
computer come i cavi, le fibre ottiche e la linea del telefono, e un sistema di
comunicazione che integri sia il software
per scambiare informazioni che il Sistema Operativo.
La protezione degli accessi: il meccanismo che identifica un utente attribuendogli i privilegi
per l’esecuzione delle operazioni e la propria partizione di memoria. Questa operazione è
molto più complessa del semplice multitasking perché ora il controllo va esteso alle risorse
generiche.
La condivisione delle risorse tra utenti remoti cioè garantire agli utenti di accedere sia alle
risorse locali che risorse remote in egual modo. Le risorse maggiormente condivise in rete
sono la memoria di massa e la stampante. Per quanto riguarda la condivisione della