Aspetti fondazionali. Aspetti pratici. Cos è un elaboratore Cos è un linguaggio di programmazione Cos è un algoritmo. Compilazione Programmazione

Documenti analoghi
Informatica Generale

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

La codifica del testo

RAPPRESENTAZIONE DELLE INFORMAZIONI

o Occorre rappresentare tale informazione in formato facilmente manipolabile dall elaboratore

Il computer P R O F. L O R E N Z O P A R I S I

Il computer P R O F. L O R E N Z O P A R I S I

Rappresentazione binaria delle informazioni oppure Rappresentazione digitale delle informazioni

Sistema Operativo (Software di base)

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Introduzione al funzionamento di un calcolatore elettronico

Fondamenti di Informatica T. Il Software

CODIFICA DI CARATTERI

Architettura di Von Neumann

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

INTRODUZIONE ALL INFORMATICA

La codifica. dell informazione

Personal Computer: introduzione

Corso di Informatica

Informatica giuridica

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura dei calcolatori e Software di sistema

Il sistema binario: bit e Byte Codifica del testo Il Byte come U.d.M. dell'informazione Multipli del Byte

Concetti di base dell ICT

La codifica. dell informazione. Tipi di informazione

Codifica dell Informazione

I sistemi operativi. Prof. Daniele Contarino

Codifica dell Informazione

Sistema operativo & file system 1

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Abilità Informatiche. capitoli 1-2. Prof. Fabio Calefato a.a Giurisprudenza

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Informatica a.a. 2010/2011

Introduzione ai Calcolatori Elettronici

Il software: Istruzioni per il computer

Porte Input/Output (I/O Connectors)

Tipi di elaboratori Rappresentazione della informazione Codifica della informazione

Sistemi di Elaborazione delle Informazioni

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Cosa è l Informatica?

Rappresentazione digitale delle informazioni

Appunti Liberi di Tecnologie Informatiche

Programmazione modulare

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Corso di Informatica

La digitalizzazione delle informazioni (come e perché trasformare le informazioni in numeri) A cura di Saverio Cantone

Algoritmi e Programmi

Il Sistema Operativo. Informatica Sistema Operativo 1

Corso di Informatica

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

CODIFICA IMMAGINI IN BIANCO E NERO

o studiare l architettura del calcolatore significa:

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Prof. Rossella Cancelliere

Sistemi di Elaborazione delle Informazioni

Come funzionano i computer

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

IL SOFTWARE DI SISTEMA

La codifica dell informazione. Rappresentazione binaria. Rappresentazione posizionale in base 10

Elementi di Informatica

Informatica. Comunicazione & DAMS A.A. 2015/16. Dr.ssa Valeria Fionda

Computer e Programmazione

Memoria Secondaria o di Massa

La rappresentazione delle Informazioni

La codifica dell informazione

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Rappresentazione dell Informazione. Sistemi di Elaborazione delle Informazioni Rappresentazione Informazione 1

Calcolatore e unità di misura

GRUPPO 2 - INFORMATICA A B C

Architetture hardware e software dei calcolatori

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Docente : Carla BIASCA, Loris RUGGERI

Architettura hardware

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore. Elementi di Programmazione

RAPPRESENTAZIONE DEI DATI SISTEMI DI MISURA

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Il Sistema Operativo

Rappresentazione di immagini a colori. Rappresentazione dei colori. Rappresentazione dei colori LA RAPPRESENTAZIONE DELL INFORMAZIONE - II

I.4 Rappresentazione dell informazione - Altre codifiche

Esame di INFORMATICA Lezione 4

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Concetti Introduttivi. Rappresentazione delle informazioni

Appunti di informatica: la codifica dell'informazione

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

Docente: Baldi Erick. a.s. 2007/2008

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Francia dalla contrazione delle parole INFORmazione e automatica. Elaborazione e trattamento automatico delle informazioni INFORMATICA

Università degli Studi di Cagliari Facoltà di Scienze Corso di Laurea in Matematica

19/11/2013 HARDWARE INTRODUZIONE: COSA E COME COMPRIAMO?

MODULO Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale

Fondamenti di programmazione!! Parte 2!

Computer calcolatore elaboratore elettronico macchina di Turing

Architettura dei calcolatori I parte Introduzione, CPU

Informatica. Il calcolatore: concetti di base. Vibo Valentia, 24 ottobre 2005 Ercole Colonese IBM S/360

Transcript:

Introduzione

Aspetti fondazionali Cos è un elaboratore Cos è un linguaggio di programmazione Cos è un algoritmo Aspetti pratici Compilazione Programmazione

Codifica dell informazione Architettura dei sistemi informatici Struttura dell elaboratore Linguaggio macchina Sistemi operativi Gestione dei processi e della memoria Come usare un sistema operativo

Compilazione ed esecuzione Costrutti di programmazione Strutture dati semplici Metodologia di programmazione

Scienza della rappresentazione e dell elaborazione dell informazione ovvero Studio degli algoritmi che descrivono e trasformano l informazione

Sequenza di passi per risolvere un determinato problema Calcolatore = Esecutore di algoritmi Gli algoritmi sono descritti tramite programmi scritti in linguaggi ad alto livello e poi tradotti in linguaggio macchina

Correttezza l algoritmo risolve il problema in modo completo (spesso occorre provare la correttezza manualmente usando tecniche matematiche) Efficienza lo risolve nel modo più veloce possibile (esistono criteri matematici di valutazione)

Problema: Calcolare a elevato alla n Utilizziamo le variabili N e Ris Inizialmente Ris=1 e N=n Algoritmo: Fino a che N>0 Calcola Ris * a e memorizzalo in Ris Decrementa N Correttezza: Al termine Ris=a elevato alla n

Scopo: descrivere in maniera rigorosa un algoritmo Classi di linguaggi: Linguaggio macchina Dipendono dall hardware Linguaggio ad alto livello C, C++, Java, Virtual Basic

Program potenza; Integer Ris, N, A; Read(N);Read(A); Ris=1; While (N>0) do Ris=Ris*A; N=N-1; Print(Ris);

Il precedente programma va tradotto in linguaggio macchina (comprensibile all elaboratore) cioè viene compilato in sequenze di istruzioni Quando le istruzioni vengono eseguite il programma prende dati in ingresso (valori iniziali di N e A) attraverso la tastiera (input) e poi stampa il risultato sul video (valore finale di Ris) (output) In generale un programma può essere visto infatti come una funzione da input ad output.

Come utente: Uso software applicativo esistente per creare documenti e interfacce grafiche, effettuare calcoli, navigare in rete Come sviluppatore: Creo nuovi programmi sullo strato del software esistente Nuovi programmi applicativi Nuovi programmi di sistema (cioè che fanno funzionae il calcolatore)

Sistemi informatici PC, terminali e reti Architettura insieme delle componenti del sistema, descrizione delle loro funzionalità e della loro interazione Suddivisione principale hardware e software

Unità di Elaborazione (Processore o CPU): Svolge le elaborazioni Coordina il trasferimento dei dati Cioè esegue i programmi Memoria Centrale Memorizza dati e programmi per l elaborazione Volatile Accesso rapido Capacità limitata

Memoria Secondaria (DVD, harddisk, floppy) Grande capacità Persistente Accesso piu lento della RAM Unità Periferiche Interfaccia verso l esterno Terminali (tastiera, video) Stampanti

Bus di Sistema Collega le altre componenti RAM Memorie Secondarie Periferiche Insieme di collegamenti di vario tipo

Unità di controllo Unità aritmetico logica (ALU) Terminale Dispositivi di I/O Stampante Registri Memoria centrale Unità disco BUS 19

Contenitore con CPU, RAM Memoria Centrale Monitor Tastiera Fisso Unità per Dischetti/CD

(Lettore Floppy), CD, DVD Chiavette USB Modem Mouse Stampante Scanner Joystick

Workstation Calcolatore con elevate prestazioni Server Calcolatore con elevate prestazioni che offre servizi Main-frame Grandi Server (per reti di terminali con centinaia di utenti) Notebook/laptop, smartphone e palmari Elaboratori portatili

Reti di Calcolatori Reti Locali collegano terminali vicini tra loro (ad es. il nostro laboratorio) Reti Geografiche collegano dei calcolatori a medio-grandi distanze (ad es. Internet)

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,...

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: Esegui un programma! Mostra i dati su video! Se il sistema è multi-utente deve gestire le risorse disponibili cercando di soddisfare tutti gli utenti Esempi: MS DOS, OS X, Windows, Unix, Linux

Video Scrittura per costruire e testi e definire formati di stampa Agende elettroniche indirizzario, calendari Posta Elettronica per comunicazione Fogli elettronici per elaborazioni contabili Database sistemi per la gestione di dati

Calcolo Numerico: statistiche, ecc Gestione Aziendale: banche, assicurazioni, Telematica: bancomat, ecc Automazione industriale:, robotica, ecc Internet: commercio virtuale, ecc 90 80 70 60 50 40 30 20 10 0 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr East West North

Il calcolatore memorizza ed elabora vari tipi di informazioni Numeri, testi, immagini, suoni Occorre rappresentare tale informazione in formato facilmente manipolabile dall elaboratore Si utilizza una rappresentazione digitale

L unità minimale di rappresentazione è il bit (binary digit cifra digitale): 0 o 1 Informazioni complesse si memorizzano come sequenze di bit Una sequenza di 8 bit viene chiamata Byte 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1...

Per codificare in nomi delle province liguri mi bastano 2 bit Ad esempio: 0 0 per rappresentare Genova 0 1 per rappresentare La Spezia 1 0 per rappresentare Imperia 1 1 per rappresentare Savona In generale su N bit si possono codificare 2 N informazioni (tutte le possibili combinazioni di 0 e 1 su N posizioni) Con un byte si possono codificare quindi 2 8 = 256 possibili informazioni

KiloByte (KB), MegaByte (MB), GigaByte (GB) Per ragioni storiche in informatica Kilo, Mega, e Giga indicano però le potenze di 2 che più si avvicinano alle corrispondenti potenze di 10 Più precisamente... 1 KB = 1024 x 1 byte = 2 10 ~ 10 3 byte 1 MB = 1024 x 1 KB = 2 20 ~ 10 6 byte 1 GB = 1024 x 1 MB =2 30 ~ 10 9 byte I multipli del byte vengono utilizzati come unità di misura per la capacità della memoria di un elaboratore

A B... a b... & % $...

Per rappresentare i simboli dell alfabeto anglosassone (0 1 2... A B... A b...) bastano 7 bit Nota: B e b sono simboli diversi Per l alfabeto esteso con simboli quali &, %, $,... bastano 8 bit come nella codifica accettata universalmente chiamata ASCII Per manipolare un numero maggiore di simboli la Microsoft ha introdotto la codifica UNICODE a 32 bit (2 32 caratteri)

La codifica ASCII (American Standard Code for Information Interchange) utilizza codici su 8 bit Ad esempio 0 1 0 0 0 0 0 1 rappresenta A 0 1 0 0 0 0 1 0 rappresenta B 0 1 0 0 0 0 1 1 rappresenta C Le parole si codificano utilizzando sequenze di byte 01000010 01000001 01000010 01000001 B A B A

Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr 32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p 33 21! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q 34 22 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v 39 27 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B { 44 2C, 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D } 46 2E. 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~ 47 2F / 63 3F? 79 4F O 95 5F _ 111 6F o 127 7F DEL Nota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. 5-0 = 53-48 = 5) 36

n

Le immagini vengono scomposte in griglie Le caselle di una griglia vengono chiamate pixel La risoluzione indica il numero di pixel in cui è suddivisa un immagine Risoluzione tipica di uno schermo video 800 x 600, 1024 x 768, 1280 x 800, 1440 x 900

0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 Pixel = 1 codifica

0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 Codifica Immagine

Se si assegna un solo bit a ogni pixel si rappresentano immagini in bianco e nero 0 = bianco 1 = nero Per poter rappresentare immagini più complesse si codificano i toni di grigio Si associa una codifica di un tono di grigio ad ogni pixel

Nella codifica RGB si utilizzano tre colori rosso (Red), verde (Green) e blu (Blue): Ad ogni colore si associa un certo numero di sfumature codificate su N bit (2 N possibili sfumature) Ad esempio se si utilizzano 2 bit per colore si ottengono 4 sfumature per colore ogni pixel ha un codice di 6 bit Con 8 bit si ottengono 256 sfumature e 256 3 (16 milioni) possibili colori

La rappresentazione di un immagine mediante la codifica a pixel viene chiamata bitmap Il numero di byte richiesti per memorizzare una bitmap dipende dalla risoluzione e dal numero di colori Es. se la risoluzione è 640x480 con 256 colori occorrono 2.457.600 bit = 300 KB I formati bitmap più consciuti sono BITMAP (.bmp), GIF (.gif), JPEG (.jpg) In tali formati si utilizzano metodi di compressione per ridurre lo spazio di memorizzazione

Si effettuano dei campionamenti su dati analogici Si rappresentano i valori campionati con valori digitali La frequenza del campionamento determina la fedeltà della riproduzione del suono

I sistemi operativi permettono di gestire le risorse efficientemente tengono traccia di chi accede alle risorse accettano e soddisfano le richieste di uso di risorse risolvono i conflitti tra più risorse Possono essere visti come una macchina di calcolo estesa rappresentano la base su cui è possibile scrivere programmi applicativi in modo più semplice che utilizzando direttamente l HW. 45

I sistemi operativi permettono definire uno standard per interfacciare i dispositivi fisici, per cui: lo sviluppo dei programmi risulti più semplice ed indipendente dal calcolatore che si utilizza l aggiornamento del SW di base e dell HW sia trasparente all utente ed alle applicazioni. 46

HW HW SW Software = SO + applicazioni SW SO SW (appl) 47

Utente Interprete comandi Gestione periferiche SW applicativo HW Gestione processore Gestione memoria Sistema Operativo 48 File system

Caratteristiche generali dei FS comunemente usati da Unix/Linux 4

50

Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente Astrazioni fornite : File : unità di informazione memorizzata in modo persistente Directory : astrazione che permette di raggruppare assieme più file 51

Tipi di file Unix : regular (-): collezione di byte non strutturata directory (d) : directory e altri più complessi 52

File = nome + dati + attributi Alcuni attributi dei file unix : es. ls -l pippo.c -rw-r--r-- 1 susanna users 1064 Feb 6 2002 pippo.c Tipo del file (regolare, -) 53

File = nome + dati + attributi Alcuni attributi dei file unix : es. ls -l pippo.c -rw-r--r-- 1 susanna users 1064 Feb 6 2002 pippo.c Protezione r - permesso di lettura (directory, listing) w- permesso di scrittura (directory, aggiungere file) x - permesso di esecuzione (directory, accesso) 54

File = nome + dati + attributi Alcuni attributi dei file unix : es. ls -l pippo.c -rw-r--r-- 1 susanna users 1064 Feb 6 2002 pippo.c Proprietario del file Gruppo Data ultima modifica 55

File = nome + dati + attributi Alcuni attributi dei file unix : es. ls -l pippo.c -rw-r--r-- 1 susanna users 1064 Feb 6 2002 pippo.c Numero di blocchi su disco utilizzati Lunghezza in byte del file 56

root directory (/) A B C f B1 Ss.c B2 C1 Esempio di FS C2 C3 d e 57

root directory (/) A B C f B1 Ss.c B2 C1 Ogni file è univocamente determinato dal cammino che lo collega alla radice /C/C1/C2/e d C2 e C3 58

root directory (/) A B C f B1 Ss.c B2 C1 Ogni shell ha associata una working directory è indicata nella var di ambiente PWD si cambia con cd d C2 e 59 C3

root directory (/) A B C.. dir padre. dir corrente f B1 Ss.c B2 C1 Il PNR è il cammino dalla Working Directory C2 C3 PWD./../C2/e d e (il. iniziale si può omettere) 60

61

Un programma è una entità statica composta dal codice eseguibile del processore. Un processo è una entità dinamica relativa al programma in esecuzione, ed è composto da: codice del programma dati necessari all esecuzione del programma stato dell esecuzione 62

Operazione I/O completata Processo attivo Processo in attesa Richiesta di operazione I/O Ogni operazione di I/O consiste in una chiamata al SO e successiva sospensione del processo utente per attendere l esecuzione dell operazione di I/O 63

Progr. 1 Progr. 2 Progr. 3 tempo Attesa per operazioni di I/O Elaborazione 64

È possibile condividere la CPU tra più processi interattivi, suddividendo il tempo di esecuzione del processore tra più utenti Ogni processo utilizza periodicamente un intervallo di tempo prestabilito (quanto) Durante il quanto di esecuzione di un processo, tutti gli altri processi sono sospesi Al termine di ogni quanto (context switch), il processo in esecuzione viene sospeso e si assegna la CPU ad un altro processo. 65