Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'Informatica Umanistica: Architettura, Sistemi Operativi e Basi di Dati, Dispense di Fondamenti di informatica

riassunto informatica umanistica

Tipologia: Dispense

2021/2022

Caricato il 25/06/2022

Giorg98
Giorg98 🇮🇹

4.5

(15)

13 documenti

1 / 59

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
RIASSUNTO: INFORMATICA UMANISTICA
1. FONDAMENTI DI INFORMATICA E HARDWARE
Il termine “informatica” deriva dal francese informatique, neologismo creato da Dreyfus il quale,
volle così battezzare la disciplina tecnico- scientifica che si occupa della progettazione e della
costruzione di macchine in grado di trattare o elaborare in modo automatico l’informazione. Gli
strumenti frutto delle tecnologie informatiche, primo fra tutti il calcolatore elettronico,
rappresentano la realizzazione del sogno di disporre di elaboratori automatici, ovvero macchine in
grado di compiere autonomamente attività di elaborazione dell’informazione e di garantire i
seguenti benefici rispetto all’elaborazione condotta dall’uomo:
riduzione dei tempi di elaborazione
maggiore affidabilità, ovvero minore probabilità di errore
liberazione dell’uomo dalle incombenze noiose
più facile e diffuso impiego di elaborazioni che quando condotte dall’uomo richiedono
competenze poco comuni.
L’informazione che per prima ha attirato l’attenzione dell’uomo verso la realizzazione di
elaboratori, prima semi-automatici e poi automatici, è quella espressa in forma quantitativa e in
particolare numerica. Ciò ha condotto alla diffusione del termine calcolatore (in inglese, computer)
in alternativa ad “elaboratore” meno comune ma più appropriato. Poiché negli ultimi decenni il
potenziale dei calcolatori si è incrementato grazie alla loro interconnessione in rete, la convergenza
tra la tecnologia dell’informazione e le telecomunicazioni, che si occupano della trasmissione
dell’informazione a distanza con lo scopo di comunicare, ha dato origine ad una nuova disciplina
denominata Information & Communication Technology (ICT): sotto questa definizione rientra
un’enorme quantità di tecnologie con cui abbiamo a che fare ogni giorno.
Il termine “informazione” si parla di informazione, società dell’informazione, tecnologie
dell’informazione, potere dell’informazione, monopolio dell’informazione. Nei diversi contesti, il
termine assume significati e valenze un po' differenti, in relazione ad altri contesti quali
comunicazione, controllo, dati, conoscenza, percezione, rappresentazione.
Nell’ambito dell’informatica è importante mettere in relazione il significato di questo termine con
quello di altri, in particolare “dato” e “conoscenza”. Dato, informazione e conoscenza si collocano
rispettivamente su tre livelli, in ordine crescente. Un dato è un insieme di simboli tracciati su un
supporto fisico che rappresenta una proprietà di un oggetto nel mondo reale senza contenere alcun
riferimento alla proprietà stessa. L’approccio alla risoluzione dei problemi, basato sull’informazione
è una delle conquiste più importanti nella storia dell’umanità. Esso consente di compiere
ragionamenti, e quindi di prendere decisioni sugli oggetti del mondo reale, acquisendo solo un
numero limitato di informazioni o intervenire direttamente sugli oggetti in questione. Tale approccio
è alla base di tutte le discipline tecnico-scientifiche, sia quelle antiche quali geometria o algebra, sia
quelle più recenti come la fisica e la matematica.
Per comunicare, gli uomini hanno sviluppato i linguaggi naturali (italiano, inglese, francese). Una
caratteristica di tali linguaggi è rappresentata dalla loro inerente ambiguità, del fatto cioè che un
qualsiasi costrutto formulato in questi linguaggi è tendenzialmente polisemico, ovvero soggetto ad
una pluralità di sensi, di significati. Può accadere che, in una comunicazione in linguaggio naturale,
il destinatario di un messaggio gli attribuisca un senso diverso da quello che gli è stato dato dal
mittente. La disambiguazione è più semplice per gli uomini, quando il messaggio è collocato
all’interno di un particolare contesto.
I linguaggi formali vengono sviluppati e impiegati in tutti quegli ambiti, come l’informatica, la
matematica e la logica, in cui è importante evitare l’ambiguità. La definizione di linguaggio formale
prevede:
- l’individuazione di un alfabeto, un elenco finito di simboli;
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b

Anteprima parziale del testo

Scarica Introduzione all'Informatica Umanistica: Architettura, Sistemi Operativi e Basi di Dati e più Dispense in PDF di Fondamenti di informatica solo su Docsity!

RIASSUNTO: INFORMATICA UMANISTICA

1. FONDAMENTI DI INFORMATICA E HARDWARE

Il termine “informatica” deriva dal francese informatique, neologismo creato da Dreyfus il quale, volle così battezzare la disciplina tecnico- scientifica che si occupa della progettazione e della costruzione di macchine in grado di trattare o elaborare in modo automatico l’informazione. Gli strumenti frutto delle tecnologie informatiche, primo fra tutti il calcolatore elettronico, rappresentano la realizzazione del sogno di disporre di elaboratori automatici, ovvero macchine in grado di compiere autonomamente attività di elaborazione dell’informazione e di garantire i seguenti benefici rispetto all’elaborazione condotta dall’uomo:

  • riduzione dei tempi di elaborazione
  • maggiore affidabilità, ovvero minore probabilità di errore
  • liberazione dell’uomo dalle incombenze noiose
  • più facile e diffuso impiego di elaborazioni che quando condotte dall’uomo richiedono competenze poco comuni. L’informazione che per prima ha attirato l’attenzione dell’uomo verso la realizzazione di elaboratori, prima semi-automatici e poi automatici, è quella espressa in forma quantitativa e in particolare numerica. Ciò ha condotto alla diffusione del termine calcolatore (in inglese, computer) in alternativa ad “elaboratore” meno comune ma più appropriato. Poiché negli ultimi decenni il potenziale dei calcolatori si è incrementato grazie alla loro interconnessione in rete, la convergenza tra la tecnologia dell’informazione e le telecomunicazioni, che si occupano della trasmissione dell’informazione a distanza con lo scopo di comunicare, ha dato origine ad una nuova disciplina denominata Information & Communication Technology (ICT): sotto questa definizione rientra un’enorme quantità di tecnologie con cui abbiamo a che fare ogni giorno. Il termine “informazione” si parla di informazione, società dell’informazione, tecnologie dell’informazione, potere dell’informazione, monopolio dell’informazione. Nei diversi contesti, il termine assume significati e valenze un po' differenti, in relazione ad altri contesti quali comunicazione, controllo, dati, conoscenza, percezione, rappresentazione. Nell’ambito dell’informatica è importante mettere in relazione il significato di questo termine con quello di altri, in particolare “dato” e “conoscenza”. Dato, informazione e conoscenza si collocano rispettivamente su tre livelli, in ordine crescente. Un dato è un insieme di simboli tracciati su un supporto fisico che rappresenta una proprietà di un oggetto nel mondo reale senza contenere alcun riferimento alla proprietà stessa. L’approccio alla risoluzione dei problemi, basato sull’informazione è una delle conquiste più importanti nella storia dell’umanità. Esso consente di compiere ragionamenti, e quindi di prendere decisioni sugli oggetti del mondo reale, acquisendo solo un numero limitato di informazioni o intervenire direttamente sugli oggetti in questione. Tale approccio è alla base di tutte le discipline tecnico-scientifiche, sia quelle antiche quali geometria o algebra, sia quelle più recenti come la fisica e la matematica. Per comunicare, gli uomini hanno sviluppato i linguaggi naturali (italiano, inglese, francese). Una caratteristica di tali linguaggi è rappresentata dalla loro inerente ambiguità, del fatto cioè che un qualsiasi costrutto formulato in questi linguaggi è tendenzialmente polisemico, ovvero soggetto ad una pluralità di sensi, di significati. Può accadere che, in una comunicazione in linguaggio naturale, il destinatario di un messaggio gli attribuisca un senso diverso da quello che gli è stato dato dal mittente. La disambiguazione è più semplice per gli uomini, quando il messaggio è collocato all’interno di un particolare contesto. I linguaggi formali vengono sviluppati e impiegati in tutti quegli ambiti, come l’informatica, la matematica e la logica, in cui è importante evitare l’ambiguità. La definizione di linguaggio formale prevede:
  • l’individuazione di un alfabeto, un elenco finito di simboli;
  • la definizione di una grammatica formale, un insieme di regole sintattiche che specifichino come i simboli dell’alfabeto possano essere combinati tra loro per costruire frasi ben formate all’interno del linguaggio. Le semantiche formali consentono di attribuire un significato alle frasi in un linguaggio formale. L’informazione è rappresentata dai dati che sono espressi sotto forma di simboli. La stessa informazione può essere codificata con simboli e modalità diverse. L’adozione dell’alfabeto binario per la codifica delle informazioni nei calcolatori è determinata dalla semplicità con cui i simboli possono essere rappresentati da dispositivi bistabili, dispositivi fisici in grado di assumere due configurazioni alternative e di permanere stabilmente nella configurazione loro assegnata quali:
    • la presenza/ assenza di un foro in una scheda
    • i diversi stati di polarizzazione di una sostanza magnetizzabile
    • la presenza/assenza di carica elettrica di una sostanza
    • il passaggio/non passaggio di corrente in un cavo conduttore
    • il passaggio/non passaggio di luce in un cavo ottico. Si definisce byte una sequenza di 8 bit. Poiché in un calcolatore tutte le informazioni sono rappresentate in notazione binaria, sotto forma di sequenze di bit, la memoria, il componente del calcolatore avente lo scopo di memorizzare dati nel tempo, è costituita da una collezione di dispositivi bistabili. La sua capacità, la quantità di dati che è in grado di memorizzare, può essere misurata in bit, in byte e in multipli di essi. Con le espressioni “elaborazione dell’informazione” o “trattamento dell’informazione” si indica qualsiasi attività condotta sull’informazione stessa comprendendo:
    • creazione
    • modifica
    • confronto
    • conservazione
    • trasmissione a soggetti specifici oppure a soggetti non predeterminati Una qualsiasi attività di trattamento dell’informazione può essere ricondotta ad uno schema che prevede i passi di seguito delineati:
  • l’informazione viene codificata sotto forma di dati, simboli tracciati su un supporto fisico;
  • il supporto viene sottoposto ad una trasformazione fisica che genera nuovi dati, nuove sequenze di simboli;
  • i dati generati dal passo precedente vengono decodificati e apportano nuova informazione. L’informazione in ingresso all’elaborazione è denominata input mentre quella prodotta in uscita dall’elaborazione prende il nome di output. Può accadere che si debbano fornire ad un esecutore le istruzioni che gli consentano di operare tale trasformazione in modo autonomo ed automatico. Possiamo definire algoritmo una tale descrizione. Vista l’ambiguità del linguaggio naturale è evidente la necessità di esprimere tali algoritmi con linguaggi formali. Nel corso della storia, l’uomo ha concepito diversi strumenti formali per l’elaborazione dell’informazione, combinazioni di linguaggi formali e algoritmi che consentono di descrivere la trasformazione fisica del supporto con la certezza che, se i dati di partenza rappresentano correttamente informazioni sul mondo reale, anche i dati da essa generati rappresentano correttamente, dopo la necessaria decodifica, informazioni sul mondo reale. L’algebra è uno strumento formale per l’elaborazione dell’informazione. Anche la logica rientra tra questi strumenti formali occupandosi, tra l’altro delle operazioni che consentono, a partire da proposizioni vere, di derivare altre proposizioni vere. I linguaggi di programmazione sono linguaggi formali progettati per descrivere algoritmi in modo tale che possano essere eseguiti da un moderno calcolatore. Sono caratterizzati da una sintassi semplice, una semantica limitata e assenza di

circuito raddoppia circa ogni 2 anni. Con la stessa velocità si evolvono molte delle caratteristiche dei dispositivi elettronici, quali la velocità di elaborazione e di memorizzazione. A partire dagli anni ‘60, si individuò il potenziale rappresentato dalla possibilità di interconnetere più elaboratori tra loro in rete allo scopo di consentire la comunicazione e la condivisione di risorse. La progressiva diffusione delle reti portò alla creazione di Internet, una rete di reti in grado di interconnettere elaboratori in tutto il mondo e di offrire ai suoi utilizzatori una serie di servizi prima inimmaginabile. Negli anni ‘80 cominciarono a diffondersi i computer palmari dotati di uno schermo tattile. Negli stessi anni si osservò la rapida diffusione dei telefoni cellulari, dispositivi che consentono la comunicazione telefonica senza fili grazie al collegamento via radio supportato da una rete di antenne. Negli anni ‘90 l’integrazione, all’interno del computer palmare, delle funzioni di un telefono cellulare e lo sfruttamento delle reti di telecomunicazione cellulare determinarono la nascita e la diffusione degli smartphone. A partire dal 2000, Internet ha iniziato ad inglobare oggetti e luoghi del mondo reale secondo il concetto di Internet delle cose: con il collegamento ad internet, gli oggetti della vita quotidiana possono esercitare un ruolo attivo, si rendono riconoscibili e acquisiscono intelligenza grazie al fatto di poter comunicare dati su se stessi e accedere ad informazioni aggregate da parte di altri. L’architettura di Von Neumann → nel 1944, il matematico di Neumann entrò a far parte del progetto ENIAC e successivamente nel progetto EDVAC nell’ambito del quale si offrì di stendere una bozza dell’architettura del nuovo calcolatore. Le caratteristiche essenziali dell’architettura di von Neumann possono essere sintetizzate così:

  • obiettivo è la realizzazione di un calcolatore universale
  • presenza di un dispositivo di memorizzazione in cui è possibile rappresentare la stessa codifica, dati e istruzioni
  • utilizzo dell’aritmetica binaria invece che decimale
  • separazione tra dispositivo di memorizzazione e dispositivo di elaborazione. Secondo questa architettura, il calcolatore risulta composto da sottosistemi:
  • il processore (CPU) che legge dalla memoria le istruzioni e le esegue operando trasformazioni sui dati contenuti anch’essi in memoria
  • la memoria, un insieme di unità elementari di memorizzazione (celle) ciascuna delle quali può contenere un dato o un’istruzione ed è identificata da un indirizzo numerico
  • l’ interfaccia, che può essere scomposta in interfaccia di input e interfaccia di output e che gestisce l’interazione con l’ambiente esterno, in particolare con gli utenti del calcolatore, collegandosi con le periferiche, ovvero i dispositivi di input e/o output
  • il bus, un canale di comunicazione che gestisce lo scambio di informazioni tra gli altri sottosistemi. Quando si progetta un processore (CPU) è necessario identificare tutte le operazioni elementari che sarà in grado di compiere e assegnare a ciascuna di esse un’istruzione la cui esecuzione, da parte del processore, consisterà nell’espletamento della corrispondente operazione elementare. Ogni istruzione deve essere codificata in binario per poter essere rappresentata a sua volta nella memoria. L’insieme di tutte le istruzioni in binario specifiche per un determinato processore è detto linguaggio macchina. È un linguaggio di programmazione specifico per tale CPU. Due calcolatori sono tra loro compatibili quando utilizzano CPU identici o CPU che adottano lo stesso linguaggio macchina. Il termine “software” (SW) è costituito dall’unione di due termini inglesi soft e ware. Questo termine risale alla Seconda Guerra Mondiale. Nell’architettura di von Neumann, il termine software si riferisce alle istruzioni codificate all’interno della memoria per essere eseguite dall’hardware, termine che identifica invece tutte le altre parti del calcolatore. L’hardware è costituito da tutti i componenti che risultano tangibili mentre il software, codificato nell’hardware, è costituito dai programmi che descrivono all’hardware stesso gli algoritmi da seguire nelle sue elaborazioni.

Spesso nel termine software viene attribuito un significato più ampio, che comprende oltre alle istruzioni, anche i dati rappresentati su un dispositivo di memorizzazione. L’ unità centrale di un PC è costituita da una scatola metallica, detta chassis o case, dotata di ventole in grado di forzare la circolazione dell’aria e garantire la dissipazione termica, all’interno della quale è presente un alimentatore , un componente in grado da una parte di connettersi alla comune linea elettrica per riceverne una corrente alternata e dall’altra di erogare con cavi e connettori specifici, corrente continua a tutti gli altri componenti del PC. All’interno dello chassis è ancorata la scheda madre , una piastra di materiale plastico che funge da struttura portante per il calcolatore, grazie alla presenza su di essa, di alloggiamenti per il montaggio degli altri componenti e da interfaccia di comunicazione tra tali componenti grazie all’integrazione su di essa dei circuiti che costituiscono il bus. Su un apposito alloggiamento della scheda madre, denominato zoccolo , è installato il microprocessore , mentre su altri slot specifici sono installate una o più schede di memoria centrale (RAM). Numerosi altri slot consentono l’installazione sulla scheda madre delle schede di espansione, interfacce specializzate per il collegamento e il trasferimento dei dati con i dispositivi periferici e di memoria di massa. Il personal computer dalla sua apparizione sul mercato negli anni ‘70 del secolo scorso è diventato il tipo di calcolatore più comune. È apprezzato per l’uso domestico, in questo caso viene chiamato home computer, o negli uffici dove è connesso in rete con altri calcolatori per scambiare dati e condividere risorse. Il laptop è un PC progettato per la mobilità, può essere denominato in diversi modi:

  • Notebook: le sue dimensioni corrispondono a quelle di un comune block-notes;
  • Subnotebook: è più piccolo di un notebook;
  • Netbook: è studiato per l’impiego di applicazioni legate ad Internet cui si connette senza fili
  • Tablet PC: è un netbook, in genere senza tastiera, dotato di un touchscreen con il quale si interagisce con le dita della mano, e che spesso rende disponibili anche le funzioni di fotocamera digitale, navigatore satellitare, registratore audio, e-book reader. Un PDA (personal digital assistant) noto anche con il nome di handheld PC racchiude, in dimensioni ridottissime, le caratteristiche di un tablet PC. Uno smartphone è un PDA che integra le funzioni di telefono cellulare. Molto diffusi in ambito domestico sono i PC che supportano la connessione in output verso un normale apparecchio televisivo in alternativa al video:
  • Console per videogiochi: PC specificamente progettato per l’esecuzione di SW (software) ludico
  • Media center: PC dedicato all’intrattenimento domestico, controllabile anche tramite un telecomando, dotato di periferiche audio e video di elevata qualità. Una workstation è per molti versi simile ad un PC, ma presenta in genere caratteristiche superiori in termini di velocità, capacità di memoria, qualità della grafica in output e affidabilità che la rendono adatta in alcuni ambiti applicativi (elaborazioni matematiche, ingegneria, architettura, grafica). Altri computer sono invece multi-utente: più persone possono contemporaneamente avvalersi delle risorse computazionali dello stesso calcolatore eseguendo programmi diversi da postazioni di lavoro quali:
  1. PC → in questo caso il computer multi-utente svolge le funzioni di un server mentre il PC funge da client
  2. Videoterminale → un dispositivo input/output, costituito da un video, una tastiera ed un mouse non dotato di risorse computazionali proprie. Tra i calcolatori multi-utente, in funzione delle risorse computazionali, si distinguono i seguenti:
    • Minicomputer: calcolatore di fascia intermedia impiegato per elaborazioni dipartimentali nell’ambito di imprese medie e grandi
    • Mainframe: calcolatore di fascia alta impiegato per elaborazioni massive, basate su software ad hoc nell’ambito di grandi imprese

Il calcolatore è dotato di altri dispositivi di memorizzazione, le memorie di massa o secondarie che hanno come funzione principale la persistenza dei dati. Le memorie di massa sono in grado di offrire una maggiore capacità e un minor costo di memorizzazione a fronte di tempi di accesso più lunghi. Alcune memorie di massa si basano su supporti rimovibili per la cui lettura e scrittura il calcolatore deve essere dotato di un apposito dispositivo, denominato drive. I supporti rimovibili possono essere spostati da un calcolatore all’altro per realizzare lo scambio di dati. Altre memorie di massa sono invece da considerarsi fisse, installate all’interno dello chassis. A seconda della tecnologia impiegata, le memorie di massa possono essere classificate in

  • Dispositivi magnetici →sono memorie di massa il cui supporto di memorizzazione è costituito da una superficie ricoperta da uno strato di materiale ferroso. Una testina, posizionata in prossimità della superficie, è in grado di magnetizzare piccole aree e di rappresentare dati che rimangono memorizzati e possono essere letti, dalla testina stessa, in un momento successivo. Nel disco rigido (hard disk) il supporto di memorizzazione è costituito da uno o più dischi, detti piatti, le cui superfici sono ricoperte da un sottile strato di materiale ferromagnetico e che sono sovrapposti e connessi, al centro, con un unico perno di rotazione. Le testine di lettura/scrittura sono in grado di operare mentre i piatti ruotano molto velocemente. I piatti, il perno, le testine e tutti gli altri componenti meccanici sono racchiusi in un robusto contenitore metallico sigillato e collocato all’interno dello chassis del calcolatore. Sulle superfici dei piatti in un disco rigido sono presenti le tracce, sottili strisce circolari concentriche su cui le testine scrivono i dati. Le superfici sono normalmente suddivisi in settori, si definisce blocco l’intersezione tra una traccia ed un settore. Ciascun blocco è in grado di memorizzare una quantità fissa di dati che rappresenta la capacità minima dei dati che possono essere scritti o letti sul disco. In un disco rigido si definisce cilindro l’insieme di tutte le tracce di pari diametro sulle superfici di tutti i piatti. La formattazione consiste nella preparazione del supporto al suo primo utilizzo. Comporta la cancellazione totale dei dati preesistenti, l’individuazione di eventuali blocchi danneggiati che vengono contrassegnati per non essere utilizzati e la predisposizione della struttura logica atta ad archiviare i dati. La deframmentazione ottimizza le prestazioni del disco riorganizzando in modo più efficiente l’utilizzo dei blocchi nel file system. Sui calcolatori che devono soddisfare elevati requisiti in termini di affidabilità è comune la ridondanza sui dischi rigidi: si adottano tecniche definite RAID che prevedono la duplicazione dei dati su più supporti allo scopo di garantirne la sopravvivenza e la continuità nell’accesso in caso di guasti a singoli dischi. Nei nastri magnetici il supporto di memorizzazione è rappresentato da un lungo nastro di materiale plastico, con una superficie ricoperta di materiale ferromagnetico, raccolto in una cassetta. La possibilità di accedervi solo con accesso sequenziale impone però limitazioni ai loro ambiti di utilizzo: sono impiegati quasi esclusivamente come dispositivi di backup.
  • Dispositivi ottici →i dischi ottici sono supporti rimovibili che, inseriti in un apposito drive, possono essere letti con l’ausilio di una luce laser. Un disco ottico è costituito a strati: un disco di materiale plastico denominato substrato; un sottile strato riflettente generalmente in alluminio; uno strato di vernice protettiva; un’etichetta che può essere stampata direttamente sulla vernice, o cartacea o incollata su di essa. Sulla superficie libera del substrato è presente una lunga traccia a spirale lungo la quale microscopiche fosse (pit) sono impiegate per codificare i dati. Quando il supporto è inserito nel drive, mentre ruota, la traccia viene illuminata da una luce laser che viene riflessa dallo strato riflettente e distorta dai pit nel substrato, consentendo ad una testina di lettura di riconoscere i dati così codificati. I pit nella traccia sono generati in fase di stampa del supporto e il calcolatore è in grado di leggerne il contenuto informativo ma non può modificarlo. Nei supporti scrivibili tra il substrato e lo strato riflettente è presente una vernice fotosensibile. Il masterizzatore può scrivere sul supporto con una luce laser in grado di modificare in modo puntuale il colore di questa vernice e simulare la presenza dei pit nella traccia. Nei supporti riscrivibili il contenuto informativo può essere scritto e modificato molte volte. I supporti ottici più diffusi sono CD, DVD e BD. Un CD è progettato per essere letto con un laser con una lunghezza d’onda piuttosto ampia, ha

una capacità tipica di 700 MB. Il DVD è stato introdotto verso la fine degli anni ‘90 soprattutto per la distribuzione di materiale audiovisivo, il laser impiegato per la sua lettura è di colore rosso con una lunghezza d’onda inferiore a quella del CD e consente una capacità di 4,7 GB. Il BD deriva il suo nome dal fatto di essere letto con un laser caratterizzato da un lunghezza d’onda ancora inferiore, di colore blu-violetto, raggiungendo una capacità di 25 GB o 50 GB, consente la distribuzione di materiale audiovisivo ad alta risoluzione.

  • Memorie flash → una memoria flash è un supporto il cui contenuto informativo può essere scritto, cancellato o riprogrammato tramite processi elettrici. Non richiede alimentazione elettrica per conservare il suo contenuto. Le memorie flash sono in grado di offrire una capacità intermedia tra quelle tipiche della RAM e del disco rigido. Si presenta in formati quali: memory card, drive USB, e drive a stato solido. Le memory card si presentano come piccole schede rimovibili, impiegate come supporto di memoria in tablet, smartphone e altri dispositivi elettronici. Un drive USB integra una memoria flash e un’interfaccia USB in un dispositivo di dimensioni molto piccole. I drive a stato solido sono impiegati in sostituzione dei dischi rigidi, grazie ad aspetto esteriore simile ad un’interfaccia di imput/output compatibile, per ottenere velocità superiori. Unico limite è che sono in grado di sopportare non più di 1.000.000 operazioni di scrittura. Una CPU moderna si trova spesso a perdere tempo nell’attesa che un dato sia letto o scritto in memoria. Un approccio adottato per ridurre gli effetti negativi da ciò derivati si basa sul principio di località che si esprime in due diverse forme:
  • Località temporale: se un programma, nel corso della sua esecuzione, fa riferimento ad una particolare cella di memoria, ed è probabile che faccia riferimento alla stessa cella;
  • Località spaziale: se un programma, nel corso della sua esecuzione, fa riferimento ad una particolare cella di memoria, ed è probabile che faccia rifermento a celle vicine ad essa. Oltre alla memoria centrale e alle memorie di massa, un calcolatore moderno dispone di un’articolata gerarchia di memorie in cui i livelli più vicini alla CPU si caratterizzano per maggior velocità e minore capacità secondo il seguente schema:
    • Registri della CPU: contenuti nella CPU, garantiscono la massima velocità a fronte di una capacità di alcune centinaia di byte;
    • Cache di livello 1: contenuta nella CPU, garantisce una capacità di qualche decina di kilobyte
    • Cache di livello 2: contenuta nella CPU, garantisce una capacità di 512 kilobyte o più
    • Cache di livello 3: contenuta nella CPU o nella scheda madre, garantisce una capacità di 3 megabyte o più
    • Memoria centrale
    • Dischi interni
    • Dischi esterni. Le periferiche → sono dispositivi connessi con varie modalità all’unità centrale di un calcolatore, che supportano l’input/output dei dati. La connessione del calcolatore con un dispositivo periferico o di memoria di massa si realizza tramite un’apposita interfaccia collegata da una parte al bus e dall’altra al dispositivo. Su un PC, l’interfaccia può essere integrata nella scheda madre oppure installata in uno slot su di essa sotto forma di scheda di espansione. La comunicazione tra l’interfaccia e il dispositivo può essere di due tipi:
  • Seriale: prevede la presenza di un unico canale consentendo quindi la trasmissione di un singolo byte alla volta
  • Parallela: prevede la presenza di più canali di trasmissione paralleli consentendo quindi la trasmissione simultanea di gruppi di bit. Per un dato tipo di dispositivo possono esisterne versioni che offrono connessioni ad interfacce di tipo diverso. La tastiera → è il dispositivo di input più comune, essa rende disponibili un insieme di tasti identificati da simboli. La pressione del dito su uno dei tasti provoca, in genere, l’input del simbolo
  • la trackball: riconducibile ad un mouse meccanico rovesciato, rende disponibile una sfera che viene fatta ruotare lungo due assi, direttamente con la mano
  • il joystick: impiegato nei videogiochi
  • il touchpad: è una piccola superficie, posizionata in prossimità della tastiera sui notebook, caratterizzata dalla presenza di sensori in grado di riconoscere la posizione e il movimento di un dito
  • il pointing stick: un minuscolo joystick collato generalmente all’interno o in prossimità della tastiera sui notebook
  • la tavoletta grafica: con la quale l’utente traccia disegni o scrive testi su una superficie piana con un apposito stylus con la stessa modalità con cui opera con la penna
  • il touschscreen, nel quale le funzioni della tavoletta grafica vengono assunte direttamente dal video e si interagisce con le dita della mano. La stampante → la rappresentazione dell’output del calcolatore sul video è volatile, quando la si vuole rendere persistente nel tempo si può ricorrere ad una stampante, un dispositivo in grado di imprimere testo e immagini su fogli di carta o altri supporti. Si distinguono stampanti monocromatiche e stampanti a colori. Il collegamento della stampante al calcolatore avviene tramite un cavo connesso ad una porta USB. Utilizzando le funzioni di rete offerte dal sistema operativo, un calcolatore può condividere una stampante ad esso collegata con gli altri calcolatori connessi in rete e fungere da server di stampa. Una stampante di rete invece dispone di una scheda di rete che le consente di offrire il servizio di stampa direttamente a tutti i calcolatori connessi alla rete stessa. Alcune stampanti definite multifunzione, integrano all’interno dello stesso dispositivo, uno scanner o un modem che ne rendono possibile l’impiego come fotocopiatrice e/o come fax. Le stampanti a getto di inchiostro operano spruzzando sulla carta, attraverso gli ugelli presenti nella testina di stampa, microscopiche gocce di inchiostro. Nelle stampanti laser la tecnologia di stampa è la stessa adottata dalle fotocopiatrici: un raggio di laser proietta un’immagine della pagina da stampare su un rullo ricoperto di materiale fotosensibile, elettricamente carico. Sulle aree esposte alla luce, la fotoconduttività rimuove la carica mentre sulle altre aree, che restano cariche, vengono attirate particelle di un inchiostro in polvere (toner). Il foglio di carta, a contatto con il rullo, raccoglie il toner che dopo una fase di riscaldamento vi rimane incollato. Nelle stampanti ad impatto la testina di stampa presenta degli aghi che possono essere controllati singolarmente per fuoriuscire dalla stessa in direzione della superficie del foglio da stampare. Ogni ago incontra sulla sua strada un nastro inchiostrato frapposto tra la testina di stampa e il foglio di carta. L’impatto dell’ago sul nastro inchiostrato e quindi sul foglio genera un punto su quest’ultimo. I dispositivi per l’acquisizione delle immagini → tra i dispositivi di input, un ruolo sempre più importante è rivestito dalle apparecchiature per l’acquisizione delle immagini. Esse sono in grado di digitalizzare un’immagine, di generare una sua codifica in pixel atta ad essere memorizzata in un calcolatore. Lo scanner è impiegato per acquisire immagini riportate su un supporto. Lo scanner piano digitalizza l’immagine appoggiata su una finestra orizzontale di vetro; lo scanner manuale è un dispositivo più leggero che acquisisce l’immagine mentre l’operatore lo fa scorrere sulla superficie della stessa. Lo scanner per pellicola è in grado di acquisire le immagini presenti su una pellicola fotografica. Caratteristiche importanti dello scanner sono le dimensioni massime dell’immagine trattabile, la profondità di colore e la risoluzione, misurata in ppi, con valori tipici compresi tra 1200 e 5400. Lo scanner oggi è tipicamente collegato al calcolatore tramite un cavo connesso ad una porta USB. Uno scanner di rete, mediante una scheda di rete è in grado di inviare le immagini acquisite direttamente agli elaboratori connessi alla stessa rete. Nella macchina fotografica digitale l’immagine viene impressa sotto forma di matrice di pixel, su un sensore elettronico di immagini e archiviata in una scheda di memoria. Mentre le digicam compatte sono progettate per essere piccole, leggere, sempre pronti e facili da usare, chi vuole orientarsi verso macchine più professionali rivolge la propria attenzione alle reflex digitali. La

videocamera digitale invece è un dispositivo atto all’acquisizione dei filmati in formato digitale; mentre le webcam sono piccole videocamere digitali collegate a personal computer, solitamente collocate sopra al video o integrate nello chassis nei notebook. Un lettore di codice a barre invece è un dispositivo in grado di leggere un testo espresso tramite codice a barre. Dispositivi per la gestione dell’audio →una scheda sonora è una scheda di espansione che supporta per il calcolatore, input/output di segnali audio. Dispone di uno o più connettori per il collegamento in input di microfoni, registratori, o altre sorgenti sonore esterne. Sotto controllo di applicazioni software, il calcolatore è in grado di acquisire segnali sonori, codificarli in formato digitale e archiviarli nella propria memoria di massa. In output, essa dispone anche di un convertitore digitale-analogico in grado di riconvertire la codifica digitale in segnale analogico e di inviarlo ad amplificatori e cuffie per permetterne l’ascolto. La digitalizzazione di segnali sonori in input consente di utilizzare il calcolatore come registratore. Il riconoscimento vocale consiste invece nel processo inverso, ovvero la conversione del parlato in testo, ed è impiegato dai sistemi di dettatura o per la realizzazione di interfacce che consentano l’interazione uomo-macchina per mezzo di comandi vocali. Una combinazione di periferiche molto diffusa in ambito didattico è rappresentata dalla lavagna interattiva multimediale, una superficie interattiva che rappresenta l’evoluzione della lavagna tradizionale.

  1. IL SOFTWARE La caratteristica che più di ogni altra rende potente il moderno calcolatore è rappresentata dal fatto di disporre di un’unità di memorizzazione in cui trovano posto, oltre ai dati da elaborare, anche le istruzioni eseguite dal calcolatore per condurre l’elaborazione stessa: il software. Algoritmo → è una sequenza di istruzioni la cui esecuzione consente di realizzare un particolare trattamento dell’informazione o più in generale di risolvere uno specifico problema.
  • Un algoritmo presuppone la presenza di qualcuno o qualcosa che sia in grado di eseguirlo, che viene denominato esecutore; -l’algoritmo viene letto dall’esecutore il quale, partendo dai dati dell’input, esegue le istruzioni in esso riportate seguendo un orine ben preciso arrivando ad ottenere i dati di output;
  • l’algoritmo deve essere formulato in un linguaggio comprensibile all’esecutore
  • un esecutore può eseguire un algoritmo formulato in un linguaggio che non conosce a patto che l’algoritmo stesso sia preventivamente tradotto in un linguaggio che invece gli è noto
  • l’algoritmo deve prevedere soltanto istruzioni elementari che richiedono all’esecutore la conduzione di operazioni elementari
  • un algoritmo può richiedere l’esecuzione di altri algoritmi precedentemente specificati all’esecutore;
  • l’algoritmo deve essere formulato in un linguaggio non ambiguo, in cui ogni istruzione caratterizzi una delle operazioni che l’esecutore è in grado di compiere;
  • l’algoritmo deve specificare senza ambiguità l’ordine di esecuzione delle istruzioni e l’esecutore deve attenersi ad esso;
  • l’algoritmo deve essere formulato in un numero finito di istruzioni;
  • l’esecuzione di un algoritmo deve terminare fornendo i dati di output in un tempo finito;
  • l’algoritmo deve essere deterministico: eseguendo lo stesso algoritmo più volte sugli stessi dati di input, l’esecutore deve generare sempre gli stessi dati di output;
  • un algoritmo parametrico è un algoritmo che, facendo riferimento ai dati in input, è in grado di risolvere non solo un problema ma una classe di problemi. I programmi e i linguaggi di programmazione → un linguaggio di programmazione è un linguaggio formale impiegato per descrivere algoritmi che devono essere eseguiti da un calcolatore,
  1. Lettura del simbolo contenuto nella cella corrente;
  2. Individuazione, nella tabella delle azioni, della riga in cui i primi due elementi sono lo stato corrente e il simbolo contenuto nella cella corrente; essa riporterà a lato il simbolo X, il verso V e lo stato S;
  3. scrittura di X nella cella corrente;
  4. spostamento della testina nella cella adiacente nel verso V;
  5. impostazione di S nel registro di stato. L’interazione si conclude quando lo stato corrente risulta essere uno degli stati finali. Turing definì macchina di Turing universale (UTM) una macchina di Turing in grado di simulare il funzionamento di qualsiasi altra macchina di Turing e ne descrisse in dettaglio una possibile realizzazione. Alla UTM dovrà essere fornito un nastro suddiviso in due parti: nella parte sinistra sarà codificata la tabella delle azioni di M;nella parte di destra sarà contenuta la stringa di simboli s. La UTM è in grado di decodificare la tabella delle azioni di M e di applicarla simulando il funzionamento di M stessa. Del lavoro di Turing è importante menzionare anche la tesi di Church- Turing, afferma che se una funzione è intuitivamente considerata calcolabile, allora esiste una macchina di Turing in grado di calcolarla. L’importanza della tesi di Church-Turing afferma che il modello espresso dalla MdT esprime compiutamente il concetto di algoritmo, è determinata da due conseguenze dirette:
    • le proprietà degli algoritmi possono essere studiate più facilmente sulle MdT, un modello di calcolo semplice ma potente come qualsiasi altro modello di calcolatore;
    • se si costruisce un nuovo modello di calcolo, dimostrando che esso è in grado di simulare il funzionamento della UTM, lo si potrà ritenere potente almeno quanto tutti i modelli di calcolo esistente. L’ingegneria del software → è una branca dell’ingegneria che si occupa di sviluppare approcci sistematici e disciplinati allo sviluppo, alla messa in opera e alla manutenzione dei software a livello industriale. Le metodologie proposte dall’ingegneria del software per lo sviluppo di un nuovo prodotto assumono come riferimento un ciclo di vita del software che prevede alcune fasi. La prima fase è l’analisi, che, partendo da un indagine sull’ambito in cui il nuovo software deve collocarsi e ha come scopo la produzione di un documento di specifica contenente la definizione del problema che il software dovrà risolvere, delle caratteristiche che dovrà esibire ecc. La progettazione, partendo dal documento di specifica, tratteggia la struttura del prodotto software generando un documento che ne delinea l’architettura di alto livello e definisce le caratteristiche dei singoli moduli che la compongono. Nella fase di implementazione, partendo dai documenti prodotti alle fasi precedenti, si procede alla realizzazione di uno o più programmi, scritti in diversi linguaggi di programmazione, la cui integrazione costituirà il prodotto software. Il collaudo, sottopone quest’ultimo ad una serie di test allo scopo di verificare se soddisfi i requisiti indicati in fase di analisi. Il rilascio, consiste nell’istallazione del prodotto software presso gli utenti. La manutenzione comprende le attività di modifica al prodotto software per l’eliminazione di malfunzionamenti, l’estensione delle sue funzionalità o il suo adattamento. Il software è un’opera dell’ingegno e soggetto alle norme sul diritto d’autore. Quando un’azienda commissiona ad una software house la produzione di una specifica applicazione, il committente acquista dal produttore anche la versione sorgente e la titolarità del diritto d’autore per poter impiegare e manutenere il software. In altri casi, il produttore di un software immette il proprio prodotto sul mercato mantenendone la titolarità del diritto d’autore e concedendone la licenza d’uso; essa consente l’utilizzo del prodotto su un numero limitato di calcolatori e ne vieta la copia, la modifica e la ridistribuzione. Alcuni prodotti vengono distribuiti, via internet, con una licenza shareware. Il prodotto può essere ridistribuito, può essere utilizzato per un periodo di prova, l’utilizzo oltre tale termine richiede la registrazione presso il produttore, subordinata al pagamento di un importo. Un prodotto con licenza freeware viene invece distribuito gratuitamente dal titolare del diritto d’autore che può decidere se fornire anche la versione sorgente. Il software libero e il software open source sono entrambi distribuiti con la

versione sorgente dal titolare del diritto d’autore che ne incoraggia l’uso, lo studio, le modifiche e la redistribuzione a titolo gratuito, ma nel rispetto di alcune regole tra cui: le versioni modificate del software devono sempre menzionare gli autori delle versioni precedenti; non è possibile distribuire il software originario o modificato con licenze incompatibili con quella originaria; il software originario o modificato deve essere distribuito anche in formato sorgente. Il software per i calcolatori viene classificato in due categorie:

  • Software applicativo → programmi, detti applicazioni, che risolvono e supportano l’utente nella risoluzione di problemi specifici in determinati ambiti applicativi;
  • Software di base → programmi di utilizzo generale che consentono l’interazione dell’utente con il calcolatore, gestiscono le risorse in dotazione allo stesso e supportano l’esecuzione del software applicativo. Tra quelli di uso più comune, i software di produttività individuale, spesso distribuiti in pacchetti che ne raggruppano alcuni: Microsoft Office, Apache OpenOffice, LibreOffice (pag 42). Sempre più popolari sono le mobile application, abbreviate in app, si tratta di applicazioni specificamente realizzate per smartphone, tablet, o altri dispositivi mobili, che mirano a fornire all’utente la possibilità di trarre i massimi benefici da alcune caratteristiche offerte da tali dispositivi, quali la mobilità, la connettività, la multimedialità, e la capacità di determinare la posizione geografica. Tali applicazioni vengono scaricate via internet , alcune gratis, altre a pagamento collegando il dispositivo ad un negozio elettronico. Il sistema operativo →il sistema operativo (SO) è un software di base, una collezione di programmi di utilizzo generale per l’interazione tra utente e calcolatore, la gestione delle risorse in dotazione allo stesso calcolatore, il supporto all’esecuzione del software applicativo. I sistemi operativi sono in genere progettati con un’architettura a macchine virtuali stratificate. L’hardware viene corredato da un primo strato di software, una collezione di programmi progettati per fornire funzionalità aggiuntive rispetto a quelle rese disponibili dalla macchina fisica. L’insieme costituito dall’hardware e da questo strato di software può essere visto come una macchina virtuale che offre un’interfaccia che fornisce ad altri programmi la possibilità di trarre vantaggio dall’impiego di queste funzionalità aggiuntive. Un sistema operativo è costituito dalla stratificazione di più macchine virtuali costruite su questo principio, ognuna di esse, impiegando le funzionalità dell’interfaccia delle macchine virtuali agli strati inferiori, fornisce, tramite la propria interfaccia, nuove funzionalità a quelle degli strati inferiori, fornisce, tramite la propria interfaccia, nuove funzionalità a quelle degli strati superiori e ai programmi applicativi e all’utente del calcolatore. Un moderno sistema operativo include diversi componenti:
  • Nucleo: gestisce la CPU e il suo impiego da parte dei programmi
  • Gestore della memoria: gestisce l’allocazione della RAM ai programmi in esecuzione
  • Gestore dei dispositivi di input/output : gestisce le periferiche e le relative operazioni in input/output
  • File system: gestisce l’archiviazione e il reperimento dei dati sulle memorie di massa
  • Gestore della rete: gestisce la comunicazione con altri calcolatori connessi in rete, la condivisione delle risorse locali e l’utilizzo delle risorse remote
  • Interprete dei comandi: gestisce l’interazione con l’utente. Affinché il sistema operativo possa gestire le risorse del calcolatore, le moderne CPU associano alle proprie istruzioni dei livelli di privilegio. La combinazione di un calcolatore con sistema operativo costituisce a sua volta una macchina virtuale, con un’interfaccia per i programmi applicativi e una per l’utente umano spesso denominata come piattaforma. La disponibilità dello stesso sistema operativo su hardware differenti consente all’utente di agire con le stesse modalità operative su calcolatori che in realtà possono essere molto diversi tra loro. I primi calcolatori elettronici erano monoprogrammati, in grado cioè di mantenere in memoria centrale ed eseguire un solo programma per volta, e non disponevano di un sistema operativo: il

denominati servizi, essi sono attivati all’avvio del calcolatore e continuano ad operare nell’ombra, realizzando specifiche funzionalità quali la gestione delle code di stampa, la condivisione di memorie di massa in rete, la pubblicazione di siti web. La gestione della memoria centrale → l’esecuzione di un programma richiede la creazione di un processo a cui è necessario allocare, nella RAM, spazio per il codice e per i dati. La multiprogrammazione favorisce la nascita i conflitti tra i vari processi per l’impiego di questa risorsa e impone, all’interno del sistema operativo, la presenza di un gestore per risolverli. Esso deve essere in grado di:

  • controllare con efficienza la RAM;
  • gestire lo spazio necessario a ciascun processo;
  • proteggere lo spazio allocato ad un processo da intrusioni non autorizzate da parte di altri processi;
  • gestire, in modo controllato, spazi comuni tra processi per la condivisione di dati e lo scambio di messaggi. Queste attività sono realizzate con una tecnica nota come memoria virtuale: essa rende disponibile ad ogni processo un suo spazio di indirizzamento virtuale, per cui ogni programma opera come se avesse a disposizione l’intera RAM. Il gestore suddivide la memoria centrale in pagine, blocchi di dimensioni fisse. Quando un programma viene caricato nella RAM, viene rilocato, il suo codice e la sua area dati vengono suddivisi in pagine e posizionati nelle pagine libere della RAM grazie alla Memory Management Unit (MMU), un dispositivo hardware che mantiene una tabella di corrispondenza e che consente la conversione tra gli indirizzi logici impiegati dal programma e quelli fisici nella RAM. Se i processi richiedono l’occupazione di un numero di pagine maggiore di quello disponibile, sulla base del principio di località, provvede allo swapping, il trasferimento di un’apposita area su memoria di massa, di quelle il cui impiego è meno probabile. La gestione dalle periferiche → a partire dagli anni ‘60, i sistemi operativi hanno cominciato ad inglobare un gestore con lo scopo di consentire ad ogni processo di lavorare su periferiche virtuali:
  • il processo opera su una periferica come se fosse completamente a sua disposizione mentre il gestore si occupa di risolvere i conflitti allocando a turno la periferica fisica ai processi che ne fanno richiesta;
  • il processo opera su ciascuna periferica in condizioni di device independence, impiega i comandi di alto livello appropriati al tipo di periferica, mentre il gestore, supportato dal driver, trasforma questi comandi in istruzioni specifiche per la periferica fisica e si occupa di tutti i dettagli relativi alla sincronizzazione. L’impiego di una determinata periferica su un calcolatore è subordinato alla disponibilità del driver specifico per la periferica e per il sistema operativo: un software che fornisce al sistema operativo l’indicazione di dettaglio delle modalità operative per interagire con la periferica. Ogni sistema operativo è distribuito con i driver per le periferiche più comuni, gli altri sono forniti dal produttore della periferica per completare la stessa. La gestione dei file → il file system è il componente del sistema operativo che si occupa della gestione delle memorie di massa, al cui interno i dati sono organizzati in file, ovvero unità di base per la memorizzazione persistente su memoria di massa. Spesso costruisce, all’interno di un supporto di memoria di massa, una struttura logica gerarchica che ne facilita la successiva ricerca. In un supporto di memoria viene creata una cartella, denominata radice. Essa può contenere file e/o cartelle che possono a loro volta contenere file e/o cartelle dando origine ad una struttura ad albero. Ogni file e ogni cartella sono identificati da un nome e un pathname, la descrizione del percorso più breve per raggiungerli partendo dalla radice ed elencando i nomi di tutte le cartelle incontrate lungo il percorso stesso. Molti file system supportano la possibilità di sovrapporre alla struttura ad albero dei riferimenti che consentono di simulare, all’interno di una cartella, la presenza di un’altra cartella o di un file. Per ogni file o cartella, il file system memorizza e gestisce un insieme di proprietà tra cui: il formato, le dimensioni, la data e l’ora di creazione, la data e l’ora di ultima modifica, le

autorizzazioni, indicazione delle operazioni consentite ai singoli utenti o a gruppo di essi. Per file e cartelle, il file system deve consentire varie operazioni tra cui: creazione, lettura del contenuto, modifica del contenuto, eliminazione, ridenominazione, spostamento all’interno dell’albero delle cartelle, backup. La gestione della rete → i moderni sistemi operativi integrano la gestione della connessione in rete. Sono spesso definiti sistemi operativi di rete (NOS) perché progettati assumendo come obbligatoria la connessione del calcolatore in rete. Il gestore della rete si occupa di garantire la device indipendence grazie alla quale gli utenti e le applicazioni usufruiscono dei servizi disponibili in rete ignari dei dettagli relativi a mezzi fisici, indirizzi di rete, protocolli di comunicazione. Vi sono differenti modalità di interazione tra utenti e calcolatori nell’ambito di una rete:

  • Interazione uomo- calcolatore locale: è l’interazione tradizionale tra un utente e un’applicazione in esecuzione sul calcolatore locale, senza alcun impiego della connessione di rete;
  • Interazione uomo-calcolatore remoto: tramite un’applicazione (client) in esecuzione sul calcolatore locale, l’utente interagisce con un’altra applicazione (server) in esecuzione u un calcolatore remoto connesso in rete e che, a sua volta, può avvalersi di servizi resi da altri server;
  • Interazione tra uomini mediata da calcolatori: tramite un client in esecuzione sul calcolatore locale, l’utente interagisce, per il tramite di uno o più server, con un altro utente che a sua volta impiega un client in esecuzione sul suo calcolatore. L’interprete dei comandi è il componente del sistema operativo che gestisce l’interazione con l’utente; esso consente all’utente di comunicare con il sistema operativo ordinandogli specifiche attività per la cui esecuzione il sistema operativo attiva i propri componenti, altri programmi e l’hardware del calcolatore e delle periferiche. All’inizio di una sessione di lavoro, il sistema operativo deve identificare con certezza l’utente che intende accedere al calcolatore al fine di:
  • garantirgli tutte le autorizzazioni a lui riservate per l’accesso alle risorse;
  • personalizzare l’ambiente applicativo secondo le sue preferenze;
  • fatturare all’utente il consumo delle risorse secondo le tariffe concordate. L’autenticazione informatica può essere condotta secondo tre modalità che possono essere impiegate anche in combinazione tra loro. → Dimostrazione di conoscenza: è la modalità più frequente e consiste nel chiedere all’utente di esprimere delle credenziali che devono corrispondere a quelle note al sistema (account), tipicamente un nome utente (username) e una parola chiave (password) → Dimostrazione di possesso: l’utente deve dimostrare di possedere un oggetto fisico quale una smart card → Dimostrazione di carattere fisiche: l’utente deve dimostrare di possedere determinate caratteristiche fisiche. Tra gli utenti di un calcolatore, si possono identificare alcune figure di riferimento a cui il sistema operativo deve garantire autorizzazioni diverse → Amministrazione di sistema: garantisce il funzionamento complessivo del calcolatore, installa hardware e software e ne cura l’aggiornamento, configura il sistema operativo e le periferiche, crea gli account e attribuisce le relative autorizzazioni, pianifica e gestisce il backup e le politiche di disaster recovery in genere → Operatore di sistema: sostituisce l’amministratore, dietro sua delega, in alcune operazioni di routine → Programmatore: realizza applicazioni destinate in genere all’impiego da parte di altri utenti → Utente applicativo: utilizza le applicazioni. Le applicazioni interattive, offrivano all’utente un’interfaccia interattiva modale: l’applicazione proponeva una serie di domande, cui l’utente replicava con adeguate risposte, dopo di che iniziava la fase di elaborazione, seguita dalla visualizzazione del risultato e dalla terminazione dell’applicazione.
  • Firewall: un dispositivo hardware o software che crea una batteria elettronica contro gli attacchi
  • Antivirus: un software in grado di prevenire, individuare e rimuovere i programmi malware.
  1. LA RAPPRESENTAZIONE DEI DATI PER LE SCIENZE UMANE Per comprendere meglio il funzionamento dei moderni calcolatori, è opportuno approfondire la conoscenza delle codifiche da essi impiegate. I supporti fisici di cui dispongono, la memoria centrale, la memoria di massa, sono costituiti da grandi collezioni di dispositivi bistabili, in grado di rappresentare sequenze di simboli tratti da un alfabeto ridotto: i bit. Per ogni tipo di informazione che si voglia trattare con un calcolatore è necessario quindi individuare una codifica che si avvalga esclusivamente di questo alfabeto. L’informazione di tipo numerico ha spinto l’uomo alla ricerca di rappresentazioni efficaci e di sistemi automatici o semi-automatici per la sua elaborazione. La codifica più comunemente adottata per i numeri è la notazione decimale posizionale. L’aggettivo “decimale” fa riferimento alla cardinalità dell’alfabeto utilizzato nella codifica: 10 simboli, le cifre. L’aggettivo “posizionale” indica invece il fatto che ogni cifra assume un diverso ruolo in funzione della sua posizione. Il numero rappresentato da ciascuna cifra è moltiplicato per una potenza di 10. Si dice quindi che 10 è la base del nostro sistema di rappresentazione numerica posizionale. Aggiungendo all’alfabeto il separatore decimale è possibile rappresentare i sottomultipli decimali dell’unità: decimi, centesimi, millesimi. Le rappresentazioni non posizionali → il sistema di numerazione romano offre la possibilità di rappresentare i numeri con notazioni non posizionali. In origine costituiva un sistema di numerazione additivo. Nel corso del Medioevo però, per consentire una notazione più compatta, il sistema perse la sua caratteristica additiva con l’introduzione della possibilità di scrivere un simbolo con valore inferiore a sinistra di uno con un valore maggiore, in questo caso il primo valore doveva essere sottratto al secondo. La codifica binaria→ per la rappresentazione dei dati all’interno di un calcolatore, viene adottata una codifica binaria. Per i numeri, si ricorre alla notazione binaria posizionale: le cifre binarie 0 e 1 sono moltiplicate per le diverse potenze di 2. La notazione esadecimale è molto diffusa tra gli informatici in quanto nella documentazione tecnica, invece di trascrivere lunghe sequenze di bit, si raggruppano i bit in nibble (può essere rappresentato da una cifra esadecimale), che poi vengono rappresentati dalle corrispondenti cifre esadecimali. La quantità di informazione → la teoria dell’informazione si occupa dello studio sistematico delle basi teoriche dell’informazione e della comunicazione. Se i fati portano informazione, si può pensare di misurare la quantità di informazione contenuta in un supporto. Essa viene definita come la differenza tra i logaritmi delle probabilità attribuite al verificarsi di un evento, valutate prima e dopo della lettura del supporto. Se i logaritmi sono in base 2, l’unità di misura della quantità di informazione è definita bit. L’informazione quantitativa → per la rappresentazione d tipo quantitativo esistono due approcci: la codifica analogica e la codifica digitale. La codifica analogica di una grandezza richiede l’individuazione di una grandezza analoga: ad ogni incremento/ decremento della prima dovrà corrispondere un incremento/decremento della seconda. La codifica digitale di una grandezza invece richiede l’introduzione di un alfabeto di simboli e di un insieme di regole di codifica che specifichino come ogni valore della grandezza sia rappresentato da una sequenza di simboli. L’approccio digitale è più compatto; mentre la codifica analogica porta implicitamente metainformazioni (informazioni sull’informazione) di tipo ordinale e metrico. La frequenza di campionamento è definita come il numero di campioni acquisiti nell’unità di tempo. Quantizzazione e campionamento sono l’essenza della codifica digitale. Entrambi provocano una perdita di informazione.

I motivi per cui nell’ultimo decennio si è verificato il successo della codifica digitale sono riconducibili all’avvento dei calcolatori: la codifica digitale binaria di un segnale può essere facilmente rappresentata nella memoria di un calcolatore e da questo elaborata o trasmessa ad altri elaboratori. La codifica digitale favorisce anche la corretta trasmissione del segnale lungo un canale che, rappresenta un rumore che determina difformità tra ciò che giunge al ricevitore e quanto è stato inviato dal trasmettitore. Per il riconoscimento e l’eventuale correzione di errori generati dal rumore nell’ambito della trasmissione binaria si adottano meccanismi di protezione basati sulla ridondanza: si trasmettono più simboli rispetto a quelli necessari per codificare l’informazione. Uno schema di ripetizione, il meccanismo più semplice, prevede che ogni simbolo del messaggio sia trasmesso due o più volte. Nel caso di trasmissione binaria, il messaggio viene scomposto in blocchi di bit di dimensione prefissata ciascuno dei quali viene trasmesso un numero di voce concordato con il ricevitore. Quest’ultimo, individuando eventuali differenze tra quelle che dovrebbero essere copie dello stesso blocco, rileva la presenza di errori di trasmissione. Anche negli schemi basati sul controllo di parità il trasmettitore suddivide il messaggio binario in blocchi di bit di dimensione prefissata. Trasmettendo un blocco, conta il numero di “1” presenti al suo interno: se questo è un numero pari, trasmette in coda al blocco un bit di parità aggiuntivo impostato a “0” altrimenti trasmette un “1”. Schemi più complessi sono in grado di consentire al ricevitore non solo di rilevare con maggiore affidabilità la presenza di errori ,ma, di correggerli senza dover chiedere la ritrasmissione del messaggio. I codici sono sequenze di simboli impiegati per rappresentare sinteticamente oggetti del mondo reale; chiunque può definire delle codifiche ma, la comunicazione è possibile solo a condizione che sorgente e destinatario concordino sulla stessa codifica. In un calcolatore è naturale ricorrere a codici costituiti da stringhe di bit. Il testo → La rappresentazione di un testo all’interno di un calcolatore è in genere realizzata con codici binari corrispondenti a singoli caratteri: lettere maiuscole, minuscole, cifre decimali, segni di interpunzione, spazio. L’ASCII è una codifica secondo la quale ogni carattere è rappresentato da una sequenza di 7 bit. L’ASCII esteso è un’evoluzione dell’ASCII che grazie all’impiego di codici ad un byte, consente di raddoppiare il numero di caratteri e di rappresentare anche altre lettere in uso nei linguaggi naturali delle diverse regioni del mondo. L’ISO (organizzazione internazionale per la normazione) ha rilasciato varie versione di ASCII esteso tra cui:

  • ISO 8859-1: che contiene i caratteri per i linguaggi dell’Europa occidentale;
  • ISO 8859-2: che contiene i caratteri per i linguaggi dell’Europa orientale;
  • ISO 8859-5: che contiene i caratteri cirillici. Nelle memorie di massa di un calcolatore è opportuno distinguere i file di puro testo, che contengono esclusivamente caratteri, da altri tipi di file che, associati a specifiche applicazioni che ne consentono la creazione, la modifica o soltanto la lettura, oltre al testo contengono altre meta- informazioni tra cui quelle sulle formattazione, che specificano come esso debba essere impaginato. Una situazione intermedia è rappresentata da un’altra famiglia di file il cui contenuto è scritto con linguaggi di marcatura. Questi linguaggi consentono di inserire, all’interno del puro testo, annotazioni anch’esse in puro testo ma con caratteristiche sintattiche particolari che ne consentono il riconoscimento. Il più noto tra i linguaggi di marcatura è l’HTML impiegato per realizzare gran parte delle pagine ipertestuali che costituiscono in Internet, il World Wide Web. Un file HTML descrive in genere una pagina dell’ipertesto e contiene delle marcature, denominate tag, ciascuna delle quali è costituita da una sequenza di caratteri racchiusi tra parentesi angolari. L’utente visualizza una pagina HTML tramite un’applicazione software che nasconde i tag utilizzandoli come indicazioni sulla formattazione della pagina e sui collegamenti ipertestuali da realizzare al suo interno. ODT e DOCX sono due formati adottati dalle più diffuse applicazioni di videoscrittura per la codifica di documenti con linguaggi di marcatura.