Sintesi informatica - Nozioni circa: HARDWARE, RAM, ROM, SISTEMA OPERATIVO, SOFTWARE, RACCOLTA DATI, PDF

Title Sintesi informatica - Nozioni circa: HARDWARE, RAM, ROM, SISTEMA OPERATIVO, SOFTWARE, RACCOLTA DATI,
Author Elisa Torre
Course Informatica generale
Institution Università degli Studi di Torino
Pages 44
File Size 456.3 KB
File Type PDF
Total Downloads 63
Total Views 126

Summary

Nozioni circa:
HARDWARE, RAM, ROM, SISTEMA OPERATIVO, SOFTWARE, RACCOLTA DATI, RETI, BIG DATA, PROTOCOLLI DI COMUNICAZIONE, WEB E POSTA ELETTRONICA, ATTACCHI SU RETE, REALTA' VIRTUALE...


Description

Architettura di un computer HARDWARE

Componenti : la CPU (Central Processing Unit), detta anche processore; le memorie (principale e secondaria); il bus; i dispositivi (o periferiche) di input/ouput. Il bus è formato da una serie di cavi fisici che collegano le varie componenti della macchina. Il suo scopo è di permettere alle componenti di comunicare tra loro, attraverso lo scambio di dati e messaggi. Programmi e i dati risiedono nella memoria secondaria: per essere eseguiti (i programmi) e usati (i dati), questi vengono copiati nella memoria principale, da dove la CPU li utilizza per le sue operazioni. La CPU è il “cervello” del computer: la sua funzione è quella di eseguire i programmi contenuti nella memoria principale (la RAM), prelevando le loro istruzioni ed eseguendole una dopo l’altra. Il processore è composto da 3 componenti: l’unità di controllo, l’unità aritmeticologica (ALU), e da una serie di registri. I registri sono piccole unità di memoria (max 64 byte) utilizzati per memorizzare le informazioni di necessità immediata per il processore, come i risultati temporanei delle operazioni e le informazioni di controllo. I registri sono memorie che possono essere lette e scritte a velocità molto elevate. Esempi di registri speciali:

Program Counter (PC): contiene l’indirizzo in memoria della prossima istruzione da eseguire; ● Registro Istruzione (IR): contiene l’istruzione che si trova in fase di esecuzione; ● Registro di stato: contiene informazioni sullo stato di esecuzione e su eventuali errori. ●

L’unità aritmetico-logica (ALU) preleva gli operandi dai registri ad uso generale, e deposita il risultato nei registri ad uso generale, a seconda dell’istruzione da eseguire. L’unità di controllo si occupa di coordinare le attività del processore, e di prelevare istruzioni e dati dalla memoria principale per scriverli sui registri, e viceversa (scrivere sulla memoria principale il contenuto dei registri).

Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari: ad ogni “rintocco” di questo orologio viene eseguita una nuova operazione. La frequenza di clock indica quanti cicli di esecuzione una CPU è in grado di eseguire in un secondo: viene misurata in Hertz (1 Hz = 1 ciclo al secondo). La velocità di elaborazione di un processore dipende dalla frequenza del suo clock. Legge Di Moore questo permetteva di inserire il doppio dei transistor nella stessa dimensione, aumentando di fatto le performance del nuovo processore rispetto al precedente. Gordon Moore, futuro cofondatore della Intel, ipotizzò che il numero di transistor (le componenti elettroniche) nei processori sarebbe raddoppiato ogni 18 mesi circa.

Un processore multicore combina due o più processori indipendenti (chiamati core) nello stesso circuito integrato: quindi un singolo processore fisico contiene al suo interno due o più core (processori), ognuno composto dalla propria ALU, unità di controllo e registri. I processori multicore attualmente più diffusi sul mercato sono quad-core, ossia contengono 4 core su un singolo processore. L’efficacia della tecnologia multicolore dipende da quanto i processi attivi sul computer sono indipendenti tra loro, per poter essere eseguiti in parallelo. Secondo la legge di Amdahl, se un algoritmo (o un calcolo) ha una componente non parallelizzabile, allora l'aumento massimo di velocità (speedup) che si può ottenere usando N processori non è lineare (ossia pari ad N) ma minore: tanto minore quanto più grande è la frazione che non può essere parallelizzata. In pratica, raddoppiando la velocità (il clock) del processore si ottiene un miglioramento doppio delle prestazioni, invece raddoppiando il numero di processori sul core il miglioramento delle prestazioni non sarà il doppio, ma qualcosa di meno. La tecnologia multicore è molto efficace per il multitasking, ossia quando ci sono molti programmi diversi eseguiti contemporaneamente sul computer, perché questi possono essere sicuramente eseguiti in parallelo. RAM La memoria principale permette di registrare (salvare) e recuperare (caricare) programmi e dati rappresentati come sequenze di bit.

La memoria principale è volatile, per mantenere dati e programmi salvati in maniera permanente si utilizza la memoria secondaria. La memoria principale è molto più veloce della memoria secondaria. La RAM è costituita da un certo numero di celle, ciascuna formata da una sequenza di bit. Tutte le celle di una memoria contengono lo stesso numero di bit: la dimensione tipica di una cella di RAM è 8 bit (1 byte). La dimensione della RAM esprime il numero di celle disponibili e si misura in (Mega/Giga) Byte. ROM (memoria di sola lettura) i dati ed il programma installati sono permanenti, ossia non si richiede mai la loro modifica. Es. game boy utilizzavano le cartucce. Le EEPROM che possono essere cancellate e riscritte applicando impulsi elettrici. Il firmware, il software che serve ad avviare il dispositivo e che contiene le istruzioni per interagire con gli altri componenti hardware del dispositivo. Le EEPROM però non vengono usate al posto della RAM perché sono 10 volte più lente, hanno una capacità 100 volte minore e sono molto più costose. La memoria cache è un tipo di memoria volatile, si trova tra la ram e i registri. È più lenta dei registri ma più veloce della RAM, e serve a memorizzare i dati usati più spesso senza doverli recuperare tutte le volte dalla della RAM , è una componente che influisce moltissimo sulle prestazioni della CPU, e anche sul suo costo, visto che è una memoria molto costosa, molto più della RAM. Le dimensioni di una memoria cache tipiche vanno dai 256KB a 1MB.

Memoria Secondaria in grado di memorizzare programmi e dati in modo permanente. La memoria secondaria è meno costosa della memoria principale, ha dimensioni molto maggiori ed è molto più lenta da accedere. La memoria secondaria usa tecnologie basate su: magnetismo : dischi magnetici (hard disk e floppy disk); nastri magnetici (musicassette). ● uso di raggi laser (tecnologia ottica): dischi ottici (CD-ROM, DVD). L’hard disk (disco rigido) utilizza il fenomeno fisico della polarizzazione per memorizzare le informazioni. È formato da diversi piat, che contengono le informazioni, e da due testine per ogni disco (una per lato), che leggono e scrivono le informazioni. La velocità di accesso alle informazioni su disco dipende da: Tempo di ricerca, tempo di latenza, tempo di trasferimento. Le dimensioni tipiche di un hard disk variano da 500 GB a 2TB. Un disco otco usa la tecnologia del raggio laser per memorizzare le informazioni, sfruttando la riflessione della luce. Hanno un capacità di memorizzazione inferiore ai dischi magnetici, ma anche un costo inferiore. Solitamente sono di sola lettura, ma esistono versioni riscrivibili. I dischi ottici più noti sono i CD, i DVD e i Blu-ray.

Un’altra tipologia di supporto dati molto diffusa è la memory card. Si dividono in: USB flash drive USB stick mediante le porte usb del computer. SD, mini SD e microSD mediante le porte SD di un computer. Sono generalmente economiche, e rispetto ai supporti magnetici ed ottici sono più veloci più capienti e molto più facilmente trasportabili. SSD memoria a stato solido per l’archiviazione dei dati, è una tipologia di memoria secondaria, memoria flash, non ha parti meccaniche in movimento quindi risulta più silenziosa e resistente dei dischi magnetici; inoltre ha una maggiore velocità di trasferimento dati. Prezzo maggiore rispetto ai dischi magnetici, sui computer attuali l’SSD ha un ruolo di supporto ed è affiancata ad un disco magnetico. Gerarchia della memoria Registri , cache , memoria principale , memoria secondaria (dischi magnetici , SSD), nastri magnetici dischi ottici. Muovendosi verso il basso della gerarchia: Aumenta il tempo di accesso, aumenta la capacità di memorizzazione, diminuisce il costo economico. Scheda madre è l’elemento centrale di un computer, un supporto fisico sul quale trovano posto tutti i componenti presentati precedentemente.

L’alimentatore: il suo compito è quello di fornire energia elettrica alle varie componenti del computer. Nel caso delle versioni portatili, può essere sostituito o affiancato da alcune batterie. Schede di espansione Queste schede svolgono autonomamente un compito ben specifico, per cui sono state progettate, alleggerendo il lavoro della CPU, col risultato di rendere il computer più veloce e performante. Le schede di espansione più note sono: schede audio, schede video, schede di rete. Prestazione di un computer bisogna tenere conto di queste caratteristiche: Processore-numero di core: Maggiore è il numero dei core, migliorano le prestazione del processore. Processore-frequenza dei core: maggiore è la frequenza (il numero di GigaHertz) dei core del processore, migliori saranno le performances. Dimensioni e livelli di cache: il numero di livelli di cache e la loro dimensione possono migliorare le prestazioni del processore, anche se il loro prezzo economico è molto alto. Dimensione della RAM : maggiore è la dimensione della RAM, più grande sarà il numero programmi e la dimensione dei dati gestibili in maniera rapida dal computer. Dischi a stato solido (SSD): incrementa la velocità di accesso ai dati sul disco. GPU: una scheda grafica potente può migliorare le prestazioni, ma solo se si utilizzano programmi che sfruttano molto la grafica. Dispositivi di Input/output La loro funzione primaria è quella di consentire:

• l’immissione dei dati all’interno del computer (input); • l’uscita dei dati dal computer (output). Si collegano al computer attraverso le porte (interfacce) la porta standard d’oggi è la porta USB. Un dongle è in generale un dispositivo di piccole dimensioni che si collega a un dispositivo elettronico, in genere un computer, e altera le sue funzionalità.

input: – tastiera (keyboard) è il dispositivo di input base, utilizzato per inserire caratteri e numeri. La versione più diffusa è la cosiddetta qwerty. Per migliorare la velocità si usa la tastiera Dvorak. – mouse è un dispositivo di input che invia al computer dei comandi in modo che ad ogni movimento del dispositivo corrisponda un movimento analogo di un indicatore sullo schermo, detto puntatore. Mouse meccanico: il movimento causa la rotazione di una sfera, che a sua volta fa ruotare due dischi perforati. Mouse otco: mentre il dispositivo si muove, illumina la superficie con un LED rosso

– gamepad – scanner – microfono • output: – monitor è il dispositivo di output base: è formato da uno schermo, che visualizza immagini. Un monitor è caratterizzato da : Dimensione distanza in pollici tra due angoli, risoluzione (pixel) , frequenza di refresh l’immagine cambia decine di volte al secondo viene misurata in hz (da 60 a 120hz) Monitor CRT, monitor LCD , monitor al plasma , monitor OLED, monitor e-ink (inchiostro elettrico)

– stampante è un dispositivo di output che permette di stampare dati su carta. Caratterizzata da interfaccia, formata carta , risoluzione(DPI) Esistono diversi tipi di stampanti: stampante ad aghi, stampante a getto d’inschiostro, stampante laser (o toner)

– casse acustiche • input/output: – touchscreen può essere Schermo resistivo: è composto da due strati di materiale conduttivo che, nel momento in cui un oggetto viene premuto sullo schermo, entrano in contatto. Schermo capacitivo: attualmente il tipo più diffuso,su smartphone, sfrutta la variazione di capacità dielettrica. Non funziona con un guanto. -modem. SOFTWARE Il software e diviso in due tipologie: ● Software di sistema (il sistema operativo e le sue Componenti); ● Software applicativo (i programmi installati dall’utente). Gli utenti interagiscono con il computer attraverso applicativi (o applicazioni, o software applicativi) che a loro volta comunicano con il software di sistema, che si occupa della gestione dell’hardware. Il software di sistema e composto da: ● driver ● sistema operativo, a sua volta composto da: ● Kernel ● Interfaccia per gli utenti (grafica o da linea di comando)

Un driver e un software che permette al sistema operativo di utilizzare un dispositivo hardware. Il sistema operativo e il programma fondamentale presente su un computer: si occupa di gestire l’hardware, i programmi applicativi e la loro interazione con gli utenti. Il Kernel è quella parte del sistema operativo che si occupa di fornire ai programmi in esecuzione un accesso sicuro e controllato all’hardware. Le funzioni principali del kernel sono: • avvio del computer; • gestione del processore e dei programmi in esecuzione (processi); • gestione della memoria principale; • gestione della memoria virtuale; • gestione della memoria secondaria; • gestione dei dispositivi (periferiche) di input/output. Il sistema operativo viene mandato in esecuzione al momento dell’accensione del computer: questa fase prende il nome di boot, o bootstrap. Ormai tutti i computer sono multitasking, ossia possono eseguire più programmi contemporaneamente: il kernel deve gestire questa funzionalità. Il passaggio da un processo all’altro sul processore e chiamato context switch, ossia "cambio di contesto".

I componenti che permettono al kernel di eseguire il cambio di contesto sono: • lo scheduler, che decide quale processo deve essere eseguito, e quando deve lasciare la CPU al successivo; • il dispatcher, che esegue effettivamente il cambio di contesto. L’efficienza del multitasking risiede nelle regole usate dallo scheduler per decidere la priorita tra processi, definite dall’algoritmo di scheduling. Il kernel ha il compito di assegnare la memoria principale alle applicazioni. ● le applicazioni devono avere una parte della memoria principale dedicata completamente a loro; ● il kernel deve impedire conflit tra applicazioni, ossia deve impedire che un’applicazione scriva in una cella di memoria dedicata a qualche altra applicazione; ● la memoria principale deve essere sprecata il meno possibile, ossia ci deve essere meno spazio (celle) possibile tra porzioni dedicate a due applicazioni diverse; La prima parte della memoria principale viene solitamente dedicata al sistema operativo, che la occupa nella fase di boot e la rilascia solo al momento di spegnere il computer. La memoria virtuale (swap o paginazione) e un’astrazione, che permette di usare una parte della memoria secondaria come memoria principale. Il risultato sarà un rallentamento delle prestazioni del computer. La memoria secondaria serve per memorizzare programmi e dati in modo permanente. Il file system è quella parte del kernel che si occupa di gestire e strutturare i file (ossia le informazioni) memorizzati sulla memoria secondaria.

Il file system permette all’utente di: Identificare ogni file con il suo nome. Avere un insieme di comandi per lavorare sul file, creare rimuovere, copiarlo, cambiarli nome ecc.. Proteggere il propri file in un sistema multi-utente. Avere la possibilità di organizzare un insieme di file in sottoinsiemi secondo le loro caratteristiche (visone ordinata). Comprimere file e cartelle consiste nell’utilizzare appositi algoritmi per ridurre lo spazio che le informazioni occupano. Eliminando: dati ridondanti; • cancellando spazi inutilizzati; • memorizzando le informazioni in maniera piu sintetica. I formati di file compressi più utilizzati sono: zip, 7z, rar, tar, gz. L’interfaccia utente e quella parte del sistema operativo che permette all’utente di interagire con il computer. Si tratta di un tramite tra utenti e kernel, e permette agli utenti di: ● navigare nel file system per modificare file e cartelle; ● eseguire (lanciare) i programmi applicativi installati sul computer. L’interfaccia utente puo essere di due tipi: testuale o grafica In un’interfaccia testuale, l’utente si ritrova davanti ad uno schermo nero. L’unico modo per interagire col computer e attraverso la tastiera, impartendo alla macchina comandi testuali. Nel caso di interfaccia grafica, o GUI (Graphical User Interface), l’utente impartisce buona parte degli ordini al computer attraverso l’uso del mouse. Esempi: MS-DOS (precursore di Windows), Unix shell, Linux shell.

Riassumendo, il Sistema Operativo permette di: ● Gestire il sistema operativo stesso: ● installare nuovi programmi, e disinstallare (rimuovere) i programmi installati; ● configurare il sistema. ● Gestire l’interazione con l’utente: ● mandare in esecuzione (lanciare) un programma (ossia cercarlo sulla memoria secondaria, copiarlo sulla memoria principale ed eseguirlo sulla CPU); ● tramite un programma (od un comando), creare nuovi documenti o modificare documenti esistenti; ● manipolare il file system: eliminare documenti, riorganizzare la disposizione dei documenti, rinominare documenti esistenti, … ; ● accedere alle periferiche. I Software applicativi sono programmi opzionali, installati sul computer dall’utente o dal sistema operativo per svolgere funzioni specifiche, come: ● elaboratori di testo (word); fogli elettronici (excel); browser (chrome, firefox); visualizzatori file pdf (acrobat reader) e immagini; videogiochi, ... Un applicativo per poter funzionare deve essere compatibile col sistema operativo sul quale viene installato. Gli applicativi (ma in generale il software) possono essere di due tipi: ● con copyright o software proprietario: è coperto da diritti d'autore, pertanto una volta acquistato non è possibile (dal punto di vista legale) copiarlo, modificarlo, rivenderlo. Si divide in tre sotto-categorie: • commerciale: il più comune, occorre acquistarlo;

• shareware: gratuito per un periodo di prova, passato il quale va acquistato, se si vuole continuare ad usarlo; • freeware: disponibile gratuitamente. ● senza copyright o open source: è software di pubblico dominio non coperto da diritti di autore. Il codice sorgente è disponibile, quindi posso (legalmente) modificarlo come voglio, migliorarlo, adattarlo alle mie esigenze, … Esempio: sistemi operativi basati su Linux; codice sorgente su github.com, ... BASE DI DATI Le basi di dati comunemente utilizzate sono di tipo relazionale, una struttura che permette (se ben utilizzata) di limitare la ridondanza (ripetizione) dei dati, col vantaggio di occupare meno spazio ed essere più semplice da aggiornare. Una base di dati relazionale è composta da tante tabelle, in relazione tra di loro: i campi delle tabelle e le loro relazioni sono descritte da un schema. Per garantire la correttezza formale dei dati, si definiscono dei vincoli di integrità. Esistono due grandi tipologie di vincoli di integrità: quelli intrarelazionali, che interessano una sola tabella, e quelli interrelazionali, che invece definiscono legami tra due o più tabelle. Vincoli intra-relazionali: Tipo del dato , chiave primaria , valore univoco , non nullo , valore di default Vincoli inter-relazionali: Vincolo di integrità referenziale: ogni campo nella tabella che viene dichiarato come chiave esterna (foreign key) può contenere solo valori della chiave primaria di un’altra tabella relazionata.

DMBS Una base di dati viene salvata e gestita da software particolari, chiamati DataBase Management Systems (DBMS). Un DBMS deve permettere di: ● inserire nuovi dati; ● modificare (aggiornare) i dati inseriti; ● cancellare i dati inseriti; ● compiere ricerche nei dati; ● gestire basi di dati differenti. in maniera: ● affidabile, ossia senza perdita di dati e rispettando i vincoli di integrità tra tabelle; ● sicura, ossia permettendo l’accesso ai dati solo agli utenti autorizzati; ● efficiente, ossia in maniera rapida. Alcuni esempi di DBMS per basi di dati relazionali sono PostgreSQL , Microsoft Access, MySQL , MariaDB. QUERY Una query permette di compiere tutte le operazione tipiche di un DBMS (lettura,scrittura, ricerca) su una base di dati. Una query è scritta in un linguaggio particolare: lo standard delle basi di dati relazionali è il linguaggio SQL. Nelle operazioni di ricerca (usate per estrarre informazioni) si usano operazioni di join tra tabelle della base di dati, che permettono di creare nuove tabelle temporanee come risultato della combinazione di tuple provenienti da tabelle diverse basandosi sui valori dei campi.

Raccolta dati Per creare una base di dati, occorre: 1) decidere la struttura delle tabe...


Similar Free PDFs