Sei sulla pagina 1di 13

Stefano Bonetti

2. FONDAMENTI DI INFORMATICA
PREMESSE:

Mondo analogico e mondo digitale


ANALOGICO: Si dice dei sistemi che trattano grandezze attraverso una
rappresentazione CONTINUA o LINEARE di valori, dunque grandezze che possono
assumere infiniti valori in un intervallo. Il segnale audio analogico continuo nel
tempo e per questo viene definito come lineare.
DIGITALE: Letteralmente, "numerico". Si dice dei sistemi che trattano grandezze
attraverso una rappresentazione DISCONTINUA o DISCRETA di valori numerici, dunque
NON-LINEARE (nellaudio si parla di discretizzazione del segnale).

BIT E SISTEMA BINARIO


SISTEMA DECIMALE E SISTEMA BINARIO
Sistema Decimale: un sistema di notazione posizionale per numeri basato sul numero
10 e sulle sue potenze; ciascuna singola posizione pu contenere valori compresi tra 0 e
9.
Esempio: numero 6.357
Leggendo il numero da destra verso sinistra il 7 occupa la posizione delle unit, il 5
occupa la decina, il 3 le centinaia ed il 6 le migliaia. Possiamo dunque rappresentare il
tutto nel seguente modo:
(6 * 1.000) + (3 * 100) + (5 * 10) + (7 * 1) =
6.000 + 300 + 50 + 7 = 6.357
Un altro modo per rappresentare la stessa cosa il seguente (con potenze di 10):
(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (7 * 10^0) =
6000 + 300 + 50 + 7 = 6357
(NB: Qualsiasi numero elevato alla 0 sempre uguale a 1)

Il computer utilizza il sistema binario che sempre un sistema posizionale ma si basa


sul numero 2 e sulle sue potenze; ciascuna singola posizione pu contenere valori
compresi tra 0 e 1.
Per semplificare, si pu dire che questa scelta deriva dalla tecnologia elettronica stessa
applicata al principio di funzionamento del pc e che si basa essenzialmente sul concetto
di interruttore, ovvero sui valori di ON e OFF, acceso o spento, che ogni singolo
transistor pu rappresentare.
In americano il termine numero binario viene espresso con binary digit che viene
abbreviato in bit: ogni 0 oppure 1 chiamato bit.
Tutti i nostri dati nel computer (immagini, testo, musica, ecc.) sono rappresentati sotto
forma di sequenze di bit.
Esempio di rappresentazione Decimale e suo equivalente Binario:
0
1
2
3

=
=
=
=

0
1
10
11

4
5
6
7
8
9
10
11
12
13
14

=
=
=
=
=
=
=
=
=
=
=

100
101
110
111
1000
1001
1010
1011
1100
1101
1110

Tornando allesempio del numero 6.357 nel sistema binario sar rappresentato come
segue:
1100011010101
ovvero da binario a decimale:
(1*2^12) + (1*2^11) + (0*2^10) + + (1*2^2) + (0*2^1) + (1*2^0) =
4096 + 2048 + 0 + + 4 + 0 + 1 =
6.357
ovvero da decimale a binario (scrivendo il risultato sempre da destra verso sinistra):
6.357 / 2 = 3.178,5 (quindi non intero) = 1
3.178 / 2 = 1.589 (quindi intero) = 0
1.589 / 2 = 794,5 (quindi non intero) = 1

1 / 2 = 0.5 (quindi non intero) = 1


Nel sistema informatico i bit sono organizzati a gruppi di 8: un gruppo di 8 bit viene
chiamato Byte (quindi 8 bit = 1 Byte).
Con un byte (quindi con 8 bit) posso rappresentare al massimo 256 valori (da 0 a 255)
ovvero:
Numero massimo di valori decimali rappresentabili = 2^n_bit
[ 2^8 = 256 ]
0 = 00000000
1 = 00000001
2 = 00000010
...
254 = 11111110
255 = 11111111
Per esempio i CD-Audio che utilizzano 16 bit possono rappresentare il segnale
attraverso 65536 valori (da 0 a 65535 o meglio, come vedremo pi avanti da 32768 a
+ 32767):
0 = 0000000000000000
1 = 0000000000000001
2 = 0000000000000010
...

65534 = 1111111111111110
65535 = 1111111111111111
Quando si comincia a parlare di molti bytes si cominciano ad usare i prefissi del tipo
Kilo, Mega, Giga, ecc.
Tabella delle unit di misura con sistema binario:
Name

Abbr.

Size

Kilo_Bytes

KB

2^10 = 1,024 (Bytes)

Mega_Bytes

MB

2^20 = 1,048,576 (Bytes)

Giga_Bytes

GB

2^30 = 1,073,741,824 (Bytes)

Tera_Bytes

TB

2^40 = 1,099,511,627,776 (Bytes)

Peta_Bytes

PB

2^50 = 1,125,899,906,842,624 (Bytes)

Exa_Bytes

EB

2^60 = 1,152,921,504,606,846,976 (Bytes)

Zetta_Bytes

ZB

2^70 = 1,180,591,620,717,411,303,424 (Bytes)

Yotta_Bytes

YB

2^80 = 1,208,925,819,614,629,174,706,176 (Bytes)


(NB: 1 Byte = 8 bit)

Algebra Booleana e Operatori logici


George Boole, nel 1847, pubblic un libro, The Mathematical Analysis of Logic in cui
dimostrava che la maggior parte del pensiero logico, privato di particolari irrilevanti e
verbosit, potesse essere concepito come una serie di scelte. Questa idea poi
divenuta la base della logica utilizzata dal computer e che viene detta appunto
booleana.
Dunque, qualsiasi processo logico pu essere ricondotto ad una sequenza di eventi
elementari, che nell'insieme prende il nome di algoritmo. Tale sequenza pu essere
rappresentata con un diagramma di flusso, Flow chart, il quale a sua volta facilmente
traducibile in un particolare programma comprensibile dall'elaboratore.
In informatica, possiamo dunque dire che con il termine algoritmo si intende un metodo
per la soluzione di un problema adatto ad essere implementato sotto forma di
programma (software), ovvero come un procedimento che consente di ottenere un
risultato atteso eseguendo, in un determinato ordine, un insieme di passi semplici
corrispondenti ad azioni scelte solitamente da un insieme finito.
Nell'algebra booleana e nella relativa logica informatica, acquistano una grandissima
importanza i cosiddetti operatori logici di cui citeremo per semplicit i tre pi
importanti: AND, OR e NOT.
Spiegheremo ora con degli esempi di cosa si tratta.
- Algoritmo "vai dal salotto alla cucina", prima versione:
1) Inizio;
2) Alzati in piedi;
3) Esci dal salotto;
4) Curva a destra;
5) Prosegui per il corridoio fino alla porta davanti a te;
6) Apri la porta;
7) Entra in Cucina;
8) Fine;

Questo un esempio fin troppo esplicito per un essere umano, ma nel caso di un
automa richiederebbe di specificare i passi con una complessit maggiore:

Algoritmo "vai dal salotto alla cucina", seconda versione pi complessa con operatori
logici (False o True, 0 oppure 1):
1) Inizio.
2) Se (IF) sei in piedi procedi al punto 4. In caso contrario (ELSE):
3) Alzati in piedi (chiamata al sotto-algoritmo Alzarsi in piedi).
4) Cammina per 4 passi fino alla porta davanti a te (chiamata al sotto-algoritmo
Camminare).
5) Se la porta aperta procedi al punto 7. In caso contrario:
6) Apri la porta (chiamata al sotto-algoritmo Apri la porta).
7) Esci dal salotto attraverso la porta, camminando per 2 passi (chiamata al sottoalgoritmo Camminare).
8) Ruota di 90 in senso orario (chiamata al sotto-algoritmo Rotazione).
9) Cammina per 9 passi fino alla porta della cucina (chiamata al sotto-algoritmo
Camminare).
10) Se la porta aperta procedi al punto 12. In caso contrario:
11) Apri la porta della cucina (chiamata al sotto-algoritmo Apri la porta).
12) Entra in cucina attraverso la porta, camminando per 2 passi (chiamata al sottoalgoritmo Camminare).
13)Sei in cucina.
14)Fine.

Rappresentazione grafica di un algoritmo attraverso un flow chart (diagramma


di flusso) di due affermazioni:
esco se bel tempo ed caldo

esco se bel tempo o se caldo

VALORI POSSIBILI: TRUE (VERO = 1) oppure FALSE (FALSO = 0)


Rappresentazione tramite algoritmi di tipo BASIC (come gi detto per
semplificare si elencano solo i tre operatori AND, OR e NOT):
esco se bel tempo ed caldo
IF bel tempo = true AND caldo = true THEN esco ELSE rimango a casa
esco se bel tempo o se caldo
IF bel tempo = true OR caldo = true THEN esco ELSE rimango a casa
se non bel tempo rimango a casa
IF NOT bel tempo = true THEN rimango a casa ELSE esco
Descrizione operatori principali:

o AND
L'operatore logico AND (letteralmente e di congiunzione in inglese) restituisce
vero se e solo se tutte le proposizioni (ovvero gli operandi) hanno valore vero
(1), altrimenti restituisce falso (0).

1
1
0
0

AND
AND
AND
AND

1
0
1
0

=
=
=
=

1
0
0
0

o OR
L'operatore OR restituisce vero se almeno una delle proposizioni in entrata
restituisce vero (1):

1
1
0
1
0
0

OR
OR
OR
OR
OR
OR

0
1
0
1
0
0

=1
=1
=0
OR 0 = 1
OR 1 = 1
OR 0 = 0

o NOT
L'operatore NOT restituisce il valore inverso di quello in entrata: esegue dunque
una negazione logica in un'espressione.

NOT 0 = 1
NOT 1 = 0

HARDWARE:

CASE
E linvolucro esterno ed preposto a contenere tutte le parti principali del computer.
Solitamente si trova nei formati:
- Desktop (sviluppo orizzontale, da scrivania);
- Mini-Tower (piccola torre a sviluppo verticale). Solitamente ha due slot da 5 pollici e ,
1 slot da 3 pollici e ;
- Midi-Tower (media torre sempre a sviluppo verticale). 3 slot da 5 pollici e e 2 da 3
pollici e ;
- High o Full Tower (torre alta verticale). Generalmente per utilizzi simili a server (4/6
slot da 5 pollici e );
- Rack, generalmente da 1 a 8 unit (usati per server e montati orizzontalmente in
armadi per Rack).
Al suo interno troviamo anche lalimentatore che fornisce i vari voltaggi necessari al
funzionamento del computer (lalimentatore attuale in formato ATX)

MOTHERBOARD (SCHEDA MADRE abbr. Mobo)


E essenzialmente un circuito stampato di varie dimensioni sul quale sono montati i vari
componenti principali del pc: processore, memoria, connettori per periferiche di
input/output e schede di espansione, vari chipset (tra cui il chip generatore di clock, il
Northbrige ed il Southbridge, ed il BIOS) e altri componenti elettronici.
A seconda del formato pu essere denominata Full-Atx 30cmx24cm, Micro-Atx 24x24, Mini
o Flex-ATX 24x18, mini-itx 17x17, nano-itx 12x12.
La sua funzione principale, oltre a quella di sostenere fisicamente i vari componenti,
quella di smistare i dati fra un componente e laltro attraverso dei canali di comunicazione
detti BUS controllati dai relativi chipset.
Parti principali:
- Socket per la ritenzione del processore sul quale viene collegato il medesimo;
- Vari slot per le memorie (generalmente nelle Mobo per home computer sono 4);
- Vari slot per le schede di espansione:
per la scheda video: PciExpressX16 (banda di 8GB/s (4 in upstream + 4 in
downstream) che sostituisce il precedente standar AGP (banda di 2GB/s).
per le schede di espansione PCI (Peripheral Component Interconnect, banda di
130MB/s), PCI-X (Extended PCI a 64 bit, banda fino a 4GB/s) o PCI-Express
(x1, x2, x4, x8 con velocit di 250MB/s per lane). Le espansioni possono essere
di vari tipi: schede audio, porte aggiuntive, ecc.
- Chipset: chip, circuito integrato con Read Only Memory (ROM) che contiene piccoli
software che permettono al pc di coordinare il trasferimento dati fra i vari componenti
del pc:
Northbridge (si occupa del system bus): connette il processore (CPU) con la
memoria esterna (RAM) e con il PCI-Express o lAGP (accelerated graphic port).
Southbridge (si occupa dell I/O, Input/Output bus): connette il processore
(CPU) con il canale PCI, Pci-X e Pci-Express, con lEIDE (enhanced - Intelligent
Drive Electronics) ed il SerialATA (ATA: advanced technology attachment) e
dunque con i dischi rigidi, il floppy e le unit ottiche, ed inoltre con il bus USB,
Firewire, seriale, parallelo e talvolta con l'audio (nel caso di chipset audio
integrato).
BIOS (Basic Input Output System) con il CMOS (pronuncia: sii-moss Complimentary Metal Oxide Semiconductor) che una piccola zona di memoria
(di tipo RAM) che serve a memorizzare i dati del system setup; tali dati vengono
conservati grazie ad una piccola batteria. Serve per l'avvio del pc.
Durante la fase di boot (avvio) del computer si susseguono infatti 4 fasi:

POST (Power On Self Test): la prima istruzione che viene eseguita e


controlla che lhardware sia funzionante (in caso di errore emette dei beep o
visualizza il problema sul monitor).
- CMOS: memorizza i dati hardware del sistema rilevati nel precedente punto.
- BIOS Instructions: interconnessione delle varie periferiche hardware con
possibilit di modificare determinati valori tramite il Setup del BIOS (al
quale si accede premendo il tasto Canc o F2 durante il boot).
- BOOT Instructions: sono le ultime istruzioni della fase di boot e si occupano
di fare la chiamata al sistema operativo.
Tra i principali produttori di BIOS ricordiamo: PHOENIX, AMI (American
Megatrends) e AWARD.
Connessioni esterne per Tastiera, Mouse, Stampante e altre periferiche (su porta
Parallela, Seriale, USB o FireWire), Scheda di rete, I/O audio
Connettori interni per i cavi del CD-DVD (40pin), Hard Disk (40 pin se Eide, 7 pin se
Serial-Ata), Floppy Disk (34 pin).

CPU (Central Processing Unit, nasce nel 1971 alla INTEL, MPU 4004)
E il cervello del computer ed preposto a svolgere tutte le operazioni di calcolo e di
trasporto dei dati. E composto da due parti:
- ALU (arithmetic logic unit) che svolge le operazioni aritmetiche e logiche
- CONTROL UNIT, che estrae le istruzioni dalla memoria, le decodifica e le esegue
invocando lALU.
Il processore riceve continuamente dati da eseguire e questi si dividono in due tipi:
- Istruzioni, che indicano come devono essere trattati i dati
- Dati, che sono i dati veri e propri
Quindi il lavoro pi grande del processore quello di decodificare le istruzioni che gli
vengono mandate dai programmi (dal software) e di localizzare i dati che devono essere
processati.
La decodifica avviene grazie ad un set di istruzioni contenuto allinterno del processore:
questo set si basa sullo standard denominato 8086, ovvero X86, in quanto le prime
istruzioni vennero scritte originariamente per il processore 8086 del 1978 della Intel, che
rappresenta lo standard de facto nel campo dei PC. Naturalmente fino ai giorni nostri
sono state aggiunte ulteriori istruzioni al fine di velocizzare il processamento dei dati (vedi
SSE, SSE2, SSE3, SSE4, MMX, ecc.).
Internamente il processore contiene anche due Cache, ovvero delle piccole memorie nel
quale salvare i dati temporaneamente e che hanno la stessa frequenza di clock del
processore. Il vantaggio infatti di utilizzare queste memorie rispetto a quella di sistema
consiste proprio nella loro grande velocit.
- Level 1 Cache (intorno ai 20K: 12K Istruzioni e 8K Dati)
- Level 2 Cache (oggi nei nuovi processori Intel Pentium4 di 2MB o 4MB))
Il clock per il processore proviene come gi detto dalla scheda madre. DallIntel 80486 del
1992 il clock viene moltiplicato internamente dal processore (prendendo ad esempio un
processore a 3GHz e considerando che oggi tipicamente il System Bus a 200MHz
(800MHz quad pumped), il moltiplicatore del processore sar a 15x, ovvero 3000/200)
Principali produttori di processori:
>> INTEL e AMD

RAM (Random Access Memory)


La ram la memoria di sistema ed una memoria di tipo volatile, ovvero quando
chiudiamo il pc questa viene persa. Tutti i dati durante le normali operazioni del pc sono
memorizzati qui dentro. La ram una memoria molto veloce che risponde alle esigenze

della CPU, quindi anche i dati memorizzati sui vari supporti che sono pi lenti rispetto a
questa, vengono prima caricati nella RAM e poi gestiti dal sistema.
Abbiamo due tipi di memoria:
- DRAM (Dynamic): il tipo utilizzato nella maggior parte dei casi e necessita di un
refresh di migliaia di volte al secondo (il termine Dynamic indica proprio che la memoria
deve essere rinfrescata; a questo provvede un circuito interno)
- SRAM (Static): un tipo statico, ovvero ricorda il suo contenuto senza aver bisogno del
refresh, ed anche molto pi veloce della DRAM. Il contro che costa molto e viene
generalmente usata come memoria cache (per il processore come L1 e L2 e nei dischi
rigidi)
>> Tra i principali produttori: Kingston, Twinmos, Kingwin, KingMaxx, Corsair, Crucial,
Micron.

SUPPORTI DI MEMORIZZAZIONE NON VOLATILE


Sui supporti di memorizzazione vengono salvati e conservati tutti i nostri dati; come questi
dati vengono salvati determinato dal tipo di File System (fat, fat32, ntfs, ext, ext2,
ecc.) ed i dati memorizzati vengono chiamati file (o files, termine inglese per archivio).
Un file in informatica un insieme di informazioni codificate organizzate come una
sequenza di byte, immagazzinate come un singolo elemento su una memoria di massa,
all'interno del File System esistente su quella particolare memoria di massa.
I supporti possono essere
di tipo Magnetico:
- Floppy Disk (attualmente 31/2) 300rpm (rivoluzioni o giri per minuto).
Capacit: 720KB, 1.44MB, 2.88MB.
- Hard Disk, da 4200 fino a 15000 rpm, con cache attualmente sugli 8MB (la cache
migliora le prestazioni dei dischi).
Il salvataggio dei dati avviene mediante tracce concentriche.
Tipi pi conosciuti: Parallel-ATA, Serial-ATA, SCSI (Small Computer System Interface)
Capacit: attualmente da 30GB a circa 1TB.
Sistemi RAID (redundant array of independent disks): sono dei sistemi che
permettono di collegare in modo particolare i dischi rigidi presenti nel sistema. Tra i pi
utilizzati ricordiamo:
Raid 0, composto da almeno 2 dischi rigidi, dove i dati vengono distribuiti in modo
consecutivo su tutti i dischi collegati in raid, aumentando considerevolmente la
velocit di lettura e scrittura (utile per il Video-Editing). La capacit dei dischi viene
sommata: ovvero il sistema operativo vedr un unico disco di capacit pari alla
somma dei dischi posti in raid.
Raid 1, composto da almeno 2 dischi rigidi, dove i dati vengono scritti
simultaneamente su entrambi i dischi duplicando i dati in scrittura. Utilissimo per
sistemi dove i dati sono importanti, in quanto se un disco si rovina i dati saranno
comunque disponibili sull'altro disco rimasto (grazie alla cosiddetta ridondanza dei
dati). La capacit dei dischi viene in pratica dimezzata: avendo due dischi da 400GB
l'uno, quindi 800GB in totale, avremo a disposizione del sistema operativo un unico
disco da 400GB.
RAID 5, che tenta di combinare i benefici dei RAID 0 e RAID 1, minimizzando per i
rispettivi svantaggi. Come nel RAID 0, il RAID 5 consiste di unit disco multiple
(minimo 3), ognuna suddivisa in blocchi. Come nel RAID, utilizza una parte di spazio
del disco in modo ridondante aumentando cos l'affidabilit nel caso di fallimento di
uno dei dischi.
Tuttavia il funzionamento di RAID 5 diverso dai RAID 0 o 1: il RAID 5 composto
da almeno tre unit disco di misura identica ed ogni unit suddivisa in blocchi ed i
dati vengono scritti nei blocchi. Tuttavia, non ogni blocco dedicato alla
conservazione dei dati come lo per RAID 0, ma vengono invece intercalati dei
blocchi contenenti i dati di parit

I blocchi che contengono la parit rendono possibile il ripristino dei dati nel caso in
cui una delle unit presenti un problema. La parit nel blocco xyz viene calcolata
attraverso una combinazione matematica dei dati di ogni blocco xyz su tutte le altre
unit presenti nell'array. Se i dati presenti in un blocco vengono aggiornati, il blocco
di parit corrispondente deve essere ricalcolato e aggiornato.
Questo significa anche che ogni qualvolta che i dati vengono scritti sull'array,
almeno due unit vengono scritte su: una unit che contiene i dati, e sulla unit che
contiene il blocco di parit.
Un punto molto importante da ricordare la distribuzione dei blocchi di parit,
infatti questi non sono concentrati tutti su un unica unit presente nell'array, ma al
contrario vengono distribuiti in modo omogeneo attraverso tutte le unit. Anche se
possibile dedicare una unit specifica per contenere nient'altro che la parit (infatti
questa configurazione conosciuta come RAID level 4), il costante aggiornamento
della parit stessa man mano che i dati vengono scritti sull'array, significherebbe
che l'unit che presenta la parit potrebbe diventare una limitazione nei confronti
della prestazione. Distribuendo le informazioni sulla parit in modo omogeneo
sull'array, possibile ridurre questo impatto.
La capacit dei dischi sar data da: (capacit di un'unit) x (numero di unit - 1).
Vantaggi: buona velocit di lettura Svantaggi: bassa velocit in scrittura (dovuta
al calcolo della parit.
Tape Stream: registrazione su cassetta con nastro magnetico, tipo DAT.
Capacita: tra 30GB e 70GB.
Zip drive: un supporto removibile prodotta da Iomega, capace di contenere in un
supporto poco pi voluminoso di un floppy disk, una quantit di dati pari a 100
Megabyte nella sua versione iniziale; successivamente sono state rese disponibili
versioni da 250 Megabyte e recentemente una versione da 750 MB. Si tratta sempre di
floppy magnetici, come gli hard disk. attualmente disponibile in due versioni: interna
(EIDE) ed esterna (USB e Firewire).

di tipo Ottico:
- CD/DVD
Lettura e scrittura dei dati attraverso luso di un raggio laser: i dati vengono scritti in
forma di spirale dal centro verso la periferia del disco.
Attualmente si trovano anche DVD a doppio strato, in grado di memorizzare i dati su
due strati sovrapposti che permettono di avere una maggior capacit di storaggio.
Capacit: CD=700MB, DVD=4.38GB, DVD-DoubleLayer=7.95GB
di tipo statico:
- Memorie statiche o flash memory con nessuna parte meccanica in movimento: vedi
PenDrive USB, memorie SD o Compact Flash per macchine fotografiche digitali, palmari,
ecc. Come capacit si arriva attualmente fino a 16GB.
- Solid State Disk (Hard disk allo stato solido): sono essenzialmente delle memorie flash
di tipo NAND (Not AND) che funzionano come dei dischi rigidi ma senza parti in
movimento, con una velocit di accesso bassissima ed una ottima velocit di lettura e
scrittura. Sono attualmente piuttosto cari e di non facile reperibilit.

SCHEDA VIDEO
E la scheda che si occupa della visualizzazione dei dati sul monitor del pc. Grazie al
coprocessore integrato, GPU (Graphic Processing Unit) svolge tutti i calcoli per il rendering
delle immagini in 2 e 3 dimensioni (2d e 3d). Possiede anche una memoria integrata
(OnBoard), attualmente da 64 a 512 MB, importante per il rendering di texture o trame pi
dettagliate, un decodificatore mpeg-2 per vedere i DVD, e varie uscite (o tavlvolta anche
entrate a seconda dei modelli). Tra i principali connettori ricordiamo: RGB (su D-Sub 15
pin, connessione analogica), DVI (Digital Visual Interface, connessione Digitale con
trasporto dei soli dati Video), HDMI (High Definition Multimedia Interface, connessione
Digitale con trasporto contemporaneo dei dati Video e Audio), Composito (su pin RCA,

analogico, trasporta i dati video con un unico segnale), S-Video (Separate Video, su
connettore a 4 pin mini-DIN, di tipo analogico ma migliore rispetto al Composito, trasporta
le informazioni video attraverso due segnali separati: luminosit e colore), Component
(generalmente su cavi coassiali, analogico, connessione di tipo professionale di ottima
qualit).
Il connettore su cui viene montata la Scheda Video attualmente chiamato PCI-Express16x
che permette di avere una banda passante totale dei dati di 8GB/s (4 in upstream + 4 in
downstream). Quello precedente ancora molto diffuso era lAGP (banda intorno ai 2GB/s).
Trai i produttori principali di GPU ricordiamo N-VIDIA e ATI

SCHEDA AUDIO
Parti principali della scheda audio:

digital signal processor (DSP) coprocessore che si occupa dei calcoli necessari per
laudio
digital to analog converter (DAC) chip che si occupa di convertire il segnale audio
da digitale ad analogico (segnale in uscita)
analog to digital converter (ADC) chip che si occupa di convertire il segnale audio
da analogico a digitale (segnale in ingresso)
read-only-memory (ROM) o Flash memory per memorizzare eventuali dati
(campioni)
musical instrument digital interface (MIDI) per la connessione con periferiche
esterne di tipo Midi (tastiere, expander e campionatori, surface control)
jack vari per la connessione con altoparlanti e microfoni, line-in e line-out (tra cui anche
connettori interni vari)
spesso nelle schede Entry Level presente anche una porta per il collegamento con il
joystick o con una frusta Midi

>> Principali produttori Entry Level: Creative, Terratec, AudioTrack, M-Audio;


>> Principali produttori Professional: RME, Digidesign (Avid), Mark Of The Unicorn (MOTU),
Creamware, M-Audio, Esi-Pro, Echo Digital Audio, Presonus.
Per ulteriori approfondimenti sulla Scheda Audio e sulle relative connessioni vedi la Tesi
n.5, Sistemi Audio e Midi.

10

SOFTWARE:
Nell'informatica, un programma per calcolatore (software), o semplicemente programma,
la descrizione di un algoritmo in un linguaggio adatto ad essere eseguito da un computer.
Come gi detto, una sequenza logicamente ordinata di operazioni o comandi di istruzioni, che
produce soluzioni per una data classe di problemi.
Un programma scritto in linguaggio macchina direttamente eseguibile da un computer
detto anche programma eseguibile o programma binario (in Windows la famosa estensione
.exe).
Un programma scritto in linguaggio assembly o in un linguaggio di programmazione ad alto
livello (C, C++, C#, Basic, ecc.), invece, pu essere eseguito solo utilizzando un compilatore o
un interprete (o entrambi) e viene detto programma sorgente.
Il programmatore (o coder o developer) il professionista che scrive i programmi software in
un determinato linguaggio di programmazione (scelto in base alle proprie necessit e
preferenze). La professione del programmatore relativamente recente e si sviluppata di
pari passo con l'aumento dei campi di applicazione dell'informatica.
Possiamo dividere i softwares in 3 categorie principali:

1. Sistema operativo (OS, Operating System)


E il software di base che controlla e gestisce tutto il traffico di dati all'interno del computer
e fra questo e tutte le periferiche interne ed esterne operando quindi come intermediario
fra hardware e software.
E la piattaforma sulla quale girano tutti gli altri programmi di sistema e gli applicativi.
Parti principali del sistema operativo (descrizioni tratte da Wikipedia):
- Kernel: Il kernel la parte fondamentale di un sistema operativo. Si tratta di un software
che ha il compito di fornire ai moduli che compongono il sistema operativo e ai programmi
in esecuzione sul computer le funzioni fondamentali ed un accesso controllato all'hardware,
sollevandoli dai dettagli della sua gestione.
Quali funzioni sia opportuno che il kernel debba fornire e quali possano essere demandate a
moduli esterni oggetto di opinioni divergenti: se il kernel di un sistema operativo
implementa soltanto un numero molto ristretto di funzioni, delegando il resto ad altre parti,
si parla di microkernel. Il vantaggio di un sistema operativo microkernel la semplicit del
suo kernel; lo svantaggio l'interazione pi complessa fra il kernel e le altre componenti
del S.O. stesso, che rallenta il sistema. Di solito il kernel di un sistema operativo
microkernel molto piccolo e fornisce solo poche funzioni di base per l' astrazione
dall'hardware e la comunicazione fra i vari moduli, che sono esterni ad esso.

Schema di Microkernel

11

Un kernel tradizionale, monolitico, integra invece dentro di s la gestione della memoria


virtuale, lo scheduler e i gestori di file system, nonch i driver necessari per il controllo di
tutte le periferiche collegate. Questo tipo di kernel pi complesso da progettare,
mantenere ed aggiornare, ma anche pi veloce ed efficiente. Una sua evoluzione
costituita dai kernel "modulari", che mantengono al loro interno lo scheduler e i gestori di
file system e memoria virtuale ma separano alcune funzioni non essenziali in moduli a s
stanti, da caricare in memoria solo in caso di effettivo uso della funzione o periferica di loro
competenza.

Schema di kernel monolitico


- File system: Il file system il modo in cui i file sono immagazzinati ed organizzati su un
dispositivo di archiviazione, come un hard disk o un CD-ROM. Esistono molti tipi di file
system, creati per diversi sistemi operativi, per diverse unit di memorizzazione e per
diversi usi. Si possono identificare due grandi classi di file system: quelli per unit locali,
destinate ad organizzare fisicamente i dati su un disco, e i file system distribuiti, nati per
condividere i dati fra pi computer collegati attraverso una rete, superando le differenze fra
sistemi operativi e filesystem locali delle varie macchine.
Tra i principali Filesystem per unit locali ricordiamo:
- Windows: Fat, Fat32, Ntfs
- Linux: Ext2, Ext3, ReiserFS
Filesystem distribuiti:
- Network File System (NFS)
- Coda File System
- Andrew file system (AFS)
- Scheduler: Lo scheduler un componente fondamentale dei sistemi operativi
multitasking, ovvero quelli in grado di eseguire pi processi (task) contemporaneamente.
Lo scheduler si occupa di fare avanzare un processo interrompendone temporaneamente
un altro, realizzando cos un cambiamento di contesto (context switch). Generalmente
computer con un processore sono in grado di eseguire un programma per volta, quindi per
poter far convivere pi task necessario usare lo scheduler. Esistono vari algoritmi di
scheduling che permettono di scegliere nella maniera pi efficiente possibile quale task far
proseguire.
- Gestore di memoria: Il gestore di memoria si occupa di gestire ed assegnare la
memoria ai processi che ne fanno richiesta. La gestione della memoria necessaria per
tenere traccia di quanta memoria impegnata e di quanta invece disponibile per
soddisfare nuove richieste: in mancanza di un sistema di gestione, si avrebbe prima o poi il
caso di processi che ne sovrascrivono altri, con gli ovvi inconvenienti.

12

Un altro buon motivo per registrare la memoria usata dai vari processi il fatto che in caso
di errori gravi i processi possono andare in crash e non essere pi in grado di comunicare al
sistema che la memoria che occupano pu essere liberata: in questo caso compito del
gestore di memoria, in caso di terminazione anomala del processo, marcare come libere le
zone di memoria possedute dal processo "defunto", rendendole disponibili per nuove
allocazioni.
- Interfaccia utente: Si tratta di un programma che permette all'utente di interagire con
il computer. Esistono sostanzialmente due famiglie di interfacce utente: interfaccia a linea
di comando e interfaccia grafiche (GUI).
- Spooler di stampa: Lo spooler di stampa stato storicamente il primo modulo esterno
del sistema operativo ad essere implementato, per risolvere il problema della gestione delle
stampe su carta. Infatti, essendo le stampanti elettromeccaniche dei dispositivi molto lenti,
i primi programmi per elaboratore dovevano necessariamente sprecare molto tempo di
CPU, estremamente prezioso all'epoca, per controllare la stampante ed inviarle i dati.
Quindi venne ideato un programma separato, che girava con una priorit molto bassa e che
era visto dagli altri programmi come una normale stampante: in realt invece lo spooler
accumulava i dati che un programma doveva stampare in una apposita area di memoria
RAM, e poi si faceva carico del processo di stampa vero e proprio lasciando gli altri
programmi liberi di continuare la loro esecuzione.
Il meccanismo fondamentale dello spooler di stampa rimasto sostanzialmente invariato
dai suoi albori fino ad oggi: con gli anni e con il progredire della tecnologia le modifiche pi
rilevanti sono state la capacit di gestire pi stampanti selezionabili a piacere, e la capacit
di gestire anche stampanti remote, collegate cio non direttamente al computer su cui gira
lo spooler ma ad altri elaboratori connessi via rete.
Tra i principali sistemi operativi ricordiamo:
Windows, MacOs, Unix e Linux, BeOS, SunOs, ecc.

2. Software(s) di sistema:
I software di sistema sono i programmi che servono alla gestione del sistema operativo.
Ricordiamo i principali: drivers (interfacciano il sistema operativo con l'hardware), utility
(ScanDisk, Defrag, ecc.) e pannelli di controllo (dai quali possibile gestire il sistema
operativo da parte dell'utente, vedi ad esempio il Pannello di Controllo di Windows).

3. Software(s) applicativi:
Sono i programmi che svolgono i lavori reali per lutente: Word Processor, Foglio
Elettronico, Database, Programmi musicali, Browser per Internet, Posta Elettronica, Media
Player, ecc.

13