Informatica generale

Materie:Appunti
Categoria:Informatica
Download:111
Data:16.10.2001
Numero di pagine:13
Formato di file:.doc (Microsoft Word)
Download   Anteprima
informatica-generale_2.zip (Dimensione: 17.23 Kb)
trucheck.it_informatica-generale.doc     69 Kb
readme.txt     59 Bytes



Testo

INFORMATICA GENERALE
Struttura del calcolatore (Architettura).
L’elaboratore è un insieme di risorse, comprendenti dispositivi di elaborazione elettronici digitali, programmi memorizzati e gruppi di dati che, sotto il controllo dei programmi memorizzati, acquisisce, tratta ed emette automaticamente dei dati (informazioni), che può immagazzinare e recuperare. (Lib4)
L’architettura di un calcolatore elettronico viene scomposta normalmente in due componenti fondamentali (Lib1):
l’hardware, insieme delle componenti fisiche, soprattutto circuiti elettronici;
il software, insieme dei programmi indispensabili per compiere qualsiasi operazione utilizzando i circuiti dell’hardware.
Vengono poi usualmente distinti i dati in ingresso (input) in modo tale che possano essere generati dei dati in uscita (output).
I calcolatori odierni trattano segnali numerici, non sono in grado, cioè, di tratttare direttamente informazioni "analogiche" (es. variazione di tensione elettrica). Uno dei processi principali di un calcolatore è quello di "tradurre", o meglio "codificare" le informazioni che riceve in segnali numerici ovvero in segnali "digitali". Questa operazione avviene in maniera del tutto trasparente per l’utente, infatti se si deve digitare il carattere "A" della tastiera, l’utente non si preoccupa di trasformare il carattere in segnali numerici comprensibili al calcolatore (sequenza di bit), ma lascia questo compito ad un opportuno programma di "codificazione" di cui il calcolatore è dotato.
E’ da rilevare che le caratteristiche dell’hardware si riflettono sul calcolatore in termini quantitativi (capacità di memorizzazione, velocità di esecuzione, ecc.), mentre le caratteristiche del software si riflettono in termini qualitativi (possibilità operative, correttezza dell’elaborazione, ecc.).
La distinzione precedente è molto ambigua, nei moderni calcolatori che utilizzano il firmware cioè componenti hardware pre-programmate.

Classi di Elaboratori.

Anche se tutti riconducibili ad un unico modello teorico, i calcolatori possono essere classificati a secondo della loro complessità hardware, della potenza di calcolo, ecc. Quindi abbiamo:
Personal Digital Assistant (PDA): di formato palmare, schermo di pochi pollici, alimentazione a batteria, con un ridotto sistema operativo, tastiera di ridotte dimensioni.
Notebook: sono computer portatili, funzionanti anche a batteria;
Personal computer (PC):
Workstation: stazioni di lavoro individuali adatte all’elaborazione vettoriale e pittorica, CAD;
Mini computer: consentono collegamenti interattivi per alcune decine di utenti; vengono ormai sostituiti da personal computer o network, P.C. di fascia alta, con funzioni di server. Costo decine di milioni;
Mainframe: grandi calcolatori in grado di fornire servizi interattivi a centinaia di utenti; costo centinaia di migliaia di dollari.
Supercomputer: sono calcolatori estremamente veloci, multiprocessore; impiegati in campo scientifico o tecnico per calcoli estremamente gravosi come simulazioni di volo spaziale, elaborazioni dati atmosferici. Costo diversi milioni di dollari.
Hardware.
In generale un elaboratore può essere schematizzato come segue:

L’Unità di elaborazione, detta Unità Centrale, è l’elemento fondamentale del calcolatore, la parte più complessa dove avvengono le elaborazioni.
Essa è costituita da:
un processore o CPU (Central Processing Unit), è la componente che svolge tutti i calcoli e decide la sequenza delle operazioni da eseguire, è composta da una:
Unità Logico-Aritmetica, Arithmetic and Logic Unit, (ALU); questa esegue le operazioni aritmetiche e logiche sui dati;
Unità di Controllo o governo, Control Unit, (CU), predispone e controlla la registrazione dei dati in ingresso, decodifica le istruzioni memorizzate per attivare i corrispondenti circuiti dell’unità di esecuzione (ALU), gestisce la memorizzazione dei dati elaborati e l’uscita dei risultati delle operazioni.
Nota: comanda l’esecuzione di una particolare operazione tra tutte quelle a disposizione nella ALU, attivando di volta in volta quella richiesta dalle istruzioni del programma. Questa unità esegue iterativamente il seguente processo composto dalle seguenti tre fasi:
Fase di fetch: prelevamento di una istruzione dalla memoria centrale, con una lettura non distruttiva.
Fase di decodifica: individuazione delle operazioni richieste dall’istruzione prelevata.
Fase di esecuzione: a seconda dell’istruzione, generazione di segnali alla ALU per attivare l’opportuna operazione ed eventuale lettura di altri dati dalla memoria centrale.
una Memoria Centrale, in cui risiedono le sequenze di istruzioni da eseguire e i dati da elaborare o ricavate dal processore per essere stampate, visualizzate, ecc.
i controller, ai quali è demandato il controllo dei dispositivi esterni;
i bus di comunicazione, che interconnettono le componenti dell’unità centrale.
memorie di massa: costituiscono la memoria "ausiliaria" dell’elaboratore ed è un’estensione della memoria centrale;
dispositivi di Input/Output, sono dei dispositivi che consentono all’unità centrale di comunicare con l’esterno;
dispositivi di comunicazione, consentono ai calcolatori lo scambio di informazioni con altri computer.

Unità Centrale
Dispositivi di Input
(Unità periferiche)
CPU
Memoria centrale
Dispositivi di Output
(Unità periferiche)
Tastiera
Mouse
Scanner
Penna ottica
Tavoletta grafica
Speach card
CU
ALU
RAM
ROM
Video
Stampante
Plotter
Memorie di Massa
Floppy disk
Hard disk
Nastro magnetico
CD Rom
CD RW
DVD
Zip / Jazz



Componenti hardware.
CPU
RAM
ROM
ULA
UC
Controller
BUS
Bus di dati
Bus indirizzi
Bus controllo
Memorie di massa:
Hard Disk
Floppy disk
CD Rom
DVD
Videodisco
ZIP / Jazz
Dispositivo di Interazione (Input/Output):
Tastiera
Mouse
Penna ottica
Scanner
Speach card (scheda vocale)
Monitor
Stampante
Plotter
Memoria Centrale.

Nella memoria centrale vengono conservati (memorizzati) le informazioni. E composta da due tipi, caratterizzati dal differente modo di conservare tali informazioni, e cioè:
RAM (Random Access Memory - Memoria ad accesso casuale) – E’ una memoria di tipo temporaneo nel senso che tutte le informazioni in essa contenute vi rimangono fino a quando il computer è acceso. Per conservarli in modo permanente si fa uso delle memorie di massa. La RAM è detta anche "memoria ad accesso casuale", infatti è possibile accedere direttamente a qualsiasi informazione (dato) in essa contenuta.
ROM (Reading Only Memory – Memoria di sola lettura) – E’ una memoria di tipo permanente, ovvero le informazioni rimangono memorizzate anche se il computer viene spento, ma non è possibile, da parte dell’utilizzatore, poter registrare informazioni su di essa. Questa memoria viene inserita al momento della fabricazione del computer. Essa contiene, quindi, programmi di gestione dell’hardware.
Software.


Il software viene classificato in due distinte categorie:
1) Software di base: svolge le attività primarie necessarie al funzionamento del calcolatore ; è costituito da un insieme di moduli che interagiscono direttamente con l’hardware e il firmware nascondendo all’utente la struttura fisica del calcolatore, realizzando così una macchina virtuale. Esso è composto da:
Sistema operativo (SO): è un insieme di programmi col quale l’utente non interagisce direttamente; ha il compito di gestire la memoria, le periferiche, ecc. All’accensione del calcolatore gran parte di esso (il nucleo o kernel) viene caricato nella memoria centrale e vi risiede fino allo spegnimento.
Interfaccia utente: è un insieme di programmi che permette all’utente di interagire con il SO, altrimenti non accessibile. La modalità di interazione uomo/macchina consiste nell’impartire comandi direttamente dalla tastiera o operazioni da selezionare graficamente.
Software di utilità: è un insieme di programmi che mette a disposizione dell’utente alcune funzionalità di base, per es. copiare o cancellare informazioni, configurare il sistema, ecc.
Software di comunicazione: consente la comunicazione tra elaboratori per lo scambio di dati.
2) software applicativo: è la categoria di programmi utilizzati dagli utenti finali per la risoluzione di problemi specifici (ad esempio: editor, calcoli statistici, contabilità ecc.).
Il Sistema Operativo.

Il Sistema Operativo comprende un insieme di programmi che gestiscono le funzioni primarie dell’hardware e in particolare:
Il Processore
Le Memorie
I dispositivi Input / output
A seconda del campo di utilizzo esso è più o meno complesso. Ma alcune sue funzioni, che negli anni 70/80 erano presenti solo su grandi sistemi, sono oggi disponibili anche nei s.o. per personal computer.
Sostanzialmente, prima degli anni 80, un s.o. era legato alla struttura hardware per cui veniva scritto. Successivamente si è generalizzata la tendenza a svincolare le caratteristiche dell’hardware dal s.o.
Il primo s.o. adottato da costruttori diversi su elaboratori di classe e di architettura diversa è stato il s.o.: UNIX.
UNIX: sviluppato presso i Bell Laboratories nei primi anni 70, è scritto in modo tale che la parte di software facente riferimento alla struttura e all’architettura specifica della macchina fosse ridotta al minimo essenziale. In tal modo per utilizzare quel sistema operativo su elaboratori diversi, viene modificata solo quella piccola porzione di codice.
Nei Personal Computer si sono affermati:
Negli anni ottanta, il s.o.:
MS - DOS, System Operating System della Microsoft;
Apple Macintosh.
A partire dai primi anni novanta, il s.o.:
MS – Windows;
OS, della Macintosh;
OS/2, della IBM.
Da qualche anno (1996):
Linux: lanciato sul mercato alla fine degli anni 80, non ha avuto molto successo, solo da qualche anno sta riscontrando un maggiore utilizzo, anche su calcolatori di fascia media. E’ una implementazione "ridotta" del più famoso sistema operativo Unix.
Il Codice ASCII.

Il calcolatore, nato per trattare numeri, col passare degli anni ha trovato impiego anche in quelle attività che devono trattare caratteri, frasi, parole, ecc. Nasce, quindi, l’esigenza di individuare dei meccanismi che realizzino una corrispondenza tra la rappresentazione dell’informazione più vicina all’uomo con quella propria degli elaboratori digitali.
A tale scopo, vengono create delle tabelle che fanno corrispondere ad ogni carattere una sequenza di bit. Tale sequenza viene letta come valore numerico binario; quindi, queste tabelle di conversione sono anche delle tabelle di "codifica numerica" dei caratteri.
Mediante l’utilizzo di queste tabelle di conversione, qualsiasi elaboratore può codificare in binario le informazioni ricevute, memorizzarle, manipolarle e trasmetterle (con un processo inverso detto di decodifica) in formato comprensibile all’uomo.
Da notare che elaboratori diversi (da diversi costruttori) possono avere tabelle di conversione diverse, di conseguenza le informazioni non possono essere scambiate tra elaboratori diversi. Per evitare questi inconvenienti, oggi, vengono utilizzati delle tabelle di codifica standard; la più utilizzata universalmente è il Codice ASCII (American Standard Code for Information Interchange), questo codice è divenuto uno standard ISO 646.
Il Codice ASCII codifica 128 simboli diversi utilizzando 7 bit (27=128), numerati, in decimale, da 0 a 127. I primi 32 caratteri non sono stampabili e sono utilizzati per il controllo del video, della stampa, ecc.; gli altri caratteri comprendono le cifre del sistema decimale, i caratteri dell’alfabeto (maiuscolo/minuscolo), i segni di punteggiatura.
Il Codice nella codifica rispetta l’ordine alfabetico, i valori numerici in ordine crescente; inoltre, una caratteristica di questo Codice è che la distanza tra una lettera maiuscola e una minuscola è costante, quindi per convertire un carattere maiuscolo in uno minuscolo e viceversa, basta aggiungere o togliere dalla codifica del carattere la differenza tra la codifica del carattere "A" e la codifica del carattere "a".
Dal momento che l’unità di memorizzazione dei dati in un calcolatore è il byte, utilizzando la codifica ASCII avanza un bit, utilizzando anche questo è possibile codificare altri 128 simboli (28=256); i caratteri da 128 a 255 vengono utilizzati per supportare gli alfabeti di alcune lingue europee che richiedono simboli aggiuntivi.
In una tabella ASCII in corrispondenza di ogni carattere viene riportato la corrispondente codifica in binario, in ottale e in esadecimale.
Sistemi di numerazione.

Consideriamo la rappresentazione e quindi l’elaborazione dell’informazione di tipo matematico.
Fin dall’antichità il concetto di numero è visto come astrazione per risolvere problemi di conteggio. Invece di contare direttamente pere, mele, ecc. si ricorre ad una rappresentazione astratta di quante esse siano; ci si concentra cioè, sull’elemento quantità e non sull’elemento qualità. A loro volta i numeri devono essere rappresentati con qualcosa di concreto (es. aste, palline di un pallottoliere, ecc.).
Il modo più semplice è quello di contare segnando su un supporto di informazione (es. un pezzo di carta) una astina; in questo caso la rappresentazione dei numeri avviene attraverso un solo simbolo (linea verticale), parleremo, quindi, di sistema di numerazione "unario". Questo tipo di rappresentazione è poco conveniente quando bisogna rappresentare elevate quantità numeriche. Il sistema di numerazione ancora oggi utilizzato è quello arabico, che si basa su un insieme di dieci simboli e su una regola ben precisa: 0 corrisponde a nessuna quantità, 1 ad una unità, 2 a due unità, e così via fino a 9; per il numero successivo, anziché utilizzare un nuovo simbolo (non è pensabile utilizzare una macchina da scrivere con infiniti simboli) si scrive un 1 (che rappresenta una decina) seguito da uno zero: così 10 è la somma di 10 più 0, 12 è la somma di 10 più 2, e così via (cioè una decina + 2 unità).
Ovviamente qualsiasi sistema di numerazione con cardinalità (= numero dei simboli utilizzati) maggiore di uno è più conveniente di quello unario per rappresentare delle quantità (contare). Possiamo parlare, così, di base 2, 3, 4, 8, 16, (se vengono usati 2, 3 e così via simboli).

L’informazione elaborata dai calcolatori (Lib1) è rappresentata in forma numerica (digit = cifra, da qui il termine di calcolatore digitale) indipendentemente dalla forma originale (lettera, numero, immagine, suono, ecc.). La rappresentazione numerica di tutte le informazioni è così diventata uno standard per elaborarle, memorizzarle e trasmetterle.
I primi sistemi automatici utilizzavano, per codificare, 10 simboli diversi rappresentanti le dieci cifre, ma con l’avvento dell’elettronica nei calcolatori vengono utilizzati le valvole termoioniche prima, poi i relay, e quindi i transistor, componenti questi che hanno tutti la stessa caratteristica, codificare situazioni come "corrente ON", "corrente OFF", "luce accesa" "luce spenta", utilizzano, cioè "solo due stati", associando ad uno stato il valore "0" e allo stato opposto il valore "1":
si può pensare al calcolatore come una macchina che effettua i calcoli utilizzando il sistema di numerazione in base 2 (binario).

Tutti i dispositivi usati nei sistemi di elaborazione (Lib4/76), e tutti i mezzi di memorizzazione di dati a cui gli elaboratori hanno accesso, hanno soltanto due stati.



Osserviamo che due è il minimo numero di simboli che compongono "un alfabeto" per poter rappresentare informazioni. Nello stesso tempo con solo 2 simboli abbiamo 4 (22) combinazioni diverse, quindi possiamo rappresentare ben poca informazione, è necessario pertanto utilizzare gruppi di questi simboli per poter rappresentare maggiori quantità di informazioni.



Come accennato precedentemente un numero decimale qualsiasi, può essere espresso come la somma delle unità alle decine, quindi alle centinaia e così via. Viene applicata, cioè, la seguente regola:
"in un numero del sistema decimale (Lib2/110) ciascuna cifra rappresenta, a seconda della propria posizione, quante volte una certa potenza della base 10 è contenuta nel valore rappresentato"

Esempio.
147 = 1 x 102 + 4 x 101 + 7 x 100
e così per i numeri decimali si avrà:
147.34 = 1 x 102 + 4 x 101 + 7 x 100 + 3 x 10-1 + 4 x 10-2
Cioè: a partire da una posizione zero (0), corrispondente all’unità, le posizioni vengono numerate secondo interi positivi crescenti, verso sinistra, e, nel caso di decimali, dalla virgola in poi, secondo interi negativi decrescenti verso destra. Una cifra in una certa posizione indica un multiplo della potenza di 10 elevato all’esponente pari al numero della posizione.
Questa forma di rappresentazione numerica vale per qualunque base diversa da 10.
Base 4  (13)4 = 1 x 31 + 4 x 30 = 3 + 4 = (7)10
E’ importante fare alcune considerazioni fra i diversi sistemi di numerazione, come il sistema di numerazione posizionale decimale a noi più congeniale, il binario, e altri sistemi di numerazione.


I più utilizzati in informatica per rappresentare le informazioni sono, l’ottale (base 8) e l’esadecimale (base 16).

Convenzionalmente:


per il sistema ottale si utilizzano i simboli: (0,1,2,3,4,5,6,7);
per il sistema esadecimale si utilizzano i simboli: (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
dove A=10, B=11, C=12, D=13, E=14, F=15).


Esempi.
(A5E)16 corrisponde a 2654nella base 10 (vedi: Conversione dei numeri tra basi)
(235)8 corrisponde a 157 nella base 10 (vedi: Conversione dei numeri tra basi)
(10011)2 corrisponde a 19 nella base 10 (vedi: Conversione dei numeri tra basi)


Anche nel sistema binario, come per il sistema decimale, si considerano i multipli, così abbiamo:
kilo k 210 = 1024
Mega M 220 = 10242 = 1024k = 1.048.576
Giga G 230 = 10243 = 1024M = 1.073.741.824
Tera T 240 = 10244 = 1024G = 1.099.511.627.776
Peta P 250 = 10245 = 1024T …
Conversione dei numeri tra basi diverse.

La necessità di convertire numeri tra basi oggi è ridotta solo ad alcune situazioni particolari, ad esempio progettazione di circuiti o in alcuni casi di programmazione.




Conversione da base b a base 10.
Per convertire in "Base 10" un numero rappresentato in una qualsiasi "BASE b", bisogna procedere nel seguente modo:
sommare le cifre del numero moltiplicate per la base b elevata alla potenza della posizione che occupa la cifra.

Esempi.
(A5E)16 = A x 162 + 5 x 161 + E x 160 = 10 x 256 + 5 x 16 + 14 x 1 = 2560 + 80 + 14 = (2654)10
(235)8 = 2 x 82 + 3 x 81 + 5 x 80 = 128 + 24 + 5 = (157)10
(10011)2 = 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 16 + 2 + 1 = (19)10



Conversione da base 10 a base b.
Si procede nel modo seguente:
dividere il numero da convertire per la base b fino a quando l’ultimo quoziente è minore della base stessa (b), dopodiché il numero convertito si ottiene prendendo l’ultimo quoziente e tutti i resti delle divisioni, procedendo dall’ultimo resto al primo e scrivendoli da sinistra verso destra.

Esempio: Convertire il numero 12 da Base 10 a Base 2
12 : 2 = 6 con resto=0
6 : 2 = 3 con resto =0
3 : 2 = 1 con resto =1
1 : 2 = 0 con resto =1
quindi: (1100)2

Esempio: Convertire il numero 120 da Base 10 a Base 8
120 : 8 = 15 con resto = 0
15 : 8 = 1 con resto = 7
1 : 8 = 0 con resto 1
quindi: (170)8

Esempio: Convertire il numero 520 da Base 10 a Base 16
520 : 16 = 32 con resto = 8
32 : 16 = 2 con resto = 0
2 : 16 = 0 con resto 2
quindi: (208)16

Esempio: Convertire il numero 1253 da Base 10 a Base 16
1253 : 16 = 78 con resto = 5
78 : 16 = 4 con resto = 14 = E
4 : 16 = 0 con resto 4
quindi: (4E5)16


Osservazione:
Si osservi che la conversione dalla base 2 alla base 16 e/o 8, e viceversa,è più semplice e veloce di quella da decimale ad altre basi.


Infatti basta considerare che per rappresentare le sedici cifre diverse del codice esadecimale occorrono 4 bit (24 = 16) mentre per rappresentare le otto cifre diverse del codice ottale occorrono 3 bit (23 = 8).
Ne risulta che per convertire un numero binario in esadecimale o in ottale, è sufficiente raggruppare le cifre binarie rispettivamente in gruppi di quattro o tre cifre (bit) a partire da quelle "meno significative": si ricava immediatamente il numero grazie alla sostituzione dei bit così ricavati con la cifra esadecimale o ottale corrispondente.


Esempio: conversione da binario in esadecimale
111 1111 0001 1010 --> 7 15 1 10 --> (7F1A)16
dove:
1010 (conversione da binario a decimale) = 10 in esadecimale corrisponde ad A
0001 (conversione da binario a decimale) = 1 in esadecimale corrisponde ad 1
1111 (conversione da binario a decimale) = 15 in esadecimale corrisponde ad F
111 (conversione da binario a decimale) = 7 in esadecimale corrisponde ad 7



Esempio: conversione da binario in ottale
101 111 110 --> 5 7 4 --> (574)8
dove:
101 (conversione da binario a decimale) = 5 in ottale corrisponde a 5
111 (conversione da binario a decimale) = 7 in ottale corrisponde a 7
110 (conversione da binario a decimale) = 5 in ottale corrisponde a 5

Analogamente si procede per la conversione dalla base 16 e/o 8 alla base 2.

Esempio:
Convertire il numero (A B 2)16 in Binario.
Poiché:

(A)16 = (10)10 = (1010)2
(B)16 = (11)10 = (1011)2
(2)16 = (2)10 = (0010)2
ne consegue che:
(A B 2)16 = (101010110010)2

Esempio:
Convertire il numero (516)8 in Binario.
Poiché:

(5)8 = (5)10 = (101)2
(1)8 = (1)10 = (001)2
(6)8 = (6)10 = (110)2
ne consegue che:
(5 1 6)8 = (101001110)2

Esempio



  


  1. Almena

    Artilces like this make life so much simpler.