Informatica.pdf
Document Details
Uploaded by VersatileYeti
Unipa
Tags
Full Transcript
Rappresentazione delle informazioni Cosa è l’informatica? L’elaborazione automatica di informazioni Con informatica si intende l’elaborazione automatica delle informazioni, ossia qualsiasi attività connessa alla gestione di un informazione, come recupero, visualizzazione, modifica… con l’ausilio di...
Rappresentazione delle informazioni Cosa è l’informatica? L’elaborazione automatica di informazioni Con informatica si intende l’elaborazione automatica delle informazioni, ossia qualsiasi attività connessa alla gestione di un informazione, come recupero, visualizzazione, modifica… con l’ausilio di un calcolatore. L’informazione è, invece, un’interpretazione che diamo a un dato e che, se opportunamente elaborata, diventa una conoscenza. Essa è trasmessa da una sorgente, mediante un supporto, a un destinatario. Informare è dare forma a qualcosa eliminando una incertezza, che deve essere presente. Così, l’informazione è un insieme di dati + la loro interpretazione, dove il dato è l’elemento base dell’informazione. Essa, elaborata e relazionata con altre fonti, diventa conoscenza e si usa per creare esperienza. Un insieme di informazioni diventano base di conoscenza. I dati sono simboli, elementi primari, come “1”, “2”, “A”… Rappresentano nella nostra mente un fatto del mondo reale senza relazione con altre cose. Il dato può esistere in qualunque forma, e sono prodotti da sensazione e misurazione. In tal senso, l’informazione è il dato elaborato per essere utilizzabile, perché risiede in un contesto relazionale e ha un significato, che può essere utile o meno per rispondere a domande, come “chi”, “cosa” ecc. L’informazione incorpora gli elementi per la comprensione delle eventuali relazioni causali, di appartenenza, di equivalenza… L’informazione elaborata cognitivamente, trasformata in struttura concettuale e diventata manipolabile e utilizzabile in altre attività cognitive, indipendentemente dal contesto di apprendimento, è una conoscenza. Essa si usa per determinare il significato di una situazione e come gestirla. È una proprietà individuale e non è statica. I dati sono fatti elementari che devono essere interpretati per arricchire conoscenza, si pensi a “Marco” e “4361”. L’informazione sono i dati interpretati mediante delle domande implicite. Supporto ed informazione Il supporto esibisce e trasmette l’info, la quale può essere contenuta su più supporti, come uno stesso supporto può contenere più tipi di informazioni. Non tutti i supporti sono adatti a trasportare tutte le informazioni, e il numero di informazioni supportate dipende dalle configurazioni del supporto. Il rapporto tra supporto e informazione è complesso, e comporta due azioni: la codifica o scrittura dell’informazione, in genere operata dal mittente, e la decodifica, in genere operata dal destinatario. Scrivere un’informazione significa darle una forma concreta, leggere un’informazione significa tradurne la forma concreta in una forma astratta comprensibile. È il modello postale della comunicazione. Ogni sistema di codifica e decodifica comporta 3 aspetti: 1) un alfabeto di simboli accettati, un vocabolario di configurazioni accettate e una semantica, cioè le convenzioni di informazione associate all’informazione. Codifica ed informazione nel computer Elaborazione “automatica” delle informazioni L’obiettivo è la costruzione di una macchina che possa elaborare le informazioni automaticamente, e per farlo servono due cose 1) un’unità di misura dell’informazione; 2) una rappresentazione fisica dell’unità perché si possa costruire una macchina in grado di memorizzare, elaborare, trasmettere l’informazione. Il tipo di codifica si definisce in base al numero di configurazioni degli elementi dell’alfabeto di codifica. Una codifica è in BASE N se N è il numero dei simboli: la codifica decimale ha 10 simboli, è a BASE 10, quella alfabetica è a BASE 21. Tutti i numeri e parole sono combinazioni dei simboli e formano il vocabolario. La codifica binaria è quella a base 2, che usa solo i simboli 0 e 1, e tutte le informazioni che il computer elabora sono codificate binariamente. Shannon ha definito matematicamente l’unità di misura delle quantità di informazione. La minima quantità di informazione possibile è la scelta tra due alternative. Il nome di essa è Bit, che rappresenta 1 di 2 valori possibili (0 e 1), e il valore massimo che 1 bit può rappresentare è 1. Il bit è una quantità fisicamente modificabile in un dispositivo elettronico, indica la presenza di segnale elettro-magnetico. Le informazioni che il calcolatore gestisce sono più di 2, quindi usiamo più sequenze di bit, in generale 8 bit, cioè 1 byte (B), che si può rappresentare con 28 presentando 256 valori distinti. Il byte ha dei multipli, indicati coi prefissi K, M, G, T. Informazioni complesse Con 1 bit rappresentiamo 2 diverse informazioni: sì/no, on/off, 0/1. È mettendo assieme più bit che possiamo rappresentare più informazioni. Le informazioni complesse si memorizzano come sequenze di bit. Con N bit, ognuno dei quali può assumere 2 VALORI, possiamo rappresentare 2N informazioni, cioè tutte le possibili combinazioni di 0 e 1 su N posizioni. Per codificare i nomi delle stagioni bastano 2 bit, perché basta risolvere 2x=4. N di bit -> 2N di Bit=N di info Per rappresentare un numero dispari di informazioni occorre selezionare un numero di bit che può assumere un numero più grande di configurazioni. Per rappresentarne 57 ci servono 6 bit: 25 fa 32 che è troppo poco. E un gruppo di 6 bit può assumere informazioni così: 000000, 000001, 000010… Appunti di Informatica 1 Sistemi di numerazione posizionali I sistemi di numerazione Un sistema di numerazione è un insieme di simboli e regole che consente di rappresentare infiniti valori numerici, cioè una sequenza di tali simboli. Le regole sono convenzioni per associare alle sequenze i valori numerici: sono dei Codici posizionali, per cui il valore dipende dalla posizione occupata dalle cifre. Un sistema di numerazione è quello decimale, che ha 10 cifre: da 0 a 9, un’altro è quello binario che ne ha 2: 0 e 1. In decimale si conta così: 1, 2, 3, 4… 9, 10…; in binario 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010… In un sistema di numerazione a base n, il numero di valori rappresentabili è uguale a n elevato al numero di elementi nella sequenza. Se ho 1 bit posso rappresentare base 2 elevato al numero di elementi nella sequenza, ciòè 1: 21 quindi solo 2 valori rappresentabili, 0 e 1. Se ho 2 bit posso rappresentare base 2 elevato a 2, cioè 4 valori rappresentabili: 00, 01, 10, 11. La formula generale è N; n elementi; Nn elementi=x. Con “n elementi” bit posso rappresentare 2n elementi valori distinti, da 0 a 2n elementi-1. Conversione tra sistemi di numerazione da binario a decimale Per ogni cifra binaria si segna la posizione, si calcola il peso (base 2 elevato a un esponente pari alla posizione), si moltiplica il peso per la cifra binaria corrispondente e si sommano tutti i pesi moltiplicati per la cifra binaria, considerando solo gli 1 dato che le cifre 0 annullano il contributo del rispettivo peso): facciamo un esempio. Abbiamo 1011. La posizione è indicata in senso decrescente: 3, 2, 1 e 0. Si fanno allora le potenze 23=8; 22=4; 21=2 e 20=1; adesso i risultati di queste potenze si moltiplicano per la cifra corrispondente e si sommano i prodotti: 1*8+0*4+1*2+1*1=11. Così 10112 = 1110. Per passare da decimale a binario, invece, si divide il numero per 2 finché il quoziente fa 0, e si prendono tutti i resti dall’ultimo al primo. Quoziente Resto 28 / 2 0 14 / 2 0 7 /2 1 3 /2 1 1 /2 1 0 28= 11100 Rappresentare i numeri relativi e le frazioni Infine, se abbiamo k bit abbiamo 2k configurazioni possibili, possiamo rappresentare i numeri fra 0 e 2k-1 e abbiamo 2 formule generali : N=sk; N=logsN. Questo per quanto riguarda gli interi positivi. Considerando i numeri relativi, metà delle 2k configurazioni vanno usate per i positivi e l’altra per i negativi, e ci sono due modi di rappresentazione: in modulo e segno e in complemento a 2. In modulo e segno si usa 1 bit per il segno e gli altri per il modulo: -124 è uguale a |1|1111100| cioè 11111100. Per convertire un numero che ha parte intera e parte frazionaria si fanno conversioni separatamente. Per la parte frazionaria si usano potenze negative. Operazioni sui numeri binari Per fare una somma si procede in colonna seguendo ciò: 0+0=0; 0+1=1; 1+0=1; 1+1=10, quindi 0 con riporto 1; 1+1+1=1 con riporto 1. 111 10110+ 11101= 110011 Le sottrazioni si fanno così: 0-0=0; 1-0=1; 1-1=0; 0-1=1 con un prestito di bit. 1100- 1001= 0011 Le moltiplicazioni si fanno seguendo ciò: 0*0=0; 0*1=0; 1*0=0; 1*1=1. Sistema ottale ed esadecimale Appunti di Informatica 2 Per passare da binario a ottale si scompone il numero binario in triple cifre binarie e, a ogni cifra si sostituisce la corrispondente cifra ottale come se fosse decimale. 110111 è composto da 110 e 111; 1102=68, 112=78; 1101112=678 110 -> 22=4; 21=2; 20=1; 1*4+1*2+0*1=6 111 -> 22=4; 21=2; 20=1; 1*4+1*2+1*1=7 Da base 8 a base 2 si fa il procedimento convesso: si converte ogni cifra come se fosse decimale nella sequenza binaria di 3 cifre corrispondente: 7528=111|101|010 7/2 = 3 con resto 1 ; 3/2 = 1 con resto 1; 1/2 fa 0 con resto 1 = 111, e così via. Nel sistema decimale si procede analogamente, utilizzando non gruppi di 3 ma di 4 e, se mancano cifre per raggiungere un multiplo di 4 si aggiungono degli zeri all’inizio. La codificazione di caratteri, immagini, filmati, musica Rappresentazione dei caratteri Il carattere corrisponde a un codice binario. Un repertorio di caratteri è un insieme di caratteri, come A, a, !…, i caratteri sono entità astratte, da non confondersi con il gliph, il modo in cui sono realizzati graficamente: diversi gliph possono corrispondere allo stesso carattere come uno stesso gliph può in realtà corrispondere a diversi caratteri. La codifica dei caratteri avviene mediante un algoritmo che determina come i codici dei caratteri siano rappresentati in sequenze di bit. L’alfabeto italiano ha 21 caratteri, occorre quindi 2x=21, quindi log221=4,4. Servono 5 bit. Il primo standard per l’assegnazione di codici a caratteri è il codice ASCII o ISO-646. La codifica Ascii prevede 7 bit: ciascun punto di codice è rappresentato col binario corrispondente di 7 bit, ma in realtà da 1 byte di cui 1 bit non è usato. Sono 7 bit, 27 punti di codice, quindi 128 caratteri rappresentabili, numero sufficiente per rappresentare l’inglese ma mancano i caratteri accentati. L’Universal Character Set UNICODE è lo standard internazionale che permette di rappresentare ogni carattere esistente, e si basa su principi di composizione dinamica. Assegna un numero di un codice univoco a ogni carattere e permette di realizzare documenti multilingue. È pensato originariamente come una codifica a 16 bit, adesso è fino a 21 e l’ultima versione è UNICODE 10.0. Codi ca di immagini Un’immagine è un insieme continuo di informazione che, a differenza di cifre e caratteri alfanumerici, non ha un’unità minima di riferimento, e questo rende un problema rendere digitale un’informazione analogica. Ci sono 2 tecniche per la memorizzazione digitale e l’elaborazione dell’immagine: 1) immagini bitmap, cioè immagini scomposte in una griglia di punti; 2) immagini vettoriali, formate da strutture elementari più complesse, come linee, circonferenze, archi… Per codificare immagini in B/N occorre dividere l’immagine in una griglia a righe orizzontali e verticali di cui ogni quadratino è un pixel che va codificato con 0 se è bianco e 1 se è nero. Occorre definire una convenzione per ordinare i pixel, dato che la sequenza è lineare: assumere se ordinare i pixel da destra o da sinistra e dall’alto o dal basso. Non sempre il contorno coincide con le linee della griglia, e nella codifica si ottiene un’approssimazione della figura originale che dipende dal numero di pixel della griglia. La risoluzione corrisponde al numero di pixel usati per riprodurla. Quando abbiamo delle sfumature in scala di grigio si fissa una scala di toni a cui si assegna convenzionalmente una rappresentazione binaria, che poi si attribuisce a ogni pixel. Per memorizzare un pixel non è sufficiente 1 bit. Con k bit si possono rappresentare 2k livelli di grigio. La rappresentazione più comune è a 8 bit: 256. Per codificare immagini a colori si devono definire un insieme di sfumature di colori diversi e rappresentarle mediante opportuna sequenza di bit. Nella codifica RGB si usano tre colori, a ognuno dei quali si associa un 2N di sfumature codificare su N bit, e la qualità dell’immagine dipende dalla risoluzione e dalla profondità di colore, cioè dai toni di colore permessi dalla codifica. La rappresentazione mediante codifica a pixel è bitmap, e il numero di byte richiesti per memorizzare dipende da risoluzione e numero di colori. Se la risoluzione è 640x640 con 256 colori occorrono 2.457.600 bit = 300KB. I formati più conosciuti sono BITMAP.bmp, GIF, JPEG e TIFF. Codi ca di lmati e suoni Filmati sono memorizzati come sequenze di fotogrammi, sfruttando i limiti della capacità percettiva: la sequenza continua viene divisa in una serie di immagini, i frame, che variano velocemente a intervalli stabili. L’audio è codificate a parte. Ci sono diversi formati: mpeg, avi (microsoft), mov (apple). I suoni si codificano campionando su dati analogici. L’onda sonora viene misurata a intervalli regolari e i valori campionati si rappresentano con valori digitali. La frequenza del campionamento determina la fedeltà del suono: minore è l’intervallo di campionamento e maggiore è la qualità. Nei CD ci sono 44000 campionamenti/s, 16 bit x campione. Architettura dei calcolatori Il computer De nizione Appunti di Informatica 3 fi fi fi fi Il computer è una macchina capace di elaborare dati, cioè estrarvi informazioni utili, automaticamente senza l’intervento dell’uomo, che si limita all’inserimento di un programma che descrive come reperire e trattare i dati e come devono essere presentate informazioni all’utente. È quindi programmabile. Le informazioni per il computer esistono come sequenze numeriche, le operazioni che può eseguire sono logiche, sono calcoli, e prescindono dal loro significato. L’elaborazione è priva di qualunque iniziativa non pre-determinata, il computer è privo di intelligenza e creatività. Algoritmi Un algoritmo è il procedimento da seguire per raggiungere un obiettivo. Descrive quali operazioni vanno eseguite per compiere un compito assegnato. I suoi elementi essenziali sono i dati, ossia ciò che va elaborato; istruzioni semplici, cioè i singoli passi da compiere sui dati; istruzioni complesse, cioè combinazioni di istruzioni semplici. In informatica, l’insieme di istruzioni complesse definisce un programma, termine che fa riferimento agli algoritmi che risolvono problemi tramite elaborazione elettronica di dati. Un programma è ciò che ogni componente del calcolatore esegue per assolvere la sua funzione. La parte fisica del computer è l’Hardware, la parte logica, di programmi e procedure, è il Software. Evoluzione dei calcolatori I primi calcolatori Nel 62 per la prima volta in Francia viene usato il termine Informazione Automatica, ma il computer per come lo intendiamo oggi ha una storia breve: il primo fu ideato e realizzato tra 40-50. Tuttavia, la prima calcolatrice meccanica fu ideata da Pascal nel 642, poteva rappresentare somme e sottrazioni con numeri fino a 9 cifre. La calcolatrice di Leibniz nel 673 permetteva di fare le 4 operazioni. Nell’835 viene ideata la macchina di Mabbage, un sistema di input/output di Elaborazione con una memoria. Nel 1847 Boole elabora le relazioni tra matematica e logica che stanno alla base dell’algebra booleana usata nei circuiti di calcolatori, Applicando le funzioni logiche di congiunzione, disgiunzione e negazione alla matematica. Nel 1917 viene fondata la IBM, la più grande industria di computer al mondo, che produsse macchine con una tecnologia meccanografica. Esistevano i centri meccanografici, attrezzati con macchine diverse: perforatrice, verificatrice, selezionatrice, calcolatrice, tabulatrice. Con queste macchine si svolgevano calcoli dell’ordine di 60 operazioni al minuto. La loro gestione era complessa, ed erano idonee a svolgere operazioni su dati in serie. C’è stato poi il calcolatore meccanico di Zuse: lo Z1, Z2, Z3. Il primo calcolatore elettromagnetico USA è il Mark 1 di Harvard, che faceva 4 operazioni e calcoli logaritmici, esponenziali e trigonometrici. Le istruzioni sono alimentate su nastro di carta, su schede o impostate con interruttori Turing enuncia il modello del calcolatore moderno: la macchina di Turing, ideata tra 40-45. Essa è in grado di eseguire atti primitivi che consentono di risolvere ogni tipo di problema di logica simbolica in un numeri finito di passaggi. Nel 43 c’è Enigma dei tedeschi, che criptava i messaggi trasmessi dai comandi militari e Turing diresse il progetto Bombe per decodificare i codici di Enigma. Nel 44 propone un uovo metodo di calcolo applicato al computer COLOSSUS, il primo calcolatore elettromagnetico UK, capace di trovare velocemente tutte le possibili combinazioni di Enigma. Il primo computer elettronico fu EINAC. Usava 1800 valvole, pesava 80 tonnellate. I dati erano inseriti mediante schede perforate ed eseguiva 5000 addizioni e 360 moltiplicazioni /s. Era molto già veloce rispetto alle altre macchine, ma aveva componenti fragili ed era costosa. Venne poi inventato il transistor, e il computer da macchina di calcolo diventa elaboratore di dati. Siamo nel 70, con l’avvento di microprocessori e dei Floppy, quindi di nuovi computer più veloci, economici di dimensioni ridotte: i PC. Il primo, a 400$, fu Altair8800 con 256 B di memoria e un processore Intel 8080 a 8bit. In dotazione non aveva monitor o tastiera e i dati erano memorizzati su nastri a cassetta. Il sistema operativo era scritto da Paul Allen e Bill Gates. Negli 80 nascono, col Commodore i primi calcolatori ludici. il Commodore64 si collega al televisore e ha una tastiera. Nascono le International Business Machines con processori a 16 bit, un lettore di floppy da 5 pollici e OS MS-DOS. La apple fece il primo computer con interfaccia grafica. Tipi di computer Il mainframe costa molto e ha prestazioni elevate, ha un grande numero di utenti e di terminali e si usano in grandi aziende o banche. Il minicomputer ha prestazioni medie e si usa come sistema dipartimentale o per medie aziende. Ha un numero di utenti medio, si usa mediante terminali e richiedono poco personale. Il terminale è il dispositivo che consente al singolo utente di accedere alle risorse di un elaboratore: può essere intelligente, che ha una capacità di elaborazione propria, e stupido, capace solo di accedere tramite input/output a un altro elaboratore. Un Network Computer è un terminale intelligente con accesso a risorse di rete. Il personal Computer Com’è fatto Il PC è un elaboratore di capacità di calcolo a costo limitato destinato a un utente per volta. I PC oggi sono multimediali, hanno un output grafico e supportano l’ingresso e l’esecuzione di contenuti. Il PC Desktop ha dimensioni ingombranti ma è Appunti di Informatica 4 già disposto a ospitare schede aggiuntive. Il Laptop è portatile, più costoso ma meno potente. Il palmare è tascabile, ha prestazioni limitate, non ha disco rigido. L’organizzazione base dei moderni calcolatori è l’architettura di Von Neumann. C’è una CPU: l’unità centrale che dirige e fa operazioni sui dati; una memoria che mantiene calcoli parziali e informazioni temporanee; una memoria di massa permanente; un controllore di I/O, che controlla le periferiche; dei percorsi che connettono bus dati e bus indirizzi e linee di controllo. All’interno del case dove sono collegati tutti i dispositivi hardware e la CPU c’è la scheda madre, che implementa i bus di sistema, il BIOS, l’orologio di sistema, gli attacchi fisici per i dispositivi. I collegamenti per i dispositivi sono LPT, cioè porta parallela; porta seriale COM e PS2; USB e infrarossi. PCMCIA serve ad aggiungere memoria o a collegare reti; HDMI a trasmettere audiovisivi; Firewire è un bus seriale efficiente. L’unità centrale La CPU è il cuore del computer. Ripete le istruzioni da eseguire, trova i dati da manipolare ed esegue le istruzioni; mantiene lo stato di tutto il sistema ed effettua operazioni ed è composta da registri, A.L.U. e unità di controllo. La sua velocità si calcola in Milioni di Istruzioni Per Secondo. La velocità è proporzionale alla frequenza dei Clock, cicli ognuno dei quali corrisponde all’esecuzione di un’istruzione elementare. La frequenza del Clock si misura in MHz o GHz ed è un’onda quadra. L’A.L.U è l’unità aritmetico logica che esegue calcoli matematici delle 4 operazioni e calcoli logici. L’unità di controllo regola il funzionamento ella CPU: decodifica l’istruzione ed emette segnali di controllo. I registri memorizzano valori temporanei. Le funzioni dei vari dispositivi del computer sono sincroniche. A ogni istante il calcolatore esegue il ciclo di istruzioni mediante tre fasi: fetch, decode, execute. Durante il fetch il processore preleva l’istruzione da eseguire, l’indirizzo dell’istruzione è memorizzato nei registri della CPU; durante il decode l’istruzione caricata viene inviata all’unità di controllo che la decodifica per generare i segnali di controllo interni ed esterni; durante l’execute i segnali di controllo vengono attivati, l’istruzione viene eseguita e il processo ricomincia. Un’istruzione ha un codice operativo che viene codificato in binario. Un processore ha una velocità che si misura in Hz e dei registri fino a 64 bit. La memoria La memoria principale o centrale della CPU è la Random Access Memory, è utilizzata per immagazzinare dati, istruzioni e risultati ed è veloce e volatile: disattivata l’alimentazione il suo contenuto è perso. I dati devono essere registrati, devono poter essere localizzati, letti e modificati. È alla RAM che il processore fa riferimento tramite una richiesta di lettura/ scrittura effettuata tramite linee di controllo. La memoria è divisa in celle individuate da un indirizzo univoco: il processore usa il bus indirizzi per segnalare l’indirizzo della cella contenente i dati da leggere/scrivere, posti sul bus dati. Ogni cella è in grado di memorizzare sequenze di bit di lunghezza fissa. Sebbene le celle abbiano dimensione di un byte la CPU opera con dati di dimensioni maggiori. 4 byte o 8byte nei moderni calcolatori. La dimensione dei dati su cui opera la CPU viene chiamata parola. La dimensione della parola è caratteristica di una specifica architettura, e tipicamente hanno la stessa dimensione della parola i bus dati, registri della CPU, la lunghezza delle istruzioni. Una grande memoria permette un numero maggiore di programmi eseguiti e di lavorare con dati di grandi dimensioni. Il processore può elaborare solo pochi bit per volta, serve così uno spazio in cui memorizzare istruzioni e risultati parziali dell’elaborazione, e la RAM ospita l’informazione mentre viene elaborata. I dispositivi elettronici della RAM consentono di maneggiare informazioni velocemente, così il processore risparmia tempo. Il programma per essere avviato deve essere copiato nella RAM, che se è piccola costringe il processore ad appoggiarsi sul disco fisso rallentando le operazioni. Quando un programma viene chiuso si libera lo spazio di memoria RAM occupato da un’applicazione. L’avvio di molte app può esaurire la memoria. La cache è un insieme di dati memorizzato in una posizione temporanea da cui essere recuperati velocemente, ma non c’è alcuna certezza che i dati vi si trovino. La cache è di capienza minore rispetto alla RAM ma il suo uso è più conveniente in termini di tempo, infatti se è necessario l’accesso a un dato viene prima cercato nella cache. Rispondenza spaziale: se uso un dato probabilmente userò i dati vicini, se eseguo un’istruzione probabilmente eseguirò quelle vicine; se uso un dato probabilmente lo riutilizzerò da lì a poco. Le memorie permanenti Importante ò la Read Only Memory, utilizzata per la registrazione di programmi particolari: i Firmware, come il BIOS, costituito dall’insieme di procedure che permettono al computer di inizializzare nelle fasi di avviamento altri dispositivi. Le memorie di massa sono dispositivi magnetici o ottici in gradi di conservare permanentemente e trasferire informazioni. L’Hard disk è il principale sistema. È fatto da una pila di piatti registrabili su entrambe le superfici, la registrazione avviene su piastre magnetiche sulla superficie dei piatti; non è estraibile ed ha capacità da centinaia di GB. L’SSD utilizza una memoria allo stato solido, è più veloce e resistente ma più costoso. Appunti di Informatica 5 Il CD-ROM ha capacità di 650MB, i dati sono memorizzati in piste ottiche concentriche, sono ROM perché non vi si può scrivere, a differenza del CD-R. Il DVD ha capacità fino a 17GB, è come un CD ma con capacità maggiore. Il floppy ha capacità di 1,4/2,8 MB era il principale sistema di trasferimento dati, costruito da un piatto magnetico in una custodia di plastica. Lettura e scrittura avvengono tramite apposito dispositivo. Bus di comunicazione e linee di controllo I vari dispositivi del calcolatore sono collegati tra loro attraverso i bus. Il bus dati è dedito al passaggio di dati da/verso la CPU, mentre il bus di indirizzi è dedito al passaggio di indirizzi su cui operare da CPU a memoria o controllore di periferiche. Le linee di controllo consentono alla CPU di gestire i vari dispositivi connessi indicando a ogni dispositivo il comportamento da attuare. Il bus usatone PC è il PCI, in cui bus dati e indirizzi si fondono. Le periferiche L’architettura di Von Neumann ha un controllore delle periferiche che permette di comunicare con il mondo esterno e con l’uomo. Le periferiche sono di input, che permettono l’invio di dati, come la tastiera, e di output, attraverso cui il calcolatore presenta i risultati delle elaborazioni, come monitor, stampante… La scheda grafica, di output, è composta da processore grafico o GPU, memoria video, interfaccia con il bus, RAMDAC, uscite video e Video Bios. Più ampia è la sua memoria più alta è la risoluzione e il numero di colori disponibili. C’è una memoria condivisa. Più veloce è il processore più calcoli piò fare nell’unità di tempo. Il monitor è di diversi tipi, misura 15 pollici, 17’’ o 19’’. Il dot Pitch è la dimensione dell’immagine puntiforme più piccola che il monitor è in grado di visualizzare, ed è di 0,24 o 0,28 mm. Un monitor CRT è a tubo catodico ed è costruito da un cannone elettronico posto dietro uno schermo cosparso di fosfori che si illuminano quando colpiti dal raggio elettronico. Un Monitor LCD è costituito da una griglia di elementi ciascuno corrispondente a un pixel sullo schermo, suddivisi in sotto-pixel. Un LCD non emette luce ma funziona come selettore: è retroilluminato. La luce emessa dalla retro- illuminazione passa attraverso il cristallo liquido e viene colorata dal filtro che viene controllato modo da far passare più o meno luce in base a quanto rosso, verde o blu il pixel deve emettere. In un Monitor al plasma ogni pixel è costituto da 3 identiche cavità microscopiche contenenti xeon e aventi due elettrodi: uno frontale e uno posteriore. Applicando una forte corrente alternata agli elettrodi il plasma si mette in moto ed emette UV che colpiscono lo scintillatore, emettendo RBG. Il monitor al plasma ha una gamma cromatica e un angolo di visuale più ampi, c’è più contrasto e sono possibili grandi dimensioni e piccola profondità, tuttavia i pixel sono grandi, non è adatto per schermi piccoli e i pixel sono soggetti a bruciature. Nei monitor lcd invece i pixel sono molto piccoli, non c’è sfarfallio e l’immagine è più stabile e nitida. L’angolo di visuale è ridotto, il contrasto è peggiore. Le stampanti sono a getto d’inchiostro (4 taniche per la stampa in quadricromia o 6 esacromia) o al laser (un toner per tipo di colore) Il sistema operativo Il software Software applicativo e software di base Il software è il programma o insieme di programmi in grado di funzionare su un computer. È la parte logica, e si distingue in software applicativo e software di base. I software applicativi, o applicazioni, sono i programmi che permettono di svolgere un azione all’utente rendendo il computer uno strumento utile. Sono pronti per essere impiegati anche dal semplice utilizzatore. I software di base sono quei programmi necessari solo per produrre software e per gestire le risorse hardware del sistema. Il software di base essenziale comprende i programmi necessari per un uso normale dell’hardware, come il sistema operativo; il software di base facoltativo comprende quei programmi necessari per produrre/testare/migliorare il software, come compilatori, debugger… Possiamo vedere il software a strati: al centro l’hardware, poi s di base, applicativi, spazio dell’utente. Il sistema operativo I compiti del sistema operativo Il sistema operativo è un programma che controlla l’esecuzione di programmi applicativi e fa da interfaccia tra essi e l’hardware. esso cerca di usare in modo efficiente le risorse del calcolatore e permette il semplice utilizzo dell’hardware. Esso si occupa di: supervisione: gestisce i componenti hardware, interpreta ed esegue i comandi dell’utente, carica ed esegue altri programmi; spool: operazioni di stampa; programmi di gestione librerie, che organizzano la memorizzazione dei dati; programmi di diagnosi e correzione, che cercano e correggono errori del sistema; programmi di definizione della configurazione hardware, che configurano le periferiche del sistema. Un OS è composto dal kernel, costituito da programmi che realizzano le funzioni più vicine all’hardware, come le operazioni di I/O, la gestione die programmi basali o del controllo dei processi; file system, che gestisce la Appunti di Informatica 6 memorizzazione, il reperimento, il trasferimento delle informazioni contenuto nelle memorie di massa; gestione memoria; interfaccia utente e programmi di sistema. Il sistema operativo come macchina virtuale Il sistema operativo nasconde i dettagli dell’hardware e agisce come intermediario tra hardware e i software. Chi scrive il sistema operativo vede il sistema come un insieme di risorse fisiche da mandare direttamente: un macchina, Un utente che usa un programma vede il sistema come insieme di azioni e comandi che può fornire alla macchina. Evoluzione del sistema operativo Prima generazione (1945-1955) Macchine a valvole che svolgono calcoli numerici e vengono programmati in linguaggio macchina, esse non avevano sistemi operativi, per cui l’utilizzo era lento e complesso; Seconda generazione (1955-1965) Coi transistor le macchine cominciano a essere usate per scopi diversi e si crea un mercato. Si crea una separazione tra costruttori, operatori e programmatori e i computer vengono programmati coi primi linguaggi ad alto livello, il fortan. Si comincia a automatizzare il loro utilizzo tramite i job, dei programmi la cui esecuzione veniva richiesta dagli utilizzatori. Il programmatore scriveva su carta il programma, perforava una serie di schede con programma e input, le consegnava a un operatore il quale inizializza il sistema con una serie di schede di controllo. Il monitor è un sistema di controllo dei job, ed è l’embrione degli OS odierni. Il controllo del sistema appartiene al monitor e viene ceduto al job da eseguire per poi tornare al monitor, in grado di eseguire una sequenza di job: i sistemi batch. Terza generazione Ci sono i circuiti integrati, sparisce la figura dell’operatore come interfaccia programmatore-sistema, venivano programmati tramite linguaggi ad alto livello, possedevano editor testuali, grafici e compilatori. Ora gli OS sono interattivi e prevedono la multiprogrammazione: il processore viene usato anche nei tempi morti, non viene lasciato inattivo durante le operazioni I/O, la memoria viene usata caricando il maggior numero di job possibili, gestendone un insieme: il pool, tra cui alternare il processore. Il time sharing è l’estensione logica della multiprogrammazione. L’esecuzione nella CPU viene suddivisa in un certo numero di quanti temporali, e allo scadere di un quanto il job viene interrotto e l’esecuzione passa a un altro job. I passaggi tra esecuzione di job sono così frequenti che più utenti possono interagire con i programmi eseguiti. La memoria viene gestita tramite memoria virtuale, si usano tecniche per aumentare la quantità di memoria mediante l’uso degli hard disk e il GPU Scheduling, la gestione del processore sospendendo periodicamente l’esecuzione di un programma a favore di un altro. La presenza di più utenti e più programmi necessita poi di meccanismi di protezione. Quarta generazione (1980-oggi) Oggi ci sono i circuiti integrati e i PC, l’obiettivo primario è la facilità d’uso e vigono una tecnologia a finestre e la filosofia del desktop. I moderni OS consentono di lavorare con più di un processore, sia assegnando operazioni diverse a processori distinti sia suddividendo il tempo di ciascun processore. Concetti base Processo, risorsa, le Il Processo è l’insieme ordinato delle operazioni che il sistema esegue durante lo svolgimento di un programma. La Risorsa è un qualsiasi elemento di natura hardware o software condiviso dai processi, necessario alla loro creazione e al loro avanzamento. Il File è una sequenza di informazioni memorizzate su supporti di memoria secondaria. Una sequenza di bit, record logici e fisici il cui significato è definito dal creatore del file. Gestione dell’OS Gestione dei processi In un OS time sharing possiamo pensare a più processi in esecuzione parallela che possono interagire tra loro competendo nell’attribuzione di risorse e cooperando scambiandosi messaggi. I processi da eseguire vengono selezionati tramite un programma: lo scheduler, che si occupa di coordinare l’esecuzione parallela dei processi determinando il prossimo processo da eseguire. Gestione della memoria L’OS si occupa di gestire la memoria attribuendola ai processi in esecuzione tramite la Memory Management Unity. Vengono gestiti 3 livelli: cache, RAM, memoria secondaria. La memoria viene paginata, cioè distinta in piccole aree, e segmentata, cioè suddivisa in 4 porzioni: codice, dati, heap, Stack. Le pagine non usate in un momento vengono deallocate dalla memoria principale a una di massa, temporaneamente. L’OS è responsabile di tenere traccia di quali parti di memoria sono usate e da quale processo, di decidere quale processo deve essere caricato in memoria, allocare e deallocare lo spazio di memoria, decidere quando. Appunti di Informatica 7 fi Gestione del le system Le memorie di massa vengono usate per archiviare permanentemente i dati, il file system fornisce i meccanismi per accedere alla memoria di massa, è strutturato in file e cartelle o directory organizzate in una struttura ad albero. l’OS crea e cancella file e directory, li manipola e codifica il FS in memoria secondaria. Il FS contiene informazioni base del file: nome, tipo, organizzazione; informazioni di allocazione: locazione, dimensione, posizione; informazioni di accesso: proprietario, protezione, data di creazione e di ultima modifica. Permette di organizzare file nelle cartelle, di cercare un percorso, creare file o directory, eliminare, elencare file e fare backup. Gestione dei dispositivi di I/O, della privacy e della rete La gestione delle periferiche avviene tramite l’interazione con dei controllori hardware, l’interazione avviene tramite programmi detti driver, che permettono all’OS di riconoscere una periferica e accedervi; tramite di essi il sistema guida la periferica nelle azioni che essa deve intraprendere. Ci sono più driver, uno per ogni periferica. L’OS deve permettere lo scambio di informazioni tra processi che vogliono colloquiare, occultando però le operazioni e i dati tra i processi che non devono interagire. L’OS deve proteggere le informazioni dai malfunzionamenti e dalle aggressioni. Memorizza password e informazioni personali che vengono crittografate. L’OS fornisce il supporto al networking. Le periferiche di rete, come le schede ethernet, sono riconosciute tramite i driver. Le informazioni vengono inviate seguendo dei protocolli (ethernet: reti locali; TCP/IP internet)) il sistema prevede tool per la gestione dei protocolli di rete. I vari sistemi operativi Interfacce verso gli utenti Gli OS utilizzano interfacce che ne semplificano l’utilizzo. Nelle interfacce a carattere il sistema viene controllato tramite un interprete di comandi a tastiera, permettono un maggior controllo ma sono più difficili. Le interfacce a finestre, invece, permettono di accedere a programmi e risorse attraverso finestre e mouse, sono più semplici ma hanno uno spreco di risorse hardware dovuto alla grafica. MS-DOS In passato ha avuto grande diffusione perché piccolo e veloce l’OS, usato da case come IBM, MS-DOS, con interfaccia a linea di comando, che oggi è stato superato tranne per applicazioni particolari. Era un ambiente i lavoro mono-utente e monotasking, limitato sulla massima quantità di memoria utilizzabile di 640 kb. L’utilizzo di periferiche esterne è demandato ai programmi. Windows, Mac OS e Linux Windows è l’OS più diffuso sulle macchine con processori intel. Ha un ambiente grafico intuitivo e ha un vantaggio di compatibilità: tutti i produttori di periferiche realizzano prodotti compatibili con windows. Tutti i pc, tranne quelli apple, sono prodotti con esso e ne esistono molte versioni, dalla 3.11 alla 95, 98 e millennium per utenti casalinghi, NT e 2000 per professionisti, XP, Vista, 7, 8, 10 e 11. La apple per prima ha commercializzato OS con grafica a finestre, il sistema è proprietario ed è alla versione 13. Linux è realizzato per dare agli utenti di PC un ambiente di lavoro UNIX ma gratis e a diffusione libera; è aperto e pubblico, può essere migliorato ed esteso da chiunque, inserendosi nel filone del free software, un software il cui codice sorgente è realizzato per essere migliorato dalla comunità degli sviluppatori. È robusto, affidabile e gratuito. Reti di calcolatori Le reti Cosa è una rete: LAN, WAN e Internet Una rete è un insieme di computer connessi e capaci di scambiarsi informazioni. Le reti possono essere distinte in base a diversi caratteri, e la classificazione fondamentale riguarda le dimensioni: Lan, Wan, Internet. La LAN o rete locale connette un numero limitato di computer collocati in uno spazio ridotto, come gli elaboratori di un ufficio. Le prime LAN si sviluppano nei 70, ma si diffondono solo tra 80 e 90. Sono costituite da gruppi di calcolatori distribuiti su un’area limitata, collegati mediante cavi e schede di rete. Essi comunicano e condividono risorse, e sono strutturalmente connessi a un elemento centrale. La WAN o rete geografica connette un numero più elevato di computer collocati su grandi distanze anche nazionali. Ne sono esempi le reti interuniversitarie o bancarie; con le WAN le aziende riescono a condividere informazioni coi propri collaboratori a livello globale e scambiare dati in tempo reale tra filiali dislocate. Internet non è propriamente una rete ma una inter-network, cioè una rete di reti nata dalla connessione di diverse reti indipendenti, anche se si presenta come un’unica realtà mondiale. È un’interconnessione globale tra reti di di tipo diverso, resa possibile da una suite di protocolli di rete che costituiscono la lingua comune con cui i computer connessi (host) sono interconnessi e comunicanti. I canali di comunicazione Appunti di Informatica 8 fi I canali possono essere realizzati via cavo o con tecnologie di trasmissione senza filo. I tipi di canale via cavo sono il doppino telefonico, la fibra ottica (centinaia di sottili fibre di vetro che trasmettono impulsi di luce); quelli wireless sono onde radio, infrarossi, i collegamenti satellitari e le reti cellulari. Il tipo di cavo determina la capacità di trasmissione, cioè la quantità di informazione che possono trasferire nell’unità di tempo. Ampiezza di banda della rete è la quantità di informazioni che posso trasferire nell’unità di tempo. L’unità di misura è il bit al secondo. Il canale influisce anche sulla modalità di comunicazione tra due computer. Abbiamo così due tipi di commutazione. Nelle reti a Commutazione di Circuito la capacità trasmissiva interna è assegnata per ogni chiamata, è definita una porzione di capacità trasmissiva che è allocata in modo esclusivo per servire ogni comunicazione; 2 nodi di rete stabiliscono una connessione diretta e temporanea. Era il modello dei telefoni analogici. Nella commutazione di pacchetto ciascun flusso di dati è diviso in pacchetti: entità composta da un’intestazione, usata ai fini dell’identificazione e gestione, e i dati. Una rete a commutazione di pacchetto è composta da sistemi terminali, si occupano di instradamento dei pacchetti tra sorgente e destinazione, detti nodi della rete, ognuno dei quali memorizza i pacchetti in ingresso per poi instradarli verso il nodo successivo. I collegamenti fisici tra nodi sono i link. Come vantaggio ha la possibilità di scambiare informazioni: la rete è il mezzo più veloce per trasportare info tra computer, e grazie alla rete il computer diventa uno strumento di comunicazione. È possibile per gli utenti di una rete usare diverse risorse hardware condivise, e un computer in rete può impiegare il software presente su altri elaboratori. Ci contro il collegamento rete rende i dati riservati più facilmente violabili e apre a maggior rischio di contagio di virus. Storia delle reti Anni 60 Nei 60 nascono i primi mainframe che compiono operazioni di tipo Batch; calcoli eseguiti secondo sequenze di istruzioni predefinite, nasce il concetto di Multielaborazione: la distribuzione della potenza di calcolo su diverse attività in modo da suddividere il tempo di elaborazione, con una riduzione dei tempi morti. Nascono così OS capaci di gestire le nuove funzionalità e l’interazione uomo-macchina avveniva mediante terminali collegati al computer principale: gli host, dei terminali che non avevano né memoria né capacità di elaborazioni locali, accessoriati solo di tastiera e monitor. Con essi nasce il concetto di rete. Anni 70 Il dipartimento della difesa USA richiede il progetto Arpanet, per scambiare info militari tra uni e laboratori. Ogni computer era chiamato host ed era identificato univocamente da un indirizzo. Vi era un semplice instradamento dei pacchetti contenenti info verso i computer di destinazione. Il protocollo è l’insieme di regole che definisce il formato dei messaggi scambiati consentendo a più entità di comunicare. In Arpanet c’era l’NCP: Network Control Protocol. Vennero creati successivi protocolli e nasce l’attuale IPS: Internet Protocol suite, e dà attenzione ai protocolli TrasmissionControllProtocoll e InternetProtocol. Anni 90 Il dipartimento della difesa crea la sua rete privata e il governo emana una legge che regola la creazione di reti a scopo accademico. Il CERN propone un’architettura per la semplificazione della navigazione nelle reti: WWW, e il 6/8/91 viene pubblicato il primo sito web al mondo: info.cern.ch. Nel 93 nasce Mosaic, il primo browser usato a livello commerciale; nello stesso anno il CERN decide di rendere pubblico il World Wide Web e nel 94 viene registrato il primo dominio di yahoo. Nello stesso anno nasce il W3C, l’organizzazione che sviluppa protocolli e linee guida del web. Nel 97 Page e Brin registrano il dominio di google.com. Nel 2001 Wales e Sanger lanciano wikipedia e nel 2004 nasce TheFacebook, poi twitter, LinkedIn, Snapchat, tiktok… Protocolli di internet I protocolli di internet A consentire ad Arpanet di diventare internet è stata la rapida diffusione dei protocolli TCP/IP, una suite di protocolli cioè una serie di regole: IP fa da protocollo di rete mentre TCP è protocollo di trasporto. Su di essi si innestano i protocolli dei servizi che stabiliscono le regole di comunicazioni tra le applicazioni usate dagli utenti. Essi sono indipendenti dal supporto fisico della rete, possono connettere computer di caratteristiche diverse e sono uno standard aperto, accessibile e utilizzabile gratuitamente, e ogni computer dispone del software per usarli. Il modello OSI Il modello OSI ha 7 livelli, è un macchina astratta in cui ogni livello mette a disposizione del precedente un insieme di funzionalità: c’è un livello applicazione, uno di trasporto e uno di rete. Il modello TCP/IP Il modello TCP/IP è più semplice: ha solo 4 livelli e ingloba i livelli presentazione e sessione in quello applicazione e il livello dati in quello fisico. I livelli sono i seguenti. Appunti di Informatica 9 1. Livello applicazione: interfaccia e fornisce servizi per i processi delle applicazioni, sfrutta i livelli sottostanti per lo scambio d’informazioni tra utenti in rete, e si usano i protocolli standard: Telnet, FTP, HTTP, DNS e SMTP/POP3/ IMAP4. 2. Livello trasporto: fornisce comunicazione logica fra processi applicativi su host diversi, gestendo la conversazione e nascondendo i dettagli del trasporto delle informazioni; garantisce la consegna dei pacchetti e invia una conferma della ricezione. La comunicazione avviene mediante particolari canali distinti da indentificativi numerici: le porte. Usa i protocolli TCP e UDP. 3. Livello rete: individua un percorso tra mittente e destinatario e trasmette i pacchetti attraverso diversi router. Suddivide i dati sul dispositivo del mittente in pacchetti e li riassembla al destinatario quando la trasmissione avviene mediante 2 reti diverse 4. Livello accesso alla rete: livello più basso, trasferisce dati fra due nodi di rete connessi direttamente, gestendo l’infrastruttura fisica che consente ai computer di comunicare in internet. Invia dati, formato dei dati, converte segnali e controlla errori in arrivo. Il protocollo IP Si occupa di instradare i pacchetti, coinvolge tutti i nodi della rete, fornisce le funzionalità di indirizzamento. Il Dynamic Host Configuration Protocol è il protocollo usato per assegnare indirizzi IP agli host di una rete. Gli indirizzi IP sono a 32 bit, un quartetto di 4 byte separati da un “.” Associati univocamente a ogni interfaccia di rete. C’è la possibilità di dividere in classi di indirizzi in funzione al numero di byte che indirizzano la rete e i pc. I Netmask servono a individuare che byte dell’indirizzo indirizzano la rete e quali i computer. Il protocollo IP stabilisce le regole grazie a cui i computer possono scambiarsi pacchetti d’informazioni, regole in base a cui ogni computer in rete viene identificato da un indirizzo IP. Ogni pacchetto d’informazioni in internet ha un IP Header in cui sono indicati gli indirizzi di mittente e destinatario, e mai una connessione è anonima. Se l’indirizzo del destinatario corrisponde a uno dei computer della sottorete del mittente, il pacchetto è recapitato direttamente, altrimenti viene inviato a uno dei computer che collegano le sottorete che compongono internet, detti router e getaway. I pacchetti IP possono attraversare molte sottoreti prima di arrivare a destinazione. Il protocollo TCP e UDP Svolge una funzione di mediazione tra programmi internet e protocollo IP, grazie a esso i flussi di dati dei programmi vengono suddivisi in pacchetti consegnati al protocollo IP che ne cura l’instradamento. I pacchetti ricevuto dal protocollo IP vengono ricomposti in file e indirizzati all’app che li ha richiesti. Lo smistamento dei pacchetti è reso possibile mediante il numero di porta che identifica le applicazioni su entrambi i computer. Il TCP svolge anche una funzione di controllo della trasmissione, verificando che tutti i pacchetti di dati giungano a destinazione. E anche quando avviene uno scambio che sembra in una sola direzione (inviare una mail), avviene una conversazione tra i software che gestiscono il TCP. Se il controllo non è necessario, le regole di internet prevedono l’uso di protocolli meno sicuri come l’UDP, che fa il minimo che un protocollo di trasporto dovrebbe fare, non fornisce un trasferimento affidabile dei pacchetti, fornisce una connessione veloce ed è ottimo per applicazioni real-video. L’architettura di una rete I modem Il modem è un dispositivo che, collegato alla linea telefonica, consente di connettersi a un ISP, un fornitore di collegamento a internet, o a un’altra rete mediante un servizio PTP, punto-punto. Esso converte il segnale digitale del computer in analogico sulla linea telefonica, riconvertendo poi il segnale di ritorno. Si chiama modulatore-demodulatore. Ci sono stati vari tipi di modem: analogici, ISDN, ADSL, VDSL, GPRS/UMTS/HSDPA. Fino a fine 90, era diffuso il modem analogico, una scheda di rete interna o esterna che, connessa a computer e linea telefonica, consente di accedere a internet occupando la linea telefonica a bassa velocità, ed era possibile sfruttare il modem come telefono o fax. I primi modem erano come una scatola quadrata. Simili agli analogici ma più veloci, da 64 a 128 kbps, i modem ISDN, utilizzabili solo se si ha la linea telefonica specifica. I modem ADSL sono esterni e consentono di usufruire della linea dati digitale ad alta velocità ADSL, dai 640 kbps a 30 MBPS. I VOIP modem consentono anche di aver una seconda linea telefonica su rete internet, e i router WLAN permettono di navigare a condizione di una scheda di rete senza fili (in tutti i pc nuovi). I modem VDSL garantiscono una connessione in fibra fino a 300 Mega detta ibrida, perché dalla centrale all’armadio stradale il collegamento è in fibra mentre a casa la connessione arriva tramite doppino in rame. I modem GPRS/UMTS/HDSPDA sono quelli presenti nei telefoni, che consentono di accedere a internet a velocità variabili: minore per il GPRS, media per il UMTS e più alta nell’HSDPA, che in condizioni ottimali supera la velocità ADSL, mentre vi è pari nei casi comuni. La scheda ethernet Appunti di Informatica 10 I computer, per collegarsi a una rete, devono avere una scheda di rete: a ogni scheda Ethernet è associato un indirizzo chiamato MAC Address. Le schede più diffuse sono le ethernet 10Mbps, fast ethernet 100Mbps e giga ethernet 1000Mbps, cioè megabyte per secondo. Hub e switch Un hub collega più computer in una LAN: tutte le informazioni inviate all’hub vengono inviate a ogni dispositivo mediante ogni porta. Gli hub non distinguono computer, e quando ricevono informazioni le trasmettono a tutte le altre porte. Gli switch sono apparati attivi capaci di identificare e ricordare gli indirizzi degli host collegati, riducendo il traffico sulla rete. Crea una tabella di scambi che associa le porte ai dispositivi connessi tramite i loro indirizzi MAC. Entrambi lavorano a livello accesso alla rete. Un bridge di rete è un elemento software o hardware che connette più reti di tecnologie e schede diverse. Tramite un bridge si possono connettere dei segmenti LAN. Uno switch con due sole interconnessioni di rete è un bridge. Il router Il router è un apparecchio che consente l’interconnessione tra reti anche a diversa tecnologia curando l’instradamento dei dati dalla sorgente alla destinazione. Il router, mentre il modem opera su una sola postazione, permette l’accesso di un’intera LAN a un’altra rete. Il router ha come obiettivo estradare i dati mediante reti diverse, sfruttando delle tabelle di routine per sapere dove e come smistare i dati. Lavora a livello rete. Il modem collega la connessione ADSL alla rete internet mentre il router instrada dati fra diverse reti. Il modem router è un unico apparecchio che fa entrambe le cose: funge da porta d’accesso a internet, e consente a tutti i dispositivi di casa di dialogare tra loro. Gateway Il gateway è un dispositivo che permette di veicolare i pacchetti di una rete all’esterno della LAN. Quando una rete desidera comunicare con un’altra il pacchetto di dati passa al gateway e viene instradato verso la sua destinazione. Lavora a livello di applicazione e rete, e in quest’ultimo coincide col router. Supponendo di voler scambiare un messaggio mail fra 2 che usano sistemi di posta diversi, è necessario disporre un nodo gateway che riceve i messaggi da un sistema e li converte ritrasmettendoli al destinatario. Mentre il router non modifica i dati il gateway deve essere in grado di farlo. Tipologie di reti Le reti a stella, reti ad anello e reti centralizzate Nelle reti a stella i calcolatori sono collegati a un hub centrale. Quando si interrompe il collegamento tra un pc e l’hub solo il pc in questione non lavora, mentre gli altri sì. Nelle reti ad anello tutti i pc sono collegati tramite un unico cavo, e ogni nodo funge da ripetitore del segnale che viene amplificato di passaggio in passaggio. Nelle reti centralizzate ci sono una o più unità centrali (mainframe) e diversi terminali collegati al computer principale. L’elaborazione dei dati avviene all’interno dell’unità centrale. Usano hardware specifici e non sono flessibili, per cui sono in disuso. Reti client server e peer-to-peer Le reti client server sono costituite da macchine server che fungono da p di riferimento per i client, gli altri calcolatori in rete. Il server mette a disposizione le sue risorse agli altri pc, mentre i client sono computer dotati di memoria che usano le risorse. Hanno vantaggi nella scalabilità del sistema, nella gestione delle impostazioni di sicurezza in modo centralizzato e nell’ottimizzazione dell’uso delle risorse, ma l’amministrazione del sistema richiede maggiori competenze tecniche. Le reti peer-to-peer sono particolari reti client/server in cui non ci sono unità centrali, gli host sono tutti allo stesso livello e fanno sia da client che da server, come in Bit Torrent o eDonkey. Sicurezza delle reti Attacchi alle reti La sicurezza è fondamentale per proteggere le reti e impedire attività o accessi non autorizzati. Gli obiettivi sono la segretezza, l’autenticazione e l’integrità: solo mittente e destinatario devono poter capire il messaggio, devono essere sicuri di chi parla e il contenuto non deve essere alterato. Lo sniffing dei pacchetti è un attacco in cui un uomo in mezzo si colloca tra i due e si impadronisce dei pacchetti scambiati; lo Spoofing dell’IP è una manomissione dell’IP del tender e nel DOS c’è un sovraccarico di lavoro che rende impossibile usare la rete. Crittogra a, rewall e antivirus La crittografia è l’uso di chiavi per lo scambio dei messaggi. Dal testo in chiaro viene creato il testo cifrato tramite l’applicazione di algoritmi combinati a una chiave di cifratura. Il DES è una chiave a 64 bit, c’è la RSA, i protocolli di autenticazione, firma digitale… Il Firewall blocca l’accesso di certi pacchetti alla rete, permette l’invio solo di certi pacchetti e dagli utenti autorizzati, permettendo apertura o chiusura delle porte. Appunti di Informatica 11 fi fi L’antivirus vigila che il pc non venga affetto dai virus, deve essere sempre aggiornato. I virus non funzionano separatamente da un programma ospite, mentre i secondi sono programmi a sé che si diffondono sfruttando la vulnerabilità dei sistemi di sicurezza. Internet Rete di reti De nizione Interconnetted network è un insieme di reti locali connesse tra loro. I dati vengono trasmessi alla rete tramite rete telefonica mediante un modem, i sistemi operativi mettono a disposizione i browser per la navigazione nei siti di internet la cui pagina principale è la homepage. Internet si basa su collegamenti ipertestuali, i link. HTTP è il protocollo a livello applicazione che permette la navigazione su WWW; SMTP è il protocollo che permette l’invio di messaggi di posta; POP è il protocollo che permette la ricezione di messaggi e FTP è un protocollo di scambio dati. I servizi internet Internet viene identificato col suo aspetto più famoso: il WWW, le pagine da navigare, ma in realtà i protocolli TCP/IP offrono una base di connessione che i programmi possono sfruttare in infiniti modi. Alcune modalità d’uso sono state standardizzate con la definizione di protocolli che consentono a programmi diversi di comunicare e gestire certi servizi. I programmi per navigare condividono HTTP, quelli di posta SMTP… e i protocolli prevedono che i programmi che usano i vari server siano costruiti secondo il modello client-server. I programmi server mettono a disposizione un servizio attendendo richieste degli utenti e sono attivi su elaboratori sempre connessi, mentre i programmi client consentono l’utilizzo dei servizi internet inoltrando richieste al server e funzionano sulle macchine degli utenti (come il browser). Il protocollo HTTP http Per fare richieste e rispondervi è necessario il protocollo HTTP, un protocollo testuale in cui i messaggi sono costituiti da sequenze di byte, ciascuno identificante un carattere ASCII. Tipicamente una pagina web è descritta da un file testuale in formato HTML ed è identificata mediante un indirizzo URL. Un file HTML può contenere riferimenti ad altri oggetti che arricchiscono le pagine, ciascuno dei quali identificato dal proprio URL, e può trovarsi anche su server diversi. Una volta ricevuta la pagina HTML il browser estrae i riferimenti agli altri oggetti e li richiede mediante una serie di connessioni HTTP. DNS Gli IP che identificano i computer vengono sostituiti da nomi di dominio, i DNS, composti da parole separate da punti. Sono più facili da ricordare e possono rimanere invariati anche quando si deve cambiare IP. L’assegnazione dei nomi è curata dall’org internazionale ICANN che delega agli enti nazionali la gestione dei paesi, in Italia: Registration Authority. Le sequenze di nomi separati da punti danno un valore gerarchico da destra a sinistra: identificano un computer mediante l’indicazione delle suddivisioni di internet a cui appartiene. Generalmente un nome di dominio è composto da tre parti: www.google.com, ma alcuni nomi hanno anche dei sottodomini. Il minimo è due. La parte più a destra indica il dominio principale di internet, cioè il paese o il tipo di attività del proprietario del computer. La seconda parte è tipicamente il nome dell’ente che possiede il computer mentre la terza parte, www, indica il nome del computer tra quelli posseduti dall’ente, e spesso indica il servizio a cui l’elaboratore è dedicato. Il software che gestisce il protocollo IP ha bisogno di conoscere l’indirizzo IP del computer a cui vogliamo collegarci, per cui quando digitiamo un indirizzo simbolico il programma deve tradurre il DNS in IP: questo è il DNS Lookup, compiuto mediante il collegamento a un computer remoto, il DNS server, che ospita una tabella di corrispondenza. Il server deve essere noto, in gran parte dei casi l’IP è comunicato automaticamente dal provider ma talvolta deve essere inserito dall’utente. URL URL sta per Uniform Resourcher Location. È l’indirizzo web, cioè un riferimento a una risorsa web come un sito o un file, ed è uno degli strumenti fondamentali de WWW: una stringa alfanumerica che identifica una risorsa della rete. Un URL HTTP ha la seguente sintassi: http://host[:port]/path[#fragment][?query]. Protocollo usato; server; port è opzionale, di default è 80; path identifica la risorsa nel server, #fragment un punto preciso in un oggetto e ?query si usa per passare info da client a server. I browser De nizione Il browser è un programma che consente di visualizzare e interagire con informazioni tipicamente contenute in una pagina web. Esso interpreta il codice HTML, cioè il codice con cui la maggioranza delle pagine web sono composte, e lo visualizza come ipertesto. Il primo sviluppato fu WorldWideWeb, che era disponibile solo per OS NeXT. Il primo browser popolare fu Mosaic di NCSA, seguito da Netscape Navigator, piattaforma su cui vennero messe appunto alcune innovazioni oggi comuni come Appunti di Informatica 12 fi fi JavaScript. Dopo metà anni 90 ci fu la guerra dei browser, una competizione commerciale iniziata da Microsoft quando le innovazioni di Netscape divennero così sofisticate da essere una minaccia. Per vincere la concorrenza incluse Internet Explorer su Windows. Netscape reagì rilasciando nel 98 il proprio codice con licenza open source, e ne derivò il progetto Mozilla che fornisce il codice a diversi browser: Netscape, Beoni, Firefox… esistono oggi browser diversi con funzioni diversi, e infatti esistono siti web destinati a essere visitati con un browser preferenziale, cosa che però ha generato critiche e campagne di protesta. Il browser più diffuso al mondo è stato poi Explorer e poi Chrome. All’avvio il browser apre sempre la stessa pagina, quella impostata come predefinita, ma si può sostituire in qualsiasi momento. Proxy HTTP Un proxy è un programma posto tra client e server, inoltra richieste e risposte. Per usare un proxy è possibile configurare il client in modo che si colleghi al proxy invece che al server, oppure definire un proxy trasparente senza che sia necessario configurare un client. Un proxy può consentire di tenere tracce di tutte le operazioni effettuate (monitoraggio); applicare regole per determinare che richieste inoltrare o l’ampiezza di banda usata o filtrare le pagine web in transito (controllo); garantire un maggiore livello di privacy mascherando il vero IP del client celandolo al server. Quando la configurazione della rete consente di collegarsi a internet solo mediante un proxy, non sono utilizzabili molte applicazioni basate su protocolli non supportati dal proxy, come webcam, giochi online, file sharing… La Cache e i Cookies Nella cache vengono memorizzate le pagine visitate per visualizzarle anche offline, è possibile modificarne la dimensione e non è sempre lecito metterci una pagina. In certi casi si può forzare il browser a ricaricare la pagina, premendo ctrl o shift. I cookies sono piccoli file di testo memorizzati che tengono traccia dei siti visualizzati, di info sull’utente o di preferenze di visualizzazione. Velocizzano la navigazione, ma possono tenere traccia di informazioni sensibili. I motori di ricerca De nizione Sono strumenti con cui si cercano termini in una grande quantità di siti. Sono elenchi indicizzati che cercano di memorizzare tutte le pagine disponibili. Sono compilati da programmi che esplorano continuamente il web e consentono di fare ricerche su base ampia di dati, trovando pagine che contengono certe parole indipendentemente da significato e qualità delle informazioni. I migliori attribuiscono a ogni sito un valore che rappresenta un indice di qualità. I motori di ricerca scandagliano continuamente il WWW includendo in archivio ogni indirizzo individuato, il numero di siti web archiviati è di gran lunga superiore a quelli potenzialmente archiviatili nelle directory, e negli archivi dei motori di ricerca confluiscono anche siti di pessima qualità. L’inserimento di siti nell’archivio prevede l’uso di programmi detti Spiders, che visitano continuamente tantissimi siti, leggono il testo contenuto ed estraggono le parole che ne rappresentano i contenuti. Per ogni pagina letta lo spider memorizza ogni link ad altri siti, aggiungendoli a una lista di siti da visitare e così, in un processo a catena, ottiene una quantità enorme di indirizzi. I meta tag I primi spider si limitavano a leggere l’intestazione delle pagine e una piccola quantità di testo. Potevano contare su una potenza di calcolo e di una capienza di massa ancora bassa, così non potevano permettersi di leggere e conservare l’intera pagina, ma solo un breve estratto. Ad aiutare gli spider a classificare le pagine intervenivano i webmaster, che includevano importanti informazioni sui contenuti delle pagine nei meta tag, ovvero nell’intestazione. In questo modo gli spider potevano accedere a un sunto dei contenuti della pagina, limitandosi a leggere l’intestazione e poco altro testo. Gran parte degli utenti si limita a scrivere qualche parola nella casella, il motore si limita a proporre un elenco di pagine che contengono almeno una parola proposta: è la ricerca OR. Gran parte di essi però consentono di fare richieste più precise: trovare tutte le parole proposte, una frase esatta, parole che iniziano con alcune lettere, escludere una parola. In internet ci sono tante informazioni senza chiave di accesso razionale. La ricerca non può essere meccanica, ma occorre avere certe strategie per non trovare ciò che non ci interessa. La selezione delle informazioni è sempre più difficile del loro reperimento. Non basta sapere cosa si sta cercando, ma che tipo di info si cerca. Non tutte le info accessibili sono indicizzate nei motori di ricerca: prima di cercare è spesso utile trovare uno strumento di ricerca. Spesso un solo sito specializzato su un argomento fornisce più info di un motore. Posta elettronica Email È un sistema di comunicazione che usa una rete. È uno scambio di file, solitamente di testo, tra computer direttamente o tramite un intermediario usando i protocolli a livello applicazione POP, SMTP, IMAP. L’indirizzo di posta si divide in tre parti. Mario.rossi, @, gmail.com. Appunti di Informatica 13 fi La prima parte identifica l’utente; @ è il simbolo dell’invio; la terza parte è il nome del provider. In coda invece c’è il suffisso che identifica il tipo di dominio:.it,.com… Un messaggio è formato da una busta, che contiene A: un indirizzo e una lista di distribuzione, Cc: destinatari secondari, Ccn: destinatari in copia nascosta; Oggetto: argomento della lettera; e un foglio, che contiene il messaggio vero e proprio. Intelligenza artificiale L’intelligenza artificiale Macchine intelligenti L’intelligenza artificiale è l’abilità di una macchina di mostrare capacità umane come ragionamento, apprendimento, creatività. Turing nel 50 pubblica uno dei primi articoli su di essa, e il termine fu usato per la prima volta da McCarthy nel 56. MacCulloch e Pitts progettarono una rete neurale artificiale, e nei 70 fecero la loro prima comparsa i sistemi esperti che integrano una base di conoscenza su un certo dominio. Tra 80-90 le AI iniziano a svolgere compiti più complessi: nel 96 il supercomputer Deep Blue vinse una partita a scacchi contro il campione mondiale russo. Un computer capace di risolvere problemi specifici, come una partita a scacchi, senza coscienza delle attività svolte, è un’intelligenza artificiale debole; una forte ha coscienza di sé e può apprendere da sola. Le AI hanno 4 livelli funzionali: comprensione (riconoscimento di testi, immagini… per estrarre info); ragionamento (collegare le info in modo automatizzato); apprendimento (analisi di dati in ingresso e trovare corretti dati di uscita); interazione. L’apprendimento e l’addestramento Esistono 2 approcci di apprendimento: machine Learning: imparano da tantissimi dati a fare previsioni, estraggono specifiche feature e imparano da propri errori; deep Learning: sottoinsieme del ML, consente di notare schemi ricorrenti e fare classificazioni basate sulle reti neurali artificiali, che replicano i neuroni umani. Esse sono costruite da nodi e collegamenti; ogni nodo elabora l’informazione e la trasmette agli altri nodi mediante i collegamenti. La classificazione binaria sceglie tra due classi (palla/non palla), n-aria tra n classi. Se si ripete questo processo per migliaia di concetti e immagini l’intelligenza artificiale sarà in grado di riconoscere qualunque oggetto. Se una descrizione è sbagliata l’IA potrebbe imparare in modo non corretto e se non ci sono abbastanza esempi potrebbe non riconoscere ogni forma dell’oggetto, non riuscendo a generalizzare, come nel caso in cui ci sono troppi esempi simili. Intelligenza arti ciale generativa I sistemi di AI generativa possono generare nuovi dati o nuove versioni a partire da prompt formulati in linguaggio naturale dall’utente. Oggi sono usate in ambito artistico. Esse usano la GAN: 2 reti neurali artificiali: il network generatore, che crea immagini false ma verosimili e discriminatore, che cerca di capire se l’immagine è falsa. A un certo punto il discriminatore non riuscirà più a distinguere quelle vere da quelle false, perché il generatore migliora la produzione di immagini sulla base dei suoi riscontri. Chat GPT usa Generative Pretrained Transformer, uno strumento di elaborazione del linguaggio naturale o NLP che consente di comprendere i modelli del linguaggio umano e generare risposte simili a quelle umane. Viene addestrata a partire da tanti dati di testo ed è aggiornata fino a gennaio 2022. L’NLP è un campo che si occupa dell’interazione tra computer e linguaggio umano. Vi è la tokenizzazione: la trasformazione di un testo in un token (unità di significato); part of speech tagging (assegnazione di un parte del discorso a ciascun token); named entity recognition (identificazione e classificazione di entità normali predefinite); stemming e lemmatization (riduzione delle parole alla loro forma base per ridurne la complessità e considerarne le variazioni. Usa modelli di linguaggio basati su reti neurali profonde per compiti avanzati; il trasferimento di apprendimento, una tecnica che consiste nell’uso della conoscenza appresa da un compito per migliorare le prestazioni su un altro. Deve poi affrontare sfide come l’ambiguità, il riconoscimento di contesto, metafore e tono emotivo. Appunti di Informatica 14 fi