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: Concetti fondamentali e architettura del computer, Appunti di Elementi di Informatica

appunti di informatica lingue e culture per il turismo

Tipologia: Appunti

2016/2017

Caricato il 08/06/2017

sarah_fais
sarah_fais 🇮🇹

5

(4)

4 documenti

1 / 17

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I computer sono stati creati per aiutare l’uomo, effettuare calcoli visto che l’uomo può sbagliare. L’uomo ci mette
molto può tempo. Per o secoli l’uomo ha cercato di creare una macchina per automatizzare certi processi di calcolo.
V millennio a.C.
Invenzione dell’abaco. È la prima macchina di calcolo. Non è diverso dal foglio di carta, la logica e la correttezza
dell’operazione dipendono dall’utente. In automatico non fa nulla.
XVII secolo a.C.
Invenzione della pascalina (innovazione). È considerato avanti perché la logica è controllata dalla macchina. È la
macchina che lavora. La pascalina poteva fare solo addizione e sottrazione. Le moltiplicazioni e le divisioni potevano
essere calcolate mediante ripetizioni di adozioni e sottrazioni ma era di nuovo l’utente a dover controllare il processo.
Risolve un numero finito di azioni. Si pensa di affrontare il problema modificando la macchina, ma si rimanda.
1840
Il computer è riprogrammabile. Prende la logica del problema e lo manda come dato al pc che risolve il problema. La
soluzione è quella di trattare tale logica come parte dell’input della macchina. Charles Babbage ha introdotto un
esempio di macchina di calcolo ‘programmabile’. La tecnologia non era molto sviluppata a sufficienza e l’esigenza di
automatizzare il calcolo non era così forte, per questo le sue idee non ebbero successo.
Primi anni del 900
Alan Turing è uno dei padri dell’informatica. Con lui vi fu la nascita di seori dell’informatica. Test di Turing. Secondo
il quale una macchina era intelligente quanto l’uomo. Macchina vs uomo. Se l’uomo non si accorge che di fronte a se
non c’è una macchina allora la macchina è intelligente. La macchina di Turing è un modello astratto della macchina
secondo cui ai problemi possono essere risolti con una macchina o meno. Non tutti i problemi sono decidibili.
John Von Neumann descrive un calcolatore costruibile sulla base di Turing, ancora oggi il modello base dei nuovi
computer.
Informatica.
L’informatica è vista come:
-tecnologia: risvolti fisico-matematici e ingegneristici del calcolo
-scienza: basata su modellizzazione, formalizzazione e verifica.
L’informatica è un’informazione automatica, un insieme di processi e delle tecnologie.
Le tecnologie informatiche hanno tre funzioni:
-elaborare dati
-mantenere le informazioni elaborate per utilizzarle in combinazione con altre come input.
Ciclo di elaborazione.
-input
-elaborazione
-output
-memorizzazione
-distribuzione
I dati vengono trasformati in informazioni, alcune diventano dati per le prossime informazioni.
Computer: dispositivo in grado di elaborare dei dati per dare informazioni. Può essere:
Elettronico: usa i componenti elettronici.
Digitale: elabora informazioni binarie (o-1) -> bit
Hardware: componente fisica del sistema informatico (computer, stampante, monitor, tastiere, mouse, modem)
Algoritmo: insieme di operazioni per risolvere un problema. Esistono vari algoritmi per risolvere lo stesso problema.
Un programma in genere realizza molti algoritmi.
Software: insieme dei programmi che fanno funzionare l’hardware. Ci sono due tipi di software:
sistemi operativi. Permettono all’elaborazione di svolgere le proprie funzioni.
Programmi applicativi. Svolgono i compiti più vari, in funzione dell’esigenze dell’utente.
Dati
Lo scopo è quello di elaborare i dati (caratteri, testi, numeri) dati complessi (foto e video). Utilizziamo sempre i
computer, anche noi telefoni e nei videogiochi. Sono tutti programmi.
Rappresentazioni delle informazioni.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Introduzione all'informatica: Concetti fondamentali e architettura del computer e più Appunti in PDF di Elementi di Informatica solo su Docsity!

I computer sono stati creati per aiutare l’uomo, effettuare calcoli visto che l’uomo può sbagliare. L’uomo ci mette molto può tempo. Per o secoli l’uomo ha cercato di creare una macchina per automatizzare certi processi di calcolo.

V millennio a.C. Invenzione dell’abaco. È la prima macchina di calcolo. Non è diverso dal foglio di carta, la logica e la correttezza dell’operazione dipendono dall’utente. In automatico non fa nulla.

XVII secolo a.C. Invenzione della pascalina (innovazione). È considerato avanti perché la logica è controllata dalla macchina. È la macchina che lavora. La pascalina poteva fare solo addizione e sottrazione. Le moltiplicazioni e le divisioni potevano essere calcolate mediante ripetizioni di adozioni e sottrazioni ma era di nuovo l’utente a dover controllare il processo. Risolve un numero finito di azioni. Si pensa di affrontare il problema modificando la macchina, ma si rimanda.

1840 Il computer è riprogrammabile. Prende la logica del problema e lo manda come dato al pc che risolve il problema. La soluzione è quella di trattare tale logica come parte dell’input della macchina. Charles Babbage ha introdotto un esempio di macchina di calcolo ‘programmabile’. La tecnologia non era molto sviluppata a sufficienza e l’esigenza di automatizzare il calcolo non era così forte, per questo le sue idee non ebbero successo.

Primi anni del 900 Alan Turing è uno dei padri dell’informatica. Con lui vi fu la nascita di seori dell’informatica. Test di Turing. Secondo il quale una macchina era intelligente quanto l’uomo. Macchina vs uomo. Se l’uomo non si accorge che di fronte a se non c’è una macchina allora la macchina è intelligente. La macchina di Turing è un modello astratto della macchina secondo cui ai problemi possono essere risolti con una macchina o meno. Non tutti i problemi sono decidibili. John Von Neumann descrive un calcolatore costruibile sulla base di Turing, ancora oggi il modello base dei nuovi computer.

Informatica. L’informatica è vista come: -tecnologia: risvolti fisico-matematici e ingegneristici del calcolo -scienza: basata su modellizzazione, formalizzazione e verifica. L’informatica è un’informazione automatica, un insieme di processi e delle tecnologie. Le tecnologie informatiche hanno tre funzioni: -elaborare dati -mantenere le informazioni elaborate per utilizzarle in combinazione con altre come input.

Ciclo di elaborazione. -input -elaborazione -output -memorizzazione -distribuzione

I dati vengono trasformati in informazioni, alcune diventano dati per le prossime informazioni.

Computer: dispositivo in grado di elaborare dei dati per dare informazioni. Può essere:

  • Elettronico: usa i componenti elettronici.
  • Digitale: elabora informazioni binarie (o-1) -> bit Hardware: componente fisica del sistema informatico (computer, stampante, monitor, tastiere, mouse, modem) Algoritmo: insieme di operazioni per risolvere un problema. Esistono vari algoritmi per risolvere lo stesso problema. Un programma in genere realizza molti algoritmi. Software: insieme dei programmi che fanno funzionare l’hardware. Ci sono due tipi di software:
  • sistemi operativi. Permettono all’elaborazione di svolgere le proprie funzioni.
  • Programmi applicativi. Svolgono i compiti più vari, in funzione dell’esigenze dell’utente. Dati Lo scopo è quello di elaborare i dati (caratteri, testi, numeri) dati complessi (foto e video). Utilizziamo sempre i computer, anche noi telefoni e nei videogiochi. Sono tutti programmi.

Rappresentazioni delle informazioni.

I computer non elaborano solo numeri, ma anche test ed immagini. Le informazioni di base sono date dal sistema digitale (0-1).

Segnale analogico Segnale continuo di valori, trasmettono molte informazioni (un’onda) sono sensibili alle interferenze (insieme di più onde).

Segnale digitale Insieme discreto di valori semplice da distinguere. Ha due interruttori (0-1). I vantaggi sono:

  • Semplice
  • Non ambiguo
  • Riproducibile senza errori

Il bit (binary digit) Singola cifra binaria, segnale discreto su due valori (0-1). Il bit è l’elemento di base per rappresentare le informazioni in un computer. Nella macchina è tutto una sequenza di bit. Perché usiamo il bit?

  • È semplice
  • Può rappresentare ogni informazione Come si realizza il bit?
  • Presenza/assenza di carica elettrica
  • Direzione magnetica
  • Presenza/assenza di tensione
  • Passaggio/ non passaggio di luce Un bit può assumere due valori (0 e 1), quindi con un bit possiamo rappresentare due informazioni. Come fare per rappresentare più di due informazioni usando il bit? 2 bit-> 4 informazioni 00, 01, 10, 11

21 ->1 bit 22 -> 2 bit 23 -> 3 bit

Con N bit si rappresentano 2N^ informazioni. Se abbiamo K info, di quanti bit abbiamo bisogno per rappresentarlo? Dobbiamo scegliere N in modo che 2 N>= k Es. 2 N>= 61 26 =64>=61 3 bit in più

Il Byte Il byte viene utilizzato come unità di misura per esprimere la capacità della memoria, potenza di un calcolatore, la velocità di trasmissione di una linea. 8 bit formano un byte. 2^8 =

Rappresentazione dei numeri Numero: concetto che rappresenta una quantità (cinque) Numerale: simbolo che rappresenta una quantità (5)

Sistema decimale. Decimale: “alfabeto” do 10 cifre di base Numerale: 245 -> 2 centinaia, 4 decine, 5 unità Notazione posizionale: la posizione di una cifra in un numerale indica il suo peso in potenze di 10. Il numerale 304 in notazione decimale rappresenta la quantità: 3x10 3 +7x10 2 +0x10^1 +4x10^0

Sistema binario. Binario: “alfabeto” di 2 cifre di base (0,1) Il numero di cifre coincide con il numero di bit Numerale 101= 1x2^2 +0x2 1 +1x2 0

  • cioè, quando decomprimiamo l’immagine, questa è identica all’originale
  • Formati compressi lossless: gif, tiff, pn

Le tecniche di compressione lossy, invece, causano perdita di informazione:

  • cioè, il processo di compressione “scarta” alcuni dati
  • quando si decomprime l’immagine, questa è diversa dall’originale: è degradata in qualità
  • A quale scopo? La compressione lossy permette di risparmiare molto più spazio della lossless
  • Formati compressi lossy: jpeg, png

Codifica di sequenze di immagini (dette fotogrammi o frame)

  • Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l’altro
  • Esistono vari formati, soprattutto lossy: mpeg, divx, avi (microsoft), quicktime (apple)

Codifica dei suoni. Il suono è uno dei mezzi principali di comunicazione

  • Anche i suoni possono essere codificati in digitale
  • Un suono è un’onda di pressione che si ha in presenza di un mezzo (l’aria, l’acqua)
  • Quando un suono viene rilevato dall’orecchio o da un microfono, viene trasformato in uno stimolo – o segnale – elettrico
  • Durata, intensità e variazione nel tempo della pressione dell'aria sono le quantità fisiche che rendono un suono diverso da ogni altro
  • Sull'asse delle ascisse (x) viene rappresentato il tempo Sull'asse delle ordinate (y) viene rappresentata la variazione di pressione corrispondente al suono stesso
  • Si rappresenta quindi l’intensità del suono in funzione del tempo
  • Tempo e intensità sono quantità analogiche tempo analogiche

Come passare da rappresentazione analogica a rappresentazione digitale? Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli costanti di tempo) e si codificano in forma digitale le informazioni (numeriche) estratte da tali campionamenti. Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale.

Discretizzando esclusivamente sul tempo, abbiamo ancora campioni analogici (l’ampiezza è un valore analogico)

  • Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario
  • A ogni livello viene assegnata una sequenza binaria (diversa per ognuno)
  • Ogni campione viene approssimato al livello più vicino, al valore indicato con il cerchio
  • Ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo

La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata. Si ha una discretizzazione in tempo e una sul valore

  • CD musicali: 44100 campionamenti al secondo, 16 bit per campione
  • Diversi formati: mov, wav, mpeg (mp3), avi, midi
  • Formato midi codifica le note e gli strumenti che devono eseguirle: solo musica, non voce
  • Formato mp3: lossy, molto diffuso e molto efficiente

Tipi di calcolatori. Computer multiutente (multiuser)

  • supercomputer: i più potenti, basati su centinaia o migliaia di processori che lavorano in parallelo
  • mainframe e server: svolgono funzioni centralizzate; ad essi sono collegati altri computer o terminali
  • minicomputer: simili a mainframe ma meno potenti
  • terminali: postazioni senza capacità di elaborazione, devono essere collegati a un server

Personal computer

  • desktop e workstation
  • notebook
  • tablet
  • smartphone

Funzioni di base di un elaboratore.

  • elaborare l’informazione
    • usando il processore (Central Processing Unit, CPU)
  • memorizzare l’informazione
    • usando la memoria principale (RAM)
    • usando la memoria secondaria
  • eseguire input/output dell’informazione
    • usando i dispositivi di input/output

Funzionamento ad alto livello.

  1. All’avvio dell’elaboratore, programmi (almeno il S.O.) e dati (se ce ne sono) risiedono in memoria secondaria
  2. I programmi per essere eseguiti devono essere portati in memoria principale. Così anche i dati per essere utilizzati dai programmi
  3. La CPU (Central Processing Unit) esegue i programmi eseguendo le istruzioni di cui sono composti
  4. Avviene l’input/output e la memorizzazione su memoria secondaria

La memoria principale.

  • Insieme alla CPU è una componente fondamentale del calcolatore
  • Permette di memorizzare sia il programma che i dati
  • Fisicamente è formata da componenti elettronici (transistor, resistenze, condensatori) miniaturizzati
  • Ogni unità elementare può trovarsi a due diversi livelli di tensione elettrica (o carica del condensatore): ecco il corrispettivo fisico del bit
  • È strutturata in una sequenza di celle (o locazioni) di memoria
  • Ogni cella memorizza un byte
  • Ecco perché abbiamo studiato la rappresentazione delle informazioni tramite bit e byte!
  • Le celle sono numerate in sequenza: indirizzo
  • Quali operazioni si possono compiere sulla memoria?
    • lettura del contenuto di una cella
    • scrittura in una cella
  • Per leggere e scrivere in una cella è necessario conoscerne l’indirizzo
  • Specificando l’indirizzo di una cella, la CPU è in grado di leggere e/o modificare il valore del byte memorizzato in quella cella

Es.: una RAM di 65536 (2^16 ) celle di un byte ciascuna. Quanti bit per esprimere un indirizzo compreso tra 0 e 65535? 16!

Dimensioni della memoria. Lo spazio di indirizzamento è l’insieme o il numero delle celle indirizzabili direttamente

  • Il numero di celle indirizzabili è una potenza di 2
  • numero di celle indirizzabili = numero di informazioni rappresentabile con un certo numero di bit
  • L’unità di misura della memoria è il byte Si usano dei multipli:
    • Kilobyte (KB) = 1024 byte (210 byte)
    • Megabyte (MB) = 1024 KB (220 byte)
    • Gigabyte (GB) = 1024 MB (230 byte)
  • La dimensione tipica della RAM nei Personal Computer è:
    • 512 MB, 1 GB, 2 GB
  • La memoria è espandibile fino a un limite fisico (slot sulla scheda madre per ospitare i chip di memoria) e ha anche un limite massimo dovuto al sistema

La RAM. Random Access Memory (RAM): memoria ad accesso casuale

  • Perché si chiama “ad accesso casuale”?
    • Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo
    • Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza
    • Il termine “random” (casuale) indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria
  • Fetch (preleva): preleva dalla memoria principale la prossima istruzione da eseguire
  • Decode (decodifica): decodifica l’istruzione e preleva gli operandi specificati
  • Execute (esegui): esegue l’istruzione utilizzando la componente opportuna, memorizza i risultati e ricomincia

L’esecuzione (passo execute) comporta l’invio di comandi opportuni all’unità relativa:

  • Calcoli → Arithmetic Logic Unit
  • Lettura/scrittura dati → memoria
  • Acquisizione/stampa → dispositivi di I/O La frequenza con cui è eseguito il ciclo di fetchdecode-execute è scandita dal clock (orologio interno): ad ogni impulso di clock la CU esegue un ciclo. La velocità di elaborazione di una CPU dipende dalla frequenza del suo clock.

CPU: la arithmetic logic unit (ALU)

  • Esegue le operazioni di tipo aritmetico (ad es. somme) e logico (ad es. confronti)
  • Preleva gli operandi dai registri e deposita il risultato delle operazioni in uno (o più) registri

CPU: i registri

  • Piccole celle di memoria con tempi di accesso molto più bassi rispetto alla memoria primaria. Mantengono le informazioni necessarie per eseguire l’istruzione corrente. Hanno dimensione di 16, 32 o 64 bit. Si dividono in registri: - generali - speciali i registri generali sono in numero ridotto: 8, 16, 32, 64, 128... in funzione dell’architettura. Sono usati come celle di memoria temporanea; contengono gli operandi e i risultati delle istruzioni in esecuzione. In alcune architetture, alcuni registri hanno funzioni privilegiate. CPU: il Program Counter (PC) È un registro speciale, contiene l’indirizzo in memoria principale della prossima istruzione da eseguire. Quando un programma viene avviato, l’indirizzo della prima istruzione viene caricato nel Program Counter. All’esecuzione di un’istruzione, il PC viene modificato per contenere l’indirizzo della prossima istruzione da eseguire.

CPU: L’instruction register (IR) È un registro speciale, contiene l’istruzione attualmente in esecuzione. La CU legge l’istruzione contenuta in IR e la esegue.

La memoria secondaria. La CPU può eseguire (ed elaborare) esclusivamente programmi (e dati) che risiedono in memoria principale, questi risiedono in memoria secondaria, perciò devono essere copiati in memoria principale. Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria (es. hard disk) in RAM; l’operazione si chiama loading o caricamento. Caratteristiche della memoria secondaria:

  • capiente
  • (relativamente) poco costosa
  • non volatile
  • lenta! La memoria secondaria è composta da:
  • supporti di memorizzazione: componente fisico in cui vengono immagazzinati i dati Es.: DVD
  • dispositivi di memorizzazione: leggono/scrivono dati dal/sul supporto di memorizzazione

La memoria secondaria è composta da tecnologie diverse:

  • magnetica
  • ottica
  • (magneto-ottica)
  • flash (o allo stato solido)

La memoria magnetica. Sfrutta il fenomeno fisico della polarità. Sul supporto sono presenti particelle magnetiche, la testina di lettura/scrittura cambia/rileva la polarità delle particelle. Usata per alcuni hard disk, floppy disk e nastri. Prese due particelle magnetiche adiacenti:

  • stessa polarità -> 0
  • diversa polarità -> 1

La memoria ottica. Sfrutta la riflessione della luce di un laser. Sul supporto sono presenti delle minuscole scanalature (pit) che formano zone chiare (luce riflessa) e zone scure (luce non riflessa):

  • chiaro/scuro o scuro/chiaro -> 1
  • chiaro/chiaro o scuro/scuro -> 0

Memoria flash o allo stato solido. Costituita da chip simili a quelli della RAM ma in grado di registrare in modo permanente. Ha un tempo di accesso ridotto. È leggera e facilmente trasportabile. Usata per:

  • macchine fotografiche digitali
  • penne USB
  • smartphone
  • lettori MP
  • alcuni hard disk

Caratteristiche della memoria secondaria. Due modalità possibili di lettura o scrittura

  • accesso diretto o random: si accede a qualunque punto del supporto direttamente
  • accesso sequenziale: si accede ad un punto solo dopo aver letto/scritto fino a quel punto

Velocità. Quanto tempo occorre per leggere informazioni da un supporto? Dipende da:

  • tempo di accesso: tempo impiegato per iniziare a leggere i dati
  • velocità di trasferimento: velocità con cui i dati vengono effettivamente trasferiti in RAM

Capacità di memorizzazione. Capacità di memorizzazione: quantità di dati memorizzabile sul supporto Dipende da:

  • dimensione (lunghezza e/o superficie) del supporto
  • densità di memorizzazione

Supporti di memorizzazione. L’hard disk. Ha una tecnologia magnetica. È la memoria secondaria più diffusa, è di dimensioni piccole ma ha elevate capacità.

  • Struttura:
    • pila di dischi in rotazione
    • testine mobili
    • perno centrale

I bit sull’hard disk.

Slot di espansione e schede di espansione. Le capacità di un computer possono essere estese inserendo apposite schede di espansione su connettori presenti sulla scheda madre chiamati slot di espansione.

Comunicazione con dispositivi I/O. I dispositivi di I/O sono le periferiche dell’elaboratore, sono collegate all’elaboratore attraverso le porte, cioè delle prese. Le porte, all’interno del computer, sono presenti sulla scheda madre o sulle schede di espansione. Ci sono vari tipi di porte, che differiscono per l’aspetto fisico, per le caratteristiche elettriche/ottiche, velocità, e più in generale per il protocollo:

  • porta VGA o HDMI (per il monitor)
  • porte USB (per varie periferiche, fino a 127 in serie)
  • Ethernet

Dispositivi di Input/Output. Servono a comunicare e interagire con l’elaboratore; non necessariamente con un essere umano. Dispositivi Input:

  • Tastiera (standard o touch screen)
  • Dispositivi di puntamento (mouse, gamepad, touch pad, trackball)
  • Microfono (in generale Line In)
  • Scanner (piano fisso, tamburo, manuale)
  • Fax Dispositivi Output:
  • Stampanti (laser, a matrice di punti, plotter, inkjet)
  • Videoterminali
  • Videoproiettori
  • Casse acustiche
  • Plotter

Elementi di Output.

  • Pixel: picture element
  • Dot: elemento di immagine su una pagina stampata
  • Bit mapping:
    • ogni pixel ha un indirizzo
    • la CPU può modificare ogni pixel
  • Risoluzione (stampa):
    • indica la qualità di una immagine
    • si misura in punti per pollice
    • più è elevata, migliore è l’immagine
  • Dot pitch dei monitor: distanza tra i fosfori o le celle LCD (RGB) sullo schermo
  • Font: tipo di carattere (stile, forma, dimensione)
  • Font bitmap: caratteri rappresentati come matrice di punti
  • Font scalabili: caratteri rappresentati come serie di formule

Il Bus. Bus: linea di comunicazione per la trasmissione di informazioni tra i vari componenti del sistema, fisicamente, è un insieme di collegamenti in rame. Tutti i componenti del sistema sono collegati al bus d sistema. Il bus locale è un’evoluzione del bus di sistema, per il collegamento veloce tra CPU, memoria e periferiche veloci (es. riprese video, schede video che mandano il segnale al monitor). È un metodo molto flessibile perché è facile aggiungere componenti.

Il Software. L’hardware da solo è soltanto un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento dell’elaboratore, occorre utilizzare il software: un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura. L’utilizzo dell’hardware è complicato, quindi, occorre fornire all’utente un meccanismo per usare nello stesso modo macchine diverse e avere un insieme di programmi applicativi per svolgere diversi compiti. I computer moderni raggiungono questi obiettivi mediante la definizione di macchine virtuali realizzate al di sopra della macchina hardware reale.

Macchine virtuali. La macchina virtuale consiste in un livello software creato sull’hardware ed è virtuale in quanto non esiste fisicamente, ma viene realizzata mediante il software (sistema operativo o software di base). L'utente interagisce con la macchina virtuale con un linguaggio ad alto livello, questa, traduce ogni comando ad alto livello nell'opportuna serie di comandi per l’hardware.

Il sistema operativo. Sistema Operativo: insieme di programmi che interagiscono e cooperano tra di loro per gestire efficientemente il computer e le sue periferiche e creare un ambiente virtuale per facilitare l'interazione uomo-macchina. Il s.o. ha una struttura a cipolla, ogni livello, “astrae” il livello inferiore, nascondendone la complessità e fornisce servizi al livello superiore. Ogni dispositivo di I/O collegato al computer è gestito da un modulo del s.o. chiamato driver. Ogni volta che si aggiunge un nuovo dispositivo, si deve installare il driver corrispondente all’interno del s.o..

Funzioni del sistema operativo.

  • Accensione e configurazione della macchina (bootstrap)
  • Gestione del processore
  • Gestione della memoria (principale e virtuale)
  • Linguaggio ad alto livello per l’interazione con l’utente
  • Gestione e accesso alle informazioni su memoria secondaria (File system) Il bootstrap. Bootstrap = Avvio dell’elaboratore All’accensione della macchina, un programma (il BIOS) in ROM cerca sulla memoria secondaria il s.o. e ne carica una parte in RAM. Ordine tipico di ricerca:
    • Floppy disk
    • CD/DVD
    • Hard Disk

Avvio dell’elaboratore. La prima parte del s.o. che viene caricata comprende (in generale):

  • i programmi per gestire processi e CPU
  • i programmi per gestire la memoria
  • i programmi per gestire periferiche e I/O
  • i programmi per gestire il File System
  • il programma che crea l'interfaccia (grafica o testuale) utente

Parte dei programmi del s.o. devono essere mantenuti sempre in RAM per essere sempre pronti per l’esecuzione. All’avvio, vengono identificati tutti i dispositivi di memoria secondaria e tutte le periferiche e vengono avviati i relativi programmi di gestione (driver).

Multitasking. I moderni s.o. sono multitasking, cioè è possibile eseguire più programmi allo stesso tempo. Il s.o. alterna i programmi assegnando la CPU a turno:

  • In ogni istante un solo programma è eseguito dalla CPU
  • Se l’alternanza è frequente, si ha l’impressione che i programmi vengano eseguiti contemporaneamente

Processi. Un processo può trovarsi in uno dei tre stati:

  • in esecuzione, cioè è in esecuzione nella CPU
  • in attesa, cioè attende che un’operazione di I/O termini
  • pronto, cioè può andare in esecuzione, ma la CPU è occupata ad eseguire un altro processo Il s.o. ha il compito di scegliere quale tra i processi pronti mandare in esecuzione in modo da usare l’elaboratore in modo efficiente ed efficace.

Memoria virtuale. Tecnica di gestione della memoria utilizzata da tutti i sistemi operativi moderni. Permette di “fare credere” ai singoli programmi di avere a disposizione una quantità di memoria più grande di quella effettivamente installata e contigua.

  • con un’organizzazione gerarchica a più livelli, non solo non è sufficiente il nome, ma neanche la directory in cui il file è contenuto. Infatti possono esistere file e directory diversi con lo stesso nome (se contenuti in directory diverse)
  • Individuazione file o directory in modo univoco: sequenza di directory che lo contengono, dalla radice (pathname assoluto) Si può usare il concetto di posizione corrente per identificare un file o una directory (in modo univoco), si specifica la sequenza di directory che lo (la) contengono.

Linguaggi di programmazione. I programmi vengono scritti da team di programmatori. I programmatori scrivono del codice sorgente in un linguaggio di programmazione ad alto livello, cioè a un livello intermedio tra il linguaggio naturale e il linguaggio macchina. Perché il programma possa essere eseguito dalla CPU, il codice sorgente viene trasformato in linguaggio macchina (traduzione). I linguaggi di programmazione sono linguaggi artificiali, formali, non ambigui. Esempi di linguaggi di programmazione: C++, Java, Javascript, PHP, COBOL, Basic. Ci sono due modi di tradurre il codice sorgente in linguaggio macchina:

  • Il compilatore traduce completamente il codice sorgente in linguaggio macchina e produce un programma eseguibile
  • L’interprete traduce il codice sorgente in linguaggio macchina istruzione per istruzione durante l’esecuzione del programma

Utilizzo e problemi del software. I programmi devono essere installati sull’hard disk (e nel S.O.) ed essere configurati per utilizzare l’hardware e per integrarsi nel S.O.: programma di installazione. I problemi possono essere per la compatibilità:

  • se si cambia il S.O., molti programmi potrebbero dovere essere aggiornati
  • documenti, immagini creati con versioni precedenti dello stesso programma potrebbero non essere più leggibili (raro), o viceversa (frequente)
  • l’aggiornamento può introdurre nuovi problemi

Elaborazione document centered. Dopo gli ultimi aggiornamenti, prima si apre il documento, nel quale vengono aperte le applicazioni (attenzione centrata sul documento). I documenti sono composti, contengono altri documenti. Questo è chiamto Tecnologia OLE ( Object Linking and Embedding). Sono possibili due tecniche di inclusione OLE:

  • incorporamento (embedding)
  • collegamento (linking)

Incorporamento dei dati. I dati del documento sorgente sono copiati nel documento composto. Le modifiche apportate in seguito al documento sorgente non sono inserite nel documento composto e le modifiche all’oggetto incorporato non compariranno nel documento sorgente. Nel documento composto viene visualizzata un’immagine dell’oggetto collegato senza copiarlo. Le modifiche apportate in seguito al documento sorgente sono automaticamente riportate nel documento composto, e viceversa...

Incorporamento vs collegamento. Sono equivalenti dal punto di vista del risultato: il documento composto appare allo stesso modo. Il collegamento è utile:

  • per mantenere aggiornato il documento composto
  • se lo stesso oggetto è usato in più documenti
  • per risparmiare spazio L’incorporamento è utile:
  • per operare modifiche sull’oggetto incorporato senza alterare il documento originale
  • per inviare il documento composto ad altri utenti senza alterare i documenti componenti originali

Tecnica taglia/copia e incolla. È usata per trasferire informazioni in una o più applicazioni (usa la clipboard)

  • copia: trasferisce informazioni in un buffer
  • taglia: elimina le informazioni e le trasferisce in un buffer
  • incolla: porta le informazioni dal buffer alla destinazione

Buffer. È una piccola area di memoria RAM con la funzione di memoria temporanea (buffer tradotto come tampone). Serve per la comunicazione tra un programma e un dispositivo periferico (es. hard disk, tastiera) o tra un programma e la rete (es. video in streaming) e per scambiare dati tra programmi (es. clipboard).

Fogli elettronici. Consentono di effettuare proiezioni semplici e complesse (la modifica di un singolo valore può far cambiare i valori da esso dipendenti, a catena). Visualizzano dati in forma tabellare o grafica. I fogli elettronici sono composti da:

  • Composto da una griglia di righe e colonne
  • Righe numerate (1, 2, 3, ...)
  • Colonne contrassegnate da lettere (A, B, C, ...)
  • La cella Viene visualizzata solo una piccola parte del foglio elettronico (i moderni fogli elettronici hanno più di 4 milioni di celle). Si possono gestire più fogli insieme e le formule possono legare tra loro fogli diversi.

Optical Character Recognition (OCR). Sono programmi che convertono un’immagine contenente un testo in un documento di testo modificabile con programmi di videoscrittura. Il documento di origine di solito consiste in pagine stampate su carta e digitalizzate con uno scanner.

Reti di calcolatori. Una rete di calcolatori è costituita da due o più elaboratori collegati tra di loro mediante un mezzo che permette di farli colloquiare. È costituita da:

  • un mezzo fisico attraverso cui i dati si possano propagare (un cavo (filo) o l’etere (radiofrequenza))
  • dispositivi di I/O usati dai calcolatori per inviare/ricevere dati sulla rete (scheda di rete, modem, …)
  • protocolli per disciplinare le comunicazioni Una rete permette di:
  • condividere periferiche (stampanti, dischi, ...)
  • rendere più semplice ed efficace la manutenzione
  • aumentare la tolleranza ai guasti (se un dispositivo si rompe, questo può essere sostituito da un altro)
  • eseguire applicazioni distribuite (un programma può essere distribuito su più calcolatori)
  • di accedere a informazioni remote (World Wide Web)
  • di comunicare con altre persone (e-mail, messenger, newsgroup, blog)
  • di partecipare a videogiochi con altre persone
  • di scrivere un’enciclopedia collaborativa come Wikipedia

Larghezza di banda. La larghezza di banda è la capacità di trasmissione (misura potenziale), mentre la Velocità di trasmissione è la misura effettiva. Entrambe misurate in bit/s (o bps), cioè con il numero di bit trasmessi in un secondo.

Accesso residenziale a internet. Sono necessari dei dispositivi per poter usare la rete telefonica come mezzo di comunicazione tra computer: i modem. È utilizzato principalmente per le comunicazioni di tipo privato. In una comunicazione il modem più lento detta la velocita di trasmissine.

  • Il Modem dial-up, usa la stessa linea utilizzata per le normali chiamate telefoniche. Il modem del computer dell'utente deve essere connesso alla rete telefonica e per accedere a Internet, il modem deve comporre il numero dell’ISP. Anche il provider ha un modem ed è permanentemente connesso a Internet. La larghezza di banda di questo modem può raggiungere 56 Kbps (Kilobit per secondo).
  • ADSL (Asymmetric Digital Subscriber Line) ha accesso residenziale a banda larga e la sua larghezza di banda è asimmetrica. Usa tre bande di frequenza non sovrapposte: un canale verso l'utente (downstream), un canale verso l'ISP (upstream), un canale telefonico ordinario a due vie (PSTN).
  • database server: gestisce, tramite un DBMS, uno o più DB condivisi Interfaccia di rete. Per collegare un elaboratore a una rete locale si usa una scheda di interfaccia di rete, che ha i compiti di:
  • creare la connessione fisica
  • convertire i dati da trasmettere nel formato opportuno
  • amplificare la potenza del segnale a livello elettrico

Collegamento fisico delle reti locali. Il collegamento fisico alle reti locali avviene tramite i cavi di rame, cavi in fibra ottica o con la trasmissione in radiofrequenza.

Ethernet. È la tecnologia più diffusa per LAN. Deriva da ether (ètere), cioè il cavo in cui passano i segnali, è utilizzabile con varie topologie (a bus, a stella). Se più segnali transitano sullo stesso cavo, creano interferenze e il segnale risulta “incomprensibile”. Quando un computer vuole comunicare, controlla che nessun altro computer stia comunicando e poi invia il segnale sul cavo di collegamento; altrimenti, aspetta. Se si verifica un conflitto (due computer hanno tentato di comunicare contemporaneamente), entrambi i computer si fermano e aspettano per un tempo casuale, poi riprovano.

Wi-Fi. È una rete locale senza fili con la trasmissione in radiofrequenza. L’elaboratore si collega a un access point disponibile, che ha un raggio di circa 30 m. Spesso la connessione viene cifrata (WEP, WPA, WPA2). È utile per collegarsi a Internet da posti pubblici (biblioteche, aeroporti, …). Una rete Wi-Fi è una rete “stabile”.

Collegamento fisico delle reti geografiche. Può avvenire grazie a: Cavi telefonici (sia fibra ottica che rame): sfruttano la rete telefonica per trasmettere i segnali

  • Onde radio: si usano microonde ad alta frequenza su brevi distanze, come in un campus
  • Satelliti: usati per trasmissioni a lungo raggio, illuminano anche grandi zone

Internet. Internet è la rete delle reti. Cioè, collega fra loro reti locali, metropolitane, geografiche e singoli computer di tutto il mondo.

Internet (con la i minuscola). Per connettere due sottoreti occorre un calcolatore che si possa collegare ad entrambe le sottoreti. Il calcolatore che si attacca alle due sottoreti deve essere in grado di fare passare i pacchetti da una sottorete all'altra, quando richiesto. Questi calcolatori che interconnettono due o più sottoreti e che sono capaci di passare i pacchetti da una sottorete all'altra si chiamano internet gateway o internet router. Quando un router inoltra un pacchetto proveniente da una sottorete ad un’altra sottorete svolge IP forwarding. Le reti locali si collegano a Internet tramite un dispositivo chiamato router. I router instradano i pacchetti tra le varie sottoreti. Al confine tra rete locale e Internet viene sovente posto anche un firewall, che limita le comunicazioni da/verso l’esterno per motivi di sicurezza. Il firewall può anche essere un programma in esecuzione sul PC.

Dare un nome agli elaboratori. Ogni elaboratore in rete deve possedere un nome, altrimenti sarebbe impossibile comunicare con esso. Il nome si chiama indirizzo e viene usato per identificare l’elaboratore e localizzare l’elaboratore nella rete. Un elaboratore possiede due (tipi di) indirizzi:

  • Indirizzo IP. Gli indirizzi IP sono numerici e hanno attualmente un formato a 4 byte. (130.192.156.1). Gli indirizzi IP permettono di localizzare un elaboratore, cioè di sapere a quale parte di Internet è collegato, in modo da recapitargli i messaggi. Possono essere presenti al massimo 2^32 elaboratori.
  • Indirizzo logico. Gli indirizzi logici sono composti da due o più parti separate da punti, ad es. www.unito.it. Specificano domini, sottodomini, sotto-sottodomini e così via, fino a identificare il singolo elaboratore collegato in rete. I domini di primo livello possono essere: ■ geografici: www.unito.it www.bl.uk www.google.de

■ generici, ed evocano il tipo di ente. .com, .org, .edu.

Domain name system (DNS)