Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'informatica: Concetti fondamentali e architetture - Prof. Pelusi, Schemi e mappe concettuali di Elementi di Informatica

Una panoramica completa dei concetti fondamentali dell'informatica, esplorando l'architettura dei computer, i linguaggi di programmazione e i sistemi operativi. Esempi concreti e illustra i principi chiave della programmazione, come la gestione della memoria, l'allocazione dei processi e la sicurezza informatica.

Tipologia: Schemi e mappe concettuali

2023/2024

In vendita dal 09/02/2025

mariannaraponi-
mariannaraponi- 🇮🇹

5

(1)

29 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
memorizzazione e gestione dei dati + ciclo macchina
introduzione all’informatica
unità didattica uno
memorizzazione dei dati
ciclo macchina
gestione dei dati
BIT ( binary digit ): 0 o 1,
unità di misura per calcolare
la quantità di informazione.
es. immagini, lettere, numeri…
notazione esadecimale:
sequenza divisa in gruppi
da 4 bit, rappresentati da
una cifra esadecimale.
La più corta è composta
da due cifre esadecimali.
notazione binaria:
usa i bit per
rappresentare un numero
in base 2.
«la memoria consente di memorizzare e recuperare rapidamente i dati».
cella, un’unità di memoria ( 8 bits = 1 byte, perché si devono codificare 256 simboli ).
indirizzo, identifica univocamente una cella nella memoria
Due tipologie: RAM ( memoria ad accesso diretto ) e DRAM ( ram composta da memoria volatile ).
La capacità di memoria viene calcolata in byte (B), da qui si distinguono:
kilobyte 1024 byte
megabyte 1.048.576 bytes
gigabyte 1.073.741.824 bytes
Nel momento in cui viene superata tale capacita, si commette l’overflow.
come si rappresenta un testo ? bisogna codificare i caratteri della tastiera, utilizzando il CODICE ASCII o unicode.
Esso usa sequenze di 7 bits per rappresentare la maggior parte dei simboli usati nella lingua inglese, mentre quello esteso ne
utilizza 8 [ es, “Clelia_”, sono 7 bits perché sei lettere + il trattino ].
Unicode utilizza fino a 21 bits, ma ne usa 16 per le lingue più comuni.
La memoria di massa è meno volatile, ha grande capacità di memorizzazione, basso costo, è rimovibile rispetto a quella principale.
󳠠 bandwidth: quantità totale di bit trasferibili in un’unità di tempo
󳠠 latency: tempo totale tra la richiesta di trasferimento dati e l’effettuazione
Importante è la DISTANZA DI HAMMING, cioè il numero di bit in cui differiscono due pattern.
Le sequenze devono avere le stesse cifre, e si parla di distanza massima quando sono tutte diverse.
Il codice correttore d’errore rileva l’errore di un bit e lo corregge.
come funziona ?
innanzitutto il pattern modificato sarà ad una distanza di 1 dall’originale a ad almeno a 2 dagli altri.
In seguito, per decodificare un messaggio bisogna confrontare ogni pattern, finche non si ha D=1.
come è organizzato un computer ? esso è composto da…
CPU ( Central Processing Unit ), estrae, decodifica ed esegue istruzioni
Arithmetic Logic Unit effettua operazioni sulle sequenze di bit
Control Unit dirige l’esecuzione di un programma
Register Unit ( general and special purpose registers )
BUS è il collegamento tra la RAM e la CPU
RAM contiene i programmi da eseguire
Un programma può essere codificato come sequenza di bit e caricato nella memoria principale stored program concept
Il linguaggio macchina è l’insieme di tutte le istruzioni riconoscibili da una macchina.
󳠠 RISC ( poche, semplici e veloci istruzioni, es. PowerPC ) e CISC ( molte, complesse e potenti istruzioni, es. Intel )
L’istruzione macchina è l’istruzione codificata come sequenza di bit e riconoscibile dalla CPU.
op-code specifica l’operazione da eseguire
operand fornisce informazioni più dettagliate in riferimento all’operazione
L’esecuzione di un programma è controllata da:
Instruction register, mantiene l’istruzione corrente 1.
Program Counter, mantiene l’indirizzo della prossima istruzione 2.
ciclo macchina 3.
cos’è l’ADD ? ADD 800, 428, 884 [ somma - indirizzo risultato - indirizzo 1º addendo - indirizzo 2º addendo ]
comunicazione con altri dispositivi…
controller gestisce la comunicazione tra il computer e gli altri dispostivi, es. HDMI, USB
port 󱽔 punto di connessione device-computer
- comunicazione seriale: quando i bit sono inviati in serie, uno dopo l’altro
- comunicazione parallela: quando i bit sono inviati contemporaneamente
DMA 󱽔 ( Direct memory access ), capacità dei controller di accedere alla RAM senza passare dal dispositivo
- collo di bottiglia di Von Neumann: avviene quando la CPU e i controllers competono per l’accesso al BUS
Handshaking processo di coordinamento durante il trasferimento dati tra computer e periferica
Il tasso di comunicazione è la velocità con la quale i bits scorrono, e ci sono diverse unita di misura.
Il bandwidth è la tassa massima disponibile.
FETCH: reperisce l’istruzione successiva dalla memoria
e poi incrementa il PC.
DECODE: decodifica la configurazione di bit nel IR.
EXECUTE: esegue l’operazione indicata dall’istruzione
nel IR.
pf3
pf4

Anteprima parziale del testo

Scarica Introduzione all'informatica: Concetti fondamentali e architetture - Prof. Pelusi e più Schemi e mappe concettuali in PDF di Elementi di Informatica solo su Docsity!

memorizzazione e gestione dei dati + ciclo macchina

introduzione all’informatica unità didattica uno

memorizzazione dei dati

ciclo macchina

gestione dei dati

BIT ( binary digit ): 0 o 1, unità di misura per calcolare la quantità di informazione. es. immagini, lettere, numeri… notazione esadecimale: sequenza divisa in gruppi da 4 bit, rappresentati da una cifra esadecimale. La più corta è composta da due cifre esadecimali. notazione binaria: usa i bit per rappresentare un numero in base 2. «la memoria consente di memorizzare e recuperare rapidamente i dati».

  • cella, un’unità di memoria ( 8 bits = 1 byte, perché si devono codificare 256 simboli ).
  • indirizzo, identifica univocamente una cella nella memoria Due tipologie: RAM ( memoria ad accesso diretto ) e DRAM ( ram composta da memoria volatile ). La capacità di memoria viene calcolata in byte (B), da qui si distinguono:
  • kilobyte 1024 byte
  • megabyte 1.048.576 bytes
  • gigabyte 1.073.741.824 bytes Nel momento in cui viene superata tale capacita, si commette l’overflow. come si rappresenta un testo? bisogna codificare i caratteri della tastiera, utilizzando il CODICE ASCII o unicode. Esso usa sequenze di 7 bits per rappresentare la maggior parte dei simboli usati nella lingua inglese, mentre quello esteso ne utilizza 8 [ es, “Clelia”, sono 7 bits perché sei lettere + il trattino ]_. Unicode utilizza fino a 21 bits, ma ne usa 16 per le lingue più comuni. La memoria di massa è meno volatile, ha grande capacità di memorizzazione, basso costo, è rimovibile rispetto a quella principale. bandwidth: quantità totale di bit trasferibili in un’unità di tempo latency: tempo totale tra la richiesta di trasferimento dati e l’effettuazione Importante è la DISTANZA DI HAMMING, cioè il numero di bit in cui differiscono due pattern. Le sequenze devono avere le stesse cifre, e si parla di distanza massima quando sono tutte diverse. Il codice correttore d’errore rileva l’errore di un bit e lo corregge. come funziona? innanzitutto il pattern modificato sarà ad una distanza di 1 dall’originale a ad almeno a 2 dagli altri. In seguito, per decodificare un messaggio bisogna confrontare ogni pattern, finche non si ha D=1. come è organizzato un computer? esso è composto da…
  • CPU ( Central Processing Unit ), estrae, decodifica ed esegue istruzioni ‣ Arithmetic Logic Unit ➭ effettua operazioni sulle sequenze di bit ‣ Control Unit ➭ dirige l’esecuzione di un programma ‣ Register Unit ➭ ( general and special purpose registers )
  • BUS è il collegamento tra la RAM e la CPU
  • RAM contiene i programmi da eseguire Un programma può essere codificato come sequenza di bit e caricato nella memoria principale ➜ stored program concept Il linguaggio macchina è l’insieme di tutte le istruzioni riconoscibili da una macchina. RISC ( poche, semplici e veloci istruzioni, es. PowerPC ) e CISC ( molte, complesse e potenti istruzioni, es. Intel ) L’istruzione macchina è l’istruzione codificata come sequenza di bit e riconoscibile dalla CPU.
  • op-code specifica l’operazione da eseguire
  • operand fornisce informazioni più dettagliate in riferimento all’operazione L’esecuzione di un programma è controllata da:
  1. Instruction register, mantiene l’istruzione corrente
  2. Program Counter, mantiene l’indirizzo della prossima istruzione
  3. ciclo macchina cos’è l’ADD? ADD 800, 428, 884 [ somma - indirizzo risultato - indirizzo 1º addendo - indirizzo 2º addendo ] comunicazione con altri dispositivi…
  • controller ➭ gestisce la comunicazione tra il computer e gli altri dispostivi, es. HDMI, USB ‣ port punto di connessione device-computer - comunicazione seriale: quando i bit sono inviati in serie, uno dopo l’altro - comunicazione parallela: quando i bit sono inviati contemporaneamente ‣ DMA ( Direct memory access ), capacità dei controller di accedere alla RAM senza passare dal dispositivo - collo di bottiglia di Von Neumann: avviene quando la CPU e i controllers competono per l’accesso al BUS
  • Handshaking ➭ processo di coordinamento durante il trasferimento dati tra computer e periferica Il tasso di comunicazione è la velocità con la quale i bits scorrono, e ci sono diverse unita di misura. Il bandwidth è la tassa massima disponibile. FETCH: reperisce l’istruzione successiva dalla memoria e poi incrementa il PC. DECODE: decodifica la configurazione di bit nel IR. EXECUTE: esegue l’operazione indicata dall’istruzione nel IR.

sistema operativo + memorie e licenze software

Due tipologie di memorie: RAM ( memoria volatile, di scrittura e lettura, ad accesso random ) e ROM ( memoria non volatile, in cui è memorizzato il firmware, di sola lettura ). cosa sono le memorie a stato solido? sono memorie in grado di registrare in modo permanente i dati, es. pen driver, PC CARD.. Esse non hanno parti mobili, hanno dimensioni ridotte, utilizzano meno energia dei dischi magnetici, si applicano a più dispositivi. La memoria può essere ad:

  • accesso random informazioni accessibili indipendentemente dall’ordine in cui sono state memorizzate
  • accesso sequenziale informazioni lette nell’ordine in cui sono state memorizzate cosa sono i gates e il transistor? i primi sono dispositivi che computano un’operazione booleana e forniscono i blocchi di costruzione per la creazione del computer; mentre il secondo è un dispositivo a semiconduttore capace di funzionare come un interruttore ON-OFF ( canale P e L ). Le licenze software concedono il diritto di uso personale, non la proprietà. Ci sono diversi tipi di licenze, come:
  • freeware ➭ non richiedono pagamento
  • shareware ➭ mette a disposizione una prova gratuita dopo aver scaricato il software, oppure si può pagare il produttore e utilizzarlo gratuitamente.
  • open source ➭ può essere gratuito o non, e mette a disposizione il codice sorgente. Chiunque può modificarlo per migliorarlo, tuttavia l’autore ne mantiene i diritti.

sistema operativo La sua funzione è:

  • supervisionare le operazioni del computer
  • recuperare e memorizzare file
  • fornire l’interfaccia utente per l’esecuzione di programmi
  • coordinare l’esecuzione di programmi Si classificano in base all’ interfaccia grafica e alla linea di comando. Esistono due tipologie di software: il software di applicazione ( compiono compiti specifici per gli utenti ) e il software di sistema ( forniscono infrastrutture ai software di applicazione ). costituito dal sistema operativo e dalle utility, ossia quei software già esistenti nel sistema. quali sono i componenti del sistema operativo?
  • interfaccia utente Shell e GUI ( interfaccia grafica )
  • Kernel è il nucleo, composto da: file manager gestisce i file ( directory - directory path = “cartella dentro cartella” ) memory manager alloca spazio nella RAM, si pensa di avere più memoria ➛ memoria virtuale device drivers scheduler and dispatcher Importante è il BOOT STRAPPING e LOADER ➜ processo di trasferimento del sistema operativo dalla memoria di massa alla RAM, es. BIOS, UEFI cos’è il processo? è l’attività di eseguire un programma, mentre lo stato di un processo è lo stato corrente dell’attività ( PC, general purpose registers, porzione relativa di RAM ). Un processo è amministrato da:
  • scheduler aggiunge e rimuove processi
  • dispatcher controlla l’allocazione dei time slices, di cui ne viene segnalata la fine dall’interrupt. L’interrupt è l’interruzione mentre si svolge un compito, dunque si sospende ciò che si sta facendo e si prende nota del punto dove si e arrivati. In questo caso, la CPU completa il ciclo macchina, salva la sua posizione nel processo corrente e inizia ad eseguire un programma ➜ gestore degli interrupt Nel caso in cui il processo riceve un interrupt dopo aver rilevato uno stato clear ( libero, parte del semaforo ) ma prima di impostarlo a stato set ( impegnato, parte del semaforo ), si crea un problema che viene risolto disattivando o attivando l’interrupt. sicurezza: ci possono essere attacchi dall’esterno e dall’interno. Nel primo, si fa riferimento al caso in cui un amministratore fa uso di sniffing software, che registra le attività e le riferisce all’intruso, o a causa di password non sicure. Nel secondo, si fa riferimento al caso in cui un processo potrebbe accedere alle celle di memoria all’esterno dell’area riservata. come si impediscono gli attacchi?
  1. livelli di privilegio ➙ livello privilegiato: la CPU esegue tutte le istruzioni nel suo linguaggio macchina | livello non privilegiato: limitato elenco di istruzioni permesse ]
  2. istruzioni privilegiate regione critica: gruppo di istruzioni eseguite da un solo processo alla volta mutua esclusione: richiesta che un solo processo alla volta può essere allocato per eseguire una regione critica. deadlock o stallo: quando due o più processi non possono continuare perché ognuno attende l’accesso alle risorse dell’altro. Si supera lo stallo, rimuovendo una delle prime tre condizioni. Si liberano forzatamente delle risorse kill

memorie e licenze

processo di attesa: se la sua esecuzione è momentaneamente rimandata a quando si verificherà un evento esterno. processo di pronto: se è in uno stato in cui si può proseguire con l’esecuzione.

macchina di Turing

linguaggi di

programmazione

La funzione è la corrispondenza tra valori di input e output, cosicché ogni possibile input è assegnato ad un singolo output. Computare una funzione significa determinare il valore di output associato ad un dato insieme di input. non computabile: non può essere computata da nessun algoritmo. cos’è la macchina di Turing? è una macchina ideale di commutazione creata da Turing nel 1936, ed è usata come strumento di analisi dei processi algoritmici. Le operazioni che la macchina esegue sono:

  1. ogni passo consiste nell’osservare il simbolo presente nella cella corrente del nastro
  2. scrivere un simbolo in quella cella
  3. spostare eventualmente la testina R/W a sinistra o destra
  4. cambiare stato Gli stati della macchina sono: INIZIO - SOMMA - RIPORTO - OVERFLOW - RITORNO - FINE cos’è la tesi di Church-Turing? le funzioni che sono computabili dalla macchina di Turing sono esattamente le funzioni che possono essere computate da qualunque sistema algoritmico. Ci sono tre generazioni di linguaggi: ➤ linguaggio macchina ➤ linguaggio assembly ➤ linguaggio di terza generazione, es. FORTRAN, COBOL 2ª generazione Il linguaggio assembly è un sistema mnemonico per rappresentare le istruzioni macchina. quali caratteristiche ha?
  5. corrispondenza uno a uno tra istruzioni e istruzioni assembly
  6. intrinsecamente dipendente dalla macchina
  7. convertito in linguaggio macchina dal un programma ➜ assembler quali sono gli svantaggi? un programma scritto in assembly non può essere trasportato con facilita da una macchina all’altra, dunque il programmatore deve ragionare secondo i piccoli passi del linguaggio macchina. 3ª generazione: quali caratteristiche hanno?
  8. utilizzano primitive di alto livello
  9. indipendenti dalla macchina
  10. convertiti in linguaggio macchina dal compilatore Il compilatore è un programma traduttore di programmi scritti con primitive a programmi scritti in linguaggio macchina. L’alternativa è l’interprete, simile al compilatore ma esegue le istruzioni man mano che vengono tradotte. cos’è l’implementazione del linguaggio? è il processo di conversione di un programma da scritto in linguaggio ad alto livello in una forma eseguibile dalla macchina. Il programma si dice sorgente se si trova nella sua forma originale, mentre si dice oggetto se si trova nella forma tradotta. ➙ come avviene?
  • l’analizzatore lessicale riconosce quali stringhe di simboli rappresentano una singola entità.
  • l’analizzatore parser analizza il programma in termini di token, anziché singoli caratteri. tipi di dati
  • integer ( numeri interi )
  • real float ( numeri con frazioni )
  • character ( simboli )
  • booleani ( vero/ falso )