Lezione frontale Introduzione all’Informatica – parte 1 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Informatica: definizione Difficile definirla in modo univoco miglior definizione: Scienza che raccoglie, organizza, elabora e conserva le informazioni e le gestisce in modo automatico Nasce da fusione parole INFORmazione autoMATICA Dovremo specificare: - cosa intendiamo per INFORMAZIONE - come si può rendere l’informazione automatica (Hw/Sw) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Informatica: storia Difficile tracciarne la storia in modo univoco. Vedremo man mano i vari aspetti: – Tecnologie hardware, macchine di calcolo e vari device – nascita e storia delle reti e di Internet – strumenti software – modelli di comunicazione e lavoro – linguaggi di programmazione – evoluzione dell’automazione (fino alla robotica) Potremmo tracciarne le vicende attraverso i cambiamenti indotti sulla società o attraverso le spinte che la società ha dato alla tecnologia? Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi INFORMAZIONE • Informazione = qualunque forma di descrizione della realtà: • testo, immagini, video, audio... (vista, udito, tatto, gusto e olfatto... ci sono modem che trasmettono gli odori... la realtà virtuale simula il tatto... in futuro chi lo sa...).Sono informazioni analogiche. • Noi viviamo sensazioni analogiche. • Un elaboratore tratta informazioni digitali. Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi ANALOGICO o DIGITALE? • E’analogico un procedimento che rappresenta un fenomeno con continuità (es. la nostra percezione del mondo, le lancette di un orologio, un termometro per misurare la temperatura) • E’digitale un procedimento che rappresenta lo stesso fenomeno traducendolo in cifre (dall’inglese DIGIT = CIFRA (ad es. un orologio digitale, un misuratore elettronico di temperatura) • La misurazione digitale, pur essendo “a salti” (campionamento) è più precisa (sono però necessari molti dati accurati) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi COMUNICAZIONE UOMO-MACCHINA (1) • gli esseri umani comunicano (scambiano informazioni) in modo analogico • un elaboratore ragiona in modo digitale • come avviene la comunicazione tra uomo e macchina? Come si immagazzinano, trattano e trasmettono le informazioni tramite un elaboratore? Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi COMUNICAZIONE UOMO-MACCHINA (2) • Come ragiona un essere umano adulto? Procedimento complesso, fatto di molte “sfumature”... Raccoglie ed elabora informazioni complesse dal mondo esterno. • Un bambino che comincia ad apprendere, ragiona per confronti semplici: fame, non fame; luce, buio, ecc... Col tempo imparerà a operare confronti complessi. • Un elaboratore “ragiona” mediante confronti semplici. • Un elaboratore è fatto di circuiti (elettrici/elettronici) che compiono determinate azioni (operazioni) a seconda che la corrente passi o non passi per un determinato componente. “Capisce”solo“passa corrente” e “non passa corrente”. Dobbiamo esprimere tutto in questi termini. Attraverso VERO (passa corrente) e FALSO (non passa corrente) e cioé si usano le cifre 1(VERO) e 0 (FALSO) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi COMUNICAZIONE UOMO-MACCHINA (3) Si usa il sistema binario, sia per indicare i numeri, sia per indicare le lettere. Combinando cifre binarie, riusciamo a “parlare” (numeri e lettere, ma anche immagini, suoni, ecc.) ad un elaboratore. E’ dunque meglio parlare di ELABORATORE (visto che elaboriamo informazioni) che di computer (che fa solo operazioni matematiche come le nostre attuali calcolatrici tascabili)... Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi INFORMAZIONI E INTERFACCE Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi ANALOGICO E DIGITALE Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Un po’ di Storia… del computer (1) • Primi strumenti di computo: – Dita (10, ma se si usano le falangi si può contare fino a 28) – popolazioni andine (dal 600 al 1000) utilizzano i quipu (sistema di corde e nodi in diverse posizioni per rappresentare i numeri) – Abaco ABACO usato da oltre 450 anni in Giappone arrivato dalla Cina • Computer (prime macchine strumenti di computo): – La Pascalina: 1642, a 19 anni, Blaise Pascal inventa una macchina che dimostra che i calcoli possono essere compiuti in modo meccanico: addizioni – Leibnitz: 1671, progetta macchina calcolatrice che utilizza pignoni dentati di varia lunghezza e versione perfezionata del meccanismo di riporto ideato da Pascal: anche moltiplicazioni e divisioni Continua… Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Un po’ di Storia… del computer (2) • Computer (continua da pagina precedente): – Mancano comandi – Scheda perforata: 1804, Joseph-Marie Jacquard perfeziona l’idea di Falcon (un secolo prima scoprì un sistema automatico per la tessitura) – 1822, Charles Babbage realizza macchina differenziale in grado di calcolare e stampare tavole nautiche ed astronomiche: esegue i calcoli in base al metodo delle differenze evitando calcolo delle moltiplicazioni – 1833, Charles Babbage progetta macchina analitica di tipo universale, ma non la realizza per i limiti della tecnica dell’epoca. La macchina ha store (memoria) e mill (unità di calcolo in cui programma espresso in schede perforate. (Augusta Ada Byron, Contessa di Lovelace, grande sostenitrice) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Un po’ di Storia… del computer (3) • Computer (continua da pagina precedente): – 1938 - Konrad Zuse, primo ad usare i relay per una serie di dispositivi di calcolo automatico, distrutti nel 1944 con i bombardamenti degli alleati • 1939 - John Vincent Atanasoff – dispositivo basato su aritmetica binaria. Per memoria usava condensatori periodicamente rinfrescati per mantenere carica – attuali memorie RAM funzionano allo stesso modo. Sua macchina non completata perché tecnologia di allora inadeguata • 1944 - Howard Aiken – prima macchina americana general purpose. Conosciuta come “IBM automatic sequence controlled calculator (ASCC)” o come Mark I (lunga 15 m., alta 2,5 peso 5 tonnellate) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Un po’ di Storia… del computer (4) • Computer (continua da pagina precedente): – Durante II Guerra Mondiale: Turing, matematico inglese, aiutò suo governo in realizzazione primo computer elettronico: COLOSSUS (ma lavoro classificato top secret per 30 anni) • 1946 - John Mauchley e Presper Eckert – ENIAC (Electronic Numerical Integrator And Computer) riconosciuto come primo calcolatore elettronico generalpurpose – 18.000 valvole e 1.500 relay. Alto 3 metri, peso 30 tonnellate • 1945 John Von Neumann: primo prototipo moderni calcolatori elettronici – EDVAC (Electronic Discrete Variable Automatic Computer). • concretamente realizzato e messo in funzione nel 1952 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi COMPUTER O ELABORATORE? Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi BASI E NUMERI • In un elaboratore ogni comando, parola, lettera o cifra sono composti da una stringa (sequenza) di 0 e 1 (ovvero un bit = Binary Digit) • Siamo abituati ad usare il sistema decimale perché impariamo a contare usando le nostre 10 dita, ma il sistema binario è più semplice e più veloce: ho solo due simboli da imparare e da usare! • Anche se il sistema decimale ci sembra ovvio, non si è contato sempre così! Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Curiosità • Babilonesi, Cinesi e Maya capaci di rappresentare qualsiasi numero con una limitata quantità di cifre di base • Non si è contato sempre allo stesso modo, il sistema notazionale o di calcolo odierno risultato di lunga evoluzione. • Ancora oggi ci sono popoli che non contano come noi, non concepiscono numeri astratti e sono perplessi di fronte ad operazioni del tipo 2+2=4. I Boscimani non vanno oltre il cinque. I Pigmei in Africa, i Botocudos in Brasile, gli Aranda in Australia computano 1, 2, massimo 3 e oltre il 3 parlano in termini di "molti" ("tanti quanto i capelli in testa"). • Per approfondimenti: http://it.wikipedia.org/wiki/Sistema_numerico Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi IL SISTEMA DECIMALE • Il sistema decimale adotta una notazione posizionale: i numeri hanno un “peso” diverso a seconda della posizione che occupano • Es. 111, ovvero 111 1 unità 1 centinaio • • 1 decina “1” ha un diverso valore a seconda della posizione che occupa! Il numero di cifre usate da un sistema numerico si dice BASE. Nel nostro caso usiamo 10 cifre (da 0 a 9), per cui la base è 10. Ogni cifra, a seconda della sua posizione, indica quanti multipli della base dobbiamo utilizzare (si usano le potenze): Es. 111 = 1x102+1x101+1x100 = 1x100 + 1x10 + 1x1 Es. 215 = 2x102+1x101+5x100 = 2x100 + 1x10 + 5x1 • • La posizione è data dall’esponente. La più bassa (la posizione zero) è quella più a destra. RICORDATE: qualunque numero, elevato a zero, vale 1!! Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi IL SISTEMA BINARIO e la conversione binariodecimale • Abbiamo detto che l’elaboratore usa gruppi (stringhe) di bit 8 bit = 1 byte • Per quanto riguarda i numeri, ogni posizione rappresenta una potenza di 2, a partire da quelle più basse, poste a destra: 27 26 25 24 23 22 21 20 (ricordate che qualunque numero 0 0 0 1 0 1 0 1 elevato a 0 ha come risultato 1) • Per calcolare il valore decimale del numero binario scritto sopra, si procede così (partendo da destra): 1x20 + 0x21 + 1x22 + 0x23 + 1x24 + 0x25 + 0x26 + 0x27 1x1 + 0x2 + 1x4 + 0x8 + 1x16 + 0x32 + 0x64 + 0x128 = ovvero 21 in base decimale Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi = IL SISTEMA BINARIO e la conversione decimalebinario • Un modo semplice per ricavare il corrispondente numero binario a partire dal decimale è quello detto “per divisioni successive”. Consideriamo il numero 21 • Si effettuano divisioni successive per 2 ed ogni volta il resto della divisione fornisce il numero binario (0 o 1) da porre nella cifra binaria, partendo da destra: 21:2=10 resto 1 1 10:2=5 resto 0 01 5:2=2 resto 1 101 2:2=1 resto 0 0101 1:2=0 resto 1 10101 • Ora si “riempie” di zeri a sinistra, per completare gli 8 bit. • Otteniamo così 00010101 che è il numero 21 in binario • Se si desidera, si indica la base in basso a destra • Es. 000101012 e 2110 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi ALTRE NOTAZIONI • Altre notazioni utilizzate in Informatica sono la notazione ottale (cifre da 0 a 8) e quella esadecimale (da 0 a 9, più le lettere da A a F). • Esiste una regola generale per effettuare un cambiamento di base: – Scelta una base B, ogni numero è rappresentato da una sequenza di simboli di valore compreso fra 0 e B-1 – A ogni posizione corrisponde una potenza della base, crescente da ds a sin – Valore del numero = somma dei prodotti di ogni cifra per la potenza associata alla sua posizione Es. aN-1aN-2...a1a0=aN-1*BN-1+aN-2*BN-2+...+a1*B1+a0*B0 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Una regola generale • Vale la regola: con k bit posso rappresentare 2k caratteri distinti, dunque: • Con 3 bit posso rappresentare 23=8 caratteri distinti • Con 4 bit posso rappresentare 24=16 caratteri distinti Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Esempi con altre basi Conversione decimaleottale • Es. 12710 =1778 Infatti: 127:8 = 15 resto 7 15:8 = 1 resto 7 1:8 = 0 resto 1 • Se facciamo la verifica: 7*80 + 7*81 + 1*82 = 7 + 56 + 64 = 127 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Esempi con altre basi Conversione decimale esadecimale • Es. 12710 =7E16 Infatti: 127:16 = 7 resto 15 7:16 = 0 resto 7 • Se facciamo la verifica: 15*160 + 7*161 = 15 + 112 = 127 (ricordiamo che E vale 15) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi BASI E NUMERI Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi SISTEMA DECIMALE – SISTEMA BINARIO CONVERSIONI E OPERAZIONI Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi RAPPRESENTAZIONE DEI TESTI • Si utilizzano 52 lettere alfabetiche (maiuscole e minuscole) • 10 cifre (0..9) • Segni di interpunzione (,.;:!”?’^\ /…) • Operatori matematici + ‐ + [ ‐+ / > < ecc… • Caratteri tipici (à è ì ò ù … • Altri simboli @ # | £ $ % & • In totale sono circa 220 caratteri. Abbiamo visto che per i numeri si utilizzano 8 bit. Lo stesso vale per gli altri simboli. Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi I SIMBOLI ALFABETICI • Sono anch’essi codificati da un codice binario (8 bit) • Vi sono codifiche standard. Le più famose: – ASCII (American Standard Code for Information Interchange) 8 bit per carattere. Codifica 256 caratteri – ANSI (American National Standard Institute) – UNICODE 16 bit per ogni carattere, rappresenta ASCII e caratteri di qualsiasi lingua (può rappresentare 34168 caratteri) • Altre codifiche proprietarie: • MSWindows 16 bit per carattere (simile a unicode) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi TAVOLA ASCII Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi ESEMPIO DI CODIFICA ASCII 01110000 01101111 01101100 • Dividendo la stringa in gruppi di byte si risale alla parola (con riferimento alla tavola): 01110000 01101111 01101100 P O I Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi TAVOLE DEI CARATTERI Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi HARDWARE - tassonomia • La parte fisica dell’elaboratore • Si suole distinguere più classi di macchine: Mainframe = grandi macchine, alta capacità di calcolo Minicomputer= meno capacità delle precendenti, ma comunque elevate prestazioni. Spesso adibite a calcolo scientifico Network Computer= si indicano così, in generale, gli elaboratori collegati in rete Personal Computer= computer per uso domestico o personale sul lavoro Laptop Computer= comunemente i “portatili” Palmare o Personal Digital Assistant= di ultima generazione, di dimensione estremamente ridotta Terminali (stupidi=non hanno programmi residenti, ma usano quelli sul server;intelligenti=hanno un minimo set di programmi installati) = macchine in rete, collegate ad un Server (nodo principale della rete) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Archittettura di un elaboratore Il modello di Von Neumann (1) • 1946 – John Von Neumann • Modello teorico ancora valido e molto utilizzato (eccezione macchine ad elaborazione parallela) • Schematizza in modo omogeneo situazioni diverse Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Il modello di Von Neumann (2) Concettualmente si identificano i componenti: • Memoria (per procedura, dati iniziali, risultati intermedi e finali) • Funzione aritmetica(operazioni, non solo aritmetiche, sui dati) • Ingresso/Uscita(dispositivi per ricevere/inviare dati) • Controllo (per eseguire passi procedure coordinando flusso dati tra i preceenti componenti) È il paradigma alla base dei calcolatori digitali Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Il modello di Von Neumann (3) Si suole schematizzare così l’architettura di Von Neumann: • Quattro blocchi comunicanti tra loro mediante il bus • Bus: canale di scambio informazioni (e segnali di controllo) CPU Memoria principale Memoria secondaria BUS Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Dispositivi INPUT OUTPUT Il modello di Von Neumann (4) Corrispondentemente ai concetti visti, si ha: • CPU (Central Processing Unit) • Memorie • Dispositivi I/O • Bus: nel modello di Von Neumann è costituito da 3 bus distinti: –Bus dei dati: i dati viaggiano da e verso la CPU –Bus degli indirizzi: dati solo da CPU –Bus dei segnali di controllo: dati solo da CPU Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Il bus • Scambio informazioni • Fisicamente: conduttori elettrici (linee) • Tre gruppi: – Linee dati – Linee indirizzi (identificano unità da usare durante trasferimento) – Linee di controllo(segnali temporizzazione, read/write, tipo dati) • Si possono avere conflitti • Dispositivi attivi: master (padroni) • Dispositivi passivi: slave (schiavi) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi COMPONENTI BASE DI UN PC Le principali: - Memoria centrale (vista come celle, ciascuna delle quali è identificata da un indirizzo) - Unità Centrale di Elaborazione (UCE) - Unità periferiche di input e output Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi L’UNITA’ CENTRALE DI ELABORAZIONE • Detta, più comunemente, CPU (Central Processing Unit) • È composta da: • Microprocessore (sulla motherboard) – es. Pentium XXX • ALU (Arithmetic Logic Unit) – unità preposta al calcolo aritmetico e logico • Unità di controllo – coordina le operazioni di I/O (Input/Output) Ci interessa in particolare il funzionamento della CPU Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi ISTRUZIONI E CPU Le istruzioni interpretate dalla CPU devono avere un determinato formato: - Un codice operativo (definisce il tipo dell’operazione) - Uno o più operandi (che forniscoo gli indirizzi della memoria dove sono i dati e dove va posto il risultato) Un’istruzione può essere di tipo: • Aritmetiche • Di Input/Output • Di Analisi e trasferimento del controllo da un punto di programma ad un altro • Di trasferimento dati in memoria Un ciclo completo di esecuzione di un’istruzione è dato da: 1. Trasferimento dell’istruzione in memoria centrale 2. Decodifica del codice operativo e degli operandi da parte della CPU 3. Trasferimento dati su cui operare dalla memoria centrale alla CPU 4. Esecuzione dell’istruzione 5. Trasferimetno dei risultati dalla CPU alla memoria centrale Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi PRESTAZIONI DI UN ELABORATORE Dipendono principalmente dalla velocità di esecuzione delle istruzioni • Si misurano in MIPS(milioni di istruzioni al secondo) • La velocità è proporzionale alla frequenza del clock(orologio interno che scandisce l’esecuzione di una istruzione elementare) • Si misura in MHz (milioni di cicli al secondo) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi PERIFERICHE DI INPUT E DI OUTPUT • Periferiche di INPUT: –Tastiera –Mouse – Trackball, touch pad, joystick – Lettore ottico o scanner – Lettori a barre – Microfono – Telefono • Periferiche di OUTPUT: – Monitor – Stampante – Plotter – Casse acustiche, altoparlanti, cuffie – Interfacce analogiche/digitali a strumentazioni • Alcune periferiche possono essere di Input e di Output (es. floppy disk) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi DISPOSITIVI DI MEMORIA MEMORIA VELOCE (CENTRALE): • RAM – Random Access Memory (volatile, capacità limitata). Ad accesso random, perciò più veloce. • ROM – Read Only Memory (firmware, bios). Memoria a sola lettura. MEMORIA DI MASSA: • Dischi (Hard Disk, Floppy, CDRom, CDRW, DVD, Zip Disk, Data Cartridge, Nastri Magnetici...) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi CAPACITA’ DELLA MEMORIA • L’unità elementare è il BIT (Binary Digit – 0 e 1). La capacità di memoria si misura in multipli del byte: – 8 bit = 1 byte – 1 Kbyte = 1024 byte – 1 Mbyte = 1024 Kbyte – 1 Gbyte = 1024 Mbyte – 1 Tbyte = 1024 Gbyte Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi SOFTWARE Tipi di software: Software di sistema (per far funzionare la macchina) Software applicativo (per le attività dell’utente. Es. Word) Sistema Operativo. Funge da: Supervisore (corretta gestione componenti) Spool (gestisce op. di stampa o esecuz. Programmi) Prgrm di gestione librerie (dati e programmi su mem massa) Prgrm di diagnosi e correzione Prgrm di definizione configurazione Primo O.S.: D.O.S. (Ibm), interfaccia a caratteri Moderni : G.U.I. – W.Y.S.I.W.Y.G., interfaccia grafica, intuitiva Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi FASI DI SVILUPPO DI UN SOFTWARE • Analisi (si raccolgono le esigenze cui deve rispondere il programma) • Rappresentazione simbolica (di quanto evidenziato in fase di analisi) • Programmazione (traduzione in linguaggio). • Test (si verificano tutte le funzionalità • Messa in esercizio (il programma va all’utente finale) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi LA FASE DI PROGRAMMAZIONE E’ molto importante distinguere tra: • Linguaggio ad alto livello (più comprensibile per l’uomo, meno per la macchina, es. Java) • Linguaggio a basso livello(più vicino alla macchina, meno all’uomo, es. Assembly) Vi sono due modus operandi: • La programmazione attraverso un programma interprete (il programma risultante viene eseguito dall’elaboratore un’istruzione per volta) • Attraverso un programma compilatore(il compilatore traduce tutto il programma in linguaggio macchina e l’elaboratore lo esegue tutto in una volta) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Programma • Insieme di istruzioni che il computer deve eseguire, connesse ad un compito specifico Tipologia programmi: • Interattivo: intervento operatore (necessario o voluto). Es. browser • Batch: nessun intervento Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Algoritmi • Nascita espressione simbolica di un problema (Al Waritzsmi, matematico arabo) • Flusso risolutivo = algoritmo • Varie rappresentazioni simboliche: • Schema a blocchi (diagramma di flusso) • Top‐down, down‐top • UML • Def algoritmo: sequenza finita, non ambigua, di passi eseguibili e ripetibili un numero finito di volte per portare a soluzione un dato problema (generale) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Proprietà di un algoritmo • finitezza: istruzioni in numero finito eseguite un numero finito di volte • non ambiguità: ogni istruzione deterministica e univocamente interpretabile • realizzabilità: istruzione deve essere realmente eseguibile da parte del processore • Gli algoritmi si distinguono in: • Numerici (problemi di tipo matematico) • Non numerici(tutti gli altri algoritmi) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Flusso esecuzione istruzioni Può procedere in tre modi diversi: • Sequenziale, istruzioni eseguite una dopo l’altra • Iterativo (ciclico), una sequenza di istruzioni è ripetuta un certo numero di volte • Condizionale, istruzione o gruppo di istruzioni eseguite solo se si verifica condizione • La sequenza di istruzioni eseguibili su un elaboratore è detta modulo eseguibile o applicativo Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Evoluzione programmazione • GOTO: istruzioni di salto (spaghetti code) • GOSUB: programmazione sequenziale strutturata, da cui: • Funzioni e procedure • Programmazione ad eventi • Programmazione ad oggetti (modularità e riusabilità) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi I processi • Il termine processo fa riferimento all’esecuzione di un programma • Il processo è un oggetto dinamico che evolve nel tempo; il programma è statico • Def. Processo: insieme di tutti i valori contenuti nella memoria centrale e neri registri della CPU durante l’esecuzione di un programma Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Terminazione e stati di un processo 3 motivi: • Termina il quanto a sua disposizione • Gli occorre una risorsa già in uso • Termina regolarmente Gestore dei processi (nucleo): responsabile dell’esecuzione dei programmi (quasi contemporanea) da parte dell’unità di elaborazione. Stati di un processo: • Attivato: appena stato creato • Pronto: ha tutte le risorse per procedere, è nella ready list • Esecuzione: è assegnato al processore (avviato) • Attesa (blocco): risorsa che chiede già impegnata • Terminato: è concluso e rilascia risorse Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Un po’ di Storia… degli OS • • • • Principali sistemi operativi: Nascita dell’MS DOS: 1981 Il System Apple (1976 e, grafico, nel 1984) Nascita di Windows: 1985 (si chiamava Interface Manager) • Unix: 1960 (Multics) e 1969 (Unix) • Linux (il primo e più importante progetto di sviluppo condiviso di software nella storia dell’informatica): 1991 Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Principali Sistemi Operativi: storia Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Sistema Operativo • Def: gestore delle risorse dell’elaboratore • Software di base • Strato sw che opera direttamente sull’hw, isolando gli utenti dai dettagli dell’architettura hw e fornendo loro insieme di funzionalità ad alto livello Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Tipologie sistema operativo • Mono utente: intero sistema dedicato a un solo utente • Multi utente: più utenti condividono lo stesso sistema. In questo caso il sistema nasconde a ciascun utente la presenza degli altri, dando l’impressione che l’intero sistema gli sia dedicato (time sharing) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Panoramica Sistemi Operativi • Anni ’80: da informatica centralizzata a informatica distribuita: – Reti – Problemi di gestione; compatibilità sw; sistemi operativi standard e user-friendly • Anni ’90: caratterizzati da miglioramento sistemi operativi (sw quasi raggiunto hw) • Per il personal computing è necessario guardare almeno a questi sistemi: – MS-DOS – System Apple – Windows – Linux Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Il D.O.S. • Acronimo di: Disk Operating System • Prima uscita: 1981. Nel seguito forte evoluzioni attraverso varie versioni (per interfaccia utente e gestione risorse) • Interfaccia a caratteri (imparare e ricordare) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Interfaccia caratteri Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Il S.O. del Macintosh (Apple) MacOS della Apple, nato per computer Macintosh Basato inizialmente su processori CISC Motorola 68000 Importante perché primo sistema operativo con GUI Utilizzato per la prima volta nel 1984 (mondo IBM compatibile: DOS) Interfaccia mutuata da un programma di ricerca della Xerox Prevedeva già mouse (DOS no), driver 3,5’’ Maggior parte sistema operativo su ROM (DOS su floppy) Prime versioni in Pascal con alcune parti in Assembly Oggi Windows e Linux hanno stessa interfaccia, ma System Macintosh arrivato prima • Oggi compatibilità tra i programmi per i diversi sistemi operativi • • • • • • • • • Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Windows • Inizialmente si chiamava Interface Manager. • Sviluppo inizia nel 1981, ma diffusione fine anni ’80-inizio anni ’90 • Per IBM-compatibili • Nasce da IBM con collaborazione Microsoft che poi lo acquisisce • Interfaccia GUI • Mantiene nucleo DOS dei comandi (interfaccia), presente ancora oggi, limitatamente • Anche nel mondo PC concetto di evento, uso di mouse • Programmi interfaccia API (Application Program Interface) • Concetto di finestra (su cartella) e icona (programmi) come Apple. Stessa organizzazione ad albero del DOS • Monopolio Microsoft Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Linux • Primo e più importante progetto di sviluppo condiviso di software nella storia dell’Informatica • Luglio 1991: Linus Torvards (studente Università di Helsinki) annuncia su Usenet di voler creare nuovo sistema operativo e chiede collaborazione altri utenti in Rete • 1991: versione 0.02 • 1992: prime distribuzioni • Marchio di Linux: TUX, il pinguino • Interfaccia grafica • Programmi di office automation con stesse funzioni altri sistemi • Tutto gratuito (OpenSource) • Importante perché rappresenta reale alternativa a Microsoft • Molto temuto. Principale concorrente da battere • 2003: anno di SCO e di attacchi a Linux e al mondo OpenSource (parti di Linux copiate dal sistema operativo SCO?) Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi Cosa abbiamo visto • Informatica • Comunicazione uomo/macchina • Sistemi di numerazione • Rappresentazione di dati numerici e alfanumerici • Struttura di un elaboratore: • Modello generale di un elaboratore (Von Neumann) • Hw • Sw • applicativo • di base • Programmi; Algoritmi; Processi • Il problema dell’interfaccia (carattere, GUI) • Carrellata sui sistemi operativi • Un po’ di storia Prof. Raffaella Folgieri DEMM – Dipartimento di economia, management e metodi quantitativi