Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura elementare di un computer Monoutenza e multiutenza Uso pratico elementare di un sistema operativo Concetto di macchina virtuale Software di base e software applicativo 2 1
Introduzione I SO hanno subito con l evoluzione delle tecnologie informatiche ed elettroniche, drastiche rivoluzioni, paragonabili a quelle corrispondenti dell hardware (valvole, transistor, integrati, calcolatori paralleli), tanto che si è soliti illustrare il loro sviluppo in termini di generazioni. Come si sono nati i SO? Perché è nata l esigenza di costruire un SO? Come si utilizzava un computer prima dell avvento dei SO? Come funzionavano i primi SO? Come funzionano i moderni sistemi operativi? A queste domande diamo una risposta in questa Unità. 3 Le diverse generazioni di SO Generazione 1 (sistemi dedicati) Generazione 2 (elaborazione a lotti) Generazione 3 (multiprogrammazione) Generazione 4 (sistemi dedicati di 2 generazione) Generazione 5 (multielaborazione) Generazione 6 (elaborazione in tempo reale) Generazione 7 (genrazioni attuali) 4 2
Generazione 1 sistemi dedicati Comparvero negli anni 40 e furono detti anche sistemi dedicati di prima generazione. In questi sistemi monoprogrammati poteva operare una sola persona alla volta, la quale doveva anche conoscere in dettaglio la parte hardware. Il controllo della macchina prevedeva l azionamento di interruttori e collegamenti. Per programmare si usava rigorosamente il linguaggio macchina e: l input si realizzava immettendo nel sistema apposite schede perforate (le perforazioni rappresentavano un rudimentale mezzo di codifica) l output consisteva nell esaminare indicatori luminosi. 5 Generazione 2 - SO a lotti Nella modalità a lotti, detta anche batch processing, tipica degli anni 50, si sfruttava maggiormente l hardware poichè i lavori utente (job) erano impostati in precedenza e inseriti in sequenza nella macchina da un operatore. L attività del programmatore: consisteva nel codificare il programma su schede perforate (lotti); prevedeva l uso dei primi linguaggi come FORTRAN e COBOL; era distinta da quella dell operatore Iniziò la commercializzazione delle prime macchine, anche se a costi proibitivi e con necessità di figure professionali che si andavano via via distinguendo (operatore, programmatore e analista). 6 3
Generazione 2 - SO a lotti Successivamente, per eliminare gli inevitabili tempi morti, i computer furono dotati di un primo abbozzo di sistema operativo, detto batch monitor, che: controllava l esecuzione dei lavori (input, elaborazione e output); ripartiva in modo equo il tempo di esecuzione dei vari lavori; proteggeva l hardware da eventuali azioni di danneggiamento. In molti casi si inserirono due computer ausiliari (uno per leggere I lavori e l altro per eseguire le stampe) in modo che l elaboratore centrale potesse procedere più velocemente nella sola fase di esecuzione. 7 Generazione 3 - multiprogrammazione Nonostante l uso di tecniche di batch processing, l hardware, la velocità dell hardware non poteva essere sfruttata appieno. Negli anni 60, furono progettati e introdotti nuovi SO che potevano operare in multiprogrammazione (multitasking). Con questa tecnica: più programmi sono presenti in memoria centrale contemporaneamente il tempo di CPU viene ripartito (time sharing) in modo da assegnare ciclicamente a ciascun programma un tempo prestabilito detto quanto (time slice). Esisteva un algoritmo che eseguiva lo scheduling, ossia la decisione di quale processo servire. 8 4
Generazione 3 - multiprogrammazione L hardware venne perfezionato e consentì ai SO del tempo: l impiego dei canali di I/O (processori dedicati all I/O), per un migliore sfruttamento del tempo di CPU; la nascita dell elaborazione in tempo reale, applicata in particolare alle attività di industria, per il controllo dei processi di produzione; l impiego dei primi terminali interattivi (tastiera e monitor); la multiutenza (più utenti in contemporanea) 9 Generazione 4 - sistemi dedicati di 2 generazione Negli anni 70 compaiono i personal computer, la cui diffusione fu resa possibile grazie allo sviluppo delle tecnologie elettroniche; essi erano caratterizzati dai cosiddetti sistemi operativi dedicati della seconda generazione e. Le caratteristiche di questa nuova classe di computer erano: costi ridotti e ampia accessibilità al mercato; dimensioni ridotte e forte espandibilità e impiego di interfaccia grafica; elaborazione autonoma, in rete locale o la navigazione in Internet, grazie alle tecnologie telematiche. La storia dei computer di questa generazione è stata segnata dalla comparsa di SO come l MS-DOS, evoluto poi nelle varie versioni di Windows, di UNIX, Linux e altri. 10 5
Generazione 5 - multielaborazione Le tecnologie informatiche, che si inseguono con quelle elettroniche, hanno reso possibile la realizzazione di SO come quelli attuali, che sono in grado di gestire computer dotati di più CPU. In questo caso si parla di multielaborazione (multiprocessning) poichè le diverse CPU possono: lavorare in modo indipendente sotto il controllo del SO; eseguire più programmi in modo parallelo (o concorrente). Nascono: linguaggi di programmazione adatti alla programmazione parallela; compilatori estremamente veloci ed efficienti; linguaggi adatti alla programmazione web (client-server) 11 Generazione 6 - elaborazione in tempo reale Vengono perfezionati i sistemi di elaborazione in tempo reale nei quali attraverso sistemi di acquisizione dati, i dati vengono elaborati immediatamente e forniscono risposte in tempi brevissimi, in modo da poter influenzare le elaborazioni successive. Esempi di elaborazioni in tempo reale si hanno nel controllo di: processi industriali traiettorie spaziali apparecchiature e strumentazioni elaborazioni bancarie sistemi di prenotazioni sistemi di allarme 12 6
Generazione 7 Ultime generazioni sono costituite dai SO impiegati a bordo dei palmari, PDA (Personal Digital Assistant) o smartphonie. Il sistema operativo Android di Google è costruito sulla base di Linux, è open source ed è oggi lo standard nell ambito dei dispositivi mobile. Il sistema operativo OS X (si legge ou es ten ) sviluppato dalla Apple è anch esso a base UNIX, è il sistema operativo desktop UNIX più usato al mondo. 13 Argomenti Le diverse generazioni di SO Generazione 1 sistemi dedicati Generazione 2 SO a lotti Generazione 3 multiprogrammazione Generazione 4 sistemi dedicati di 2 generazione Generazione 5 multielaborazione Generazione 6 elaborazione in tempo reale Generazione 7 14 7
Altre fonti di informazione A. Lorenzi, D.Rossi I fondamenti della programmazione-atlas 15 8