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 (nell’audio 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 = 0
1 = 1
2 = 10
3 = 11

1
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
11 = 1011
12 = 1100
13 = 1101
14 = 1110
… …

Tornando all’esempio 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
...

2
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;

3
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 sotto-
algoritmo “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 sotto-
algoritmo “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”

4
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 AND 1 = 1
• 1 AND 0 = 0
• 0 AND 1 = 0
• 0 AND 0 = 0

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

• 1 OR 0 =1
• 1 OR 1 =1
• 0 OR 0 =0
• 1 OR 1 OR 0 = 1
• 0 OR 0 OR 1 = 1
• 0 OR 0 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

5
HARDWARE:

• CASE
E’ l’involucro 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 l’alimentatore che fornisce i vari voltaggi necessari al
funzionamento del computer (l’alimentatore 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 l’altro 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 l’AGP (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 l’EIDE (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:

6
- POST (Power On Self Test): è la prima istruzione che viene eseguita e
controlla che l’hardware 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 l’ALU.
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 all’interno 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. Dall’Intel 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

7
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 3”1/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à”

8
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 l’uso 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,

9
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 l’AGP (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
l’audio
• “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 l’utente: Word Processor, Foglio
Elettronico, Database, Programmi musicali, Browser per Internet, Posta Elettronica, Media
Player, ecc.

13

Potrebbero piacerti anche