Sei sulla pagina 1di 8

PARTE A

CODICE BINARIO
Qualsiasi “informazione” immagazzinata o recuperata per mezzo di un dispositivo (desktop,
computer ecc) deve essere rappresentata attraverso un “linguaggio” chiamato Codice
Binario. Definizione di Codice Binario: è un sistema di codifica che usa le cifre binarie 0 e 1
al fine di rappresentare lettere, cifre, o altri caratteri all’interno di un computer o di un
qualsiasi altro dispositivo elettronico (smartphones, tablets). In Particolare: un BIT (BInary
digiT) è l’unità di informazione attraverso la quale un dispositivo gestisce tutti i tipi di
informazione al suo interno. Un singolo BIT può avere solo due stati: 0 and 1.
Nota: con un singolo BIT solo DUE “elementi” possono essere espressi, ad esempio:
1 = “A”
0 = “B”.
Ogni "elemento" di un documento, ogni "pezzo" di un programma, ogni "frame/immagine" di
un video, necessitano di essere decodificati in un insieme di bits al fine di essere
immagazzinati/memorizzati all'interno di un dispositivo. Per questo motivo, più questi
"oggetti" sono complessi, più spazio sul dispositivo è necessario per la loro memorizzazione.
Un gruppo di 8 bits è chiamato Byte.
Come ogni sistema numerico, il codice binario ha diverse proprietà intrinseche. La prima di
queste, appartenenti a qualsiasi sistema posizionale, è quella di avere la possibilità di
passare da un sistema numerico ad una altro:

All’interno di ogni dispositivo “l’informazione” è "veicolata" per mezzo di un numero fissato di


bytes (es: 16 bits (2 bytes); 32 bits (4 bytes); 64 bits (8 bytes). Ora, si può comprendere
perché il numero di bytes identifica la "potenza" di un dispositivo, poiché maggiore è il
numero di bytes:
- maggiore è la capacità di un dispositivo di calcolare operazioni complesse;
- maggiore è la capacità di un dispositivo di gestire diverse quantità di informazioni;
- maggiore è la capacità di un dispositivo di comprendere istruzioni complesse.
All'interno di un dispositivo un "numero" (l'informazione) può essere identificato da tre classi:
- Interi Senza Segno (interi positivi);
- Interi Con Segno (interi positivi e negativi);
- Reali (numeri positivi e negativi con una virgola).

In generale, con una base B e con n cifre, è possibile rappresentare: Bn – 1


(es: con B = 10 and 4 cifre: 9999 = 10^4 – 1; con B = 2 and 4 cifre: 1111 = 2^4 – 1)
Un dispositivo può rappresentare la seguente serie di numeri interi positivi: da 0 sino a
2^n-1.

IL MODELLO DI VON NEUMANN


Tutti i dispositivi (es: laptop, smartphone ecc) sono basati sul modello di Von Neumann.
Il funzionamento di ogni dispositivo, durante l’esecuzione di un Programma/ Applicazione/
Servizio è basato sui seguenti tre “principi”:
1. Un dispositivo consiste principalmente di tre componenti principali (il Modello Von
Neumann):
- Memory (Memoria): contiene quella parte di programma e i dati ad essa
correlati, che sono in esecuzione su un dispositivo in un dato momento;
- Processor (Processore - Central Processing Unit - CPU): per eseguire ed
interpretare le operazioni aritmetiche e logiche. Processing unit è la parte
del processore che si occupa dell’effettiva esecuzione di un programma e dei
dati ad esso correlati. Essa effettua tutte le operazioni, incluse quelle logiche
e quelle aritmetiche. Control Unit: è la parte del processore che si occupa
della supervisione di tutte le attività di elaborazione
- Input/Output: per introdurre input e produrre output, si occupa di tutte le
interazioni con il mondo esterno.
2. Programma/Applicazione/Servizio (i.e., parte di esso) risiede in Memoria durante
l’esecuzione;
3. Programma/Applicazione/Servizio è eseguito in maniera sequenziale durante
l’esecuzione.
Se abbiamo a che fare con sequenze binarie, le operazioni possibili sono:
- Aritmetiche
- Di movimento
- Logiche

➤La Memoria anche chiamata RAM (Random Access Memory), consiste di molte celle di
memoria (storage units) di dimensione fissata. Ogni cella ha un indirizzo ad essa associato:
0000, 0001, 0010…Tutti gli accessi alla memoria devo essere specificati attraverso un
indirizzo specifico. La cella rappresenta la minima «unità» di memoria (Operazioni:
fetch/store). Il tempo impiegato per fare un’operazione di fetch/store all’interno di una cella è
lo stesso per tutte le celle. Quando un dispositivo è attivo: parti di differenti programmi e
relativi dati sono immagazzinati «dinamicamente» nella memoria (RAM). Le operazioni che
possono essere eseguite all’interno della memoria sono di due tipi: STORE (Immagazzinare
parti di Programmi e Dati) e FETCH (Recuperare parti di Programmi e Dati).
Come fa il processore (CPU) a immagazzinare (store) e recuperare (fetch) le stringhe di bit
(parti di programma e dati utente, d’ora in poi semplicemente dato) dalla memoria RAM?:
- MAR - Memory Address Register: è un registro della Central Processing Unit (CPU)
contenente l'indirizzo della locazione di memoria RAM in cui si andrà a leggere o
scrivere un dato;
- MDR - Memory Data Register: è un registro a cui l’Unità Aritmetica e Logica (ALU)
ha accesso diretto e che contiene momentaneamente i dati da/per la CPU.
L'MDR, insieme al MAR, interfaccia quindi la CPU con la RAM.

➤La Processing Unit (Unità di Elaborazione) è un’unità funzionale composta da due


sotto-moduli principali:
- ALU: è la Arithmetic and Logic Unit (Unità Aritmetico e Logica). Tale sotto-modulo
effettua tutte le operazioni (Aritmetiche e Logiche) richieste dal dispositivo. Supporta
anche le operazioni di Movimento;
- TEMP: è una memoria velocissima/costosissima utilizzata per le operazioni interne
dell’ALU (i.e., Cache Memory della CPU).
La Processing Unit contiene le operazioni di base che permettono al dispositivo di lavorare
propriamente.

➤La Control Unit (Unità di Controllo) è un’unità di gestione. Essa è composta da due
sotto-moduli:
- PC: è il Program Counter (Contatore di Programma) e contiene l’indirizzo della
prossima istruzione che necessita di essere eseguita;
- IR: è l’Instruction Register (Registro delle Istruzioni) e contiene le istruzioni che
possiede il PROCESSORE.

Il ciclo dell’esecuzione delle istruzioni di un elaboratore comprende:

SISTEMI OPERATIVI

(Hardware: macchina di Von Neumann)

➤FIRMWARE
Il firmware è un programma integrato direttamente in un componente elettronico nel senso
più vasto del termine (e.g., integrati, schede elettroniche, periferiche, etc..). Lo scopo del
programma è quello di «avviare» il componente stesso e consentirgli di interagire con altri
componenti tramite l'implementazione di protocolli di comunicazione o interfacce di
programmazione. Il termine deriva dall'unione di "firm" (azienda) e "ware" (componente),
indica che il programma non è immediatamente modificabile dall'utente finale, ovvero risiede
stabilmente nell'hardware integrato in esso, e che si tratta del punto di incontro fra
componenti logiche e fisiche, ossia fra software e hardware. Il firmware, forse, più
conosciuto è quello della scheda madre, chiamato comunemente BIOS e responsabile del
corretto avvio del computer.
Il Basic Input Output System (BIOS) è un insieme di routine software (firmware) le quali
forniscono la struttura di base con cui il Sistema Operativo (OS) si collega all’hardware. Il
BIOS (in varie forme e definizioni) può essere presente in diversi componenti, quali schede
madri, memorie di massa, schede video, etc… In particolare, ovunque si abbia la necessità
di gestire hardware complesso dotato di processori dedicati. Esso è un software contenuto
in un chip di memoria non volatile (ossia: in grado di mantenere i dati in assenza di
alimentazione). Attualmente il BIOS risiede su memorie dette FLASH o EEPROM che hanno
la caratteristica di essere riscrivibili tramite un opportuno upgrade del sistema.
All’avvio di un dispositivo (es: computer) ancor PRIMA che il Sistema Operativo venga
caricato, il BIOS si occupa di effettuare diverse operazioni, tra le quali:
- Governare l’hardware avviando diverse routine di test denominate POST (Power On
Self Test) per verificare il corretto funzionamento dei circuiti della scheda madre, del
processore, della memoria, e di tutto ciò che è «installato» nel dispositivo;
- Avviare un programma di gestione delle periferiche, nel caso in cui non vengano
rilevati «errori» (gravi) nella fase di POST;
- Avviare una schermata video (interazione) per consentire all’utente di intervenire
nella modifica di alcune operazioni «marginali» di avvio del BIOS stesso;
- Inizializzare la routine di BOOT che avvia il Sistema Operativo. Il BOOTSTRAP è un
processo incrementale con il quale viene letta quella parte del Sistema Operativo che
si trova nel settore di BOOT (disco di avvio) e che carica progressivamente le parti
del Sistema Operativo atte a rendere la macchina in uno stato stabile e utilizzabile.
Dopo la lettura delle routine di base del BIOS, si ha, come prima istruzione, l’istruzione di
«puntare all’inizio» del disco rigido (o di altro supporto di massa) sul quale è ospitato il
Sistema Operativo. All’interno di questa posizione si trova l’MDR (Master Boot Record). Il
BIOS legge il contenuto dell’MDR e gli trasferisce il CONTROLLO (da qui in poi è un suo
compito la «gestione» del device). L’MDR sa dove nel disco rigido (o altro dispositivo di
massa) è posto il BOOT SECTOR, ovvero il punto di inizio/avvio del Sistema Operativo.

➤SISTEMA OPERATIVO
Il sistema operativo è il software di base che sovrintende al funzionamento dell’intero
computer, all’esecuzione dei programmi, all’interazione con gli utenti. È lo strato software
che si colloca tra l’hardware della macchina e il software applicativo utilizzato dall’utente e
fornisce un’astrazione dell’hardware ai programmi software.
Il Sistema operativo è formato da una struttura a 7 strati, così composta:
1. gestione dei processi, scheduler
2. gestione della memoria primaria (RAM)
3. gestione del file system
4. gestione delle periferiche e dell'input output
5. gestione della memoria secondaria
6. gestione della Protezione della sicurezza
7. gestione delle interfacce verso l'utente e programmi applicativi
Il kernel costituisce il nucleo fondamentale del sistema operativo: sul kernel si appoggiano
le altre funzioni del sistema operativo stesso. Gli strati che lo compongono hanno tutti la
stessa logica e sono quelli che differenziano un sistema operativo dall'altro. Le tre
componenti del kernel sono: gestione del file system, gestione della memoria primaria,
gestione dei processi, Scheduler.

L’unità può essere costituita da uno o più


dischi. Entrambe le superfici di ogni disco
sono rivestite di materiale magnetico
(punto debole dell’hard disk) sul quale
vengono memorizzate le informazioni (i
BIT).

Gli SSD, una nuova tipologia di hard disk:


- durano di più: gli hard-disk contengono diverse parti mobili, passibili di urti e
danneggiamenti. Le memorie SSD invece non hanno parti meccaniche e questo le
rende resistenti agli urti.
- sono più veloci
- sono più affidabili
- hanno bisogno di meno corrente: maggiore durata della batteria
- sono più fredde
- sono più leggeri
- sono estremamente silenziose
IMMAGINI
Tutte le immagini esistenti possono essere suddivise in due classi di appartenenza:
➔ Immagini Acquisite: a tale classe appartengono quelle immagini che sono diretta
espressione di oggetti, eventi o fenomeni appartenenti al mondo reale. Esse sono a
loro volta suddivise in due categorie (es:macchina fotografica):
- Immagini Naturali: originate da oggetti, eventi o fenomeni non artificiali;
- Immagini Non Naturali: originate da oggetti, eventi o fenomeni artificiali.
➔ Immagini Sintetizzate: a tale classe appartengono quelle immagini che sono
generate artificialmente in qualità di simulazione di oggetti, eventi o fenomeni
appartenenti al mondo reale e non (es: videogiochi).
Le grafiche si dividono in:
➔ Raster: collezione di pixel (picture element) i quali, indipendentemente gli uni dagli
altri, concorrono congiuntamente alla composizione di un’immagine all’interno di un
reticolo discreto. Un’immagine RASTER è caratterizzata dalle seguenti proprietà:
- Dimensione Spaziale: Rappresenta il numero di pixel che compongono
l’immagine.
- Risoluzione Spaziale: Rappresenta la quantità/numero di pixel contenuti
all’interno di un pollice (DPI).
➔ Vettoriali: collezione di primitive (primitives) le quali, indipendentemente e/o
dipendentemente le une dalle altre, concorrono congiuntamente alla definizione di
un’immagine.

GESTIONE DEI PROCESSI (SCHEDULER)


Un processo è un’istanza in esecuzione di un programma:
In un computer con sistema operativo multi-task possono essere eseguiti più processi
contemporaneamente (di programmi diversi o di uno stesso programma).
La gestione dei processi da parte del sistema operativo consiste nelle seguenti attività:
- creazione e terminazione di un processo;
- sospensione e ripristino dell’esecuzione di un processo;
- sincronizzazione e comunicazione tra processi in esecuzione (IPC: inter-process
communication).
- gestione del blocco di un processo (dead lock).
I processi possono eseguire delle chiamate a funzioni di sistema per ottenere dei servizi dal
sistema operativo relativi alla gestione dei processi stessi:
- esecuzione di altri processi (exec);
- replica del processo in esecuzione (fork);
- invio di segnali da un processo ad un altro (wait/signal);
- terminazione di un processo (kill/terminate).
Ciascun processo (programma) durante il suo “ciclo di vita” può trovarsi in uno dei seguenti
stati:
- init: stato iniziale di caricamento del processo in memoria
- ready: il processo è pronto per essere eseguito dalla CPU.
- running: il processo è in esecuzione da parte della CPU
- waiting: il processo è sospeso in attesa di un evento (ad esempio: la risposta da un
device).
- swapped: il processo, in attesa di eventi, è stato portato nella memoria virtuale in
attesa di essere recuperato nella memoria primaria per essere eseguito.
- zombie: il processo ha concluso la sua esecuzione, ma è ancora presente nella
memoria (possiede un PID) in attesa che il processo padre lo liberi definitivamente.
- terminated: il processo è in corso di terminazione, il sistema operativo lo sta
de-allocando dalla memoria.
Il file system è un’astrazione del modello con cui il sistema operativo gestisce i dati sulla
memoria secondaria; il modello è indipendente dal tipo e dal numero di dispositivi di
memoria secondaria.

USABILITÀ’
L’usabilità è la facilità con cui un utente impara ad operare/interagire con un sistema o un
componente, a fornirgli input ad interpretare gli output. L’usabilità di un’interfaccia è la
misura dell’efficacia, dell’efficienza e della soddisfazione con cui determinati utenti possono
compiere determinati compiti in un determinato contesto utilizzando tale interfaccia.
Donald Norman fu un informatico e psicologo cognitivo, padre dell’usabilità, non solo nel
campo del software.

I SETTE PRINCIPI DI NORMAN


1. Conoscenza: usare sia la conoscenza presente nel mondo sia quella presente nella
“testa”; le persone si trovano più a loro agio quando la conoscenza richiesta per
eseguire un compito è accessibile nel mondo esterno; sia che essa sia espressa
esplicitamente sia che essa sia espressa sotto forma di vincoli naturali;
2. Semplificazione: semplificare la struttura dei compiti (“task”); la tecnologia dovrebbe
servire soprattutto a semplificare: bisogna rendere più semplici possibili i compiti da
eseguire
3. Visibilità: rendere visibili le “cose”; GAP dell’esecuzione: distanza tra gli obiettivi
dell’utente e il modo di ottenerli mediante il sistema; GAP della valutazione: quantità
di sforzo necessario per interpretare lo stato fisico del sistema; Un design usabile
punta a ridurre i due GAPs
4. Correlazione: impostare bene le correlazioni (“mapping”); Un concetto fondamentale
è la compatibilità della risposta: il rapporto spaziale tra la posizione dei comandi e gli
oggetti su cui agiscono deve essere il più diretto possibile; la stessa cosa deve
valere per il feedback
5. Vincoli: sfruttare i vincoli, sia naturali sia artificiali; bisogna usare i vincoli per fare in
modo che l’utente abbia l’impressione che ci sia una sola cosa possibile da fare; i
vincoli possono essere: fisici, logici e culturali
6. Errore: lasciare un margine di errore; progettare rispettando la legge di Murphy:
“ogni errore che può essere commesso prima o poi sarà commesso”. Bisogna
interpretare ogni azione dell’utente come un tentativo di andare nella giusta direzione
e quindi incoraggiarlo e non punirlo
7. Standard: quando tutto il resto non serve aderire agli “standard”. Se non esiste
modo di eliminare del tutto l’arbitrarietà, la cosa migliore da fare è aderire agli
standard.

SISTEMA INFORMATIVO SI
Un Sistema Informativo (SI) può essere definito come un sistema ICT che ha il compito di
organizzare e gestire in modo efficace ed efficiente le informazioni necessarie per
perseguire gli obiettivi (attraverso appositi processi e procedure) di una determinata
realtà/organizzazione (azienda, struttura sanitaria, industria). Un SI è caratterizzato da
differenti componenti costitutive: Dati, Informazioni, Persone, Strumenti,
Processi/Procedure.

GERARCHIA DI UN SI

INTERAZIONE UOMO-MACCHINA
UOMO: L’end-user ha l’abilità di fornire input (interazione) e l’abilità di fornire output
(feedback).
MACCHINA: Qualsiasi tipo di dispositivo.
INTERFACCIA: Parte specifica del software, che permette la comunicazione tra l’uomo e il
computer. Può essere:
- trasparente all’utente: l’utente non ha la sensazione di usare un’interfaccia per
interagire con un’applicazione (chiamate vocali).
- non trasparente: l’utente ha la sensazione di usare un’interfaccia per interagire con
una applicazione (mouse).
Rappresenta uno strumento (fisico o software) con il quale è necessario interagire.
Le interazioni possono essere:
➔ Uni-modale: Quando un utente interagisce con un dispositivo attraverso una sola
modalità (maccanismo puntamento-click, solo gesti, solo voce).
➔ multi-modale: Quando un utente interagisce con un dispositivo utilizzando più di una
modalità (voce e gesti, scrittura a mano libera e voce, voce e gesti del corpo, etc).

Potrebbero piacerti anche