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


Informatica fondamenti app., Appunti di Fondamenti di informatica

Appunti di informatica primo anno scienze della comunicazione

Tipologia: Appunti

2019/2020

Caricato il 27/03/2023

claudia-bonamini
claudia-bonamini 🇮🇹

4 documenti

1 / 53

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
LEZIONE 1
Che cos’è l’informatica?
Il termine informatica deriva dal francese informatique, che è un neologismo coniato dalla
contrazione di informat(ion) e automat(ique).
DEFINIZIONE: Disciplina tecnico scientifica che si occupa del trattamento
dell’informazione tramite procedure automatizzate.
Benefici rispetto all’elaborazione umana:
si riducono i tempi di elaborazione;
si aumenta l’affidabilità;
si evitano elaborazioni “noiose”;
si diffondono elaborazioni “difficili” che, quando condotte dall’uomo, richiederebbero
competenze poco comuni, nel senso che se viene sviluppato un programma
capace di fare calcoli complicati e complessi, l’omo lo può distribuire ad altri che
possono utilizzare il programma senza conoscere i dettagli del problema e quindi
fornisce agli utenti la capacità di svolgere mansioni particolarmente difficili.
Strumenti difficili senza avere particolari competenze.
I termini elaboratore, calcolatore, computer (da cui computer science) sono
sinonimi.
Concetti fondamentali dell’informatica
I termini dato, informazione e conoscenza si collocano su tre livelli, in ordine crescente, di
astrazione:
1. DATO: insieme di simboli tracciati su un rapporto fisico che rappresenta una
proprietà di un oggetto;
2. se il dato viene in relazione alla proprietà a cui si riferisce allora abbiamo
un’INFORMAZIONE;
3. CONOSCENZA: insieme di regole che consentono di trarre vantaggio
dall’informazione.
ESEMPIO:
La sequenza di simboli “39.5” scritta alla lavagna costituisce un esempio di dato;
3’, ’9’, ’.’, ’5’ sono i simboli e il supporto fisico è costituito dalla lavagna;
Affermare che la temperatura di Giacobbo è di 39.5 mette in relazione la sequenza
di simboli (dato) con una proprietà fisica, le attribuisce un significato e trasforma
quindi il dato in informazione;
La conoscenza è la regola che specifica che una temperatura maggiore o uguale di
37 indica che una persona ha la febbre.
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

Anteprima parziale del testo

Scarica Informatica fondamenti app. e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

LEZIONE 1

Che cos’è l’informatica? Il termine informatica deriva dal francese informatique , che è un neologismo coniato dalla contrazione di informat(ion) e automat(ique). DEFINIZIONE: Disciplina tecnico scientifica che si occupa del trattamento dell’informazione tramite procedure automatizzate. Benefici rispetto all’elaborazione umana:  si riducono i tempi di elaborazione;  si aumenta l’affidabilità;  si evitano elaborazioni “noiose”;  si diffondono elaborazioni “difficili” che, quando condotte dall’uomo, richiederebbero competenze poco comuni, nel senso che se viene sviluppato un programma capace di fare calcoli complicati e complessi, l’omo lo può distribuire ad altri che possono utilizzare il programma senza conoscere i dettagli del problema e quindi fornisce agli utenti la capacità di svolgere mansioni particolarmente difficili. Strumenti difficili senza avere particolari competenze. I termini elaboratore, calcolatore, computer (da cui computer science) sono sinonimi. Concetti fondamentali dell’informatica I termini dato, informazione e conoscenza si collocano su tre livelli, in ordine crescente, di astrazione:

  1. DATO: insieme di simboli tracciati su un rapporto fisico che rappresenta una proprietà di un oggetto;
  2. se il dato viene in relazione alla proprietà a cui si riferisce allora abbiamo un’ INFORMAZIONE ;
  3. CONOSCENZA: insieme di regole che consentono di trarre vantaggio dall’informazione. ESEMPIO:  La sequenza di simboli “39.5” scritta alla lavagna costituisce un esempio di dato;  3’, ’9’, ’.’, ’5’ sono i simboli e il supporto fisico è costituito dalla lavagna;  Affermare che la temperatura di Giacobbo è di 39.5 mette in relazione la sequenza di simboli (dato) con una proprietà fisica, le attribuisce un significato e trasforma quindi il dato in informazione;  La conoscenza è la regola che specifica che una temperatura maggiore o uguale di 37 indica che una persona ha la febbre.

Con le espressioni elaborazione dell’informazione o trattamento dell’informazione si indica una qualsiasi attività condotta sull’informazione stessa, che comprende almeno una delle seguenti operazioni:  Creazione;  Modifica dove l’eliminazione è intesa come un particolare caso di modifica;  Confronto;  Conservazione/memorizzazione (comunicazione a distanza nel tempo);  Trasmissione (comunicazione a distanza nello spazio). Queste sono tutte operazioni che rientrano nell’elaborazione dell’informazione. Ad esempio, se io modifico un file poi lo salvo sto facendo due operazioni dell’elaborazione dell’informazione. Una qualsiasi attività di trattamento dell’informazione può essere ricondotta al seguente schema:

  1. Codifica: l’informazione di input viene codificata sotto forma di dati, simboli tracciati su un supporto fisico;
  2. Trasformazione: il supporto viene sottoposto a una trasformazione fisica che genera nuovi dati (nuove sequenze di simboli);
  3. Decodifica: i dati generati vengono decodificati e apportano nuova informazione (informazione di output).  INPUT: informazione in ingresso all’elaborazione (deve essere codificato in una sequenza di simboli per essere elaborato dal computer);  OUTPUT: informazione prodotta dall’elaborazione. È necessario che il calcolatore conosca quali istruzione eseguire per effettuare una trasformazione. Un algoritmo è una sequenza di istruzioni necessarie per risolvere un determinato problema (il termine deriva da Al-Khwarizmi, astronomo e matematico persiano del IX secolo). I linguaggi formali sono linguaggi definiti da:  Un alfabeto, ossia un elenco finito di simboli;  Una grammatica formale, cioè un insieme di regole sintattiche che specificano come i simboli dell’alfabeto possono essere combinati tra loro per costruire frasi;  Una semantica formale che consente di attribuire un significato alle frasi di un linguaggio. I linguaggi di programmazione sono linguaggi formali utilizzati per descrivere algoritmi ad un calcolatore. Il programma è un algoritmo scritto in un linguaggio di programmazione. Il programmatore è la persona che scrive programmi. L’informazione può essere rappresentata con codifiche diverse. In informatica si usa l’ alfabeto binario:  2 soli simboli: “0” e “1” (=bit: binary digit) (si scrive con la b);  nibble: 4 bit;  byte: 8 bit (unità di misura della capacità di memoria) (si scrive con la B)

Termini Termini Descrizione App(licazione) Un software scritto da un programmatore Backup Creare una copia di riserva dei propri dati Boot(strap) Avviare Bug Malfunzionamento Codice (Sorgente) Insieme delle istruzioni che compongono un’applicazione. Viene scritto con un linguaggio di programmazione Crash Blocco o chiusura inaspettata di un programma Directory Vero nome della “cartella” Killare Terminare in modo forzato l’esecuzione di un programma Linkare Creare un link, un collegamento Resettare Fare il reset, ricominciare da capo Spam Email/messaggi “spazzatura” Upgrade Aggiornare ad una versione maggiore Update Aggiornare ad una versione più nuova Upload Caricare (fare una copia dal nostro ad un altro Utente Individuo che usa il computer. Destinatario finale Software: istruzioni e dati codificate all’interno della memoria del calcolatore per essere eseguite dall’hardware. L’etimologia del termine software fu coniata durante la Seconda guerra mondiale dai cripto analisti inglesi sotto la guida di Alan Turing, impegnati a decriptare i messaggi che i tedeschi crittografavano con la macchina Enigma. Hardware: componenti tangibili del calcolatore. L’ hardware si riconosce dal software perché in caso di malfunzionamenti, l’ hardware può essere preso a calci, mentre contro il software si può solo imprecare.

LEZIONE 2

John von Neumann (1903-1957) è uno dei giganti dell’informatica ed ha ideato uno schema per un calcolatore:

  1. codifica binaria per dati e istruzioni;
  2. dispositivo di memorizzazione (memoria) che contiene dati e istruzioni;
  3. dispositivo di elaborazione (processore) per eseguire le istruzioni;
  4. deve avere un’ interfaccia che gestisce l’interazione con l’ambiente esterno (input/output) mediante periferiche;
  5. avere un bus che gestisce lo scambio di informazioni tra gli altri sottosistemi.

La struttura del calcolatoreSCHEDA MADRE La scheda madre corrisponde al bus nell’architettura di Von Neumann. È una piastra di materiali plastiche che funge:  da struttura portante grazie alla presenza di alloggiamenti (slot) per il montaggio degli altri componenti (CPU, memoria);  da interfaccia di comunicazione tra i componenti di un calcolatore grazie all’integrazione di circuiti che costituiscono il bus. I componenti principali della scheda madre sono il processore, le periferiche (porte) e la RAM (memoria centrale).  PROCESSORE Una CPU (Central Processing Unit) è composta da:  Registri di memoria: piccole unità di memorizzazione caratterizzate da una notevole velocità di lettura/scrittura ci sono due registri di memoria importanti:  Instruction Register (IR): contiene l’istruzione da eseguire;  Program Counter (PC): contiene l’indirizzo della prossima istruzione da eseguire;  Arithmetich Logic Unit (ALU): sottosistema della CPU che esegue le operazioni aritmetico-logiche;  Control Unit (CU): sottosistema della CPU che controlla l’esecuzione delle attività della CPU;  Clock: oscillatore al quarzo che genera un impulso elettrico di frequenza regolare (GHz), sincronizza le operazioni della CPU. Le attività che svolge la CPU Dall’accensione allo spegnimento del calcolatore, la CPU continua a ripetere un ciclo composto da 5 attività principali:  Fetch (FE): la CPU legge un’istruzione dalla memoria centrale e la memorizza nel registro IR (Instruction Register). L’ordine di esecuzione è garantito dal registro PC (Program Counter), che mantiene l’indirizzo della cella di memoria contenente la prossima istruzione da eseguire.  Decodifica dell’istruzione (Instruction Decode, ID): l’istruzione viene decodificata per essere compresa dalla CPU.  Esecuzione (Execution, EX): esecuzione dell’istruzione, solitamente eseguita dall’ALU (Arithmetic Logic Unit)  Accesso alla memoria (Memory access, MEM) Accesso alla memoria centrale (solo per certe istruzioni).  Scrittura (Register write back, WB): il risultato dell’esecuzione è trascritto in uno dei registri interni. Tutte queste attività sono controllate dalla CU e sono eseguite in successione. I computer moderni hanno processori multi-core , un processore multi-core è un chip che integra due o più core. Ciascun core è una CPU in grado di operare in parallelo alle altre.

2. READ ONLY MEMORY (ROM)

 Piccola memoria persistente;  Integrata nella motherboard;  Read Only Memory significa letteralmente “memoria di sola lettura”, non sarebbe possibile scrivere nella memoria;  Tuttavia, nella quasi totalità dei casi, si tratta di EEPROM (Electrically Erasable Programmable Read-Only Memory), quindi si tratta di una memoria persistente riprogrammabile , ossia si può sia leggere che scrivere;  La ROM contiene il BIOS (Basic Input-Output System), programma che gestisce l’avvio del calcolatore. Avvio del calcolatore (bootstrap)

  1. Quando un calcolatore viene acceso la CPU legge la prima istruzione dalla ROM (istruzione del BIOS);
  2. Le istruzioni del BIOS ordinano alla CPU di trasferire il sistema operativo:  da un’area predeterminata nella memoria di massa  alla RAM (parte volatile della memoria principale);
  3. Quando il sistema operativo è nella memoria principale, il BIOS ordina alla CPU di eseguire la prima istruzione del sistema operativo;
  4. Il sistema operativo subentra e assume il controllo delle attività.  MEMORIE DI MASSA Le memorie di massa possono essere:  Fisse;  Su supporti rimovibili. Esistono diverse tipologie: 1. Memorie magnetiche:  disco rigido (Hard Disk Drive, HDD);  nastro;
  5. Dischi ottici: nei dischi ottici i dati sono codificati su uno strato di alluminio come successione di pit (microscopiche fosse) e land (parti piane), letti per mezzo di un laser.  Compact Disk (CD);  Digital Versatile Disc (DVD);  Blu-ray Disc (BD);

3. Memorie flash:  memory card;  drive USB;  drive a stato solido (Solid-State Drive, SSD). Le differenze principali tra le varie tecnologie consistono nei diversi materiali e nel laser utilizzati, che permettono di avere pit e land più o meno densi. Il principio di funzionamento è lo stesso.

LEZIONE 3

Software

La caratteristica principale dei moderni calcolatori, conformi all’architettura di von Neumann, è rappresentata dal fatto di disporre di un’unità di memorizzazione in cui risiedono non solo i dati da elaborare, ma anche le istruzioni che il calcolatore deve eseguire per effettuare l’elaborazione: il software. Software: istruzioni (e dati) codificate all’interno della memoria del calcolatore per essere eseguite dall’hardware. Un algoritmo è una sequenza di istruzioni necessarie per realizzare un particolare trattamento dell’informazione, o, più in generale, di risolvere uno specifico problema. Un algoritmo presuppone l’esistenza di un esecutore (calcolatore) in grado di eseguirlo. Partendo dai dati in input, l’esecutore esegue le istruzioni dell’algoritmo seguendo un ordine ben preciso e giungendo, al termine, a ottenere i dati di output. L’algoritmo deve essere formulato in 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 essere formulato in un linguaggio non ambiguo. L’algoritmo deve terminare in un tempo finito. Un algoritmo può richiedere l’esecuzione di altri algoritmi precedentemente specificati all’esecutore.

Programmi e linguaggi di programmazione

Un linguaggio di programmazione è un linguaggio formale impiegato per descrivere algoritmi. Un programma (codice sorgente) è un algoritmo espresso in un linguaggio di programmazione. I linguaggi di programmazione si dividono in:  linguaggi di basso livello: dipendenti dalla macchina fisica (in particolare dal processore);  linguaggi di alto livello: indipendenti dalla macchina fisica. Linguaggio di basso livello Il linguaggio macchina è caratteristico di un processore. Il linguaggio macchina è costituito dalla codifica in binario delle istruzioni che corrispondono alle operazioni eseguibili dal processore. Programmare in linguaggio macchina è un’attività estremamente noiosa e dispendiosa in termini di tempo ed energie.

Kathleen Booth née Britten nel 1949 inventò il linguaggio di programmazione Assembly (prima versione). Nel linguaggio assembly ogni istruzione (in binario) del linguaggio macchina è associata ad una codifica mnemonica (esempio l’istruzione di addizione in linguaggio macchina è “01101011”, in linguaggio assembly corrisponde all’istruzione ADD). È stato sviluppato un programma (assemblatore) che, leggendo in input un file contenente un programma in linguaggio assembly, genera in output un file contenente la sua traduzione in linguaggio macchina (e quindi eseguibile dal processore). Poiché l’assembly è un linguaggio di basso livello esiste una versione specifica per ogni processore. Linguaggi di alto livello Sebbene sia più semplice del linguaggio macchina, il linguaggio assembly richiede ancora molto tempo per la programmazione. Al fine di rendere l’attività di programmazione più semplice e produttiva sono stati inventati i linguaggi di programmazione di alto livello, più vicini al linguaggio naturale (e quindi alla logica e alla matematica). Esempi: C (Dennis Ritchie nel 1972), C++, Java, Prolog, Python, Pascal,... Per poter essere eseguito da un calcolatore, un programma scritto in un linguaggio di programmazione di alto livello deve essere tradotto in linguaggio macchina. L’attività di traduzione è realizzata tramite un’applicazione chiamata traduttore. Un traduttore è specifico per quel linguaggio di programmazione e quel linguaggio macchina (e anche per quel sistema operativo). Esistono due tipi di traduttore:

  1. Compilatore: riceve in input l’intero programma in linguaggio di alto livello (codice/programma sorgente) e produce in output la sua traduzione in linguaggio macchina (programma oggetto);
  2. Interprete: riceve in input il codice sorgente ne traduce le singole istruzioni facendole eseguire direttamente.

Macchina astratta e macchina fisica

La combinazione di un calcolatore e del relativo traduttore di un linguaggio di programmazione di alto livello costituisce una macchina astratta , contrapposta alla macchina fisica rappresentata dal solo calcolatore. Un programmatore che opera in un linguaggio di basso livello, ad es. linguaggio macchina, e voglia realizzare un programma per macchine diverse, dovrà imparare i rispettivi linguaggi macchina. Invece se conosce un linguaggio di alto livello, può utilizzare quest’ultimo per scrivere il programma, ragionando in termini di macchina astratta. Le caratteristiche di dettaglio degli specifici linguaggi macchina sono un problema di chi realizza i traduttori per le macchine fisiche.

Il software applicativo

Il software viene solitamente classificato in due categorie:

  1. Software applicativo : o applicazioni. Risolvono o supportano l’utente nella risoluzione di problemi specifici.
  2. Software di base : programmi di utilizzo generale che consentono l’interazione dell’utente con il calcolatore. Gestiscono le risorse del calcolatore e supportano l’esecuzione del software applicativo (sistemi operativi). Esistono innumerevoli applicazioni in ambito applicativo:  Applicazioni di videoscrittura (word processor): Microsoft Word, Apache OpenOffice Writer;  Applicazioni per la gestione di fogli elettronici: Microsoft Excel, Apache OpenOffice Calc;  Applicazioni grafiche e di fotoritocco: Adobe Photoshop;  browser web: Google Chrome, Firefox, Microsoft Edge, Safari;  client di posta elettronica: Mozilla Thunderbird;  mobile app.

Il sistema operativo

Il Sistema Operativo (SO) è il software responsabile del controllo e della gestione dei componenti hardware che costituiscono un computer e dei programmi che su di esso vengono eseguiti. Permette l’interazione tra utente e calcolatore. Fornisce un ambiente per l’esecuzione del software applicativo. Componenti:  Nucleo (kernel): gestisce il processore e il suo impiego da parte dei programmi  Gestore della memoria: gestisce l’allocazione della memoria (RAM) ai programmi in esecuzione;  Gestore dei dispositivi di I/O: gestisce le periferiche e le relative operazioni di I/O;  File system: gestisce l’archiviazione e reperimento dei dati sulla memoria di massa;  Gestore della rete: gestisce la comunicazione con altri calcolatori collegati nella rete;  Interfaccia utente: gestisce l’interazione con gli utenti. In passato i sistemi operativi avevano una interfaccia detta “A linea di comando” (Command Line Interface, CLI).

A partire dagli anni ’80 iniziano a comparire computer con un’interfaccia grafica (Graphic User Interface, GUI) che è più “user friendly”. Interfaccia Commodore 64 (1982). Prezzo di lancio: 595 $ (equivalenti a 1,545 $ nel 2018). Interfaccia Xerox 8010 (1981). Prezzo di lancio: 16,500 $ (equivalenti a 45,472 $ nel 2018).

Con il termine malware (ottenuto dalla contrazione di malicious software, “software maligno” si indica una classe di programmi specificatamente progettati per infiltrarsi, ed eventualmente apportare danni al calcolatore senza il consenso informato del suo proprietario.  Virus : è un insieme di istruzioni (blocco di codice) che si nasconde all’interno di un altro programma (programma infetto). Se il programma infetto viene avviato, viene eseguito anche il codice del virus che cerca di infettare altri programmi (cerca di riprodursi) e creare danni (un virus si diffonde da un calcolatore all’altro con il trasferimento di un programma infetto);  Worm (verme) : è programma intero (non si annida all’interno di altri programmi) che si diffonde tra gli elaboratori autoreplicandosi mediante la rete (soprattutto e-mail) e genera problemi sulla rete;  Trojan horse (cavallo di troia) : si presenta come un’applicazione utile, ma, in realtà, durante l’esecuzione apre una breccia all’interno delle difese del calcolatore stesso, che quindi può essere facilmente oggetto di attacchi e accessi da persone non autorizzate;  Spyware : programma installato senza autorizzazione che raccoglie, sempre senza autorizzazione, informazioni sull’utente e le sue abitudini (applicazioni eseguite, siti web visitati,... );  Adware (advertising-supported software) : programma che propone pubblicità. Se viene installato senza il consenso del proprietario del calcolatore è detto adware disonesto;  Hoax (bufala) : messaggio e-mail che annuncia l’imminente arrivo di messaggi e-mail infettati da pericolosissimi virus inesistenti;  Ingegneria sociale : non è un malware, ma sono quegli attacchi basati su inganni e tecniche psicologiche col fine di carpire informazioni utili. Metodi di protezione 1.Diffidenza verso: o materiale scaricato da siti web dubbi; o e-mail con contenuto e/o mittente strano; o PC usati da molte persone; o strane richieste di informazioni; 2.Uso dell’antivirus: o aggiornamento; o scansione avviata manualmente ed automaticamente; o controlli automatici costanti; 3.Uso del firewall (muro tagliafuoco): dispositivo hardware o software che crea una barriera contro gli attacchi in stile trojan horse.

LEZIONE 4

La codifica binaria

Rappresentazione posizionale decimale La codifica numerica odierna adottata per i numeri è la notazione decimale posizionale. Decimale in riferimento alla cardinalità (numero di simboli) dell’alfabeto utilizzato nella codificata. Posizionale in riferimento al fatto che ogni cifra assume un ruolo in funzione della sua posizione: in un numero naturale si hanno (leggendo da destra a sinistra): unità, decine, centinaia, migliaia… (Ogni cifra è moltiplicata per una potenza di 10, iniziando (da destra) con 10^0 e aumentando l’esponente di un’unita a ogni cifra a sinistra. Il numero finale si ottiene sommando i prodotti ottenuti. Si dice quindi che 10 è la base del nostro sistema di rappresentazione numerica posizionale). Con n cifre si possono rappresentare 10n^ numeri naturali: da 0 a 10n^ -1. Esistono anche rappresentazioni non posizionali , ad esempio i numeri romani. Rappresentazione posizionale in base non decimale Esistono notazioni posizionali non decimali (ad esempio, nel mondo dei cartoni animati le persone hanno 4 dita per ciascuna mano. Si potrebbe utilizzare la rappresentazione numerica posizionale ottale, ossi a base 8: numeri composti con 8 simboli da ‘0’ e ‘7’). In generale, scegliendo un qualsiasi numero naturale b, con b>1, è possibile rappresentare tutti i numeri naturali con una notazione posizionale in base b. Se la base impiegata è diversa da 10 è opportuno specificarla in pedice al numero. Stessa sequenza di cifre in basi diverse rappresenta numeri diversi. Nei sistemi in basi maggiori di 10, si utilizzano, oltre alle 10 cifre decimali, le lettere dell’alfabeto. Dati e istruzioni nell’elaboratore sono rappresentati in codifica binaria. Per i numeri, in particolare, si ricorre alla notazione binaria posizionale. Le cifre binarie sono moltiplicate per le diverse potenze di 2. Con n bit si possono esprimere 2n^ numeri naturali: da 0 a 2n^ -1:  Con un byte (8 bit) si possono esprimere 28 (= 256) numeri naturali.  Con un nibble (4 bit) si possono esprimere 24 (= 16) numeri naturali. Un nibble può essere rappresentato da una cifra esadecimale (es: 1011 2 =BH = 11). La notazione esadecimale è molto comoda per rappresentare sequenze di bit (una sequenza viene raggruppata in nibble e ciascuno nibble viene convertito nella corrispondente cifra esadecimale). Conversione da binario a decimale Per la conversione di un numero naturale da binario a decimale, si procede sommando i prodotti ottenuti dalla moltiplicazione di ciascuna cifra binaria per la corrispondente potenza di 2. La conversione di un numero naturale da decimale a binario si ottiene con ripetute divisioni intere per 2:

 La data e ora di creazione;  La data e ora dell’ultima modifica;  Le autorizzazioni. 2) Organizzazione gerarchica Il FS costruisce all’interno di un supporto di massa una struttura gerarchica. Per ogni memoria di massa viene creata una cartella (directory) denominata radice (root). Viene costruita una struttura ad albero: 3) Navigazione Ogni file o cartelle è identificata da un percorso (path). Percorso (path): elenco dei diversi nodi del file system da visitare per raggiungere il file+ il nome del file/cartella. Il FS ci permette di spostarci da una directory all’altra, di salire o di scendere nell’albero delle directory. Link: componente del FS che consente di far riferimento ad un altro file o ad un’altra directory. I file e le directory sono individuabili univocamente dalla loro posizione nel file system, descritta dal percorso (path). 4) Accesso Il FS si occupa di controllare (e quindi permettere o negare) si possiamo leggere o scrivere un file. I moderni SO hanno tutti la caratteristica di essere multi-utente, è possibile cioè, avere più persone che utilizzano lo tesso computer come se fossero computer diversi, con diverse impostazioni, diverso sfondo.. Il FS garantisce che un utente non sia in grado di leggere e scrivere i documenti di un altro utente garantendo privacy e sicurezza.

Memorie di massa

Le memorie di massa devono avere capacità di memorizzazione persistente. Le memorie di massa possono essere:  Fisse;

 Su supporti rimovibili. Esistono diverse tipologie basate su diverse tecnologie:  Memorie magnetiche: disco rigido, nastro;  Dischi ottici: Compact Disk (CD), Digitali Versatile Disc (DVD), Blu-ray Disc (BD);  Memorie flash: memory card. Drive USB, drive a stato solido SSD. Disco rigido (Hard Disk Drive, HDD) Dischi utilizzati come memoria di massa fissa all’interno del computer (ora sempre più soppianti dai drive a stato solido). Hanno capacità di diverse centinaia di GB. Sfrutta il fenomeno fisico della polarizzazione:  Sul supporto ci sono delle particelle magnetiche;  I due diversi tipi di magnetizzazione corrispondono alle unità elementari di informazione (0 e 1);  La testina di lettura/scrittura legge/ cambia la polarizzazione. Il disco rigido è costituito da:  Da uno o più piatti;  Una testina per ogni piatto; Un disco è suddiviso in tracce concentriche e settori, ogni settore è una “fetta” di disco e i settori suddividono ogni traccia in porzioni dette blocchi. Ogni blocco è identificato dal numero del piatto, dal numero della traccia e dal numero del settore. I dischi rigidi sono memorie ad accesso misto. Per effettuare un’operazione di lettura/scrittura la testina deve raggiungere il locco desiderato. È possibile posizionare direttamente la testina su un qualunque blocco (il disco gira, la testina sposta solo in senso radiale). Dischi ottici Usano il raggio laser e sfruttano la riflessione della luce. I dati sono codificati su uno strato di alluminio come successione di pit (microscopiche fosse) e land (parti piane). L’informazione viene letta guardando la riflessione del raggio laser:  1 se il laser viene riflesso;  0 se il laser non viene riflesso. Le differenze principali tra le varie tecnologie consistono nei diversi materiali e nel laser utilizzati, che permettono di avere pit e land più o meno densi. Il principio di funzionamento è lo stesso. Memorie flash Non richiedono parti meccaniche in movimento (niente usura). Memorie ad accesso diretto. Veloci ma costo alto. Sono diffusi in vari formati e con vari nomi: memory card, compact flash, memory pen, memory stick, USB flash drive, USBstick…