





































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
Una panoramica sull'architettura dei computer, focalizzandosi sull'unità cpu, la memoria centrale e la gerarchia di memoria. Vengono descritti i registri della cpu, l'organizzazione della memoria e i diversi livelli della gerarchia di memoria, inclusi registri e cache. Inoltre, il documento esplora i protocolli di rete, con particolare attenzione a tcp/ip, indirizzi ip e dns. Infine, vengono trattati temi come la sicurezza informatica, il deep web e l'intossicazione digitale, offrendo spunti per un uso consapevole della rete.
Tipologia: Appunti
1 / 45
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






































Elaboratori basati sulla architettura di von Neumann Che consiste di Un’unità di elaborazione, CPU Svolge le elaborazioni, coordina il trasferimento dei dati ed esegui quindi i programmi. Ha il compito di elaborare informazioni, che sono programmi (composta da sequenze di informazioni) o dati (di input o di output). Memoria centrale Fatta da celle, ognuna con una dimensione, si misurano con il bit (tipo lampadina che può accendersi (1) o spegnersi (0)). La dimensione rappresenta la quantità di info minima che trasporto dalla memoria al processore grazie Memorizza i dati e programmi per l’elaborazione, è volatile, accesso rapido, capacità limitata. Fare un codice: ad una certa sequenza faccio corrispondere una lettera e così per ogni sequenza (grazie a due bite abbiamo 4 info distinte, per capire quante info fai 2 con esponente uguale al numero di bite che hai> n bite = 2 alla n informazioni distinte). BUS Canale di comunicazione, permette di connettere componenti. Da qui passa informazione da memoria al processore. Collega al CPU: RAM, memorie secondarie e periferiche. Decodifica istruzione, guardando il codice operativo. Si divide in: Bus dati: Bus comandi o linee di controllo: Bus indirizzi: è unidirezionale, va dal processore alle altre unità. Serve per selezionare l’unità, o ogni cella di memoria (che ha il suo indirizzo). Ogni unità deve avere una logica di decodifica degli indirizzi per capire se essa è stata
processor e Unità di controllo memori a BUS Memoria massa
sappiamo che può essere 0 o 1 (passa o non passa corrente), possono quindi passare 16 informazioni diverse. Se il bus indirizzi trasferisce informazioni di 16 K, il numero massimo di indirizzi sarà quindi 2 alla 16. IL CPU: Dopo aver estratto e codificato l’istruzione, dobbiamo eseguirla, cioè, eseguire una serie di microistruzioni che rappresenta il Firmware. A questo punto si deve individuare quale sarà la prossima info da estrarre ed eseguire. CPU, CICLO DI ISTRUZIONE
I dischi di più server li metto insieme > IPERCONVERGENZA ALTRI TIPI DI MEMORIA ROM: si può solo leggere, fa una sorta di check che il computer sia apposto. Va poi a prendere dal disco ciò che serve per farlo funzionare> i software di base> cioè, il sistema operativo. EROM/EPROM: cancellabili e programmabili, cancellabili FLASH CODICI A RILEVAZIONE D’ERRORE IL CONTROLLO DI PARITA’ Dobbiamo trasportare bit, ne farlo possono subire degli errori (diventare 0>1 o viceversa). Servono metodi per accorgersi dell’errore. Questo, infatti, è un codice che permette di rilevare errore (non lo corregge) Memoria secondaria (hard disk) Grande capacità, persistente, accesso più lento alla RAM. Unità periferiche Stampanti, terminali ALTRI TIPI DI SISTEMI o Workstation, calcolatore con elevate prestazioni o Server o Main-frame, servono reti terminati con centinaia di utenti o Minicomputer, servono reti di terminali per pochi utenti METODI DI BILANCIAMENTO Per potere bilanciare il problema tra velocità di elaborazione del processore e capacità di memoria sono state introdotte varie tecniche che possono raggrupparsi in 3 tipi: Allargamento bus dati Caching Prefetching e pipelining: iniziare ad estrarre le informazioni ancora prima che l’ultima termini. Catena di montaggio. GLOSSARIO Volatilità: in assenza di corrente la memoria va persa (RAM, random access memory). Serve infatti memoria di massa per immagazzinare. Informazioni distinte: possiamo codificare lettere, posso indicare sequenza movimenti ecc.
Codice: è un significato che fa associare ad una sequenza di informazioni un significato Programma: sono una serie di istruzioni, che codificano l’algoritmo risolutivo, cioè, sequenze di bite > un’istruzione contiene l’operazione che il processore deve svolgere Algoritmo: è una descrizione dei passi che bisogna compiere per arrivare ad un risultato Processore: elaboratore informazioni, quindi seguire un miniprogramma. L’insieme di operazioni elementi che è capace di eseguire> Firmware (più sono più è capace il processore) (Il processore più ha la frequenza alta più è in grado di elaborare) Codice risolutivo: insieme di bit che caratterizza l’informazione App: software applicativo UNITA’ DI MISURA sequenza di 8 bit> bite 2 alla 10 bite > KB 2 alla 10 KB>MG 2 alla 10 MG> GB 2 alla 10 GB> TB RETI NEURALI ARTIFICIALI L’informatica serva ad automatizzare soluzione di problemi. Nell’informatica tradizionale l’uomo trova l’algoritmo e lo traduce in linguaggio di programmazione. AI > si occupa di realizzare macchine (hardware e software) in grado di agire autonomamente (risolvere problemi, compiere azioni) attraverso un processo di apprendimento detto machine learning. Con questo una macchina intelligente migliora le proprie capacità e prestazioni nel tempo attraverso un allenamento basato su dati significativi. È frutto di una sinergia tra neurofisiologo e matematico. La trasmissione del neuro impulso tra le cellule può essere completa o nulla assimilando il neurone a un sistema binario, dimostrano con un modello matematico come dei semplici neuroni possono essere combinati per calcolare OR; AND; NOT. Nascono le reti neurali artificiali
(Classificazione dei clienti in base al profilo e alla storia di acquisto di altri clienti)
Sistema di numerazione è un codice che assegna a dei simboli (cifre) un significato in base alla posizione che la cifra occupa in numero. La base è l’insieme dei simboli distinti che il sistema utilizza.
Sistema decimale : 10 simboli diversi che il sistema di numerazione utilizza.
Con K bit si rappresentano 2K^ numeri che vanno da 0 a 2K- Numeri Interi: si utilizzano codifiche quali Bit di segno Complemento a 2 (inverte i bit ed aggiunge 1) Reali: si utilizzano codifiche quali: floating point fixed point Codifica caratteri codifica ASCII> non utile si è passati a codice a 16 bit (Unicode) Codifica immagini -immagini= sequenze di bit -l’immagine viene digitalizzata, cioè, rappresentata con sequenze di pixel -ogni pixel ha associato un numero che descrive un particolare colore -inoltre, si mantengono la dimensione, la risoluzione e il numero di colori usati SOFTWARE È l’insieme dei programmi, che si classificano in Software di base: dedicato alla gestione dell’elaboratore esempio: sistema operativo Software applicativo: dedicato alla realizzazione di specifiche applicative esempio: programmi per scrittura, gestione aziendale, navigazione su internet (app) sistema operativo Rende la componente hardware facile da usare fornisce funzionalità ad alto livello agli utenti ad esempio: organizza la memoria di massa; gestisce comandi immessi dall'utente
soddisfare tutti gli utenti esempi: MS DOS, OS 2, Windows
Analisi del problema e identificazione della soluzione(uomo) formalizzazione della soluzione e delineazione dell'algoritmo corrispondente (uomo) programmazione: scrittura del programma nel linguaggio ad alto livello orientato ai problemi ed indipendente dalla macchina(uomo) traduzione nel programma nel linguaggio che il calcolatore è in grado di comprendere (linguaggio macchina); fase svolta automaticamente tramite opportuni strumenti software (compilatori o interpreti) la differenza sostanziale tra compilatori e interpreti consiste nel fatto che il compilatore legge e traduce tutte le istruzioni in equivalenti nel linguaggio macchina tenendo il programma eseguibile mentre all'interprete legge traduce ed esegue ogni istituzione. Esecuzione del programma tradotto in linguaggio macchina (calcolatore) Linguaggi di programmazione Linguaggi per esprimere in maniera rigorosa un algoritmo Linguaggio macchina (seq. Istruzioni) Linguaggio ad alto livello (vicini al ling. Naturale) Esempi: pascal, C e C++; Java.basic Esempio: potenza Problema: calcolare an Utilizziamo le variabili N, Ris Inizialmente Ris=1 e N=n Algoritmo: Fino a che N> Calcola Ris x a e memorizzalo in Ris Decrementa N Correttezza: Al termine Ris=an Il precedente programma aveva tradotto in linguaggio macchina (compilatori ed interpreti) in sequenze di istruzioni. Quando le istruzioni vengono eseguite il programma prende i dati in ingresso (valori iniziali di N e A) attraverso la tastiera e poi stampa il risultato sul video (input e output). In generale un programma può essere visto infatti come una funzione da input ad output
Affinché un elenco di istruzioni possa essere considerato un algoritmo devono essere soddisfatti i seguenti requisiti: Finitezza: ogni algoritmo deve essere finito, cioè ogni singola istruzione deve poter essere eseguita in tempo finito ed un numero finito di volte Generalità: ogni algoritmo deve fornire la soluzione per una classe di problemi; deve pertanto essere applicabile a qualsiasi insieme di dati appartenenti all'insieme di definizione o dominio dell'algoritmo e deve produrre risultati che appartengono all'insieme di arrivo o codominio Non ambiguità: devono essere definiti in modo univoco i passi successivi da eseguire; devono essere evitati i paradossi, contraddizioni e ambiguità; il significato di ogni istruzione deve essere univoco per chiunque esegua l'algoritmo. Gli algoritmi devono essere formalizzati per mezzo di appositi linguaggi, dotati di precisione e sintesi. COSTANTI E VARIABILI I dati su cui operano algoritmo sono costanti e variabili. Un dato è costante quando il suo valore non può essere aggiornato durante l'esecuzione dell'algoritmo o per esecuzioni successive. Una variabile è una coppia < nome, valore>: può essere immaginata come una scatola sulla quale scritto un nome e che può contenere un valore. Il valore di una variabile deve appartenere all'insieme di definizioni su cui si opera mediante regole opportune specifiche dell'insieme. Data una variabile < x,y > x è il nome della variabile è y e il suo valore attuale. Le variabili sono indeterminate in fase di definizione dell'algoritmo ma corrispondono a valori specifici durante ogni esecuzione COME ASSEGNO UN VALORE ALLA VARIABILE? L'istruzione di assegnazione definisce il valore attuale di una variabile, che resta inalterato fino all'assegnazione successiva. L'assegnazione si rappresenta con il simbolo : nome variabile espressione che si legge assegna alla variabile “nome di variabile” il valore di “espressione”; l'espressione a destra della freccia è costituita a variabili, costanti e operatori l'assegnazione viene così eseguita: a) Si valuta l'espressione a destra e la freccia sostituendo i nomi di variabile i loro valori attuali; il risultato deve appartenere all'insieme di definizioni della variabile a sinistra della freccia
b) il valore calcolato diventa il nuovo valore della variabile il cui nome appare a sinistra della freccia I nomi delle variabili possono essere scelti in modo arbitrario ma è opportuno selezionare nomi significativi del contenuto della variabile. È necessario rispettare la regola dell'ordinamento: quando una variabile appare a destra di in un'assegnazione deve essere già istanziata cioè, deve essere già stato assegnato un valore LE ISTRUZIONI istruzioni operative che producono risultati 8assegnazione variabili) istruzioni di controllo che controllano il verificarsi di condizioni specificate e in base al risultato del controllo determinano il flusso di istruzioni da eseguire (se facciamo somma tra due variabili, se è maggiore di 10 le forniamo l’unità di output sennò non facciamo niente) istruzioni di salto che alterano il normale flusso di esecuzione sequenziale delle istruzioni. Istruzioni di ingresso/uscita che specificano come deve essere acquisito o visualizzato il valore di una variabile; quindi, come deve essere effettuata una trasmissione di dati o messaggi tra algoritmo e ambiente esterno Istruzioni di inizio/fine esecuzione che indicano inizio o fine dell’algoritmo I DIAGRAMMI A BLOCCHI Il linguaggio dei diagrammi a blocchi un possibile formalismo per la descrizione di algoritmi. Il flowchart , cioè il diagramma a blocchi è una rappresentazione grafica dell'algoritmo. Descrive il flusso delle operazioni da eseguire per realizzare le trasformazioni, dai dati iniziali ai risultati. Ogni istruzione dell'algoritmo viene rappresentata
L’analisi strutturata favorisce la descrizione di algoritmi facilmente documentabili e comprensibili. I blocchi di un diagramma a blocchi strutturato sono collegati secondo i seguenti schemi di flusso schema di sequenza: più schemi di flusso sono eseguiti in sequenza schema di selezione: un blocco di controllo subordinare l'esecuzione di due possibili schemi di flusso al verificarsi di una condizione schemi di iterazione: si terrà l'esecuzione di un dato schema di flusso La pseudocodifica è un linguaggio per la descrizione algoritmi secondo le regole della programmazione strutturata. La descrizione di un algoritmo in pseudocodifica si compone di due parti -la dichiarazione delle variabili usate nell'algoritmo -la descrizione e le azioni dell'algoritmo TIPO DI VARIABILI Il tipo di una variabile indica l'insieme dei valori che possono essere assegnati a quella variabile. Su costanti e variabili di un tipo è possibile effettuare le operazioni che sono proprie di quel tipo e tutte le operazioni di confronto. Sono permessi i quattro seguenti tipi: integear, real,boolean, string-q DICHIARAZIONE DELLE VARIABILI La dichiarazione delle variabili e un elenco proceduto dalla parola var, delle variabili sulle quali l'algoritmo opera. Le variabili sono suddivise per tipo: quelle dello stesso tipo sono separate l'una dall'altra da una virgola, l'elenco delle variabili dello stesso tipo e seguito dai due punti e dalle indicazioni del tipo; gli elenchi di variabili di tipo diverso sono separati dal punto e virgola; l'ultimo elenco è seguito da. Esempio: var i, j, a (20): integer; p,q: real nome: string- sw: boolean. DESCRIZIONE DELLE AZIONI
Gli schemi di flusso fondamentali sono descritti utilizzando convenzioni linguistiche: ad ogni schema strutturato corrisponde una convenzione linguistica. La descrizione di un algoritmo deve soddisfare le seguenti regole: a) La prima azione è l'algoritmo è preceduta dalla parola begin b) l'ultima azione in algoritmo è seguita dalla parola end c) l'azione di lettura è rappresentata dalla parola read d) l'azione di scrittura è rappresentata dalla parola write e) lo schema di sequenza di n flussi S1,S2..Sn è rappresentato come S1; S2; Sn;
Foto 2: assegnate due variabili a e b facciamo la somma e forniamo output Primo parallelogramma indica operazione di input perché sto inserendo un valore in una variabile che chiamo a. Non ci sono attività di controllo da fare Secondo parallelogramma, prendiamo un altro valore da input e lo assegniamo a una variabile che chiamiamo b Nel rettangolo, che è la variabile c (sx freccia) e scrivo a+b (variabili già istanziate a dx). il processore andrà in memoria, prende valori di a e b, verifica istruzione dal codice operativo (istruzione di somma); quello che ottiene, attraverso il bus dati trasferisce il risultato nella cella di memoria c. [quando scriviamo 5 cioè il valore della variabile a stiamo spostando dalla tastiera alla memoria RAM il numero 5, così con tutte le variabili]
Si fa l’incremento del contatore > sempre operazione di assegnazione, a sx nome variabile contatore e a dx I+1. Vuol dire che dopo l’operazione la variabile I cambia il suo valore da 0 a 1. Dobbiamo confrontare valore variabile I con valore massimo (N). rimando la freccia al blocco N. se I=N sì e poi blocco fine; se no si ritorna su. N, variabile che indica il numero di coppie che devo considerare Prendo in input M che è il valore di riferimento della somma A+B Prendo contatore I Il gruppo di operazioni da ripetere è somma A e B, incremento subito I. Nella variabile C ci metti A+B e fai confronto con M Se non sono arrivato alla fine risulta falsa la condizione e si torna a ripetere le operazioni (freccia del no) Quando I=M > fine N! (n FATTORIALE) N!=1 se N=o N!=N!(N-1) se N> La variabile è uno spazio di memoria che contiene dati. Può essere intera, reale, peleano, carattere in base a ciò che contiene Può servire però uno spazio di memoria maggiore, può esserci bisogno di caricare in memoria valori omogenei. Ci servono quindi gli ARREY.
Bidimensionale: una matrice Monodimensionale: insieme di valori omogenei, ogni cassetto ha stesso tipo di valori. 1 2 7 4 l k f a
PROTOCOLLO: l’insieme di regole e modalità di attuazione di una funzione o gruppo di funzioni Le funzioni di un processo di comunicazione possono essere strutturate secondo un modello a strati IL MODELLO ISO/OSI