I computer li possiamo suddividere in 4 grandi generazioni:
La prima è quella dagli anni quaranta a gli anni circa metà anni cinquanta. I computer più rappresentativi di questa epoca sono L'ENIAC e la Bomba ( Derivato dal suo ticchettio che produceva mentre lavorava).
L'ENIAC è un calcolatore sviluppato negli USA, la Bomba invece è un computer Polacco, poi utilizzato dagli Inglesi, per decifrare il codice Enigma dei Tedeschi nella seconda guerra mondiale.
I calcolatori di questa generazione si distinguono per il non possedere un S.O. e per utilizzare valvole termoionica al posto dei più moderni transistor, i dati in input erano gestiti tramite dei nastri perforati, scritti grazie a speciali macchine da scrivere. Questi calcolatori potevano eseguire solo semplici algoritmi e non potevano essere programmate.
La seconda generazione di computer (dal '55 al '65) non ha ancora dei dispositivi come il mouse, la tastiera e il monitor. Tutto l'operazione di input si svolge tramite nastri perforati, che possono contenere dei programmi. Il programmatore deve scrivere il programma, tradurlo personalmente in linguaggio macchina istruzione per istruzione ed infine creare il nastro perforato.
Questi sistemi si chiamano batch system, cioè la macchina può eseguire solo un processo alla volta, eseguendo le istruzioni una dopo l'altra. Questi sistemi sono di tipo main frame, cioè grossi computer con alte capacità di calcolo ed affidabilità per gestire una grande quantità di dati.
La terza generazione di computer ( '65- '80) sono formati da poche migliaia di transistor, derivando il nome di mini computer. Questa nuova generazione introduce il concetto di multiprogrammazione, cioè ottimizzare l'utilizzo della CPU. Quando eseguiamo un processo, esso potrebbe avere bisogno di alcuni dati che devono essere forniti all'utente. Perciò la macchina si mette in attesa, sprecando tempo prezioso (A quei tempi poter eseguire il maggior numero di operazioni possibile alla macchina era fondamentale, soprattutto sotto il punto di vista economico, per poter far funzionare sempre la CPU, sfruttandola al massimo). E la multiprogrammazione serve per evitare questo: quando un processo è in attesa può passare ad un altro processo per ottimizzare i tempi e le operazioni eseguite.
Un esempio per rendere più chiaro l'importanza dei sistemi a multiprocesso può essere:
Prendiamo 3 processi p1, p2, p3 che abbiano rispettivamente 10s, 5s e 8s di tempo per completare la loro esecuzione.
In un sistema batch, cioè quelli della 2° generazione, il tempo che ci impiega teoricamente (senza contare il tempo che ci impiega avviare i processi, caricare i dati ecc..) ci impiegherebbe 10+5+8= 23s di esecuzione.
In un computer di 3° generazione invece, i processi vengono tutti caricati sulla memoria della macchina:
Questo è uno schema di come potrebbe essere gestito un gruppo di 3 processi, soffermandoci solo sulla parte iniziale.
Il sistema avvia il primo processo p1, che dopo 22ms per motivi vari (da una chiamata di sistema, oppure sta aspettando dei dati in input dall'utente) si interrompe. Ed è qui il vantaggio della multiprocesso: sfruttando i tempi morti dei processi si possono portare avanti delle altre task (task, job e processo indicano la stessa cosa, tranne job che può essere un insieme di tasks). Perciò, si avvierà il processo 2, che interromperà a sua volta per far incominciare p3 e così via. Per concludere, se consideriamo il time slice, cioè il tempo per passare da processo a processo e altri fattori (come l'avanzamento dei vari processi e la distribuzione dei tempi morti ecc..) possiamo concludere 3 processi in 12s (+o-).
I computer di 4° generazione, detti anche micro computer, corrispondono ai computer moderni, con sistemi con milioni o addirittura miliardi di transistor.
I calcolatori di questa generazione si distinguono per il non possedere un S.O. e per utilizzare valvole termoionica al posto dei più moderni transistor, i dati in input erano gestiti tramite dei nastri perforati, scritti grazie a speciali macchine da scrivere. Questi calcolatori potevano eseguire solo semplici algoritmi e non potevano essere programmate.
La seconda generazione di computer (dal '55 al '65) non ha ancora dei dispositivi come il mouse, la tastiera e il monitor. Tutto l'operazione di input si svolge tramite nastri perforati, che possono contenere dei programmi. Il programmatore deve scrivere il programma, tradurlo personalmente in linguaggio macchina istruzione per istruzione ed infine creare il nastro perforato.
Questi sistemi si chiamano batch system, cioè la macchina può eseguire solo un processo alla volta, eseguendo le istruzioni una dopo l'altra. Questi sistemi sono di tipo main frame, cioè grossi computer con alte capacità di calcolo ed affidabilità per gestire una grande quantità di dati.
La terza generazione di computer ( '65- '80) sono formati da poche migliaia di transistor, derivando il nome di mini computer. Questa nuova generazione introduce il concetto di multiprogrammazione, cioè ottimizzare l'utilizzo della CPU. Quando eseguiamo un processo, esso potrebbe avere bisogno di alcuni dati che devono essere forniti all'utente. Perciò la macchina si mette in attesa, sprecando tempo prezioso (A quei tempi poter eseguire il maggior numero di operazioni possibile alla macchina era fondamentale, soprattutto sotto il punto di vista economico, per poter far funzionare sempre la CPU, sfruttandola al massimo). E la multiprogrammazione serve per evitare questo: quando un processo è in attesa può passare ad un altro processo per ottimizzare i tempi e le operazioni eseguite.
Un esempio per rendere più chiaro l'importanza dei sistemi a multiprocesso può essere:
Prendiamo 3 processi p1, p2, p3 che abbiano rispettivamente 10s, 5s e 8s di tempo per completare la loro esecuzione.
In un sistema batch, cioè quelli della 2° generazione, il tempo che ci impiega teoricamente (senza contare il tempo che ci impiega avviare i processi, caricare i dati ecc..) ci impiegherebbe 10+5+8= 23s di esecuzione.
In un computer di 3° generazione invece, i processi vengono tutti caricati sulla memoria della macchina:
Questo è uno schema di come potrebbe essere gestito un gruppo di 3 processi, soffermandoci solo sulla parte iniziale.
Il sistema avvia il primo processo p1, che dopo 22ms per motivi vari (da una chiamata di sistema, oppure sta aspettando dei dati in input dall'utente) si interrompe. Ed è qui il vantaggio della multiprocesso: sfruttando i tempi morti dei processi si possono portare avanti delle altre task (task, job e processo indicano la stessa cosa, tranne job che può essere un insieme di tasks). Perciò, si avvierà il processo 2, che interromperà a sua volta per far incominciare p3 e così via. Per concludere, se consideriamo il time slice, cioè il tempo per passare da processo a processo e altri fattori (come l'avanzamento dei vari processi e la distribuzione dei tempi morti ecc..) possiamo concludere 3 processi in 12s (+o-).
I computer di 4° generazione, detti anche micro computer, corrispondono ai computer moderni, con sistemi con milioni o addirittura miliardi di transistor.
Nessun commento:
Posta un commento