INFORMATICA UMANISTICA B COMPUTER: HARDWARE E SOFTWARE massimo.poesio@unitn.it.

Post on 01-May-2015

222 views 2 download

Transcript of INFORMATICA UMANISTICA B COMPUTER: HARDWARE E SOFTWARE massimo.poesio@unitn.it.

INFORMATICA UMANISTICA B

COMPUTER: HARDWARE E SOFTWARE

massimo.poesio@unitn.it

H ard w are S oftw are

C om p u te r

Hardware

Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche

Software

Componente del calcolatore costituita dai: Programmi di base per la gestione del sistema Programmi applicativi per l’uso del sistema

(possono usare i programmi di base)

H ard w are S oftw are

C om p u te r

PRIMA PARTE: HARDWARE

HARDWARE: IDEE CENTRALI

CICLO DI ESECUZIONE ISTRUZIONI MEMORIA PRINCIPALE E MEMORIA

SECONDARIA

DI NUOVO LA MACCHINA DI TURING

Dalla macchina di Turing alla architettura di von Neumann

Un passo ulteriore, volendoci avvicinare al funzionamento di un vero computer, è costituito dalla

ARCHITETTURA DI VON NEUMANN

ARCHITETTURA DI VON NEUMANN

I/O MemoriaCPUPreleva istruzione

Esegue

Memorizza risultato

BUS

UNITA’ CENTRALE E PERIFERICHE

Unità centraleProcessore

Stampante

Periferiche di input/outputMemoria secondaria

Memoria principale

Tasteria e monitorPeriferiche

Architettura dei computer

Un computer deve: elaborare l’informazione

usando il processore (Central Processing Unit - CPU)

memorizzare l’informazioneusando la memoria principale (RAM)usando la memoria secondaria

fare l’input/output dell’informazioneusando i dispositivi di input/output

LA CPU IN DETTAGLIO

ARCHITETTURA DI VON NEUMANN: COMPONENTI DELLA CPU

La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

UNITA’ DI CONTROLLO

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Unità di controllo

L’unità di controllo è la parte più importante del processore Esegue le istruzioni dei programmi Coordina le attività del processore Controlla il flusso delle istruzioni tra il processore

e la memoria

COMPONENTI DELLA CPU: UNITA’ ARITMETICO-LOGICA

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Unità aritmetico logica

L’Unità aritmetico logica si occupa di eseguire le operazioni di tipo aritmetico/logico Somme, sottrazioni, …, confronti, …

Preleva gli operandi delle operazioni dai Registri Generali

Deposita il risultato delle operazioni nei Registri Generali

Insieme all’unità di controllo collabora al completamento di un ciclo della macchina

COMPONENTI DELLA CPU: REGISTRI

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

ARCHITETTURA DI VON NEUMANN: I BUS

ARCHITETTURA DI VON NEUMANN: CLOCK

Abbiamo visto che il processore svolga la sua attività in modo ciclico Ad ogni ciclo corrisponde l’esecuzione di un’operazione

elementare (un’istruzione macchina) Il clock fornisce una cadenza temporale per

l’esecuzione delle operazioni elementari La frequenza del clock indica il numero di operazioni

elementari che vengono eseguite nell’unità di tempo

IL CICLO DI ESECUZIONE ISTRUZIONI

Il ciclo di esecuzione istruzioni sta al cuore del funzionamento di un computer

Ad ogni ‘ticchettio’ del clock, la CPU: Preleva dalla memoria principale la “prossima” istruzione

da eseguire (specificata dal PROGRAM COUNTER, PC) La mette nel REGISTRO ISTRUZIONI (IR) La DECODIFICA Preleva gli OPERANDI specificati nell’istruzione ESEGUE l’istruzione Ricomincia

IL CICLO DI ESECUZIONE(SEMPLIFICATO!)

CODICE PER I PROGRAMMI: Istruzioni macchina

I programmi: sequenze di istruzioni elementari (somma due numeri, confronta due numeri, leggi/scrivi dalla memoria, ecc.)

Per ogni tipo di processore è definito un insieme di istruzioni, chiamate istruzioni macchina Ognuna delle quali corrisponde ad un’operazione elementare Le operazione più complesse possono essere realizzate

mediante sequenze di operazioni elementari

Istruzioni macchina

Le istruzioni possono avere formati diversi - per esempio:

Codice istruzione Argomento 1Argomento 2

Codice istruzione Argomento 1

cosa fare su cosa operareoppure

Istruzioni macchina

Per esempio:

ADD R1 R2 Operazione aritmetica di somma: prevede la somma del

contenuto dei registri R1 e R2 e il caricamento del risultato nel registro R1

(Perché R1 non R2? Non c’è una ragione: la decisione è arbitraria)

Codice istruzione Argomento 1Argomento 2

Istruzioni macchina

Per esempio:

01000110 1111000 01010111 00001111

11110101 01110110 11001001

cosa fare su cosa operare

Linguaggio macchina

Il linguaggio in cui si scrivono queste istruzioni prende il nome di linguaggio macchina Una sequenza di tali istruzioni prende il nome di

programma in linguaggio macchina Il ruolo del processore:

Eseguire programmi in linguaggio macchina

UNITA’ ARITMETICO-LOGICA E CIRCUITI LOGICI

ALU E CIRCUITI LOGICI

I CIRCUITI LOGICI sono la base dell’hardware di un calcolatore

L’ Unita’ aritmetico / logica (ALU), e’ prevalentemente composta di circuiti di questo tipo

Questi circuiti sono costituiti da un gran numero di componenti piu’ semplici

CIRCUITI LOGICI E FUNZIONI

Ogni circuito logico calcola una FUNZIONE od OPERAZIONE: +(2,4) = 6

Le operazioni piu’ semplice sono quelle BINARIE

OPERAZIONI BINARIE

Useremo il termine ‘OPERAZIONE BINARIA’ in modo generico per riferirsi ad ogni funzione che specifica un valore di OUTPUT 0 od 1 sulla base di 1 o piu’ valori di INPUT

Queste operazioni binarie possono essere specificate da TABELLE

Esempio piu’ noto di operazione binaria: OPERAZIONI LOGICHE

L’ALGEBRA BOOLEANA

Una forma molto semplice di LOGICA

Che codifica le condizioni sotto le quali espressioni complesse come “A e B” o “non A” o “A o B” sono vere mediante TABELLE DI VERITA’

AND

OR

NOT

A B A AND B

falso falso falso

falso vero falso

vero falso falso

vero vero vero

A B A OR B

falso falso falso

falso vero vero

vero falso vero

vero vero vero

A NOT A

falso vero

vero falso

00 1

11 1

01 0

00 0

RA B

10 1

11 1

11 0

00 0

RA B

01

10

RA

OPERAZIONI LOGICHE ELEMENTARI: AND, OR, NOT

AND

OR

NOT

00 1

11 1

01 0

00 0

RA B

10 1

11 1

11 0

00 0

RA B

01

10

RA

A

B R

R A

B

A R

CIRCUITI ELEMENTARI: AND, OR, NOT

DALLE TABELLE DI VERITA’ AI CIRCUITI Tanti input quante sono le dimensioni della

tabella Un solo output Un or all’output Tanti and quanti sono gli 1 della tabella Input degli and: 1 se diretto, 0 se negato

A B A B

0 0 0

0 1 1

1 0 1

1 1 0

B

A

R

Architettura dei computer

Un computer deve: elaborare l’informazione

usando il processore (Central Processing Unit - CPU)

memorizzare l’informazioneusando la memoria principale (RAM)usando la memoria secondaria

fare l’input/output dell’informazioneusando i dispositivi di input/output

Architettura dei computer

Un computer deve: elaborare l’informazione

usando il processore (Central Processing Unit - CPU)

memorizzare l’informazioneusando la memoria principale (RAM)usando la memoria secondaria

fare l’input/output dell’informazioneusando i dispositivi di input/output

Componenti principali di un computer

Unità centraleProcessore

Stampante

Periferiche di input/outputMemoria secondaria

Memoria principale

Tasteria e monitor

Periferichedel calcolatore

ORGANIZZAZIONE DELLA MEMORIA

Unità centraleProcessore

Memoria principale

012345

N

Sequenza di celle

– Ad ogni cella è associato un indirizzo (un numero progressivo a partire da 0)

Insieme al processoreforma l’Unità Centraledi un elaboratore

Conserva i programmi e i dati usati dal processore

Memoria principale (RAM)

Alcune proprietà della memoria principale Veloce: per leggere/scrivere una cella ci vuole un

tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9 sec.)

Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto

(Relativamente) costosa

Memoria principale (RAM)

Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit

Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura

Una cella può contenere un dato o un’istruzione

012345

N

34513.200.9853.890

ADD R1 R2LOAD 56 R1LOAD 3568 R1

Indirizzi Contenuto

LA MEMORIA SECONDARIA

Unità centraleProcessore

Stampante

Periferiche di input/outputMemoria secondaria

Memoria principale

Tasteria e monitor

Periferichedel calcolatore

Architettura dei computer

Un computer deve: elaborare l’informazione

usando il processore (Central Processing Unit - CPU)

memorizzare l’informazioneusando la memoria principale (RAM)usando la memoria secondaria

fare l’input/output dell’informazioneusando i dispositivi di input/output

Memoria secondaria

La memoria principale non basta (è volatile, costosa) In grado di memorizzare i programmi e i dati in modo

permanente È meno costosa che la memoria principale: le dimensioni

della memoria secondaria sono di solito molto maggiori di quelle della memoria principale

I supporti di memoria secondaria sono più lenti rispetto alla memoria principale (presenza di dispositivi meccanici)

Non tutti i supporti di memoria secondaria permettono l’accesso diretto ai dati Alcuni permettono solo un accesso sequenziale (per

esempio, nastri magnetici)

LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA

I programmi e i dati risiedono nella memoria secondaria

Processore

Stampante Memoria secondaria

Memoria principale

LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA

I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono

copiati nella memoria principale

Processore

Stampante Memoria secondaria

Memoria principale

LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA

I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono

copiati nella memoria principale Il processore è in grado di eseguire le istruzioni di cui sono

composti i programmi

Processore

Stampante Memoria secondaria

Memoria principale

Memoria secondaria

La memoria secondaria deve avere capacità di memorizzazione permanente e quindi per la sua si utilizzano tecnologie basate: sul magnetismo (tecnologia magnetica)

dischi magnetici (hard disk e floppy disk)nastri magnetici

sull’uso dei raggi laser (tecnologia ottica)dischi ottici (CD-ROM, DVD)

I dischi magnetici

Hard disk: sono dei dischi che vengono utilizzati come supporto di memoria secondaria fisso all’interno del computer vari GB di memoria

Floppy disk: sono supporti rimovibili Oggi sono comuni floppy

disk da 3,5 pollici di diametro, capacità 1,44 MB

La memoria magnetica

Sfrutta il fenomeno fisico della polarizzazione Sul supporto ci sono delle particelle magnetiche I due diversi tipi di magnetizzazione (positiva e

negativa) corrispondono alle unità elementari di informazione (0 e 1)

La testina di lettura/scrittura cambia la polarizzazione

I dischi magnetici

I dischi magnetici: sono i supporti di memoria più diffusi

Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine del tutto simili a quelle utilizzate nelle cassette audio/video

I dischi magnetici

I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco I settori suddividono ogni traccia in porzioni dette blocchi

Testina

Traccia Blocco

Settore

I dischi magnetici

I dischi magnetici consentono l’accesso diretto È possibile posizionare direttamente la testina su un qualunque

blocco (noto il numero della traccia e il numero del settore) Per effettuare un’operazione di lettura/scrittura la testina deve

“raggiungere” il blocco desiderato Il disco gira; la testina sposta solo in senso radiale

La memoria ottica

Usa il raggio laser e sfrutta la riflessione della luce Il raggio laser viene riflesso in modo diverso da

superfici diverse, e si può pensare di utilizzare delle superfici con dei piccolissimi forellini

Ogni unità di superficie può essere forata o non forata

L’informazione viene letta guardando la riflessione del raggio laser

La memoria ottica

0 1 0 0 10101

La memoria ottica

0 101

Registri

Mem. cache

Mem. centrale

Dischi magneticie/o ottici

Nastri magnetici

byte

Aumenta la capacità memorizzazione

KB

10*millisecondi

microsecondo/millisecondi

10*nanosecondi

nanosecondi

100*picosecondi

MB

GB

>10 GB

Aumenta la velocità di accesso

Architettura dei computer

Un computer deve: elaborare l’informazione

usando il processore (Central Processing Unit - CPU)

memorizzare l’informazioneusando la memoria principale (RAM)usando la memoria secondaria

fare l’input/output dell’informazioneusando i dispositivi di input/output

I dispositivi di input/output Input:

Tastiera Mouse (e altri strumenti di

puntamento) Scanner Microfono Macchine fotografia e

telecamera digitale Lettori di codici a barre

Output: Videoterminale Stampante Casse acustiche

Input/output: Touchscreen Modem

I dispositivi di input/output

Operano in modo asincrono rispetto al processore (ne sono “schiavi”) Si parla di gestione master-slave: è il processore che deve

coordinare le attività di tutti i dispositivi (Input) Il processore non è in grado di prevedere e di

controllare il momento in cui un dato di input sarà a disposizione

(Output) Il processore non può prevedere il momento in cui un dispositivo in output avrà terminato di produrre i dati in uscita

I dispositivi di input/output

Un dispositivo di input deve avvertire il processore quando un dato di input è disponibile

Un dispositivo di output deve avvertire il processore quando ha terminato di produrre dati in uscita

Al termine di ogni operazione i dispositivi inviano al processore un segnale, detto interrupt, che indica che il dispositivo ha bisogno di attenzione

REALIZZAZIONE FISICA DELL’ARCHITETTURA DI VON NEUMANN

Nei computer odierni, le funzioni logiche dell’unita’ centrale sono svolte da un MICROPROCESSORE

Il microprocessore è il vero cuore del computer

MICROPROCESSORI MODERNI

MICROPROCESSORE E PIASTRA MADRE Il microprocessore è incastonato

nella piastra madre

La piastra madre raccoglie in maniera efficiente e compatta altre componenti fondamentali di ogni computer, come la memoria, le porte di comunicazione, ecc.

La struttura interna della piastra madre

Microprocessore e piastra madre

La memoria RAM è una memoria di lavoro, volatile: il suo contenuto sparisce quando si spegne il computer

La memoria ROM è una memoria non volatile, che di norma non viene modificata dall’utente

La memoria ROM contiene di norma il BIOS (Basic Input Output System): una serie di informazioni di base delle quali il sistema ha bisogno per funzionare

HARDWARE: RIASSUNTO DELLE IDEE PRINCIPALI

Architettura di von Neumann: Divisione in componenti collegate da bus Ciclo di esecuzione istruzioni Divisione della memoria in diversi livelli Funzionamento asincrono dell’input/output

Realizzazione fisica dell’architettura di von Neumann: Piastra madre Memorie volatili e non volatili

APPLICAZIONE PRATICA

CARATTERISTICHE DI UN COMPUTER (2)

H ard w are S oftw are

C om p u te r

CHE COSA IL SOFTWARE FA PER VOI

TRE TIPI DI SOFTWARE

Software APPLICATIVO: programmi che permettono di svolgere funzioni VIDEOGIOCHI, WORD PROCESSING,

DATABASE, POSTA ELETTRONICA PROGRAMMI UTENTE veri e propri Software DI SISTEMA: controlla l’hardware,

gestisce l’interfaccia con utente, coordina le applicazioni SISTEMA OPERATIVO, INTERFACCIA RETE

IL SOFTWARE DI SISTEMA

Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà

Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà L’utente dovrebbe conoscere l’organizzazione fisica

dell’elaboratore e il suo linguaggio macchina

LOAD 32 R2

ADD R1 84IL SOFTWARE DI SISTEMA

IL SOFTWARE DI SISTEMA

Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà L’utente dovrebbe conoscere l’organizzazione fisica

dell’elaboratore e il suo linguaggio macchina Ogni programma dovrebbe essere scritto utilizzando delle

sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso

IL SOFTWARE DI SISTEMA

È necessario fornire un meccanismo per astrarre dall’organizzazione fisica della macchina

L’utente deve: usare nello stesso modo (o comunque in un modo molto

simile) macchine diverse dal punto di vista hardware avere un semplice linguaggio di interazione con la

macchina avere un insieme di programmi applicativi per svolgere

compiti diversi

IL COMPUTER VIRTUALE

Il SOFTWARE DI SISTEMA opera un’ASTRAZIONE mettendo a disposizione dell’utente (programmatore) un set di operazioni PIU’ RICCO di quello definito dall’hardware (o dai livelli di software di sistema inferiori)

Facendo cio’ realizza una MACCHINA VIRTUALE che non esiste fisicamente

Quest’operazione di astrazione puo’ essere ripetuta piu’ volte

ESEMPI DI ISTRUZIONI ‘VIRTUALI’

STAMPA CARATTERE A Eseguire questa istruzione richiede mettere

carattere A in un’area speciale (‘print buffer’), inviare un segnale alla stampante che c’e’ dell’input, aspettare che la stampante abbia finito e controllare che tutto abbia funzionato OK

APRI DOCUMENTO B Un `documento’ é semplicemente una lista di

blocchi su tracce possibilmente diverese del disco

SISTEMA OPERATIVO

Il sistema operativo e’ il software di sistema che gestisce ed interagisce direttamente con il computer, presentando a tutti gli altri tipi di software un’interfaccia che astrae dalle caratteristiche dell’hardware specifico.

Esempi: Windows XP, Unix (Linux, Sistem X Apple), etc.

Funzioni principali del sistema operativo

Avvio del computer

Gestione del processore e dei programmi in esecuzione (detti processi)

Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria

Gestione dei dispositivi di input/output

Interazione con l’utente

LA STRUTTURA A CIPOLLA DEL SISTEMA OPERATIVO

011100010111010101000011110Hardware

Utente

Avvio

Gestione: i processi, la memoria, i disp. di input/output

Interfaccia utente

Funzioni principali del sistema operativo Avvio del computer

Gestione del processore e dei programmi in esecuzione (detti processi)

Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria

Gestione dei dispositivi di input/output

Interazione con l’utente

Esecuzione dei programmi

Quando si scrive un comando (oppure si clicca sull’icona di un programma), il sistema operativo: Cerca il programma corrispondente sulla memoria

secondaria Copia il programma in memoria principale …

Processore

Stampante Memoria secondaria

Memoria principale

Esecuzione dei programmi

Quando si scrive un comando (oppure si clicca sull’icona di un programma), il sistema operativo: Cerca il programma corrispondente sulla memoria

secondaria Copia il programma in memoria principale Imposta il registro Program Counter con l’indirizzo in

memoria principale della prima istruzione del programma

Sistemi mono-utente, mono-programmati

Un solo utente può eseguire un solo programma alla volta È forzato a “sequenzializzare” i programmi Il programma viene lanciato, eseguito e quindi

terminato Ma il processore viene sfruttato al meglio?

Sistemi mono-utente, mono-programmati

No, il processore non viene sfruttato al meglio: si spreca molto tempo Il processore è molto più veloce dei supporti di

memoria secondaria e delle altre periferiche Passa la maggior parte del suo tempo in attesa Durante l’attesa si dice che il processore è un

uno stato inattivo (idle)

Esecuzione sequenziale

Supponiamo che il nostro sistema sia un bar in cui il barista serve diversi clienti

Il barista è corrispondente del processore, i clienti sono l’equivalente dei processi da eseguire

Esecuzione mono-programmati:

Ordinare Preparareil caffé

ConsumarePagare

Ordinare Preparareil caffé

ConsumarePagare

Client 1 Client 2

Soluzione

In realtà:

Ordinare(C1)

Preparareil caffé (C1)

Pagare(C1)

Ordinare(C2)

Preparareil caffé (C2)

Pagare(C2)

Client 1

Client 2

Soluzione: sistemi multiprogrammati

Quando il processore è nello stato di idle può eseguire (parte di) un altro processo

Quando un processo si ferma (per esempio in attesa di un dato dall’utente) il processore può passare ad eseguire le istruzione di un altro processo

Il sistema operativo si occupa dell’alternanza tra i processi in esecuzione

IL TASK MANAGER

Funzioni principali del sistema operativo Avvio del computer

Gestione del processore e dei processi

Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria

Gestione dei dispositivi di input/output

Interazione con l’utente

IL FILE SYSTEM

BLOCCHI SU DISCO

I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco I settori suddividono ogni traccia in porzioni dette blocchi

Testina

Traccia Blocco

Settore

STORIA DEI SISTEMI OPERATIVI

Prima generazione: 1945 - 1955 valvole

Seconda generazione: 1955 - 1965 transistors, sistemi ‘batch’

Terza generazione: 1965 – 1980 Circuiti integrati, multiprogramming

Quarta generazione: 1980 – oggi personal computers, interfacce grafiche

SISTEMI BATCH

Early batch system bring cards to 1401 read cards to tape put tape on 7094 which does computing put tape on 1401 which prints output

SISTEMI BATCH

Struttura di un tipico Fortran Monitor System job

PRIMI SISTEMI OPERATIVI MULTI-TASKING

CTSS (Compatible Time Sharing System - 1962)

MULTICS (MULTIplexed Information and Computing Service - 1965)

UNIX (1969)

SISTEMI OPERATIVI PER PC

MS-DOS (MicroSoft Disk Operating System -1980)

Apple Mac: primo sistema operativo ad utilizzare il nuovo tipo di interfaccia a finestre sviluppato da Xerox

Windows (1985) Windows 95, Windows 98, Windows Me Windows NT, Windows 2000 (5th version of NT),

Windows XP

UNIX per PC: Minix (1987) Linux (1994)

INTERFACCE SU RETE E WEB

A partire dal 1980 una componente essenziale del sistema operativo

Lezione 4

LETTURE

Tomasi, Capitolo 1.5, 1.6 ed 1.7 Architettura:

http://it.wikipedia.org/wiki/Computerhttp://en.wikipedia.org/wiki/Von_Neumann_architecture

Sistema operativo: http://it.wikipedia.org/wiki/Sistema_operativo

http://it.wikipedia.org/wiki/Storia_dei_sistemi_operativi

RINGRAZIAMENTI

Parte del materiale proviene da: Corso di Informatica Umanistica 2004/05 (Cuel /

Ferrario) Corso di IU di Fabio Ciotti (Roma) Corso di Informatica di Jeremy Sproston (Torino)