Riassunto Introduzione all\'informatica PDF

Title Riassunto Introduzione all\'informatica
Course Informatica
Institution Università degli Studi di Torino
Pages 38
File Size 335.4 KB
File Type PDF
Total Downloads 74
Total Views 134

Summary

Download Riassunto Introduzione all'informatica PDF


Description

INTRODUZIONE ALL’INFORMATICA INDICE CAP. 2 - LA RAPPRESENTAZIONE DELLE INFORMAZIONI 2.1 LA CODIFICA DEI CARATTERI Il codice ASCII Codifiche universali 2.2 LA CODIFICA DEI NUMERI Rappresentazione binaria Rappresentazione di numeri negativi Rappresentazione floating point (con virgola mobile) 2.3 LA CODIFICA DELLE IMMAGINI Compressione delle informazioni Formati di codifica Immagini in movimento 2.4 LA CODIFICA DEI SUONI Formati di codifica g2.5 LA STRUTTURA LOGICA DEI FILE File ad accesso sequenziale File ad accesso diretto Accesso con chiave Strategie di ricerca CAP. 3 - ARCHITETTURA HARDWARE DEGLI OPERATORI 3.1 LA MEMORIA PRINCIPALE 3.2 IL PROCESSORE Unità di controllo I registri L’unità Aritmetico-Logica Esecuzione delle istruzioni in linguaggio macchina Lettura e scrittura in memoria Un semplice esempio di esecuzione di un programma La memoria cache Tipi di processori 3.3 LA MEMORIA SECONDARIA Dischi magnetici Dischi ottici Memory card Nastri magnetici 3.4 DISPOSITIVI DI INPUT/OUTPUT Interfacce di un calcolatore Dispositivi di input/output Tastiera Video e display Dispositivi di puntamento su video

Stampanti Altri dispositivi di input/output CAP. 4 - IL SOFTWARE 4.1 IL SOFTWARE DI BASE 4.2 FUNZIONI DEL SOFTWARE DI BASE CAP. 5 - IL SISTEMA OPERATIVO 5.1 FUNZIONAMENTO DEL SISTEMA OPERATIVO 5.2 AVVIAMENTO DELL’ELABORATORE 5.3 GESTIONE DEL PROCESSORE E DEI PROCESSI Gestione dei processi Cambio di contesto Politiche di gestione (scheduling del processore) Coordinamento e sincronizzazione 5.4 GESTIONE DELLA MEMORIA PRINCIPALE Gestione della memoria reale Sistemi a partizione multipla con allocazione contigua Allocazione non contigua: segmentazione e paginazione Gestione della memoria virtuale Swapping Programmi caricati a pezzi: demand paging 5.5 GESTIONE DELLA MEMORIA SECONDARIA: IL FILE SYSTEM Organizzazione logica dei file Organizzazione fisica dei file 5.6 GESTIONE DELLE PERIFERICHE (GESTIONE DELL’INPUT/OUTPUT) 5.7 LINGUAGGIO DI COMANDI PER L’INTERAZIONE CON L’UTENTE CAP. 6 - RETI DI CALCOLATORI: INTRODUZIONE 6.1 ORGANIZZAZIONE FISICA DELLE RETI Componenti hardware Topologie di reti di comunicazione 6.2 PROTOCOLLI DI COMUNICAZIONE 6.3 ALCUNE SCELTE NELLA COMUNICAZIONE DI RETE Trasmissione digitale e analogica Trasmissione seriale e parallela Trasmissione su linee dedicate e commutate Commutazione di circuito e di pacchetto Verifica di corretta ricezione Identificazione (indirizzamento) dei nodi Strategie di instradamento dei messaggi Accesso al canale, conflitti di comunicazione e loro risoluzione 6.4 MODELLI DI INTERAZIONE DELLE RETI 6.5 TIPI DI RETI CAP. 7 - RETI LOCALI E SISTEMI OPERATIVI DISTRIBUITI

7.1 OBIETTIVI DI UNA RETE LOCALE 7.2 FUNZIONAMENTO DI UNA RETE LOCALE 7.3 SISTEMI OPERATIVI DI RETE (DISTRIBUITI) Naming Condivisione di risorse File system distribuito Tolleranza ai guasti 7.4 RETI LOCALI WIRELESS CAP. 8 - RETI GEOGRAFICHE E INTERNET 8.1 STRUTTURA DI UNA INTERNET 8.2 I PROTOCOLLI DELLA RETE INTERNET Il protocollo IP - Internet Protocolo Il protocollo TCP - Transmission Control Protocol 8.3 PROTOCOLLI APPLICATIVI Indirizzamento logico: il protocollo DNS - Domain Name System Posta elettronica: il protocollo SMTP - Simple Mail Transfer Protocol Trasferimento di dati: il protocollo FTP - File Transfer Protocol Collegamento remoto: il protocollo Telnet Il Web e il protocollo HTTP - HyperText Transfer Protocol 8.4 IL WEB Costruzione di pagine web: il linguaggio HTML 8.5 SICUREZZA Cenni di crittografia Firme elettroniche e certificazione Protocolli sicuri Internet e aziende Il web semantico Le ricadute sociali dell’informatica sulla società CAP. 9 - SISTEMI OPERATIVI ANALISI DELLE PRINCIPALI FAMIGLIE 9.1 LA FAMIGLIA WINDOWS Windows 2000: elementi di base Uno sguardo a Windows XP Windows 7 La virtualizzazione delle applicazioni L’ambiente .NET 9.2 UNIX 9.3 LINUX Il software libero Le distribuzioni di Linux Linux: elementi di base 9.4 MAC OS CAP. 10 - SOFTWARE E PROGRAMMAZIONE 10.1 - LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELO

Le componenti della definizione di un linguaggio Caratteristiche di un linguaggio di programmazione Sintassi Semantica Definizione di un linguaggio di programmazione Compilazione Interpretazione 10.2 ALGORITMI E PROGRAMMI I diagrammi di flusso Dai diagrammi di flusso ai programmi 10.3 PROGETTAZIONE DEL SOFTWARE 10.4 I LINGUAGGI DI PROGRAMMAZIONE Concetti fondamentali di programmazione Tipologie di linguaggi CAP. 11 - IL SOFTWARE APPLICATIVO 11.1 ELABORATORI DI TESTI 11.2 GESTIONE DI BASI DI DATI 11.3 FOGLI ELETTRONICI 11.4 ELABORAZIONE DI IMMAGINI E SUONI 11.5 COSTRUZIONE DI PAGINE WEB Il linguaggio HTML e le sue evoluzioni Limiti dell’HTML I fogli di stile CSS XML e trasformazioni XSLT XHTML 11.6 GENERAZIONE DINAMICA DI PAGINE WEB 11.7 PROGRAMMI PER LA REALIZZAZIONE DI SITI WEB

CAP. 2 - LA RAPPRESENTAZIONE DELLE INFORMAZIONI Un linguaggio può essere visto come un insieme di convenzioni. Per rappresentare le informazioni negli elaboratori è conveniente una rappresentazione binaria (o digitale) formata da due simboli: 0 e 1. I due simboli corrispondono a: • i due diversi stati di polarizzazzione di una sostanza magnetica; • i due stati di carica elettrica di una sostanza; • passaggio o non passaggio di corrente attraverso un cavo conduttore; • passaggio o non passaggio di luce attraverso un cavo ottico. L’entità minima di informazione è il bit. Con un bit possiamo rappresentare 2 informazioni, per rappresentarne di più dovremo usare sequenze di bit (es. con 2 bit → 4 info = 22).

Una sequenza particolare è il byte = 8 bit → 256 info = 28 Far corrispondere un’informazione a una sequenza di cifre binarie è detto codifica ed è convenzionale. Per rappresentare un alfabeto con M simboli occorre scegliere un numero di bit N in modo che 2N > M. 2.1 LA CODIFICA DEI CARATTERI Il codice ASCII Codice ASCII standard per rappresentare alfabeto e simboli. Necessari 7 bit, 2 7 = 128 info, ma quasi sempre se ne usano 8, quindi 1 byte, per l’ASCII esteso (che rappresenta anche simboli speciali). Codifiche universali Con ASCII si possono rappresentare solo 256 info, non bastano per tutti gli alfabeti esistenti. Nasce quindi UNICODE che usa 16 bit, 216 = 65.536 info. 2.2 LA CODIFICA DEI NUMERI ASCII non è usato per la codifica dei numeri perchè sprecherebbe spazio, ma si usa un sistema di notazione posizionale. Rappresentazione binaria Usa la base 2 al posto della base 10. Con N cifre binarie possiamo rappresentare i numeri da 0 a 2 N-1. Questo sarà il numero massimo rappresentabile. Operazioni che eccederanno tale numero genereranno errori di overflow. Gli elaboratori moderni utilizzano 4 byte = 32 bit per la rappresentazione dei numeri. Conversione da binario a decimale: il numerale binario 110 = 0*20 + 1*21 + 1*22 = 0 + 2 + 4 = 6. Conversioe da decimale a binario: il numerale decimale 21 = 10101 21/2 = 10 resto 1 10/2 = 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 Addizzione binaria:

0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1

Moltiplicazione binaria:

0*0=0 0*1=0 1*0=0 1*1=1

Rappresentazione di numeri negativi Si può destinare il primo bit alla rappresentazione del segno (0 = +, 1 = -), ma in questo caso avremo due

volte lo 0, una volta +0 e una volta -0. Rappresentazione floating point (con virgola mobile) Si può ipotizzare un numero positivo, negativo o con la virgola come una moltiplicazione dell’intero (mantissa) per una potenza di 10 (con esponente positivo o negativo). Stabilito il numero di bit totali, diviso tra segno (di mantissa ed esponente), mantissa ed esponente con il sistema floating point si può rappresentare qualsiasi numero sacrificandone in parte la precisione. Si potrà in ogni caso rappresentare una quantità finita di numeri. 2.3 LA CODIFICA DELLE IMMAGINI Per rappresentare digitalmente un’immagine bisogna suddividerla con una griglia. Ogni quadratino sarà un pixel. Con due soli colori per esempio avremo 0 = bianco e 1 = nero per ogni pixel a prevalenza bianca o nera. Scrivendo i valori ottenuti procedendo per ogni riga da sinistra verso destra e dal basso verso l’alto fino a finire le righe, avremo la rappresentazione digitale dell’immagine. Visto che consideriamo la prevalenza del colore, sarà un’approssimazione. La risoluzione è la precisione con cui suddividiamo l’immagine in pixel. Per le scale di grigi useremo più di un bit per ogni pixel. Per i colori sono importanti due codifice: CMY e RGB (che usano 1 byte per ognuno dei 3 colori primari). La codifica bitmap memorizza ogni singolo pixel e occupa molto: dimensione = n. pixel * n. bit/pixel. Compressione delle informazioni Varie tecniche: • non ripetere pixel uguali ma usare un moltiplicatore per indicare quante volte quel pixel si ripete; • memorizzare un pixel ogni tot e ricostruire quelli mancanti per continuità, come media di quelli adiacenti. • raggruppare pixel e memorizzare solo i “pixel grandi” come media dei singoli pixel. Formati di codifica Standard di compressione: • loseless; • lossy. Formati di codifica e decodifica: • BMP (bitmap): non compresso e loseless. Prevede un header che contiene le informazioni per una corretta decodifica; • GIF (di tipo bitmap): loseless. Prevede un header e una palette dei colori. Supporta al massimo 256 colori. Si possono creare immagini interlacciate ovvero gif animate; • JPEG: compresso e lossy. Prevede diversi livelli di compressione e colori a 24 o 32 bit.

Immagini in movimento Per ogni fotogramma si possono usare le tecniche di compressione delle immagini statiche e intuitivamente le stesse tecniche per memorizzare la successione dei singoli fotogrammi. Si possono memorizzare solo le parti che cambiano tra fotogrammi vicini o un fotogramma ogni tot e ricostruire quello mancante per continuità. Formati attuali sono AVI, MOV, MPEG, DIVX. Alcuni formati per essere

letti necessitano di un codec (es. mpeg o divx) per la codifica e decofica. 2.4 LA CODIFICA DEI SUONI Il suono analogico è un’onda sonora. Per digitalizzarlo si effettano campionamenti su tale onda a intervalli di tempo costanti. La frequenza di campionamento si misura in hertz (hz = campionamenti per secondo). Per ogni campione si utilizzano un certo numero di bit. Formati di codifica Wave occupa molto spazio, MP3 comprime wave con un rapporto di circa 12:1 mantenendo la qualità. 2.5 LA STRUTTURA LOGICA DEI FILE Per organizzare le informazioni si ricorre al concetto di file (archivio), composto di campi e record. Campo: insieme di byte che serve per codificare una singola informazione. Record: insieme di campi correlati che costituiscono un’informazione complessa. File: sequenza di record. Entità fondamentale per l’organizzazione logica delle informazioni. Due tipi di file: • file con record a lunghezza costante: • ogni record contiene gli stessi campi • stesso numero di bit per ogni campo; • gli svantaggi sono la difficoltà di stabilire la lunghezza del campo (che deve contenere l’info più grande) e lo spreco di spazio; • file con record a lunghezza variabile: • la dimensione dei campi varia a seconda della lunghezza delle info; • abbiamo bisogno di caratteri separatori per dividere i vari campi. File ad accesso sequenziale Accesso sequenziale è applicabile a tutti i file: si legge il file dall’inizio finchè non si trova l’info cercata. E’ lento e inefficiente soprattutto per cercare record al fondo del file. File ad accesso diretto Per effettuare l’accesso diretto devo conoscere il punto in cui accedere, ovvero l’indirizzo (il numero del byte che corrisponde alla posizione ricercata). La velocità di accesso è la stessa per ogni posizione. Non è applicabile ai file con record a lunghezza variabile perchè non è possibile ricavare l’indirizzo. Accesso con chiave Legato alla conoscenza dell’indirizzo dei record stessi. Si stabilisce un campo chiave presente in tutti i record e con valore univoco, quindi si genera una tabella delle chiavi che contiene il campo chiave e il suo indirizzo. Si accede perciò in due step, con due accessi diretti, prima alla tabella delle chiavi da cui ricavo l’indirizzo, quindi all’informazione. Lo svantaggio è il dover memorizzare la tabella delle chiavi che occupa spazio. Se un solo campo non basta come chiave, se ne possono scegliere 2 o più. Strategie di ricerca • Ricerca binaria:

• •



occorre ordinare la tabella delle chiavi; entro a metà tabella, se è il valore ricercato sono a posto, altrimenti confronto se è maggiore o minore a quello ricercato e restringo la ricerca ad una sola metà della tabella. Ad ogni passo escludo metà tabella; • il numero di passi necessario sarà in media sarà quindi logchiavi; funzione di hash (tempo di accesso simile a quello diretto): • si memorizzano le chiavi assegnandogli un valore ricavato da una funzione (esempio dividendo per il numero di righe della tabella, supponiamo 100); • la chiave sarà memorizzata alla riga corrispondente al risultato della funzione (esempio chiave 534 sarà memorizzata alla riga 34); • possono generarsi conflitti se applicando la funzione a due chiavi otteniamo lo stesso risultato (esempio chiave 534 e chiave 234). In questo caso la seconda chiave sarà memorizzata nella riga successiva e allo stesso modo si esegue la ricerca (se non la trovo dove prevedo, vado alla riga successiva a cercare).

CAP. 3 - ARCHITETTURA HARDWARE DEGLI OPERATORI Ogni elaboratore è racchiuso in un case. All’interno la motherboard ospita vari circuiti, detti chip, collegati tra loro da fili di rame, detti bus. 3.1 LA MEMORIA PRINCIPALE L’Unità centrale del pc è composta da processore e memoria principale o centrale RAM. La memoria centrale permette di ricordare le informazioni durante l’elaborazione. Fisicamente è un oggetto di natura elettronica, e ogni suo componente può trovarsi nei due stati di carica differenti che corrispondono a 0 e 1. Le componenti elementari sono aggregate tra loro a formare le celle, aggregazioni di 8 bit = 1 byte. La memoria sarà quindi una sequenza di celle, ognuna corrispondente ad un indirizzo. Attualmente la memoria principale va dai 2 agli 8 GB nei personal. RAM è l’acronimo di Random Access Memory, ovvero si può effettuare l’accesso in una qualsiasi posizione e il tempo necessario sarà lo stesso. Per accedere occorre conoscere l’indirizzo della cella. L’indirizzo è rappresentato in numero binario. Dal numero di bit utilizzati dipende il numero di celle indirizzabili, questo prende il nome di spazio di indirizzamento: oggi si usano 32bit (si possono indirizzare 4GB di memoria) o più raramente 64bit. Per rappresentare informazioni che possono essere scritte o lette in un’unica operazione sono state definite aggregazioni di byte (es. 2 o 4 byte), le parole di memoria. Il tempo di accesso che intercorre dal momento in cui il processore specifica l’indirizzo della cella su cui leggere o scrivere e il momento in cui l’operazione è terminata è nell’ordine dei nanosecondi (dai 40 ai 60 nanosecondi per le DRAM, ram dinamiche, 2 nanosecondi per le SRAM, ram statiche usate nelle cache). Essendo di tipo elettronico, la RAM è volatile e perde le informazioni quando non è alimentata elettricamente. Servirà quindi una memoria in grado di mantenere permanentemente le informazioni. 3.2 IL PROCESSORE CPU, central processor unit, è la componente della UC che elabora le informazioni contenute nella ram. L’elaborazione avviene sulla base di sequenze di istruzioni dette programmi. Ogni processore ha un insieme di istruzioni dette istruzioni macchina, operazioni elementari che è in grado di svolgere. Il linguaggio in cui si scrivono queste operazioni è detto linguaggio macchina.

Perchè il processori elabori, istruzioni e dati devono essere caricati in ram. Le varie componenti del processore sono collegate tramite dei bus, di vario tipo (di ampiezza 32 o 64 bit e velocità di 800MHz): • bus dati; • bus indirizzi; • bus di controllo. Unità di controllo L’unità di controllo, UC, coordina le diverse attività svolte dal processore. L’attività è divisa in cicli, ad ogni ciclo corrisponde l’esecuzione di una istruzione in linguaggio macchina. UC ad ogni ciclo svolge e controlla diverse attività (ciclo fetch-execute). Durante ogni ciclo: • si legge dalla ram la prossima istruzione da eseguire; • si esegue l’istruzione. La frequenza dei cicli è scandita dal clock che genera impulsi a distanza di tempo costante. Le frequenze sono nell’ordine dei 1-4 GHz (1-4 miliardi di impulsi al secondo). I registri Unità di memoria estremamente veloci, di dimensioni di pochi byte, usati per mantenere le informazioni di necessità immediata per il processore. Ne abbiamo di diversi tipi: • registri speciali usati dalla UC, ad es. il Program Counter, il Registro Istruzioni o il Registro di Stato; • i registri generali o aritmetici usati per contenere i risultati parziali durante l’elaborazione. Il program counter, PC, contiene l’indirizzo della prossima istruzione da eseguire (le dimensioni del registro devono corrispondere a quella dell’indirizzo di memoria). Visto che solitamente le istruzioni di un programma sono memorizzate in celle successive, durante ciclo di fetch-execute, ad ogni ciclo di clock, il processore: • legge dalla ram l’istruzione che si trova all’indirizzo specificato dal registro PC; • modifica il valore di PC aumentandolo di 1; • esegue l’istruzione letta dalla memoria. Il registro istruzioni, RI, contiene l’istruzione attualmente in esecuzione. Ad ogni ciclo di clock l’istruzione letta dalla ram viene scritta nel RI. Il registro di stato, PS, contiene informazioni sullo stato di esecuzione del processore e può segnalare eventuali errori. L’unità Aritmetico-Logica ALU è costituita da circuiti in grado di eseguire operazioni aritmetiche e logiche. Legge i dati dai registri generali, esegue le operazioni e scrive i risultati in un altro registro generale. Ci sono circuiti in grado di eseguire la somma binaria, altri in grado di confrontare due numeri. Esecuzione delle istruzioni in linguaggio macchina Ogni istruzione ha:

• nome; • argomenti (dati su cui l’istruzione deve operare). Particolari istruzioni sono quelle di salto (JUMP) che permettono di specificare la prossima istruzione da eseguire, ad esempio se si verifica o meno una data condizione. Lettura e scrittura in memoria E’ necessario che processore e ram possano comunicare. La comunicazione avviene attraverso questi 3 registri: • il Registro Indirizzi Memoria, RIM, mediante il quale il processore specifica l’indirizzo della cella su cui vuole operare; • il Registro Dati Memoria, RDM, che contiene l’informazione letta dalla memoria o quella da scrivere in memoria; • il Registro di Controllo, RC, mediante il quale il processore specifica l’operazione che deve essere eseguita. Un semplice esempio di esecuzione di un programma ... 1000 LOAD 3568 R1 Si legge il valore contenuto nella cella 3568 e lo si carica nel registro R1 1001 ADD R1 R2 Si somma il contenuto di R1 e R2 e si carica il risultato in R1 1002 STORE R1 3568 Si scrive in memoria nella cella 3568 il valore contenuto in R1 1003 JUMP 1000 Si ritorna all’istruzione con indirizzo 1000 (ripetizione di sequenza di istruzioni) ... 3568 25 La memoria cache Livello di memoria intermedio tra i registri e la ram, usato per mantenere dati che il processore usa molto frequentemente ma che non possono essere mantenuti nei registri. Ha dimensioni abbastanza ridotte, nell’ordine dei MB, ma è molto più veloce della ram. Sfrutta un meccanismo di località (locality of reference): se il processore ha letto un dato, quasi sempre avrà bisogno di quello successivo, quindi durante il tempo di elaborazione lo si carica in cache, velocizzando il caricamento della prossima istruzione che non dovrà più essere cercata in ram. Tipi di processori Le due architetture principali sono: • CISC (Complete Instruction Set Computers) • vantaggi: linguaggio macchina non troppo complicato e più vicino ai linguaggi al altro livello usati dagli utenti; • svantaggi: istruzione macchina impiega più tempo ad essere decodificata e completata; • RISC (Reduced Instruction Set Computers) • vantaggi: elaboratori più potenti e veloci (usato nei processori di oggi). I processori odierni possono lavorare in parallello, ovvero processare più istruzioni contemp...


Similar Free PDFs