Estratto del documento

Il software

L’hardware da solo non è sufficiente per far funzionare l’elaboratore, è per questo che dobbiamo introdurre il concetto di software. Il software è un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere delle funzioni di natura diversa e per diversi tipi di utenti. La proprietà fondamentale dell’elaboratore è il fatto di essere programmabile, ossia è in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall’utente attraverso un programma. Tuttavia gli utenti non possono programmare direttamente la macchina perché dovrebbero conoscere l’organizzazione fisica di essa e il suo linguaggio macchina; ogni programma infatti dovrebbe essere scritto mediante sequenze di bit ed ogni piccola differenza hardware comporterebbe la riscrittura del programma stesso.

Il software nasce proprio per:

  • Astrarre dall’organizzazione fisica della macchina
  • Usare nello stesso modo, o in modo simile, elaboratori leggermente diversi dal punto di vista hardware
  • Usare un semplice linguaggio di interazione con la macchina
  • Avere un linguaggio semplice e ad alto livello per programmare la macchina
  • Avere un insieme di programmi applicativi per svolgere compiti diversi

Nei moderni sistemi di elaborazione questi obiettivi sono raggiunti grazie a macchine virtuali che vengono realizzate al di sopra della macchina fisica. Viene definita virtuale in quanto non esiste realmente ma viene realizzata mediante un software, ossia un insieme di programmi che costituiscono il software di base. L’utente interagirà con la macchina virtuale attraverso un linguaggio di comandi, i quali vengono tradotti da questa nella sequenza di comandi riconosciuti dall’hardware.

1) Il software di base

È un insieme di programmi in linguaggio macchina la cui esecuzione permette di creare l’ambiente virtuale con cui l’utente si trova ad interagire. Fornisce un insieme finito di comandi detto linguaggio comandi che la macchina è in grado di eseguire. Il software verifica se si tratta di un comando valido e lo traduce nella sequenza di comandi a basso livello per la macchina fisica. Tali sequenze di istruzioni sono date una volta per tutte e memorizzate su memoria secondaria, perciò vengono recuperate in questa e non si deve ogni volta tradurre il comando. Eseguito il comando, la macchina fornisce all’utente delle informazioni relative alla sua esecuzione e si pone in attesa di un nuovo comando da parte dell’utente.

Si può costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale e per ogni comando la macchina virtuale si dovranno avere diverse traduzioni, una per ogni tipo di hardware. Non vi sono limiti al numero e al tipo di macchine virtuali che possono essere realizzate, il software di base moderno può essere strutturato in diversi livelli virtuali che definiscono una gerarchia di macchine virtuali detta struttura a cipolla. Ogni livello della gerarchia fornisce un insieme di funzioni che diventano sempre più astratte man mano che ci si allontana dalla macchina fisica. Ovviamente per ogni funzione data dal livello bisogna dare la traduzione per i livelli sottostanti; la traduzione, anche se potrà richiedere più passi, dovrà comunque produrre dei programmi in linguaggio macchina.

Vantaggi della struttura a cipolla

  • Attraverso una struttura a più livelli si riduce la distanza tra due livelli consecutivi e questo facilita la traduzione da un livello a quello successivo. L’introduzione di diversi livelli permette di definire linguaggi via via sempre meno astratti e quindi di passare da una traduzione complicata a tante traduzioni semplici.
  • Non è necessario sviluppare complesse regole di traduzione per ogni macchina hardware diversa; basta annullare le differenze tra due macchine hardware a basso livello, definendo una sorta di linguaggio macchina generico, molto vicino ai linguaggi macchina dei diversi elaboratori. Quindi si definiscono delle regole di traduzione tra questo linguaggio generico e le diverse macchine hardware, mentre le macchine virtuali possono essere create una sola volta e per tutte le macchine hardware con notevoli vantaggi di costi e tempi di realizzazione. Questo è il meccanismo attraverso cui vengono resi disponibili gli stessi ambienti (operativi e applicativi) su elaboratori con architetture hardware differenti.

È importante ricordare che ciò che non è eseguibile dalla macchina fisica non lo sarà nemmeno dalla macchina virtuale; l’unica differenza che esiste tra queste due macchine non è nell’insieme di compiti che possono svolgere ma solo nel livello di astrazione che esse forniscono all’utente.

2) Funzioni del software di base

Il software di base di un moderno sistema di elaborazione svolge un gran numero di funzioni che possono essere suddivise in due classi:

  • Funzioni proprie del sistema operativo: Il S.O. è costituito da un insieme di programmi che hanno il compito di gestire l’elaboratore.
  • Funzioni di traduzione tra linguaggi diversi: Il software di base fornisce anche gli strumenti per l’uso dei linguaggi di programmazione ad alto livello: interpreti e compilatori (strumenti per lo sviluppo programmi).

Le componenti hardware degli elaboratori

Le più importanti sono:

  • La memoria principale
  • Il processore
  • La memoria secondaria
  • I dispositivi di input/output

La memoria principale

Detta anche memoria centrale o RAM (Random Access Memory), permette di ricordare le informazioni. La memoria principale insieme al processore forma l’unità centrale. Le dimensioni tipiche della RAM vanno dai 128 ai 512 MB. È possibile modificare le dimensioni della memoria in qualsiasi momento inserendo negli appositi slot nuove schede di memoria, queste possono essere da 64, 128, 256 MB. La memoria principale è una lunga sequenza di componenti elementari, ognuna delle quali contiene 1bit (ossia un’unità di info). Queste componenti sono a loro volta aggregate tra loro in celle (ogni cella contiene 8bit = 1byte). Quindi la RAM è una sequenza di celle, ognuna caratterizzata da un indirizzo che specifica la sua posizione all’interno della sequenza. La sigla RAM sta ad indicare che è possibile effettuare l’accesso diretto alle celle e che il tempo necessario per accedere ad una cella non cambia al variare della cella, ma è sempre lo stesso. La velocità di accesso della RAM (ossia il tempo che intercorre tra il momento in cui il processore specifica in quale cella vuole lavorare e dà il comando, e il momento in cui l’operazione è terminata) è di 10 sec.

Il processore può operare sulla RAM operazioni di lettura e scrittura delle info. Per eseguire queste operazioni si deve specificare l’indirizzo della cella su cui si vuole operare, l’indirizzo della cella è un numero intero che può essere rappresentato con la sua codifica binaria. Il numero di bit utilizzati per scrivere gli indirizzi, e di conseguenza il numero di celle indirizzabili, prende il nome di spazio di indirizzamento. Le memorie principali hanno costi molto elevati e questi costi dipendono dalla velocità di accesso che offrono, dalla qualità della scheda e dalla velocità del bus della scheda madre. Esistono tre famiglie di memoria RAM:

  • Le memorie SRAM (statiche) che hanno costi alti, tempi di accesso inferiori ai 2 nanosecondi e sono usate per la CACHE
  • Le memorie DRAM (dinamiche) tempi di accesso pari a 40-60 nanosecondi utilizzate per la memoria principale
  • Le memorie VRAM (video) usate per la gestione delle immagini

La RAM è volatile, ossia perde tutte le info nel momento in cui viene tolta la corrente elettrica. La RAM è più grande del floppy, più grande della CACHE ma più piccola dell’HardDisk.

  • Byte 8bit
  • Kilobyte 1024 byte
  • Megabyte 1024 KB circa 1.000.000 di byte
  • Gigabyte 1024 MB circa 1 miliardo di byte
  • Terabyte 1024 GB
  • Petabyte 1024 TB

1024 = 210

64 KB = 216

64 GB = 232

Il processore

Spesso indicato con la sigla CPU (Central Processing Unit), ha la funzione di elaborare le informazioni contenute in memoria principale. Il processore è costituito da più componenti collegate tra loro.

Anteprima
Vedrai una selezione di 5 pagine su 17
Informatica di base - hardware e software Pag. 1 Informatica di base - hardware e software Pag. 2
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Informatica di base - hardware e software Pag. 6
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Informatica di base - hardware e software Pag. 11
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Informatica di base - hardware e software Pag. 16
1 su 17
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher melody_gio di informazioni apprese con la frequenza delle lezioni di Informatica di base e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Verona o del prof Solitro Ugo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community