Estratto del documento

NOTA:

Questi sono appunti presi a lezione da alcuni studenti e

NON sono stati ancora corretti.

Essi rappresentano pertanto una traccia delle lezioni tenute

durante il corso ma NON devono essere considerati

affidabili.

Questi appunti rappresentano pertanto soltanto una

indicazione degli argomenti trattati.

a. giordano, 1 Dicembre 2012

INDICE

Introduzione: “Cenni storici sui calcolatori” pag. 2

• Il sistema operativo pag. 8

Approfondimento pag. 11

• CPU/ Microprocessori pag. 14

Approfondimento pag. 20

• Dalla rete telefonica a quella dati pag. 22

Esempi di reti pag. 23

• Audio e video nei calcolatori pag. 28

Audio pag. 28

Video pag. 29

• Internet: come funziona la rete pag. 32

Approfondimento pag. 39

• Crittografia pag. 46

• Calcolatori su rete Ethernet pag. 48

Approfondimento pag. 50

2

I primi calcolatori erano macchine di dimensioni notevoli che avevano come obiettivo quello di

risolvere calcoli complessi ( anni 80’).

Come è noto, un qualunque fenomeno fisico o naturale è descrivibile mdiante un’insieme di

formule matematiche ovvero in un MODELLO MATEMATICO di entità variabile e così facendo i

problemi possono essere univocamente descritti e trattati da chiunque possa avere conoscenze

matematiche.

Più il fenomeno è complesso o più lo si vuole descrivere in dettaglio e con minori approsimmazioni,

più diventa complicato il modello matematico e nasce quindi la necessità di disporre di uno

strumento in grado di trattare il modello stesso: il calcolatore.

Fino agli anni 80’ i componenti degli elaboratori erano “tridimensionali” perché vi era la necessità

di maneggiarli ( prenderli, montarli ecc..), con il passare del tempo transistor e resistenze vengono

stampati analogamente ad un processo fotografico: nascono i Circuiti Integrati “VLSI”(1974). Uno

degli ultimi calcolatori “tridimensionali” famosi e cioè costruiti con componentistica non VLSI è il

PDP11 della Società Digital. Verso il 1980 compare il primo personal computer.

Da questo momento i prezzi iniziano a calare in modo sempre più significativo e si entra nell’ottica

di utilizzare il computer per innumerevoli altri compiti per i quali, nel passato, non ne sarebbe stato

giustificato l’impiego.

Oggi i calcolatori sono praticamente presenti dappertutto.

Gli schemi di principio e di funzionamento di base di un calcolatore degli anni 80’ e di uno di oggi

sono praticamente gli stessi e possono essere rappresentati secondo la rappresentazione di von

Neumann mediante tre principali blocchi funzionali. 3

ARCHITETTURA DI VON NEUMANN

La CPU o

microprocessore è la La memoria è la

parte operativa. Essa CPU Memoria sede di dati e

è adibita al comando istruzioni.

e a far funzionare

tutto il resto.

Esempio: processore

(anni 80) 8080 ….

… PENTIUM (ieri) Il blocco I/O

Input / (ingresso, uscita)

Output consente al pc di

interagire con il

Modem mondo circostante.

Tastiera

Mouse

Schermo

Stampante

Hard disk ….

.

Bit e Byte

I computer sono in grado di determinare se in un collegamento elettrico fluisce corrente oppure no

ed è grazie a questa abilità che si è potuto creare un alfabeto interno mediante il quale la macchina

può trattare i dati provenienti dall’esterno.

Questo sistema di codifica è chiamato alfabeto binario e si basa su sequenze di zeri e uni logici

associati agli stimoli elettrici che chiameremo BIT ( BInary- digiT).

Il computer leggerà un (1) in presenza di corrente e uno (0) in caso contrario cioè in assenza.

In termini di Volt in gioco avremo:

per lo (0) = 0 Volt 4

per l’(1) = 3,6 Volt ( nell’8080 invece all’(1) corrispondevano 5 Volt)

Il bit è la più piccola unità di trasmissione dati; per avere qualcosa di più sostanzioso è necessario

parlare di Byte ossia un insieme di 8 bit.

Operazioni elementari nei calcolatori di una volta

Cella di Situazione iniziale:

8 bit memoria 16

Ho 2 celle di memoria ognuna contenente

8 bit.

La prima ha indirizzo 0000H mentre

l’ultima FFFFH.

La memoria riconosce 16 fili, gli Address

64kb bus, che trasmettono sequenze di zeri e uni.

per

il Il Data bus composto da 8 fili si occupa del

mod. collegamento tra la memoria e la CPU.

8080 Un ulteriore filo chiamato RW consente

alla memoria di conoscere il compito alla

quale deve sopperire sia esso lettura o

scrittura.

F F F F H esadecimale

4 bit 4 bit 4 bit 4 bit

16 bit

Supponiamo sia presente nel calcolatore un programma in grado di trasformare numeri.

All’accensione del pc la Cpu invia alla memoria l’ordine di leggere la prima cella di memoria dove

è collocato il codice operativo della prima istruzione da eseguire. 5

1° ISTRUZIONE:

3A LINGUAGGIO ASSEMBLER

3A = MOV A, 98 (consente di spostare

98 l’indirizzo successivo nel registro di A)

Nella CPU una locazione di memoria

corrisponde ad un REGISTRO. 1° istruzione

REG A =

98 Codice operativo

+

CPU dato

2° ISTRUZIONE:

3A 2B = MOV B, 13

98 Il comando svolge la funzione riportata in

calce per ottenere a livello di CPU questo

2B risultato:

2° istruzione

13 REG A REG B

98 13

CPU 6

3° ISTRUZIONE:

3A ADD A,B

98 È un’unica istruzione fatta di un solo byte che

permette di eseguire la somma e

2B ottenere il risultato in A.

13 REG A

3F AB

N.B. Si possono avere al massimo 256 informazioni diverse.

4° ISTRUZIONE:

4A MOV 1234, A

12 Il contenuto di A viene spostato nella

locazione di memoria con indirizzo 1234.

34 Quando viene dichiarata una variabile le si

associa un’allocazione di memoria.

Viene letta l’istruzione 4A ma per poter

essere completata è necessario ricavare

l’indirizzo dai due byte successivi; è per

questo che il risultato sarà collocato nella

cella 1234H.

AB 1234H

Operazioni 7

Shift (SHL) Sposta tutto di una posizione a destra o a sinistra. Equivale a moltiplicare per due.

Jump(JNZ) a seconda del valore in entrata, salta da una parte all’altra della memoria.

Chi fabbrica microprocessori deve creare un codice che soddisfi le varie esigenze a cui deve

sopperire.

Esistono due classi di microprocessori:

CISC (complex instruction set computer)

RISC (reduced instruction set computer)

La famiglia più usata è la CISC, ma l’ideale sarebbe un compromesso tra le due.

I coprocessori matematici sono circuiti integrati aventi una struttura tabellare multidimensionale in

cui entrano “n” variabili ed escono “m” risultati. Essi vengono principalmente utilizzati per fare

calcoli come somme e moltiplicazioni e consentono di ottenere il risultato in un unico passaggio. In

genere sono collegati alla CPU tramite un BUS poiché ad essi manca la funzione di passare le

informazioni in memoria.

La velocità del collegamento CPU-MEMORIA dipende dalle dimensioni dell’intero sistema.

Il tempo di accesso alla memoria è di 10-100 nano secondi.

Il problema più rilevante infatti, è quello dello spazio.

Elementi come la CPU o i microprocessori stessi, essendo circuiti integrati, devono mantenere

dimensioni molto ridotte. L’aumento di queste comporta un possibile incremento dei difetti

strutturali e quindi il relativo mal funzionamento dei vari componenti.

Dagli anni ‘80 in poi inizia lo studio strutture che ottimizzano il funzionamento degli accessori

come scheda video, scheda audio ecc, ma lo schema di base del calcolatore rimane invariato. 8

IL SISTEMA OPERATIVO

APPLICATIVI

SISTEMA OPERATIVO

BIOS

HARDWAREEE

Il sistema operativo è un software che gestisce direttamente l’hardware della macchina. Esso è

formato da applicativi (es word, campo minato) che consentono di comunicare direttamente con il

computer, e che sono studiati per un particolare sistema operativo (es word di windows su linux non

viaggia). Il BIOS invece è comune a tutti i sistemi operativi. 9

Facciamo un esempio: un evento è qualcosa di asincrono che non dipende dal programma.

Consideriamo l’evento “muovo il mouse”:

CPU MEM

INT Il collegamento INT ha un piedino che fa arrivare

alla CPU il segnale “zero”. Questo significa che è

I/O successo qualcosa. La Cpu quindi legge l’indirizzo

che arriva da I/O e lo manda in memoria dove c’è la

la routine per servire l’I/O.

mouse

Nella CPU sono presenti un set di registri:

Program Counter

Stack Pointer 0000H 00001

400

RET

Parametri di ritorno

FFFFH

SP

(stack pointer)

FFF…

400 10

Lo stack pointer è un indirizzo che continua a spostarsi in avanti e indietro tenendo conto di

dove deve tornare; consente di annidare le informazioni (funzionamento similare a quello

degli IF annidati) Svolgo l’operazione

Si verifica un evento

Salvo il lavoro

Svolgo l’operazione dettata dall’evento

Con Stack pointer torno al lavoro iniziale

Il primo S.O. si chiamava DOS (Dis Operative System 1985-1995), successivamente è nato

windows. Non esisteva il mouse, si usava sola la tastiera e i caratteri alfanumerici. Quando il

calcolatore veniva acceso, sul monitor appariva la lettera “ C:\>” che indicava l’hard disk, la “A”

era il floppy disk.

C:\DATA\> questa scritta indicava che ci si trovava all’interno della cartella DATA.

I comandi e le istruzioni erano poche e semplici ad esempio:

COPY PIPPO-PLUTO era l’istruzione per copiare

… .exe oppure … .com erano i nomi del programma e venivano usati per chiamarlo e usarlo.

Con DOS poteva girare un solo programma alla volta e quando ciò avveniva non si poteva fare

nessun’ altra operazione. I programmi venivano lanciati con un’istruzione di salto e se entravano in

un ciclo infinito non si poteva più arrestarli e diventava necessario chiudere il computer.

La memoria era poca quindi non esistevano schede grafiche.

Windows 3.11 che girava sotto Dos, si prendeva carico di lanciare i programmi successivi, ed era

dotato di interfaccia grafica. 11

Windows 95 comunicava direttamente con il BIOS; era un sistema operativo multitasking dove

potevano girare più task, ovvero più programmi, e multiutente, cioè permetteva a più utenti di

usufruire del programma. Questo fu il primo esempio di time sharing, cioè ogni task è alternato

velocemente agli altri, ad esempio per un certo intervallo di tempo gira windows, poi Internet poi un

altro programma. Questa modalità è utilizzata ancora oggi; il funzionamento avviene a scatti, ma

-6

l’utente non lo percepisce in quanto gli intervalli di tempo sono dell’ordine di 10 secondi. Il

software gestisce la divisione dei tempi e il sistema operativo lo scheduler, tramite una tabella nella

quale si tiene conto di tutti i programmi che devono girare, l’interapp interrompe un programma in

esecuzione, salva il contesto come una fotografia degli indirizzi e del contenuto della CPU, e parte

il programma successivo. Questo appena descritto, è uno dei compiti principali del sistema

operativo multitasking, che permette di risparmiare tempo in quanto la CPU è molto più rapida

rispetto a tutto il resto.

Con la barra degli strumenti del desktop è possibile accedere alla finestra dei processi del task

manager, dove sono elencati tutti i programmi che stanno girando in modo alternato e che hanno

definita una parte di memoria, parti di codice eseguito ognuno nel proprio contesto.

Socket è una routine che permette ai programmi di dialogare tra di loro.

I Thread sono sottoprocessi che condividono la stessa parte di memoria, ad esempio con Visual

Basic è possibile creare due finestre tali per cui quello che scrivo su una appare anche nell’altra. I

thread vengono generati da un processo e muoiono con esso. La gestione dei Thread avviene con un

meccanismo simile a un semaforo, e può essere:

cooperativa: si gestiscono tra di loro

preventiva: stabilita dall’utente a priori

APPROFONDIMENTO

In informatica, un sistema operativo (abbreviato in SO, o all'inglese OS, operating system) è il

programma responsabile del diretto controllo e gestione dell'hardware che costituisce un computer e

delle operazioni di base. Si occupa anche di gestire gli accessi degli utenti e dei processi che

vengono eseguiti. Il sistema operativo è l'interfaccia uomo-macchina

Il sistema operativo si compone di un sistema vero e proprio detto kernel e da una serie di

programmi di sistema. 12

Un generico sistema operativo moderno si compone di alcune parti ben definite: un gestore di file

system che si occupa di esaudire le richieste di accesso alle memorie di massa, un gestore di

memoria virtuale che alloca pagine di memoria a richiesta e si assicura che questa sia presente nella

memoria fisica al momento giusto, uno scheduler che assicura ai vari processi in esecuzione una

ben definita quantità di tempo di elaborazione, uno spooler che accumula i dati da stampare e li

stampa in successione, una interfaccia utente (shell o GUI) che permette agli esseri umani di

interagire con la macchina ed un kernel, fulcro del sistema, che gestisce il tutto. A seconda dei casi,

un particolare sistema operativo può avere tutti questi componenti o solo alcuni. Vediamo ora una

serie di sistemi operativi possibili, dal più semplice al più complesso.

Praticamente il solo kernel, con una minima interfaccia interattiva per impartire i comandi. Permette

di scrivere in memoria il programma da eseguire e di lanciarlo, non ha nessuna altra caratteristica. È

semplicissimo (per un computer), spesso i suoi comandi sono semplici chiamate dirette a subroutine

in linguaggio macchina, è stato anche il primo tipo di sistema operativo mai implementato su un

computer. Controlla i processi base del sistema

Il secondo passo verso una migliore gestione del computer si ha con lo sviluppo di una interfaccia

utente separata dal kernel, un interprete di comandi che funga anche da interfaccia utente, da shell.

Questa shell primitiva di solito funge anche da interprete per un linguaggio di programmazione: a

seconda delle scelte dei progettisti del software può essere un vero linguaggio oppure un più

semplice linguaggio di scripting con cui creare comandi batch.

Un computer diventa molto più utile se dotato di una memoria di massa: per gestirla serve un

gestore di file system, cioè un insieme di funzioni che permetta di organizzare i dati sulla superficie

dei mezzi di memorizzazione secondo una struttura ben precisa. I sistemi operativi che risiedono su

disco (inizialmente floppy poi hard disk e altre piu' evolute unita' di massa) capaci di gestire un file

system sono detti genericamente Disk Operating Systems, cioè DOS appunto. L'esemplare più

famoso è senz'altro il MS-DOS della Microsoft. Esiste anche una versione libera del dos,

denominata: FreeDOS.

Alcuni programmi non hanno sempre realmente bisogno della CPU: a volte, invece di eseguire

istruzioni stanno aspettando che arrivino dei dati da un file, o che l'utente prema un tasto alla

tastiera. Quindi si può, in linea di principio, usare questi tempi "morti" per far girare un altro

programma. Questa idea, sorta fin dai primi anni 50, si concretizzò nei sistemi operativi

multitasking, cioè dotati di uno scheduler che manda in esecuzione più processi (esecuzioni di

programmi) contemporaneamente, assegnando a turno la CPU ad ognuno e sospendendo

13

l'esecuzione dei programmi in attesa di un evento esterno (lettura sulla/dalla memoria di massa,

stampa, input utente ecc.) finché questo non si verifica.

Dovendo ospitare in memoria centrale più programmi nello stesso tempo, i sistemi multitask hanno

bisogno di più memoria rispetto a quelli monotask: perciò questo tipo di sistemi operativi è quasi

sempre dotato di un gestore di memoria virtuale.

Se un computer può far girare più programmi contemporaneamente, allora può anche accettare

comandi da più utenti contemporaneamente: in effetti dal multitasking alla multiutenza il passo è

molto breve tecnicamente, ma fa sorgere una serie di nuovi problemi dal punto di vista della

sicurezza del sistema: come distinguere i vari utenti tra loro, come accertarsi che nessun utente

possa causare danni agli altri o alla macchina che sta usando ecc. Al giorno d'oggi, i diversi sistemi

operativi, come ad esempio il nuovo Windows CE 6 [1], sono progettati in modo che questo tipo di

operazioni avvengano nel più breve tempo possibile, valorizzando, ad esempio, software come i

middleware, i driver, le interfaccia utente, e molti altri.

Questi problemi si risolvono assegnando un account univoco per ogni utente, assegnando un

proprietario ai file ed ai programmi e gestendo un sistema di permessi per l'accesso ad essi, e

prevedendo una gerarchia di utenti (cioè di account) per cui il sistema rifiuterà tutti i comandi

potenzialmente "pericolosi" e li accetterà soltanto se impartiti da un utente in cima alla gerarchia,

che è l'amministratore del sistema (generalmente l'account root nei sistemi Unix, Administrator

nei sistemi Windows).

Un sistema operativo real-time è un sistema operativo utilizzato tipicamente in un ambito

industriale o comunque dove sia necessario ottenere una risposta dal sistema in un tempo massimo

prefissato. I sistemi operativi realtime si possono dividere in due categorie : hard e soft, a seconda

dei tempi di risposta. 14

CPU / MICROPROCESSORI

La CPU è la parte più significativa del calcolatore.

Al suo interno ci sono svariate “scatolette” che svolgono le princip

Anteprima
Vedrai una selezione di 12 pagine su 54
Appunti di Informatica (no programmazione) Pag. 1 Appunti di Informatica (no programmazione) Pag. 2
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 6
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 11
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 16
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 21
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 26
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 31
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 36
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 41
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 46
Anteprima di 12 pagg. su 54.
Scarica il documento per vederlo tutto.
Appunti di Informatica (no programmazione) Pag. 51
1 su 54
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 alessio.bruzzone.5 di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica 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 Genova o del prof Giordano Alberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community