Evoluzione del sistema operativo

  • 50

    PRIMA GENERAZIONE

    Tra il 1955 e il 1965, grazie alla rivoluzionaria invenzione del transistor gli elaboratori, divennero abbastanza affidabili da poter essere costruiti e venduti in serie, anche se erano comunque macchine grosse e costosissime tanto che gli unici acquirenti possibili erano ancora una volta i Centri di Calcolo, le Università e le banche. Per eseguire dei programmi . un programmatore doveva scrivere il proprio programma su carta, trasferirlo su schede, caricarlo nel computer,
  • 60

    SECONDA GENERAZIONE

    Dai primi anni sessanta cominciò a farsi strada il concetto di dispositivo virtuale e astrazione. Prima di ciò un programmatore che avesse voluto comandare ad esempio una stampante, doveva conoscere, nei minimi dettagli, il funzionamento a basso livello della periferic, mentre a partire dall'introduzione del concetto di periferica virtuale il sistema operativo avrebbe fatto da intermediario tra utente e periferica. Nello stesso periodo i sistemi operativi iniziarono a supportare il DMA e Spool.
  • 80

    TERZA GENERAZIONE

    Verso gli anni ottanta, grazie alla tecnologia. Queste macchine erano piccole, economiche ed avevano prestazioni simili a quelle dei calcolatori medio-grandi di 10-20 anni prima.Il più importante tra i primi sistemi operativi per personal computer era il CP/M-80 della Digital Research per le CPU 8080, 8085 e Z-80. Era basato sui sistemi operativi della Digital Equipment Corporation specialmente quelli per l'architettura PDP-1. MS-DOS (o PC DOS quando fornito da IBM).
  • 90

    QUARTA GENERAZIONE

    I primi altro non sono che normali sistemi operativi ai quali vengono aggiunti i software per il collegamento a macchine remote e quindi alle relative risorse condivise come file e stampanti. I secondi sono sistemi operativi che girano su sistemi a più processori oppure che inviano i processi da elaborare ad altri computer della rete. Essi sono dotati di particolari politiche di scheduling che permettono una efficace allocazione dei processi tra le CPU disponibili.