











Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
riassunto del libro "fondamenti di informatica" ottimo per superare l'esame.
Tipologia: Dispense
1 / 19
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!












In offerta
IL COMPUTER : è un elaboratore automatico di dati numerici, definito anche “calcolatore che può usare programmi” ovvero sequenze di istruzioni. Gli schemi di un calcolatore elettronico che oggi conosciamo sono stati inventati dal matematico Johan VON NEUMANN nel 1951. L’architettura da lui inventata prevede 3 elementi: cpu, memoria centrale, bus di sistema. L’uomo per poter comunicare con un computer, non potendo utilizzare il linguaggio naturale, utilizza il sistema binario definito così perché utilizza solo 2 simboli: 1 e 0. In informatica le cifre binarie( 1 e 0) vengono definite BIT (BINARY DIGIT). Un bit è l’unità fondamentale di un qualsiasi computer e siccome la memoria di un pc viene normalmente organizzata in più celle da 8 bit, ogni cella prende il nome di BYTE. Di conseguenza un BYTE non è altro che una sequenza di 8 bit. Attraverso questo modo di comunicazione la macchina riesce a codificare numeri naturali, numeri interi, numeri frazionari, numeri reali e immagini. Capitoli sulla programmazione: teoria + pratica All’interno dei sistemi informatici vengono utilizzati dei linguaggi, tra i più importanti ricordiamo il linguaggio C. esso è composto da un’intestazione e da una sequenza di istruzioni chiusa tra le parentesi graffe. L’intestazione è costituita dall’identificatore predefinito MAIN seguita da una coppia di parentesi tonde. Le istruzioni sono frasi del linguaggio di programmazione. Le istruzioni del C sono dei seguenti 3 tipi: -istruzioni di assegnamento, che viene utilizzata per assegnare a una variabile il valore di un’espressione e consiste nel simbolo = preceduto dall’identificatore di una cella di memoria e seguito da un’espressione che definisce un valore. -istruzione di ingresso e uscita, che consistono negli identificatori definiti SCAN F O PRINT F e consentono di leggere o di scrivere il valore di una variabile dallo standard input o sullo standard output. -istruzioni composte, producono effetti diversi a seconda che siano verificate o meno certe condizioni sul valore delle variabili. Essa è costruita mediante normali operatori numerici. Le istruzioni composte sono di 2 tipi: istruzione condizionale ( costituita dalla parola chiave IF, consente di eseguire in alternativa due diverse sequenze di istruzioni sulla base del valore di verità di una condizione) istruzione interattiva ( costituita dalla parola WHILE, permette la ripetizione dell’esecuzione di una sequenza di istruzioni ogni volta che una certa condizione è verificata).
Un programma C è anche formato da una parte dichiarativa e una parte esecutiva. La parte dichiarativa contiene la dichiarazione della costanti e delle variabili. Lo scopo della dichiarazione delle variabili è di elencare tutte le variabili che saranno utilizzate nella parte esecutiva e di attribuire a ognuna di esse un TIPO, ossia di specificarne le caratteristiche che ne regolano l’uso. Una dichiarazione di costanti associa un valore a un identificatore. Così ogni dichiarazione consiste in: la parola chiave CONST, lo specificatore di tipo, l’identificatore della costante, il simbolo “=”. Il valore della costante che può essere un numero intero, reale o un carattere e il terminatore della dichiarazione che è il simbolo “;”. L’uso delle costanti permette una buona PARAMETRIZZAZIONE dei programmi, cioè li rende facilmente riutilizzabili anche al cambiare di certe circostanze esterne. all’interno del programma C è possibile attribuire dei valori alle variabili( ovvero porzioni di memoria), questi valori vengono indicati con l’espressione “tipo di dato”. Esistono 3 diversi tipi di dato: semplici (rappresentano informazioni semplici come la velocità o la temperatura quindi composti al massimo da 2 dati) strutturati( le informazioni sono costitute da più elementi come il giorno il mese e l’anno di un evento) e definiti dall’utente ( informazioni create dall’utente e non gia predefinite). Inoltre il linguaggio C comprende 4 tipi di dato base: il CHAR che indica l’insieme dei caratteri, il tipo INT indica i numeri interi, il tipo FLOAT che indica i numeri reali e il tipo DOUBLE che indica i numeri reali lunghi( quelli che utilizzano più bit). Esiste anche un tipo di dato che si può applicare all’algebra di BOOL: il tipo BOOLEAN, è un tipo di dato in cui gli unici valori possibili sono vero e falso. Per costruire nuovi “tipi di dato” possiamo utilizzare il costruttore ARRY. Per arry si intende una sequenza di celle di memoria omogenee, a ognuna di queste sequenze viene dato un unico nome per identificarle, definito INDICE. L’indice è generalmente numerico. Infine, all’interno del linguaggio C è bene ricordare l’esistenza dei PUNTATORI, ovvero tipi di dato che rappresentano la posizione di elementi del programma. In C i puntatori si definiscono tramite il simbolo asterisco. I meccanismi atti a controllare la sequenza delle operazioni da applicare per l’esecuzione di un algoritmo vengono chiamate strutture di controllo. le strutture di controllo del linguaggio C prendono il nome di IF, ELSE, WHILE. If e else sono strutture condizionali, ovvero un costrutto che determina l’esecuzione di un blocco di istruzioni al verificarsi di certe condizioni, “ se una determinata condizione viene
“elemento che elabora” , denominato cpu( unità centrale di processamento). È l’elemento che svolge tutte le funzioni fondamentali di processamentio dei dati ed è composto da il cu, la alu, i registri, il clock e il bus interno. -la cu è l’unità di controllo e ha il compito di eseguire le istruzioni in memoria centrale una alla volta attraverso 3 fasi: -fecth, -decode -execute.
circuito interno al microprocessore. Ciascuna delle operazione di prelievo della memoria, decodifica ed esecuione di un’istruzione richiede un ciclo di macchina( alcuni periodi del segnale clock) -il bus interno della cpu mette in comunicazione le unità funzionali della cpu ed è composto da: bus indirizzi, che identifica l’unità da indirizzare bus dati, che contiene il dato da trasferire bus controli che specifica l’operazione da eseguire. Dentro la cpu ci sono 2 tipi di registri che servono per comunicare con la memoria e le periferiche attraverso il bus di sistema: -registro dati:contiene il dato che deve essere depositato o che è stato prelevato dalla memoria
grado di gestire sempre e solo un processo alla volta. In un sistema operativo monoutente il processo va dallo stato di pronto allo stato di esecuzione. Il sistema operativo può essere MULTIUTENTE ovvero un sistema operativo che è in grado di gestire una situazione nella quale più programmi vengono invocati, di conseguenza il sistema operativo multiutente supporta l’esecuzione di più processi. Il sistema operativo è organizzato a strati con un’architettura detta a buccia di cipolla, ciascuno strato funzionale costituisce una MACCHINA VIRTUALE. Le principali funzioni del sistema operativo: GESTORE DEI PROCESSI, GESTORE DELLA MEMORIA, DRIVER, FILE SYSTEM E INTERPRETE DEI COMANDI.
in stato di esecuzione. Il nucleo assegna il processore a un processo per un “quanto di tempo” INTERRUZIONI: ogni processo viene eseguito per un quanto di tempo preciso dalla cpu. Ogni processo in stato di pronto passa in esecuzione quando sarà il suo turno in quella che viene definita “ coda dei processi ”. Quando un processo scatena un’interruzione INTERNA(che nasce perché c’è una condizione di errore o perché vuole accedere ad una risorsa momentaneamente non disponibile)viene messo in stato di attesa finché tale risorsa non sarà disponibile. Successivamente quando il dispositivo ha completato l’operazione che è stata richiesta, avvia un segnala alla cpu, la cpu, a questo punto, manda il processo in stato di pronto ed esegue altri processi. Passaggi interruzione interna: PRONTO-ESECUZIONE- PRONTO Le interruzioni ESTERNE provengono dalle periferiche, che nel frattempo stavano svolgendo l’operazione richiesta precedentemente dal processo. l’interruzione viene comunicata al sistema operativo che modifica lo stato del processo da stato di attesa in stato di pronoto. Senza l’interruzione esterna il processo non può passare in stato di pronto passaggi interruzione esterna: PRONTO-ATTESA-IN.ESTERNA-PRONTO LE INTERRUZIONI SONO EVENTI CHE CAMBIANO LO STATO DI UN PROCESSORE è bene ricordare che ci possono essere delle politiche differenti sulla priorità di esecuzione dei processi infatti, ci possono essere dei casi in cui un processo ha la priorità di svolgimento rispetto ad un altro questo perché se il processo non dovesse essere eseguito in un tempo prefissato il processo fallisce. Questa è quella che viene definita politica di PRIORITà DEI PROCESSI. In una politica ROUND ROBIN tutti i processi sono uguali ( nessuno ha priorità rispetto all’altro) e vengono eseguiti in un quanto di tempo preciso seguendo l’ordine d’arrivo. (chi è primo nella coda dei processi verrà eseguito per primo, e viceversa) SINCRONIZZAZIONE : qualsiasi scambio di dati fra processi è una sincronizzazione. I processi devono coordinare le loro attività, dunque devono sincronizzarsi. Il coordinamento è sequenziale se un processo termina e invoca l’attivazione di un altro processo. un’altra forma di sincronizzazione è la competizione che avviene quando due processi
rilocazione statica e comporta una pesante operazione di trasformazione eseguita sui programmi all’atto del caricamento in memoria. Una volta caricato in memoria, il programma contiene indirizzi assoluti, su cui è necessario fare ulteriori elaborazioni. In alternativa, il processo di rilocazione dinamica non comporta una conversione del codice ma richiede l’utilizzo di un registro speciale dell’unità di elaborazione ( detto registro di base) nel quale viene scritto il valore dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato per l’esecuzione. Un secondo registro, detto registro dimensioni, contenente la dimensione del programma, permette di controllare che l’indirizzo generato dal programma rientri nello spazio indirizzabile dal programma stesso. Se l’indirizzo generato è maggiore del valore ottenuto sommando la dimensione del programma al contenuto del registro base, si ha una condizione di errore, in questo caso il sistema operativo fa abortire il programma. Un importante meccanismo di suddivisone della memoria centrale e dei programmi è quello della paginazione. La memoria centrale è considerata dal gestore della memoria come partizionata in pagine: ciascuna di queste è un’area di memoria contigua, di dimensione fissata. Anche i programmi vengono partizionati in pagine e allocati in un numero interno di pagine. Un altro meccanismo ampiamente usato per il partizionamento della memoria centrale e dei programmi è detto segmentazione. Durante la compilazione, un programma può essere frazionato in parti che svolgono differenti funzioni. Questa partizione logica del programma consente al gestore della memoria di caricare i segmenti che compongono il programma stesso in maniera indipendente. La segmentazione e la paginazione non sono tecniche alternative: in molti sistemi operativi esse sono applicate contemporaneamente. Sia nel caso della paginazione che in quello della segmentazione il gestore della memoria offre al programma applicativo la visione di una memoria virtuale, ovvero un’architettura di sistema capace di simulare uno spazio di memoria centrale e maggiore di quella fisica. La memoria è suddivisa in:
attivo in modo supervisore, può accedere alla memoria di modo S e di modo U e può eseguire istruzioni “privilegiate”
Isolamento: il malfunzionamento di una macchina virtuale non influenza il funzionamento delle altre Incapsulamento: lo stato di una macchina virtuale può essere salvato su un unico file Indipendenza dall’hardware: una macchina virtuale può essere eseguita (emulata) su macchine fisiche diverse LIVELLI DI VIRTUALIZZAZIONE: Esistono due possibili tecnologie per la virtualizzazione, a livello di... … sistema operativo: il sistema operativo host crea delle partizioni di se stesso. non è necessario l’utilizzo di un hypervisor non è possibile installare sistemi operativi diversi da quello dell’host … hardware: esecuzione di un hypervisor La virtualizzazione a livello di hardware si può suddividere in due categorie, a seconda del tipo di hypervisor tipo 1 (bare metal, o metallo nudo):è un sistema operativo speciale che viene eseguito all’avvio dell’elaboratore, non esiste un sistema operativo host tipo 2 (hosted):è eseguito come applicazione utente all’interno del sistema operativo host TRASMISSIONE DEI DATI: consente di collegare calcolatori e periferiche. I parametri più significativi per caratterizzare la trasmissione dei dati sono, la velocità di trasmissione misurata in bit per secondo, la distanza di trasmissione che può variare da poche decine di metri a migliaia di chilometri. I principali messi per la trasmissione dati sono, i cavi rame, le fibre ottiche e le onde elettromagnetiche. -I cavi rame : si dividono in 2 categorie: i cavi coassiali(chiamato coassiale perché i 2 conduttori che lo costituiscono non sono uguali uno dall’altro) e il doppino telefonico. Il cavo coassiale ha al suo interno un conduttore di rame circondato da un materiale isolante e da uno schermo di metallo intrecciato. Il tutto è avvolto da un rivestimento esterno. Il cavo coassiale è un ottimo sistema per schermare il segnale dal rumore Il cavo coassiale è stato inizialmente utilizzato per trasportare le comunicazioni telefoniche. Aspetti positivi:resiste alle interferenze elettromagnetiche(fulmini, …) aspetti negativi: poco flessibile si usura facilmente difficile da installare. Il cavo coassaile è stato sostituito dal doppino telefonico Il doppino telefonico(chiamato doppino perché è formato da 2 fili) è formato da una coppia
di fili di rame che viene utilizzata per la trasmissione delle comunicazioni telefoniche. Il doppino telefonico è oggi diffuso sia nelle reti locali si nelle reti di accesso. Il doppino è simile a quello utilizzato per il telfono. Nel doppino il segnale viaggia su entrambi i cavi. I cavi essendo intrecciati tra loro e quindi vicinissimi permettono di attenuare il rumore. Aspetti positivi: meno costoso più flessibile e più facile da installare. Aspetti negativi: più soggetto ad interferenze esterne -fibre ottiche: sono filamenti di materiali vetrosi realizzati in modo tale da poter condurre la luce su lunghe distanze. Sono immuni ai disturbi atmosferici e sono flessibili. Le fibre ottiche sono un mezzo di trasmissione ma non sono un conduttore elettrico. Una fibra ottica è composta da 2 strati : il core, ovvero il mezzo di trasparente che trasporta il segnale laser e il cladding ovvero lo strato esterno che costringe l’onda a seguire il percorso della fibra ottica. Vantaggi: immuni ai disturbi atmosferici -Onde radio e sistemi wireless : comunicazione senza fili che fa uso delle onde elettromagnetiche per la trasmissione dei dati senza fare uso di cavi. Esempi sono : le onde radio, le microonde, gli infrarossi e la luce visibile(laser) -le onde radio sono la tecnologia più diffusa e può coprire ambienti eterogenei. Hanno una frequenza minore di 3ghz(gigahertz)
un’elevata velocità di trasmissione dati. Le reti MAN hanno un numero di nodi molto più elevato rispetto alla LAN e per questo hanno una struttura più complessa. Una rete MAN è l’insieme delle interconnessioni delle reti locali.
I nodi non possono inviare i messaggi casualmente ma devono aspettare il loro turno. Il nodo che può inviare il messaggio è quello che in quel momento ha ricevuto un TOKEN( un messaggio particolare che dà la possibilità ai nodi di inviare messaggi). Il token gira continuamente sull’anello per fare in modo che tutti i nodi in un certo momento abbiano la possibilità di inviare un messaggio. Ma se un nodo si rompe cosa succede? Se un nodo si rompe può succedere che, o si interrompe l’intera rete o entra in azione un dispositivo sul cavo che ha il compito di eliminare il nodo rotto e ripristinare la rete. Può succedere che il nodo che si è rotto abbia in quel momento il token e che quindi si perda il messaggio. Per fare in modo che si ricrei il token deve entrare in azione il NODO ARBITRO. Il nodo arbitro ha il compito di ricreare il token se mai quest’ultimo si dovesse distruggere. Nel caso in cui il nodo che si rompe è il nodo arbitro, si sceglierà un nuovo nodo che ha lo stesso compito. la topologia ad anello è stata tra le prime topologie locali ma la prima topologia in assoluto fu quella a stella.
Affinché 2 sistemi possano scambiarsi informazioni è necessario che si accordino su regole comuni,adottando un protocollo di comunicazione che specifichi cosa,come e quando comunicare. Un protocollo stabilisce le regole di comunicazione che devono essere seguite da 2 computer. Dato che i protocolli devono essere utilizzati da calcolatori diversi tra loro essi vengono definiti nell’ambito di standard internazionali. Il più famoso di questi standard , detto standard OSI definito dall’ISO propone una struttura a livelli ( livello applicazione,presentazione, sessione,trasporto,rete, collegamento dati e fisico) di comunicazione tra elaboratore che serve da riferimento per i protocolli di comunicazione. Il modello ISO-OSI contiene diversi livelli ciascun livello rappresenta una macchina astratta. Si andrà a realizzare la comunicazione virtuale ovvero quando le macchine virtuali di pari livello comunicano tra loro grazie all’accordo di seguire le stesse regole di comunicazione che permettono loro di interpretare correttamente i dati che si scambiano. Apparati di rete:
- HUB sono ripetitori del segnale. l’hub riceve il segnale e lo ripete senza cambiare nulla, quindi ripeterà anche il rumore. -BRIDGE o SWITCH ha come scopo l’estensione della rete, esso però a differenza del hub analizza i messaggi bit per bit e li riscrive cancellando il rumore. Con lo switch il messaggio viene rigenerato e l’effetto del rumore viene riportato a zero. Lo switch diminuisce il dominio di collisione.