Informatica Monica Bianchini Email:

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Sistemi di numerazione
Informatica Generale Susanna Pelagatti
Fondamenti di Informatica
Sistemi di numerazione
Il Software.
Rappresentazioni numeriche
Sistemi di numerazione
Trasmissione delle informazioni
Prof. Emanuele Marino Concetti teorici di base della tecnologia dellinformazione.
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Vincenza Ferrara dicembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
Introduzione allo studio dell’informatica
Sommario Gli algoritmi I linguaggi per la formalizzazione di algoritmi
1 Informatica Presentazione del corso ENIAC Electronical Numerical Integrator and Calculator Il primo calcolatore elettronico, lENIAC Electronical Numerical.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Sistemi di Numerazione
Canale A. Prof.Ciapetti AA2003/04
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Fondamenti di Informatica
Corso di Informatica per Giurisprudenza
Rappresentazione dei dati
ANALOGICO e DIGITALE 10°C
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
La rappresentazione dellinformazione. 7-2 Digitalizzare linformazione Digitalizzare: rappresentare linformazione per mezzo di cifre (ad es: da 0 a 9)
Cos’è un problema?.
INTRODUZIONE Il termine Informatica deriva dalla fusione dei termini INFORmazione autoMATICA si intende indicare la scienza che ha il compito di raccogliere,
Gli esseri viventi ricevono informazione direttamente dal mondo circostante e dai propri simili attraverso i sensi (percezione). La percezione, tuttavia,
Codifica binaria Rappresentazione di numeri
Programma del corso Dati e loro rappresentazione Architettura di un calcolatore Sistemi operativi Linguaggi di programmazione Applicativi: - fogli elettronici.
Stefano Cagnoni Dip. Ingegneria dellInformazione Parco Area delle Scienze 181a PARMA Tel FAX
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Stefano Cagnoni Dip. Ingegneria dellInformazione Parco Area delle Scienze 181a PARMA Tel FAX
Informatica per medici
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet)
Educare al multimediale 1 – Verso il digitale 2 Presentazione a cura di Gino Roncaglia Prima parte: Informazione in formato digitale.
RAPPRESENTAZIONE DELL'INFORMAZIONE
Dalle potenze ai numeri binari
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
ELETTRONICA DIGITALE (II Parte)
STRUTTURA GENERALE DI UN ELABORATORE
Il computer: struttura fisica e struttura logica
Architettura del calcolatore
Un trucchetto di Moltiplicazione per il calcolo mentale
Che cos’è un sistema di numerazione?
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
RAPPRESENTAZIONE DELLE INFORMAZIONI
Sistemi ed automazione Industriale
La rappresentazione delle informazioni in un computer
Rappresentazione Dati Codificare informazioni nel Computer
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
INFORmazione autoMATICA
Rappresentazione dell’Informazione Stefano Cagnoni e Monica Mordonini
Rappresentazione della Informazione
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Conversione binario-ottale/esadecimale
Tecnologie dell'informazione e della comunicazione - Stacey S. Sawyer, Brian K. Williams Copyright © The McGraw-Hill Companies srl Introduzione.
Concetti di base Computer, HW e SW
Transcript della presentazione:

Informatica Monica Bianchini Email: monica@ing.unisi.it ENIAC Il primo calcolatore elettronico, l’ENIAC  Electronical Numerical Integrator and Calculator  nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti all’Università della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel 1946. L’ENIAC, per la cui costruzione furono usate 18000 valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. L’impiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici. Informatica Monica Bianchini Dipartimento di Ingegneria dell’Informazione ENIAC (1946 ca., 30 tonnellate, 17000 valvole) Email: monica@ing.unisi.it

Sommario Introduzione Impatto sociale della tecnologia informatica UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti. L’algebra di Boole Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione. Sommario Introduzione Impatto sociale della tecnologia informatica Il Personal Computer Il sistema operativo Bit e byte Sistemi di numerazione Aritmetica binaria La rappresentazione dei dati UNIVAC (1951)

Introduzione

Cenni storici  1 Anche se la presenza “invasiva” dell’informatica nella vita di tutti i giorni è un fenomeno relativamente recente, non recente è la necessità di avere a disposizione strumenti e metodi per contare rapidamente, elaborare dati, “calcolare” Le prime testimonianze di strumenti per contare risalgono a 30.000 anni fa I primi esempi di algoritmi  metodi di calcolo “automatico”  sono stati ritrovati in Mesopotamia su tavolette babilonesi risalenti al 18001600 a.C. Il sogno di costruire macchine capaci di effettuare calcoli automatici affonda le radici nel pensiero filosofico del ‘600: Pascal e Leibniz non solo affrontarono il problema di automatizzare il ragionamento logicomatematico (già studiato da Cartesio), ma si cimentarono nella realizzazione di semplici macchine per calcolare

Cenni storici  2 La macchina alle differenze, concepita da Babbage nel 1833, rappresenta il primo esempio di macchina programmabile di utilità generale (rimase un progetto: troppo complessa e critica la sua costruzione per le tecnologie dell’epoca) Fu Herman Hollerith, nel 1890, a sviluppare la macchina a schede perforate, per compiere le statistiche del censimento decennale degli Stati Uniti I dati venivano immessi su schede di cartone opportunamente perforate, le stesse schede che sono state usate fino a due decenni or sono Le schede venivano successivamente “contate” da una sorta di pantografo che permetteva diversi tipi di elaborazioni (totali, medie, statistiche, etc.) Si impiegarono due anni e mezzo ad analizzare i dati (contro i sette anni del censimento del 1880), nonostante l’incremento di popolazione da 50 a 63 milioni

Cenni storici  3 Successivamente la macchina a schede perforate venne utilizzata con successo per i censimenti in Austria, Norvegia e Russia, tanto che Hollerith decise di fondare una società: la Computing Tabulating Recording Company che, nel 1923, divenne l’International Business Machine, o IBM Con l’invenzione del tubo a vuoto (1904), del transistor (1947) e, infine, dei circuiti integrati (1969), l’evoluzione dei computer divenne inarrestabile Attualmente la potenza di calcolo degli elaboratori decuplica ogni 56 anni

Cenni storici  4 La costruzione dei primi calcolatori risale all’inizio degli anni ‘40, grazie alla tecnologia elettronica; i primi esemplari venivano programmati mediante connessioni elettriche e commutatori (ENIAC, Mark I) Il nome di Von Neumann è legato invece ai primi calcolatori a programma memorizzato realizzati alla fine degli anni ‘40 (EDSAC, Whirlwind, IAS, UNIVAC) La diffusione dei calcolatori a livello mondiale è avvenuta negli anni ‘60 e ‘70

Cenni storici  5 EDSAC (1949) ENIAC (1946) Mark I (1948) Whirlwind (1949) IAS (1952) UNIVAC (1952)

Cenni storici  6 Tuttavia, l’esplosione dell’informatica come fenomeno di massa è datata 1981, anno in cui l’IBM introdusse un tipo particolare di elaboratore: il Personal Computer (PC) La particolarità dei PC consisteva nell’essere “assemblati” con componenti facilmente reperibili sul mercato (e quindi a basso costo) Possibilità per qualsiasi casa produttrice di costruire “cloni” Attualmente i PC, o meglio il loro componente fondamentale  il microprocessore  è utilizzato in tutti i settori applicativi (non solo per elaborare dati): Telefoni cellulari Ricevitori satellitari digitali Bancomat e carte di credito Lavatrici e forni a microonde ...

Cenni storici  7 L’esigenza di realizzare sistemi di elaborazione dotati di più processori operanti in parallelo è stata sentita fin dalla preistoria dell’informatica In una relazione, datata 1842, del medico italiano Menabrea sulla macchina analitica di Babbage si fa riferimento alla possibilità di usare più macchine dello stesso tipo in parallelo per accelerare calcoli lunghi e ripetitivi Solo la riduzione dei costi dell’hardware ha consentito, verso la fine degli anni ‘60, l’effettiva costruzione dei primi supercalcolatori, come le macchine CDC6600 e Illiac e, successivamente, il Cray e le macchine vettoriali Recentemente, gli ulteriori sviluppi della microelettronica hanno permesso la realizzazione di calcolatori a parallelismo massiccio e a “grana fine”, caratterizzati dall’interconnessione di decine di migliaia di unità di elaborazione estremamente elementari: le reti neurali, capaci di “simulare” il comportamento del cervello umano, sulla base degli studi di McCulloch e Pitts (1943)

Cenni storici  8 Cray 1 (1976) Cray X1 (2002) Illiac (1955) CDC 6600 (1963) PC IBM (1981) Portatile e Palmare (2004)

Che cos’è l’informatica  1 Informatica  fusione delle parole informazione e automatica  l’insieme delle discipline che studiano gli strumenti per l’elaborazione automatica dell’informazione e i metodi per un loro uso corretto ed efficace L’infomatica è la scienza della rappresentazione e dell’elaborazione dell’informazione L’accento sull’ “informazione” fornisce una spiegazione del perché l’informatica stia rapidamente diventando parte integrante di tutte le attività umane: laddove deve essere gestita dell’informazione, l’informatica è un valido strumento di supporto Il termine “scienza” sottolinea il fatto che, nell’informatica, l’elaborazione dell’informazione avviene in maniera sistematica e rigorosa, e pertanto può essere automatizzata

Che cos’è l’informatica  2 L’informatica non è, quindi, la scienza e la tecnologia dei calcolatori elettronici: il calcolatore è lo strumento che la rende “operativa” L’elaboratore (computer, calcolatore) è un’apparecchiatura digitale, elettronica ed automatica capace di effettuare trasformazioni sui dati: Digitale: i dati sono rappresentati mediante un alfabeto finito, costituito da cifre (digit), che ne permette il trattamento mediante regole matematiche Elettronica: realizzazione tramite tecnologie di tipo elettronico Automatica: capacità di eseguire una successione di operazioni senza interventi esterni

Caratteristiche dell’elaboratore In particolare, l’elaboratore… …è una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche ...è velocissimo, nel compiere le operazioni per le quali è stato progettato ...è puntuale, nell’applicare le regole che conosce ...è duttile e si adatta bene ad eseguire nuove tecniche, purché questo gli venga “spiegato” in modo dettagliato e non ambiguo ...ha una buona memoria, estremamente ampia ed organizzata in modo razionale ...non è intelligente, qualunque sia l’accezione di questo termine, non è adatta a descriverne le caratteristiche ...non è in grado di compiere deduzioni, o ragionamenti di altro tipo in modo autonomo ...non è in grado di comprendere un problema ...non è in grado di capire la soluzione di un problema, né di capire se la soluzione raggiunta è quella giusta

La macchina universale Programma: sequenza di operazioni atte a predisporre l’elaboratore alla soluzione di una determinata classe di problemi Il programma è la descrizione di un algoritmo in una forma comprensibile all’elaboratore Algoritmo: sequenza di istruzioni attraverso le quali un operatore umano è capace di risolvere ogni problema di una data classe; non è direttamente eseguibile dall’elaboratore L’elaboratore è una macchina universale: cambiando il programma residente in memoria, è in grado di risolvere problemi di natura diversa (una classe di problemi per ogni programma)

L’architettura alla Von Neumann La capacità dell’elaboratore di eseguire successioni di operazioni in modo automatico è determinata dalla presenza di un dispositivo di memoria Nella memoria sono registrati i dati e... ...la descrizione delle operazioni da eseguire (nell’ordine secondo cui devono essere eseguite): il programma, la “ricetta” usata dall’elaboratore per svolgere il suo compito Il programma viene interpretato dall’unità di controllo  Modello di Von Neumann

Ancora sull’informatica... L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione (ACM  Association for Computing Machinery) Nota: È possibile svolgere un’attività concettualmente di tipo informatico senza l’ausilio del calcolatore, per esempio nel progettare ed applicare regole precise per svolgere operazioni aritmetiche con carta e penna; l’elaboratore, tuttavia, è uno strumento di calcolo potente, che permette la gestione di quantità di informazioni altrimenti intrattabili

Impatto sociale della tecnologia informatica

Vantaggi e svantaggi dell’Information Technology La tecnologia informatica è l’innovazione più importante in ambito scientifico dall’inizio della Rivoluzione Industriale: fornisce la capacità di completare attività ripetitive rapidamente, facilmente, efficacemente, per migliorare le tecnologie mediche, esplorare lo spazio, per le comunicazioni, etc. Tuttavia, la tecnologia informatica ha introdotto il rischio, soprattutto a causa di Internet, della perdita della privacy, della penetrazione e diffusione di informazioni riservate, di intromissione non autorizzata nelle comunicazioni, di accesso ai sistemi bancari con possibilità di danni economici catastrofici

Vantaggi  1 I calcolatori hanno avuto un impatto immenso sulla società, sull’economia, e nella vita quotidiana Sono impiegati per l’informazione, nei servizi al consumatore, nelle comunicazioni, nel controllo dei processi, nell’istruzione, negli strumenti medicali e per la ricerca, nella pianificazione delle attività commerciali, nella gestione delle risorse, nelle previsioni meteorologiche, per la progettazione di oggetti di utilità quotidiana, per auto, aerei, satelliti, navicelle spaziali... Esistono calcolatori palmari in grado di interpretare la scrittura manuale, visualizzare filmati, inviare fax

Vantaggi  2 Inoltre, l’informatica ha indotto… Miglioramento delle condizioni di lavoro Aumento della velocità di esecuzione e della qualità del lavoro prodotto Riduzione del margine di errore nell’esecuzione di lavori complessi Possibilità di utilizzo di apparecchi programmati per l’esecuzione di lavori rischiosi o in ambienti ostili Rapidità ed economia delle comunicazioni Rapidità ed efficacia nella ricerca delle informazioni Riduzione dei supporti cartacei e dell’ingombro degli archivi

Applicazioni medicali Controllo delle funzioni vitali primarie e dosaggio farmacologico automatico TAC (Tomografia Assiale Computerizzata) e Risonanza Magnetica: si elaborano i dati generati da un campo magnetico attorno al corpo umano, e si producono immagini degli organi interni, non rilevabili con i raggi X Interventi di microchirurgia guidati dall’elaboratore Interfacce intelligenti di comunicazione per disabili: mouse vocali, riconoscitori vocali, scanner e sintetizzatori vocali Servizi di telesoccorso e telemedicina

Gestione delle informazioni Nel 1993, la biblioteca della Facoltà di Legge della Columbia University cancellò il progetto di costruire un edificio da 20mil$ per acquistare un calcolatore da 1.5mil$, per memorizzare i contenuti di decine di migliaia di libri vecchi e soggetti a deterioramento; oggi le biblioteche digitali sono molto diffuse Riduzione dei consumi/rifiuti cartacei: invece di gettare nel cestino un documento obsoleto, lo si cancella semplicemente da una memoria di massa Facilità di accesso alla maggior parte dello scibile umano attraverso il World Wide Web (WWW)

Automazione I robot vengono impiegati nelle catene di montaggio per l’assemblaggio veloce ed accurato dei prodotti di uso quotidiano (elettrodomestici, automobili, etc.) Vengono impiegati per lavori in ambienti considerati pericolosi o a rischio per le persone (per ispezionare strutture e cavi di comunicazione sui fondali marini) Il Sojourner ha orbitato intorno a Marte per esplorarlo e le comunicazioni satellitari hanno permesso a milioni di persone di osservarne le immagini al televisore o sullo schermo del proprio calcolatore

Banche e pubbliche amministrazioni I settori bancario, telefonico e della pubblica amministrazione hanno creato archivi informatizzati e centralizzati che rendono efficiente e trasparente il rapporto con il cittadino: Consentono l’erogazione immediata di certificati Consentono la telelettura dei contatori e la domiciliazione bancaria delle bollette, garantendo maggiore fedeltà nel rilevamento dei consumi Attraverso Internet, si può ottenere accesso ai servizi di homebanking che permettono, ad esempio, la stampa sulla propria stampante personale del proprio estratto conto Smartcard, tessere “intelligenti” in grado di contenere informazioni ed effettuare operazioni autonomamente (senza riferimento ad un host) Esempio: servizi integrati per i turisti offerti dal comune di Siena con smartcard per cellulare

Trasporti Le automobili di ultima generazione sono in grado di effettuare un controllo di tutti i loro componenti, segnalando eventuali malfunzionamenti Gli impianti di frenatura ABS sono controllati da un piccolo computer Grazie ai sistemi satellitari di geoposizionamento (GPS) ed a particolari sensori di cui può essere dotata l’autovettura, la guida può essere affidata al pilota automatico

Cambiamenti Nel 1940, i primi ricercatori che crearono i calcolatori elettronici stimarono che in USA sarebbero stati necessari non più di una mezza dozzina di elaboratori Nel 1976, il New York Times pubblicò un libro dal titolo “La scienza nel ventesimo secolo”, nel quale il calcolatore veniva menzionato una sola volta, e indirettamente, in relazione al calcolo delle orbite dei pianeti Oggi, la presenza del calcolatore è invasiva nella vita quotidiana Occorre che le persone si adattino alla prospettiva che alcuni lavori stanno diventando/diventeranno obsoleti: taluni temono questo cambiamento e lo considerano distruttivo (software apartheid )

L’ambiente digitale: esiste un grande progetto? L’obiettivo apparente dell’ambiente digitale è quello di fornire voce e dati, multimedialità ed interattività ad alta velocità, ovunque, a basso costo, con affidabilità e sicurezza Ma che aspetto avrà l’ambiente digitale? Alcuni ritengono che sia opportuno seguire un modello regolamentato, mentre altri sono convinti che il motore dell’evoluzione debba essere la competizione L’espansione progressiva del mondo delle informazioni, in termini di produttività e ricchezza, si accompagna con un inevitabile e crescente divario “digitale” Il divario digitale è una delle tante sfide da affrontare mentre la tecnologia delle informazioni rivoluziona il mondo Digital Divide è l’espressione utilizzata per definire la disparità esistente nel mondo tra chi ha la possibilità di accedere ed utilizzare le tecnologie dell’informazione e della comunicazione e chi invece, per ragioni differenti, ne è escluso

Il Personal Computer

Hardware  1 Hardware: componenti fisiche dell’elaboratore; la forma e le prestazioni dell’hardware variano in funzione del tipo di elaboratore Principali componenti hardware: unità di sistema schermo tastiera a cui si aggiunge l’hardware esterno, costituito da periferiche quali stampanti, mouse o modem

Hardware  2 Unità di sistema: è il cuore dell’elaboratore, contiene tutti i circuiti elettronici che ne consentono il funzionamento Case dell’unità di sistema: contiene un alimentatore, le unità a disco, una scheda di sistema e varie schede adattatrici Scheda di sistema: contiene i microprocessori, la memoria, i circuiti di controllo, e i connettori che la collegano alle periferiche (per esempio, la tastiera, lo schermo, il mouse) Tutti i PC sono composti dagli stessi componenti fisici La struttura per blocchi distinti è la caratteristica peculiare dei PC  siano essi desktop, laptop, notebook : unità di sistema, monitor e tastiera rappresentano i blocchi costitutivi fondamentali Uniformità si ha anche nell’aspetto funzionale delle componenti che costituiscono un PC

Software Software: l’insieme dei programmi installati sul computer e delle informazioni che l’elaboratore utilizza per effettuare i suoi compiti Programmi: costituiti da una serie di istruzioni che l’elaboratore è in grado di comprendere ed eseguire il sistema operativo (SO, Microsoft WINDOWS o LINUX) fornisce i dati e le routine necessari all’elaboratore per “funzionare” e comunicare con gli utenti; il SO gestisce le operazioni di lettura/scrittura su disco o in memoria, l’output su schermo, interpreta i tasti che vengono premuti sulla tastiera o sul mouse, gestisce file e cartelle, etc. il software applicativo è l’insieme dei programmi che “girano” sull’elaboratore e svolgono compiti e funzioni specifiche (es.: programmi di elaborazione testi, quali Word, database come Access, fogli elettronici come Excel, programmi destinati alla comunicazione come Outlook Express, destinati alla grafica come AutoCAD, o al calcolo come Matlab, o di utilità, come Norton Utilities) Dati: informazioni interpretate e/o create dai programmi

Il sistema operativo

Il sistema operativo  1 Tutte le piattaforme hardware e software richiedono un sistema operativo (SO) All’accensione del PC, occorre attendere alcuni istanti prima di poter iniziare a lavorare: durante questa pausa il computer “carica” il SO Un SO è un programma che gestisce processi, amministra la memoria, controlla file e cartelle, sorveglia il flusso di informazioni con le periferiche hardware e presenta all’utente del PC un’interfaccia I programmi e le applicazioni in esecuzione sul sistema si rivolgono al SO mediante “richieste”, inoltrate attraverso specifiche system call

Il sistema operativo  2 Solitamente, il SO è caratterizzato da un nucleo di moduli essenziali, il kernel La struttura e le funzionalità del nucleo, la sua architettura, hanno una forte influenza sulle modalità di programmazione e sulla cultura tecnica che cresce intorno alle macchine su cui un SO è installato Esempi: SO multiutente: permettono a più persone di accedere allo stesso computer da postazioni differenti; il SO deve prendersi carico della gestione dei profili d’accesso dei diversi utenti e dei diversi livelli di sicurezza a cui ciascun utente è abilitato, poiché non tutti possono eseguire le stesse operazioni e devono essere previsti differenti profili d’accesso corrispondenti a differenti livelli di permesso SO multiprocessing: possono gestire l’utilizzo di più processori sullo stesso computer

Il sistema operativo  3 Il SO raccoglie ciò che si scrive sulla tastiera, visualizza le informazioni sullo schermo, memorizza i file in cartelle sul disco, si tiene in contatto con le periferiche, mette a disposizione dell’utente un’interfaccia per lavorare; si occupa di assicurare una corretta gestione della memoria e dei processi e della sicurezza dei dati All’avvio del PC, durante la fase di boot, il SO viene caricato in memoria e si attiva per una serie di funzionalità… In sistemi multitasking, in cui più programmi vengono eseguiti contemporaneamente, determina quali applicazioni debbano essere eseguite e con che ordine di priorità; decide quanto tempo debba essere assegnato a ciascun processo prima del contextswitch Gestisce la condivisione della memoria tra le applicazioni in esecuzione Gestisce il flusso di I/O da componenti e periferiche esterne, come hard disk, stampanti e porte Informa l’utente sull’andamento delle procedure attivate e sugli eventuali errori occorsi Prende in carico la gestione di procedure di routine (es., la stampa)

I driver di dispositivo  1 Il SO è l’interfaccia tra l’hardware ed il software applicativo e garantisce i servizi di base che assicurano il funzionamento dell’elaboratore I moderni SO sono costituiti da un numero elevato di piccoli moduli, ognuno dei quali è formato da varie sezioni destinate ad eseguire una singola funzione Le sezioni che controllano direttamente l’hardware si chiamano driver di dispositivo, perché “pilotano” i dispositivi Ogni driver è formato da una serie di istruzioni che “spiegano” come controllare uno specifico componente hardware

I driver di dispositivo  2 All’accensione, il bootstrap loader carica il kernel che provvede al caricamento degli opportuni driver dei dispositivi, tra cui quelli per la tastiera, per lo schermo, per il mouse, per le porte, etc. L’uso dei driver fornisce ai programmi applicativi un’interfaccia indipendente dai dispositivi: lo stesso programma applicativo funziona su tutti i PC che abbiano installato l’apposito driver

Prospettive I SO si stanno evolvendo verso un sempre maggior numero di funzionalità, un tempo accessorie  interfacce grafiche utente, funzionalità di interconnessione in rete, di riconoscimento vocale  che tendono a collocarsi accanto ai tradizionali canali di inputoutput La sfida maggiore: affidabilità e sicurezza Quando il PC si blocca, spesso occorre spegnere il computer e attendere che il sistema venga riavviato, con perdita di tempo/dati: oggi i SO tendono a una maggiore protezione nei confronti di questo tipo di eventualità Esempio: le nuove versioni di Windows hanno introdotto una modalità più raffinata di protezione del sistema, per cui se un’applicazione si blocca può essere chiusa (in gergo, “terminata”) senza trascinare nella sua caduta l’intero sistema

Bit e byte

Sistemi di numerazione Sistemi di numerazione posizionali: La base del sistema di numerazione Le cifre del sistema di numerazione Il numero è scritto specificando le cifre in ordine, ed il valore del numero dipende dalla posizione relativa delle cifre Esempio: Il sistema decimale (Base 10) Cifre : 0 1 2 3 4 5 6 7 8 9 5641 = 5  103 + 6  102 + 4  101 + 1  100 Posizione: 3 2 1 0

N = cnBn + cn1Bn1 +…+ c2B2 + c1B1 +c0B0 Sistemi in base B La base definisce il numero di cifre diverse nel sistema di numerazione La cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1, 2, …, B1; se B>10 occorre introdurre B10 simboli in aggiunta alle cifre decimali Un numero intero N si rappresenta con la scrittura (cncn1…c2c1c0)B N = cnBn + cn1Bn1 +…+ c2B2 + c1B1 +c0B0 cn è la cifra più significativa, c0 la meno significativa Un numero frazionario N’ si rappresenta con la scrittura (0.c1c2…cn)B N’ = c1B1 + c2B2 +…+ cnBn

Numeri interi senza segno Con n cifre, in base B, si rappresentano tutti i numeri interi positivi da 0 a Bn1 (Bn numeri distinti) Esempio: base 10 00 01 02 …. 98 99 102 = 100 valori 2 cifre: da 0 a 1021 = 99 Esempio: base 2 00 01 10 11 2 cifre: da 0 a 221 = 3 22 = 4 valori

Il sistema binario (B=2) La base 2 è la più piccola per un sistema di numerazione Cifre: 0 1  bit (binary digit) Forma polinomia Esempi: (101101)2 = 125 + 024 + 123 + 122 + 021 + 120 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10 (0.0101)2 = 021 + 122 + 023 + 124 = 0 + 0.25 + 0 + 0.0625 = (0.3125)10 (11.101)2 = 121 + 120 + 121 + 022 + 123 = 2 + 1 + 0.5 + 0 + 0.125 = (3.625)10

Dal bit al byte Un byte è un insieme di 8 bit (un numero binario a 8 cifre) Con un byte si rappresentano gli interi fra 0 e 281 = 255 Il byte è l’elemento base con cui si rappresentano i dati nei calcolatori; si utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)… b7b6b5b4b3b2b1b0 00000000 00000001 00000010 00000011 ……………. 11111110 11111111 28 = 256 valori distinti

Dal byte ai kilobyte Potenze del 2 Cosa sono i Kb (Kilobyte), i Mb (Megabyte), ed i Gb (Gigabyte)? 24 = 16 28 = 256 216 = 65536 210 = 1024 (K=Kilo) 220 = 1048576 (M=Mega) 230 = 1073741824 (G=Giga) 1 Kb = 210 byte = 1024 byte 1 Mb = 220 byte = 1048576 byte 1 Gb = 230 byte = 1073741824 byte 1 Tb = 240 byte = 1099511627776 byte (Terabyte)

Esempi  1 In qualsiasi base, l’essere il sistema di numerazione posizionale, impone che combinazioni diverse di cifre uguali rappresentino numeri diversi; ad esempio: (319)10  (193)10 (152)6  (512)6, infatti... (152)6=162+561+260=36+30+2=(68)10 (512)6=562+161+260=180+6+2=(188)10 Numeri che hanno identica rappresentazione, in basi diverse, hanno valori diversi: (234)10  (234)8 , infatti... (234)8 = 282 + 381 + 480 = 264 + 38 + 4 = 128+24+4 = (156)10 Osservazione: più piccola è la base, minore è il valore del numero rappresentato dalla stessa sequenza di cifre

Esempi  2 La notazione posizionale si applica anche per il calcolo del valore dei numeri frazionari, infatti... (0.872)10 = 8101 + 7102 + 2103 = 8/10 + 7/100 + 2/1000 = 0.8 + 0.07 + 0.002 Quante cifre occorreranno per rappresentare il numero decimale 36 in base 2? Sappiamo che con n cifre si rappresentano i numeri da 0 a 2n1, quindi... per n=1 (con una cifra) si rappresentano 0...211  0,1 per n=2: 0...221  0...3 per n=3: 0...231  0...7 per n=4: 0...241  0...15 per n=5: 0...251  0...31 per n=6: 0...261  0...63 Effettivamente possiamo verificare che (100100)2=(36)10, infatti... 100100=125+024+023+122+021+020 = 32 + 4 = 36 con 6 cifre necessarie per la codifica del numero in base 2

Esempi  3 Quesito: Per quale base B risulterà vera l’uguaglianza 17 + 41 + 22 = 102 ? Se i numeri sono rappresentati in base B, sappiamo che: (17)B = 1B1+7B0 = B+7 (41)B = 4B1+1B0 = 4B+1 (22)B = 2B1+2B0 = 2B+2 (102)B = 1B2+0B1+2B0 = B2+2 da cui... B+7+4B+1+2B+2 = 7B+10 = B2+2  Si ottiene un’equazione di 2° grado: B2  7B  8 = 0 Risolvendo:  = 49+32 = 81 B = (7   )/2 = (7+9)/2 = 8 È la soluzione! (79)/2 = 1 Non può essere una base

Esempi  4 Che valore decimale assume il numero (1C5)16? Abbiamo detto che per un sistema di numerazione in base B, la cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1,2,…,B1; quindi nel sistema esadecimale (in base 16) dovremmo avere le cifre da “0” a “15”... ... che rappesentiamo, con un solo carattere, con A=10, B=11, C=12, D=13, E=14, F=15 Quindi... (1C5)16 = 1(16)2 + 12(16)1 + 5(16)0 = 256 + 192 + 5 = (453)10

Da decimale a binario  1 Si divide ripetutamente il numero intero decimale per 2 fino ad ottenere un quoziente nullo: le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è l’ultimo resto Esempio 1: convertire in binario (43)10 43 : 2 = 21 + 1 21 : 2 = 10 + 1 10 : 2 = 5 + 0 5 : 2 = 2 + 1 2 : 2 = 1 + 0 1 : 2 = 0 + 1 resti bit più significativo (43)10 = (101011)2

Da decimale a binario  2 Esempio 2: convertire in binario (270)10 Nota (banale): i numeri pari terminano per 0, i dispari per 1 270 : 2 = 135 + 0 135 : 2 = 67 + 1 67 : 2 = 33 + 1 33 : 2 = 16 + 1 16 : 2 = 8 + 0 8 : 2 = 4 + 0 4 : 2 = 2 + 0 2 : 2 = 1 + 0 1 : 2 = 0 + 1 (270)10 = (100001110)2

Da decimale a binario  3 Si moltiplica ripetutamente il numero frazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte; le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione Esempio: convertire in binario (0.21875)10 e (0.45)10 .45  2 = 0.9 .90  2 = 1.8 .80  2 = 1.6 .60  2 = 1.2 .20  2 = 0.4 etc. (0.45)10  (0.01110)2 .21875  2 = 0.4375 .4375  2 = 0.875 .875  2 = 1.75 .75  2 = 1.5 .5  2 = 1.0 (0.21875)10 = (0.00111)2 bit più significativo

Esercizio Si verifichino le seguenti corrispondenze: (110010)2=(50)10 (1110101)2=(102)10 (1111)2=(17)10 (11011)2=(27)10 (100001)2=(39)10 (1110001110)2=(237)10 Da binario a decimale Oltre all’espansione esplicita in potenze del 2  forma polinomia… …si può operare nel modo seguente: si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo (101011)2 = 1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20 = (43)10 Esempio: convertire in decimale (101011)2 bit più significativo 1 x 2 = 2 + 0 2 x 2 = 4 + 1 5 x 2 = 10 + 0 10 x 2 = 20 + 1 21 x 2 = 42 + 1 = 43 (101011)2 = (43)10

Aritmetica binaria: addizione Le regole per l’addizione di due bit sono L’ultima regola è… (1)2+(1)2 = (10)2 … (1+1=2)10 !! 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 con riporto di 1 Esempio 1 11 1 01011011+ 01011010 10110101 riporti 181 91+ 90

Aritmetica binaria: moltiplicazione Le regole della moltiplicazione di 2 bit sono Moltiplicare per 2n corrisponde ad aggiungere n zeri in coda al moltiplicando 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 Esempio 1100111 x 101 1100111 0000000 1000000011 110011 x 10000 = 1100110000 x 16 = 24

Conversioni di base Notiamo che valgono le seguenti uguaglianze: (000)2 = (0)8 (0000)2 = (0)16 (001)2 = (1)8 (0001)2 = (1)16 (010)2 = (2)8 (0010)2 = (2)16 (011)2 = (3)8 (0011)2 = (3)16 (100)2 = (4)8 (0100)2 = (4)16 (101)2 = (5)8 (0101)2 = (5)16 (110)2 = (6)8 (0110)2 = (6)16 (111)2 = (7)8 (0111)2 = (7)16 (1000)2 = (8)16 (1001)2 = (9)16 (1010)2 = (A)16 (1011)2 = (B)16 (1100)2 = (C)16 (1101)2 = (D)16 (1110)2 = (E)16 (1111)2 = (F)16 0001 1010 0101 = (1A5)16 (421)10 = (110100101)2 110 100 101 = (645)8 Tabella di conversione binario/ottale Tabella di conversione binario/esadecimale

Sistema esadecimale Esempio: Esempio: La base 16 è molto usata in campo informatico Una cifra esadecimale corrisponde a 4 bit: si possono rappresentare numeri binari lunghi con poche cifre (1/4) La conversione da binario ad esadecimale è immediata: si raggruppano le cifre binarie in gruppi di 4 (da destra) e si sostituscono le opportune cifre esadecimali Esempio: (3A2F)16 = 3163 + 10162 + 2161 + 15160 = 34096 + 10256 + 216 + 15 = (14895)10 Esempio: 1101 1001 0001 1011 0100 0011 0111 1111 D 9 1 B 4 3 7 F (D91B437F)16

Da esadecimale a binario Viceversa, la conversione da esadecimale a binario si ottiene espandendo ciascuna cifra con i 4 bit corrispondenti Esempio: convertire in binario il numero esadecimale 0x0c8f Notazione usata in molti linguaggi di programmazione per rappresentare numeri esadecimali 0 c 8 f 0000 1100 1000 1111 Il numero binario ha 4 x 4 =16 bit

La rappresentazione dei dati

Interi con segno Il bit più significativo rappresenta il segno: 0 per i numeri positivi, 1 per quelli negativi: esiste uno zero positivo (00…0) e uno zero negativo (10…0) Se si utilizzano n bit, si rappresentano tutti i numeri compresi fra (2n11) e 2n11 Esempio: con 4 bit si rappresentano i numeri fra 7 ((231)) e +7 (231) 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 0 1001 1 1010 2 1011 3 1100 4 1101 5 1110 6 1111 7 positivi negativi

Numeri in virgola mobile La rappresentazione dei numeri frazionari in virgola mobile è, utilizzando la notazione scientifica (es. 120 = 1.2102 = 0.12103),… Singola precisione 31 22 23 23 bit 8 bit Mantissa (o Caratteristica) Segno Esponente Il valore è (1)S 0.M  2E 0000111 11111010111000000000000 (125.4375)10 = (1111101.0111)2 = 0.11111010111  27

Codifica dei caratteri alfabetici Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli) Gli elaboratori elettronici trattano numeri: si codificano caratteri e simboli per mezzo dei numeri Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (æ, ã, ë, è, …) A 01000001 3 00110011 $ 00100100

Codifica ASCII American Standard Code for Information Interchange: definisce una tabella di corrispondenza fra ciascun carattere e un codice a 7 bit (128 caratteri) I caratteri, in genere, sono rappresentati con 1 byte (8 bit): i caratteri con il bit più significativo a 1 (quelli con codice dal 128 al 255) fanno parte di un’estensione della codifica La tabella comprende sia caratteri di controllo (codici da 0 a 31) che caratteri stampabili I caratteri alfabetici/le cifre hanno codici ordinati secondo l’ordine alfabetico/numerico 0 48 1 49 ……. 8 56 9 57 A 65 B 66 ……. Y 89 Z 90 a 97 b 98 ……. y 121 Z 122 cifre maiuscole minuscole

Caratteri di controllo ASCII I caratteri di controllo (codice da 0 a 31) hanno funzioni speciali Si ottengono o con tasti specifici o con la combinazione Ctrl+carattere Ctrl Dec Hex Code Nota ^@ 0 0 NULL carattere nullo ^A 1 1 SOH partenza blocco ….. …. …. …… ………………… ^G 7 7 BEL beep ^H 8 8 BS backspace ^I 9 9 HT tabulazione orizzontale ^J 10 A LF line feed (cambio linea) ^K 11 B VT tabulazione verticale ^L 12 C FF form feed (alim. carta) ^M 13 D CR carriage return (a capo) …… …. … …. ……………………. ^Z 26 1A EOF fine file ^[ 27 1B ESC escape …. …. ….. ….. ……….. ^_ 31 1F US separatore di unità

Caratteri ASCII stampabili Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr 32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q 34 22 ” 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v 39 27 ’ 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B { 44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C | 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D } 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~ 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL Nota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. ‘5’ - ‘0’ = 5348 = 5)

Tabella ASCII estesa I codici oltre il 127 non sono compresi nello standard originario

Codifica delle immagini  1 Le immagini vengono anch’esse codificate come una sequenza di bit: il processo di “traduzione” da un’immagine ad una sequenza binaria prende il nome di digitalizzazione L’immagine è suddivisa in punti o pixel (per picture element ), e ciascun punto viene codificato con un numero, che corrisponde ad un colore o ad un particolare tono di grigio Si uitilizzano un numero di colori o di sfumature che sia una potenza del 2, in modo da codificare l’informazione legata a ciascun pixel con un opportuno numero di bit

Codifica delle immagini  2 Le immagini vengono memorizzate come lunghe sequenze di bit: per interpretarle è necessario conoscere... ...le dimensioni dell’immagine (base ed altezza in numero di pixel), detta anche risoluzione ...il numero di colori (o toni di grigio) disponibili per ogni pixel Se un immagine viene codificata ad una data risoluzione, potrà comunque essere presentata su un dispositivo a più bassa risoluzione, a patto di “ignorare” parte dell’informazione

Codifica delle immagini  3 Come è avvenuto per i caratteri, anche per le immagini sono stati definiti standard di codifica, che assicurano la compatibilità fra sistemi diversi, per quanto concerne la trasmissione e la visualizzazione delle immagini TIFF  Tagged Image File Format JPEG PNG  Portable Network Graphics Per ridurre lo spazio necessario per memorizzare le immagini si utilizzano tecniche di compressione (utili anche per la trasmissione su rete Internet)

Codifica delle immagini  4 Le tecniche di compressione si dividono in... Tecniche lossless: non provocano perdita di informazione, sono adatte a codificare immagini in cui sono presenti ampie aree monocromatiche  si codificano in maniera compatta insiemi di pixel aventi le stesse caratteristiche Tecniche lossly: provocano perdita di informazione, facendo decadere la qualità dell’immagine Normalmente ai formati JPEG e PNG, molto diffusi per lo scambio di immagini su Internet, si applicano metodi di compressione lossly