Scarica Esame di Informatica e più Dispense in PDF di Fondamenti di informatica solo su Docsity!
INFORMATICA
Codifica dell’informazione Numeri interi Come rappresentano le informazioni i calcolatori? Che linguaggio parlano? I computer non elaborano solo i numeri, ma anche testi, suoni, immagini ecc; è sufficiente che l’informazione sia rappresentabile in modo digitale. Esistono segnali di tipo: a) analogico : insieme continuo ed infinito di valori, ogni valore contiene informazioni che sono sensibili alle interferenze (le info possono subire delle modifiche). ES. variatore della luminosità b) digitale : insieme discreto di valori, ad es. 2 stati facilmente distinguibili (0;1) ES. interruttore ON/OFF Vantaggi del digitale
- non è ambiguo (non è sensibile)
- semplicità
- riproducibile senza errori IL BIT (binary digit/cifra binaria) è l’elemento di base/l’unità minima per rappresentare le info. Segnale binario, ovvero un segnale discreto su 2 valori. Sistema semplice che può rappresentare qualsiasi tipologia di informazione. Il bit è il valore di base per codificare qualsiasi info. Come si realizza un bit?
- presenza/assenza di carica elettrica
- direzione di magnetizzazione
- passaggio di luce o no
- presenza/assenza di corrente/tensione CON UN BIT= 2 INFO DISTINTE E 2 VALORI n INFO= n VALORI= n BIT NON C’E’ UNA REGOLA FISSA, VA STABILITA UNA CONVENZIONE OGNI CONVENZIONE DEVE ESSERE RISPETTATA DA CHI CODIFICA E DA CHI DECODIFICA: 0 1 no si giu su vero falso on off AD ES. possiamo rappresentare le risposte in un test di informatica così 0, 1, 1, 0, 1, 1, 1, 0, 0, 0 se nella nostra convenzione stabiliamo che 0 è vero e 1 è falso, corrisponde a v, f, f, v, f, f, f, v, v, v abbiamo utilizzato 10 bit per 10 domande, ma ci basta 1 bit perchè le informazioni distinte sono 2 e perchè noi codifichiamo ogni singola risposta Per rappresentare più info, utilizzo più bit: 2 bit= 4 info= 00, 01, 10, 11 3 bit= 8 info= 000, 001, 010, 011, 100, 101, 110, 111
LA FORMULA:
1 bit= 2 = 2 info distinte 1 2 bit= 2 = 4 info distinte 2 3 bit= 2 = 8 info distinte 3 n bit= 2 = n info distinte 𝑛 il 2 è sempre la base perché nel sistema binario il bit vale sempre 2 info LA TABELLINA: 2 0 = 1 2 1 = 2 2 2 = 4 2 3 = 8 2 1 x2= 2 x2= 4 x2= 8 x2= 16 x2= 32 … 4 = 16 2 5 = 32 2 6 = 64 2 7 = 128 2 => UN BYTE , unità di misura per esprimere ad es la capacità di memoria 8 = 256 2 9 = 512 2 10 = 1024 … Quando devo codificare K informazioni distinte devo scegliere un numero di bit tale che 2 𝑛 sia ≥a K ( n minimo per cui valga questa condizione). In poche parole dobbiamo trovare un numero di bit sufficiente per esprimerle tutte 2 𝑛 ≥ 𝐾 AD ES. 61 info da codificare, quanti bit? 2 (32 o 64) => 5 𝑜 2 6 2 6 RAPPRESENTAZIONE DEI NUMERI:
- numero= concetto che rappresenta una quantità vera e propria
- numerale= simbolo che rappresenta questa quantità. I numerali differiscono dai numeri (6= sei= VI= six…) IL SISTEMA DECIMALE alfabeto di 10 cifre base (0-1-2-3-4-5-6-7-8-9), pedice 10 numerale 568 = 5 centinaia, 60 decine, 8 unità= 10
2
- 6𝑥 1
- 8𝑥 0 la potenza di 10 dipende dalla posizione della cifra Notazione posizionale = la posizione di 1 cifra in un numerale indica il suo peso in potenze di 10
con 2 cifre rappresentiamo 100 valori/ numeri, ma il max num rappr è 99= da 0 a 99 con 3 cifre rappresentiamo 1000 valori/numeri, ma il max num rappr è 999= da 0 a 999 1000 = 10 max num rappre. 3 − 1 = 999 base= 10 potenza di 3= numero di cifre 𝐵𝐴𝑆𝐸 𝑛 − 1 = 10 𝑛 − 1 b) sistema binario con 2 cifre ( 2 ) rappresentiamo 4 numeri diversi, ma il max num rappr è 3 2 2 2 − 1 = 3 base= 2 potenza di 2= numero di cifre 𝐵𝐴𝑆𝐸 𝑛 − 1 = 2 𝑛 − 1 NON CONFONDERE le informazioni distinte/numeri diversi con il massimo numero rappresentabile. AD ES. 2 = 4 info distinte/numeri diversi= max num rappr= 3= (0, 1, 2, 3) 2 ES. trovare il max num rappre. con 8 bit 2 8 − 1 = 256 − 1 = 255 10 per rappresentare 256 serve 1 bit in più 10 25510 = 111111112 (tutti 1= max num rappr, tutte le basi si moltiplicano positivamente) 25610 = (^1000000002) numeri noti: con 16 bit: 216-1 = 65. con 32 bit: 232-1 = 4.294.967. con 64 bit: 264-1 = 18446744073709551615 ≈ 1,84 * 1019 ES. 34510 = 3𝑥 2
- 4𝑥 1
- 5𝑥 0 = 300 + 40 + 5 = 345 111 2
2
- 1𝑥 1
- 1𝑥 0 = 4 + 2 + 1 = 7 CONVERSIONE DA BASE 2 A BASE 10 moltiplicare ogni BIT per il suo peso e sommare, somma di potenze di 2 110102 = 1𝑥 4
- 1𝑥 3
- 0𝑥 2
- 1𝑥 1
- 0𝑥 0 = 16 + 8 + 0 + 2 + 0 = 26 IMPORTANTE: 0𝑥 0 = 0 1𝑥 0 = 0 se termina con 0= pari se termina con 1= dispari CONVERSIONE DA BASE 10 A BASE 2 seguenza di divisioni per 2 facendo attenzione ai resti 12 10
invertiamo: 1 1 0 0 verificando: 1𝑥 3
- 1𝑥 2
- 0𝑥 1
- 0𝑥 0 = 8 + 4 + 0 + 0 = 12
che diventa: 1 0 1 1 verificando: 1𝑥 3
- 0𝑥 2
- 1𝑥 1
- 1𝑥 0 = 8 + 0 + 2 + 1 = 11 60 10
che diventa: 1 1 1 1 0 0 verificando: 1𝑥 5
- 1𝑥 4
- 1𝑥 3
- 1𝑥 2
- 0𝑥 1
- 0𝑥 0 = 32 + 16 + 8 + 4 + 0 + 0 = 60 Codifica dell’informazione Caratteri Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere CODICE ASCII A merican S tandard C ode I nformation I nterchange, consente di rappresentare tutte le lettere dell’alfabeto anglosassone, le maiuscole, le minuscole, le cifre e i segni di punteggiatura. Il codice ASCII, dunque, rappresenta una convenzione decisa in maniera arbitraria da chi ha definito lo standard. Uno standard è necessario per permettere lo scambio di info testuali. In ASCII le cifre non hanno peso algebrico/matematico, rappresentano dei caratteri (rappr. grafica). Ordine lessicografico ASCII Ogni carattere -> 7 bit meno significativi del BYTE= 2 = diversi caratteri 7 = 128 rappresentabili. Ordine:
- caratteri speciali
- cifre (dal minore al maggiore)
- altri caratteri
- Maiuscole (valore minore rispetto alle minuscole, quindi in ordine vengono prima)
- minuscole AD ES. Zacinto viene prima di abete Ma come si fanno a rappresentare tutti i caratteri (lettere accentate non sono presenti)? Utilizziamo codice ASCII esteso , il quale sfrutta il BYTE= 2 8 = 256 In sostanza si aggiunge semplice il bit più significativo con valore 0, per occupare il byte ES. casa c= 01100011 a= 01100001 s= 01110011 a= 01100001 decodificare 01101001= i | 01101100= l | 00100000= SP (spazio) 01010000= P | 01101111= o | 00101110=.
AD ES. 2 = 4 bit= 16 info= 16 livelli di grigio 4 2 = n bit= n tinte diverse 𝑛 TRUECOLOR/RGB associare una rappresentazione binaria a ogni possibile colore di un pixel. Tre colori primari: red, green, blue. Diversi dai colori primari utilizzati per gli inchiostri. Combinando questi 3 colori= tutti i colori possibili Ogni singolo colore ha 256 valori possibili= 8 bit per 1 colore= 24 bit per i 3 colori= 3 byte per ogni pixel= 2 = 16777216 colori totali 24 PER CAPIRE SE UN IMG E’ TRUECOLOR O BIANCA E NERA DEVO SAPERE QUANTI BIT/BYTE SONO ASSOCIATI AD OGNI PIXEL Occupazione delle img AD ES. img 150x200 pixel in truecolor quanto occupa? 150x200= 30000 pixel, ogni pixel 3 byte/24 bit: 30000x3= 90000 byte; 30000x24= 720000 Dunque, le img occupano molto spazio e perciò esistono algoritmi di compressione che consentono di ridurre la dimensione dello spazio occupato delle img, alcuni di questi algoritmi vengono definiti lossless, perché permettono la compressione senza una perdita di info da parte della img
- ad es. esiste una tecnica che permette di codificare aree dello stesso colore in modo abbreviato, invece di codificare 6 volte lo stesso pixel dello stesso colore, codificare 1 volta e moltiplicare per 6. No 6 sequenze uguali, ma 6 x la sequenza;
- alcuni formati lossless: gif, png. Invece le tecniche di compressione delle img che prevedono una perdita di info vengono chiamate lossy (perdita maggiore di info per un guadagno maggiore di spazio
- il processo di compressione scarta direttamente alcuni dati e quindi quando si decomprime l’img questa sarà differente dall’originale, degrada di qualità
- alcuni formati lossy: jpeg, png. IMMAGINE IN MOVIMENTO , i filmati rappresentano delle sequenze di immagini chiamate fotogrammi o frame che danno l'illusione che ci sia un vero e proprio movimento. Ogni singolo frame viene codificato e per facilitare questo processo vengono memorizzati soltanto le differenze tra un frame e l’altro (visto lo spazio elevato richiesto). Si tratta di formati per lo più lossy: mpeg, divx, avi, quicktime Codifica delle informazioni Suoni SUONO , insieme di onde di pressione che si hanno in presenza di un mezzo (aria/acqua), rappresenta uno dei principali mezzi di comunicazione. Il suono rilevato dall’orecchio o da un microfono viene trasformato in stimolo (segnale elettrico). Inevitabilmente si tratta di un segnale analogico che va trasformato in segnale digitale. Qualità fisiche che differenziano un suono:
- durata
- intensità
- variazione nel tempo
Come si codifica il suono? Effettuando dei campionamenti sull’onda (cioè misurando il valore dell’onda a intervalli costanti di tempo) e codificando in forma digitale le info (numeriche) estratte da tali campionamenti:
- ricevo segnale analogico
- effettuo campioni costanti
- mantengo i valori Ad ogni campione viene associato un valore che rappresenta il valore dell’intensità del suono in quell’esatto istante di tempo Digitalizziamo ogni singolo valore Il campionamento rappresenta un minor carico di info e dunque una facile digitalizzazione Tra un campione e l’altro= vuoto HERTZ (Hz)= 1 campione al secondo
- campionamenti= + precisione; + bit= + precisione Tempo e frequenza sono valori inversamente proporzionali: + tempo= - freq; - tempo= + freq CONCRETIZZAZIONE processo che implica la digitalizzazione di ogni singolo campione, in sostanza disponiamo dei livelli di quantizzazione sull’asse y. Successivamente assegniamo una sequenza binaria ad ogni livello usando 1 o più bit. Approssimazione ai livelli più vicini
d) terminali: postazioni senza capacità di elaborazione, devono essere collegati a un server; e) notebook/personal computer: desktop e workstation, notebook, tablet, smartphone. MACCHINA DI VON NEUMANN
- CPU= cuore, elabora tutte le info
- RAM= contiene tutte le info che verranno elaborate dalla CPU
- MEM SEC= memorizza tutti i dati forniti in ingresso e in uscita e contiene il sistema operativo all’accensione
- dispositivi input/output FASI: Elaborazione (CPU) Memorizzazione (RAM e MEM SEC con finalità diverse) Interagire
- All’avvio dell'elaboratore i programmi (almeno s.o.) e dati (se ce ne sono) risiedono in mem sec.
- I programmi per essere eseguiti devono essere portati in memoria principale (bootstrap). Così anche i dati per essere utilizzati dai programmi.
- La CPU esegue solo i programmi presenti nella RAM (non ha accesso alla mem sec) ed esegue i programmi eseguendo le istruzioni di cui essi sono composti.
- Input e output + memorizzazione su mem sec RAM ( R andom A ccess M emory) è un elemento fondamentale per l’esecuzione dei programmi. Memoria di lettura e scrittura. Si occupa di memorizzare ma solo nel momento in cui i dati vengono elaborati dalla CPU (vero memorizzatore-> mem sec). Formata fisicamente da componenti elettronici ed esprime 2 stati-> bit-> corrispettivo fisico, ovvero ogni unità elementare può trovarsi a 2 diversi livelli di tensione elettrica. Celle di memoria= come è strutturata la RAM Byte= ogni cella, unità minima di memorizzazione fisica (unità minima di info= bit) Indirizzo= identificatore univoco di ogni cella IN PRATICA: una volta specificato l’indirizzo della cella, la CPU è in grado di elaborare e/o modificare il valore del byte della cella stessa Spazio di indirizzamento = il numero di celle che siamo in grado di indirizzare direttamente Numero di celle indirizzabili = numero di info rappresentabili 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) Quindi: con 16 bit si indirizzano 64 KB di memoria e con 32 bit si indirizzano 4 GB di memoria La dimensione tipica della RAM nei Personal Computer è: 1 GB, 2 GB, 4 GB, una volta gli elaboratori più potenti avevano 64 KB!!! Nelle Workstation e nei Mainframe è: … MB, ... 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.
➔ Spazio totale della RAM è dato dal numero di bit che identificano gli indirizzi x il numero di byte all’interno di ogni cella ➔ Memoria ad accesso casuale perché non ci sono differenze nell’accesso a seconda dell’acquisizione delle varie celle, ovvero si può accedere direttamente alle varie celle, basta conoscerne l’indirizzo ➔ Il tempo necessario per accedere ad una cella è indipendente rispetto alla posizione della cella nella sequenza La RAM è:
- veloce: tipicamente veloce e per questo costosa; - volatile: quando spengo il calcolatore tutti i dati vengono persi; - costosa: tendenzialmente, per questo non troppo grossa sennò ancora più costosa. ROM ( R ead O nly M emory), memoria di sola lettura:
- non può essere modificata dagli utenti
- non è volatile
- veloce quasi quanto la RAM
- solitamente memorizza programmi e dati necessari all’avvio dell’elaboratore (bootstrap, configurazione del sistema) CACHE ha le stesse proprietà della RAM, ma è:
- più veloce
- più costosa
- volatile
- posizione intermedia tra CPU e RAM
- memorizza dati di uso più frequente per evitare che la CPU debba sempre elaborare le stesse celle
- influisce pesantemente sulle prestazioni e sul costo della CPU CPU ( C entral P rocess U nit), processore, cervello. Codifica tutte le info attraverso il proprio linguaggio macchina (azienda madre e sviluppatore) trasformando ogni funzione in un'istruzione che va a creare un set di 100 istruzioni circa. Le istruzioni non sono altro che comandi elementari (alcuni sottoinsiemi di istruzioni possono essere: “somma di due numeri”, “confrontare due numeri”, “leggere la memoria”...).Combinando queste info il processore può effettuare qualsiasi operazione. Emulatore: consente l’esecuzione su un processore di programmi scritti per un altro. È possibile avere più CPU in uno stesso elaboratore, in questo modo, l’elaboratore può eseguire più programmi allo stesso tempo (uno per ogni CPU) Elaboratore multiprocessore: più CPU nello stesso elaboratore Microprocessore multi core: composto da più di una CPU (es. dual core, quad core) Le istruzioni, dunque, possono essere suddivise più specificatamente in istruzioni di tipo:
- aritmetico/logiche;
- salto (solitamente le istruzioni sono una dopo l’altra, questa istruzione permette di saltare da un’istruzione ad un’altra non in ordine);
- lettura/scrittura in memoria;
- lettura/scrittura verso dispositivi input/output (prelevare/consegnare dati/info).
- Il PC preleva l’istr della cella 1, l’IR la passa alla CU (che nel frattempo fa PC+ mandandolo a 2) che decodificando capisce si tratta di mandare all’output 3 (stampante) e manda in stampa. LA CPU DEVE SEMPRE PRELEVARE L’ISTR DALLA RAM, DEVE SAPERE QUALE CELLA, GLIELO DICE IL PC, IL PC AD OGNI ISTR VIENE AUMENTATO DI 1 (NO SALTO). UNA VOLTA PRELEVATA L’ISTR VIENE DEPOSITATA NELL’IR. LA CU PRELEVA L’ISTR E AVVIA LA FASE DI DECODIFICA, ASSEGNA IN BASE ALLA FUNZIONE DELL’ISTR STESSA CHE VIENE COSI’ ESEGUITA. Memoria secondaria dovuta dalle limitazioni della RAM (volatilità, costo, poca capienza) è:
- capiente
- relativamente poco costosa
- non volatile
- lenta
- memoria di lettura e di scrittura Contiene tutti i dati e le info + programmi + sistema operativo. La CPU può elaborare solo i dati che risiedono in memoria principale, dunque i dati memorizzati dalla mem sec vengono poi trasmessi alla RAM-> operazione chiamata loading/caricamento. La mem sec è composta da:
- supporti di memorizzazione = componente fisica dove fisicamente vado a salvare i dati (dvd)
- dispositivi di memorizzazione = dispositivi che consentono di accedere in scrittura e in lettura ai dati memorizzati (lettore dvd) La mem sec sfrutta tecnologie diverse: magnetico/ottico/magnetico-ottico/flash La memoria magnetica sfrutta il fenomeno fisico della polarità del supporto presente nelle particelle magnetiche (0,1, binario) La memoria ottica sfrutta la riflessione della luce di un laser sulle scanalature (pit) del supporto (zone chiare, zone scure, binario) La memoria flash (o allo stato solido) è costituita da chip simili a quelli della RAM ma in grado di registrare in modo permanente. Il tempo di accesso è ridotto, è leggera e facilmente trasportabile e viene usata per macchine fotografiche digitali, USB, smartphone, lettori MP3, alcuni hard disk Come si accede in memoria secondaria? Attraverso 2 modi:
- accesso diretto/random= si accede a qualunque punto del supporto direttamente (cd);
- accesso sequenziale= si accede ad un punto solo dopo aver letto/scritto fino a quel punto (musicassette). Le tempistiche per leggere queste info dipendono dai tempi di accesso e dalla velocità di
trasferimento dei dati alla RAM. Questi dati a loro volta dipendono dal dispositivo in questione. Capacità di memorizzazione è la quantità di dati memorizzabile su supporto, caratterizzata dalla grandezza del supporto e dalla densità di memorizzazione. L’HARD DISK rappresenta la mem sec più diffusa (adesso un po’ meno), di piccole dimensioni, ma elevate capacità. Basato solitamente su memoria magnetica. Struttura: Pila di dischi , ogni disco ha una testina mobile che accede al disco stesso e gira su di un perno centrale che determina la velocità di rotazione. Guardando i dischi dall’alto, ognuno di essi viene diviso in tracce e settori equidistanti (suddivisione fisica), questa suddivisione dà vita all’unità minima fisica di informazione/memorizzazione chiamata blocco. Ogni blocco (anche chiamato cluster ) contiene una quantità determinata dallo sviluppatore di bit. Il disco ruota mentre la testina si muove orizzontalmente. Tutti i cluster hanno la stessa capacità (contengono tutti lo stesso numero di bit), ogni file riempie come minimo un blocco, di più se supera l’unità minima del cluster, i blocchi non contengono mai degli insiemi di file differenti. Seek time tempo di accesso di un hard disk, tempo impiegato dalla testina per localizzare la traccia su cui sono memorizzati i dati Latenza tempo impiegato perché i dati arrivino e scorrano sotto la testina di lettura Tempo di accesso = seek time + latenza Può succedere che i cluster che vengono salvati e che costituiscono uno stesso file non siano adiacenti tra loro-> frammentazione -> perdita tempo Bus linea di comunicazione per la trasmissione di informazioni tra i vari componenti del sistema, collegamento tra tutti i componenti del sistema. Fisicamente, è un insieme di collegamenti in rame. Il bus di sistema, collega la CPU ad altri dispositivi del computer. Mezzo condiviso, tutti i dati passano sullo stesso collegamento, sono i dispositivi a capire se le info sono destinate a loro o no. 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). Metodo molto flessibile: facile aggiungere componenti. UNITA’ MINIMA DI INFORMAZIONE= BIT UNITA’ MINIMA DI ELABORAZIONE= BYTE (celle RAM) UNITA’ MINIMA DI MEMORIZZAZIONE FISICA= CLUSTER Floppy disk
- tecnologia magnetica
- bassa capacità
- trasportabile
- deteriorabile
- sostituibile con penne USB Dischi ottici
- lettura/scrittura laser
Dispositivi input di immagini
- scanner-> a piano fisso, a tamburo, manuale
- macchine fotografiche
- telecamere digitali
- frame grabber per l’acquisizione da telecamere analogiche Dispositivi input di puntamento
- mouse, anche wireless
- trackball
- touchpad
- tavoletta grafica
- gamepad/joystick Dispositivi output
- stampanti = laser (qualità di stampa fotografica, risoluzione fino a 1200 dpi, a colori hanno costi ancora elevati),
- A matrice di punti: le più vecchie (testina ad aghi, bassa risoluzione, stampa su moduli continui
- Plotter: per stampare disegni tecnici (pennini colorati, alta risoluzione e precisione) Macchine digitali da stampa: stampano su qualsiasi materiale Stampanti fotografiche: stampano foto digitali Inkjet: le stampanti a colori più diffuse, le testine ‘gettano’ gocce di inchiostro colorato sulla carta La stampa di un documento o immagine è un’operazione complessa, dipende dalla stampante; parte di tale complessità è gestita dal driver della stampante
- videoterminali
- videoproiettori
- casse acustiche
- plotter 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 (dpi, dots per inch) 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
Software Sistema operativo L’ hardware , in sé per sé, non è sufficiente per il funzionamento dell’elaboratore: soltanto un insieme di pezzi di ferro, plastica e silicio. Come funzionano questi pezzi fisici? Necessità di-> software (parte logica del calcolatore). Software composto da sistema operativo e da un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura. I computer sono programmabili, ovvero possono svolgere compiti diversi in base a istruzioni diverse contenute nei programmi. Se volessimo utilizzare direttamente tutte le componenti fisiche (CPU, RAM, BUS, mem sec, input/output) dell’elaboratore dovremmo essere in grado di parlare un linguaggio comprensibile alla macchina-> linguaggio macchina , definito dal programmatore L’utilizzo del software è complicato: l’utente dovrebbe sapere programmare, il programmatore dovrebbe conoscere l’hardware e il relativo linguaggio macchina ogni programma dovrebbe essere scritto come sequenza di bit, le modifiche hardware richiederebbero la riscrittura (parziale) del programma. SOLUZIONE-> linguaggio più semplice, come? Fornendo all’utente un meccanismo per astrarre questa organizzazione fisica per usare nello stesso modo macchine diverse, per avere un semplice linguaggio di interazione e per avere un insieme di programmi applicativi per svolgere diversi compiti: elaborare testi, navigare su internet ecc… Macchina virtuale, realizzata al di sopra della macchina hardware reale, si occupa dell’astrazione e rappresenta un livello software creato sull’hardware, fornisce funzionalità ed è facile da utilizzare, virtuale perché non esiste fisicamente. Linguaggio ad alto livello linguaggio utilizzato dall’utente per comunicare con la macchina virtuale (interfaccia grafica/testuale), la macchina virtuale traduce ogni comando ad alto livello nella opportuna serie di comandi per l’hardware-> astrazione. Sistema operativo insieme di programmi che interagiscono e cooperano tra di loro:
- consente al calcolatore di gestire in maniera efficiente tutte le sue risorse fisiche e logiche;
- creare un ambiente virtuale per facilitare l’interazione uomo-macchina. Ogni processore ha un linguaggio macchina a sé, ma i SO vengono creati in modo da essere compatibili verso tutti i linguaggi macchina presenti sul mercato. Macchine fisiche diverse possono essere utilizzate in modo simile costruendo al di sopra macchine virtuali. Ogni m. v. fornisce il medesimo linguaggio ad alto livello e traduce i comandi in modo diverso, in funzione del tipo di hardware (computer di marche diverse ma con stesso so). Il s.o. esegue un comando seguendo i seguenti passi:
- verifica se si tratta di un comando valido
- lo traduce per la macchina fisica
- eseguito il comando, a) fornisce un riscontro all’utente b) si pone in attesa di un nuovo comando da parte dell’utente Il So ha una struttura a cipolla (gerarchia di funzionalità): ogni livello fornisce servizi ai livelli superiori e astrae e sfrutta i servizi dei livelli inferiori. La parte più vicina alla macchina si chiama kernel e gestisce il processore, la memoria e i dispositivi di input/output.
della memoria: “ memoria virtuale ”, la quale fa credere ai programmi di avere a disposizione una quantità di memoria più grande di quella effettivamente installata e contigua. Non è sempre necessario che tutti i programmi o anche solo tutte le parti di un singolo programma siano in esecuzione (basta la porzione di dati che permette l’esecuzione di una determinata funzione di un programma risiedono in RAM), le parti usate meno vengono spostate-> hard disk. Se io sommassi i contenuti di tutte le pagine il loro spazio occupato sarebbe superiore alla RAM, ma grazie a questa tecnica di scambio delle pagine risulta come se fosse grande tanto quanto la somma di tutti gli spazi occupati dalle pagine, il So si occupa di tutto ciò: crea davvero una memoria virtuale (tiene una lista di tutte le pagine alle quali associa un indirizzo per ritrovarle quando necessario) dove ricorda si ricorda le pagine che servono dove sono caricate, traduce gli indirizzi virtuali in indirizzi fisici. Thrashing se si usa troppo una quantità di memoria virtuale più grande della fisica, in sostanza il So impiega più tempo a trasferire la pagina da e su disco che a effettuare il lavoro utile. L’hard disk viene usato intensamente e il computer è inutilizzabile, bisogna aumentare la quantità di RAM oppure usare meno programmi contemporaneamente. QUINDI la memoria virtuale migliora le prestazioni perché supera il limite fisico della RAM, quando però arriva ad un limite non più superabile (programmi troppo grossi) bisogna necessariamente cambiare il componente fisico.
- Linguaggio ad alto livello = per creare interazione di tipo
- testuale= basata su comandi scritti tramite tastiera, l’interfaccia è più rapida da usare per utenti esperti, richiede poca memoria principale, script (programmi costituiti da comandi), molto usata nei sistemi Unix-like
- grafico= basata su interfacce grafiche che presentano funzionalità comuni, ai programmi sono associate finestre, interazione “point and click”, tecnologia WYSIWYG (What You See Is What You Get), comandi uniformi: es. Cancellare “oggetto” ⇒ taglia, Copiare “oggetto” ⇒ copia l’“oggetto” può essere testo, file, immagini, … –finestra –icona –menu –menu item –pop-up menu (menu a tendina) –button (pulsante) –toolbar (barra degli strumenti) –necessitano del mouse
- File System = (organizzazione logica all’interno del calcolatore) parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti di memoria
secondaria (ad es. su hard disk, CD, DVD…). Le operazioni di base del file system sono la lettura, la scrittura, la cancellazione, la modifica e la copia. I dati della memoria secondaria vengono strutturati e gestiti mediante l’organizzazione in file, i file sono utilizzati per la memorizzazione di programmi (del sistema, dell’utente) e di dati. Esempio quaderno (pagine vuote, indice, pagine ordinate, no sprechi di spazio). L’indice è memorizzato in memoria sec e contiene i nomi dei file e le pagine associate. Pagine= cluster. Il file system usa l’indice per reperire i cluster che compongono i file e trovare lo spazio libero per nuovi file. Frammentazione non sono contigui i file, mi devo spostare per cercarli Deframmentare riordinare per fare in modo che gli stessi cluster di un file siano più vicini Il file system deve fornire una visione astratta dei file, consentendo all’utente di:
- dare un nome ai file (filename)
- manipolare i file (operazioni): creare, cancellare, copiare, rinominare, modificare
- accedere alle informazioni indipendentemente dal supporto fisico (vedere file su hard disk e su CD allo stesso modo)
- strutturare i file (file con caratteristiche comuni possono essere ‘raggruppati’)
- proteggere (da lettura, scrittura, cancellazione) i file di utenti diversi I moderni s.o. (es. Windows) forniscono queste funzionalità ENTITA’ MINIMA= FILE ENTITA’ MINIMA DI MEMORIZZAZIONE= CLUSTER Tutti i sistemi operativi forniscono i seguenti comandi per operare sui file: creazione – cancellazione – copia – visualizzazione – stampa – lettura e modifica – rinomina – visualizzazione delle caratteristiche di un insieme di file (dimensione, data di creazione e di ultima modifica, vincoli di protezione, tipo, ...) Il numero di file memorizzati su disco può essere estremamente elevato. Un unico “contenitore” di file è scomodo: per la ricerca di un file (‘Chissà come si chiama?’), per la creazione di un nuovo file (non si possono avere due file con lo stesso nome), Il s.o. deve fornire all’utente la possibilità di dare una struttura organizzata ai file. Idea: raggruppare i file, consentendo all’utente di seguire criteri di tipo logico. Directory (o cartella): gruppo di file (e di altre directory) il s.o. mette a disposizione comandi per creare directory. Nomi dei file locali alle directory ok avere file con lo stesso nome in directory diverse. I nomi di file in genere hanno due parti:
- nome: scelto dall’utente, il sistema impone regole sulla lunghezza massima e sui caratteri usabili (ad es. non permessi i caratteri *, ?, /, , <, >, …)