La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Un sistema per lelaborazione dellinformazione consiste di due componenti : lhardware ed il software Si può parlare di una macchina reale, che è costituita.

Presentazioni simili


Presentazione sul tema: "Un sistema per lelaborazione dellinformazione consiste di due componenti : lhardware ed il software Si può parlare di una macchina reale, che è costituita."— Transcript della presentazione:

1 Un sistema per lelaborazione dellinformazione consiste di due componenti : lhardware ed il software Si può parlare di una macchina reale, che è costituita dallhardware e di una macchine virtuali costituite dalla macchina reale + software. La macchina reale esplica le funzioni fondamentali del sistema di elaborazione. Essa è in grado di effettuare un grande numero di operazioni elementari in tempi molto ridotti rispetto a quelli umani

2

3 La macchina reale è programmabile esclusivamente in linguaggio macchina ed è, pertanto, molto scomoda da utilizzare direttamente: infatti, la programmazione in linguaggio macchina è ardua e poco efficace. E difficile adattare la logica sintetica del pensiero umano a quella analitica ed elementare della macchina reale. Le difficoltà maggiori: - è necessario pianificare accuratamente limpiego della memoria; - i codici operativi vanno riferiti utilizzando il formalismo rigoroso della macchina; -bisogna gestire programmi di notevole complessità, composti da un elevatissimo numero di istruzioni elementari, con conseguente elevato rischio di commettere errori; - un programma realizzato in linguaggio macchina non funzionerà su hardware diverso da quello utilizzato per la sua stesura

4 Per superare queste difficoltà si realizzano degli strati di software che vanno a ricoprire la macchina reale. macchina reale + software--->macchina virtuale Software: - Software di base: Insieme di programmi necessari per lo stesso funzionamento del sistema che costituiscono macchine virtuali di basso livello. -Software applicativo: Programmi orientati alla risoluzione di problemi specifici utilizzati direttamente dallutente finale. Le macchine virtuali sono orientate alla rappresentazione più efficace (cioè più vicina alluomo) di problemi specifici da risolvere. La macchina reale è invece ciò che rende fisicamente possibile la soluzione.

5 Schema macchine virtuali ad alto livello Richiedono grandi quantità di risorse (memoria e tempo di calcolo) Le macchine virtuali di livello più basso (e quindi dal software di base) comprendono la gestione delle periferiche e la possibilità di programmare impiegando linguaggi simbolici

6 Linguaggi di programmazione: - Linguaggio macchina - Assemblatori - Compilatori e interpreti

7 Linguaggio macchina Forma espressiva per descrivere programmi di elaborazione direttamente interpretabili dallunità di controllo della CPU. Le tipiche operazioni elementari : - spostamento dei dati fra due indirizzi di memoria, fra registri o fra memoria e registri. Es.:MOV. LD - operazioni aritmetico-logiche di vario tipo tra gli operandi ES. ADD, SUB, INC, DEC, OR, AND. - trasferimento di controllo (salto) a unistruzione che non sia la prossima. ES. JMP, BRA, CALL, RTS. - valutazione di una condizione, con salto condizionato al verificarsi o meno di essa. ES. JNZ, DBRZ, RTZ. - istruzioni per gestire condizioni particolari che possono verificarsi. Es. HALT, TRAP, INT. Il formato e la lunghezza in bit di unistruzione in linguaggio macchina dipende dal sistema elaborativo, dal tipo di istruzione, da quanti operandi ha e di che tipo sono.

8 Esempio di istruzione di linguaggio macchina Il campo OPCODE (codice operativo) occupa 8 bit (24-31) e specifica il tipo di istruzione (JMP, INC). Il campo FLAGS occupa 4 bit (20-23) specifica informazioni ausiliarie che variano con il tipo di istruzione (per es. il riporto di una precedente addizione). In questo caso si tratta di unistruzione con un solo operando (un indirizzo di memoria o il numero di un registro ), che viene specificato dal campo OP1 nei 20 bit (0-19). Unistruzione che specifica due indirizzi di memoria avrebbe 20 bit in più FLAGS OP1OPCODE Istruzione in linguaggio macchina

9 Il linguaggio assemblativo (assembly language) rappresenta il primo passo verso la semplificazione della programmazione. Loperatore esprime il proprio programma in linguaggio assemblativo, dopodichè un programma (lassemblatore) traduce le istruzioni in linguaggio macchina, producendo così un programma che è equivalente al primo, ma espresso in una forma utilizzabile direttamente dalla macchina reale. Il linguaggio assembly è un linguaggio simbolico Assemblatori I compiti dellassemblatore sono: -assegnare automaticamente gli indirizzi a dati e istruzioni; - tradurre i nomi simbolici in indirizzi e valori; - trasformare le istruzioni dalla forma simbolica a quella binaria.

10 Lassemblatore è un particolare tipo di programma per i quale i dati di ingresso e di uscita sono altri programmi.

11 I programmi che, come lassemblatore, effettuano la traduzione da un linguaggio a un altro sono detti traduttori. Esempio di traduzione del linguaggio assembly: Consideriamo unistruzione che fa riferimento a un dato in memoria. Supponiamo di avere una locazione di memoria (allindirizzo 1200) che contiene il numero di pazienti in clinica in un certo istante. Quando un paziente viene dimesso questo numero deve essere decrementato. In linguaggio assembly questo potrebbe essere effettuato con le seguenti istruzioni: PAZIENTI EQU 1200 DEC PAZIENTI La prima istruzione è una direttiva, cioè dice allassemblatore che il simbolo PAZIENTI si riferisce allindirizzo La seconda è una vera e propria istruzione per la macchina reale. Questa istruzione in linguaggio macchina si traduce: opcode flags op Abbiamo assunto che listruzione DEC (decremento) sia rappresentata dallopcode = Il valore flags=1 indica che il decremento va effettuato su un indirizzo di RAM e non su un registro di CPU.

12 Il linguaggio assembly, come il linguaggio macchina, riflette larchitettura interna del processore utilizzato. Quindi - ogni CPU ha il proprio linguaggio assemblativo; - programmare in linguaggio assemblativo implica la conoscenza della struttura logico-circuitale del processore target (numero di registri, spazio degli indirizzi..) -un programma scritto il linguaggio assemblativo può essere impiegato sul processore target; -se si eccettuano le direttive 8che non sono vere istruzioni macchina, ma servono solo ad istruire lassemblatore su come procedere) esiste una corrispondenza 1:1 tra le istruzioni del programma in linguaggio assemblativo e il programma tradotto in linguaggio macchina.

13 Linguaggi ad alto livello Precisamente per programmare in un linguaggio ad alto livello non è necessario conoscere la macchina reale: lo stesso programma può girare su macchine diverse. Questi linguaggi sono caratterizzati da istruzioni molto sintetiche. La traduzione da questi linguaggi al linguaggio macchina non è più 1:1: infatti, ad ogni istruzione di alto livello corrispondono molte istruzioni macchina. Un traduttore per un linguaggio ad alto livello ha gli stessi compiti di un assemblatore più altri: - riconoscere le strutture sintattiche che specificano cicli iterativi, esecuzione condizionale di istruzioni, richiamo di sottoprogrammi; -applicare le opportune precedenze nelle espressioni numeriche, -allocare la memoria necessaria per contenere i dati; liberare quella che non è più necessaria;

14 Due tipi di programmi di traduzione da un linguaggio ad alto livello in linguaggio macchina: Compilatori ed Interpreti

15 Compilatore Questo programma prende in input il programma scritto nel linguaggio ad alto livello (codice sorgente) e produce in output un programma equivalente scritto in linguaggio macchina (codice oggetto). Il programma oggetto risultante viene conservato in un file e può successivamente essere eseguito in qualsiasi momento. Alcuni compilatori non producono un file binario contenente il programma in linguaggio macchina, ma piuttosto scrivono un file ASCII che contiene il programma in assembly. E poi lassemblatore a trasformare questultimo nel codice binario eseguibile. ASCII è il più diffuso codice alfanumerico. Codifica ogni carattere in un byte di cui vengono utilizzati solo 7 bit (lasciando il bit 2 7 ) sempre pari a zero. Pertanto il codice ASCII comprende 2 7 =128 caratteri e non 256.

16 Interprete Nel caso dellinterprete il programma sorgente non viene tradotto tutto insieme: infatti, linterprete traduce unistruzione sorgente alla volta e il codice oggetto risultante viene eseguito immediatamente, invece di essere conservato in un file.

17 Differenze: -nel caso di un compilatore la traduzione viene effettuata una volta per tutte; in questo caso il codice oggetto che viene ottenuto come risultato non contiene più traccia del compilatore utilizzato né ha più bisogno di questo. - nel caso dellinterprete ogni esecuzione del programma richiederà la presenza dellinterprete che effettui la traduzione. Ma …… -lesecuzione interattiva tipica dellinterprete permette di individuare gli errori mentre linterprete è ancora in esecuzione; -la progettazione e la realizzazione di un interprete è più semplice di quella di un compilatore.

18 Linguaggi di programmazione ad alto livello: Basic: è di facile apprendimento, semplifica la programmazione per i principianti. In origine non molto strutturato. Pascal: si tratta di un linguaggio altamente strutturato, che rappresenta un valido strumento didattico. Fortran: adatto alla risoluzione di problemi numerici di tipo scientifico. Cobol: utilizzato in applicazioni amministrative e gestionali. C: nato per la realizzazione del software di base. HTML: linguaggio adatto a combinare testo e grafica in un ipertesto (usato per la creazione di pagine Web). PostScript: linguaggio per la descrizione grafica di pagine contenenti testo ed immagini. Esso risiede in molte stampanti laser.

19 Fasi di sviluppo di un Programma Dato un problema da risolvere: 1) Scelta del metodo risolutivo e rappresentazione mediante un algoritmo. 2) Rappresentazione dellalgoritmo nel linguaggio di programmazione scelto (ad esempio, Pascal): si ottiene il programma in forma sorgente. La fase di scrittura del programma viene normalmente detta di editing. 3) compilazione. Il programma sorgente prodotto nella fase di editing viene tradotto dal compilatore in linguaggio macchina (programma eseguibile). La fase di compilazione può rilevare eventuali errori (sintattici). 4) debugging. Analisi del corretto funzionamento del programma. Può essere eseguita da speciali programmi detti debugger, che permettono lesecuzione controllata del programma. (Ad es. esecuzione di una istruzione alla volta, visualizzazione dei valori di variabili e punti di arresto)

20 5) esecuzione. Quando il programma è stato verificato, può essere eseguito per la risoluzione del problema di partenza

21

22 Il software applicativo risolve i problemi specifici richiesti dallutente. Il software di base gestisce e controlla il funzionamento stesso del sistema elaborativo fornendo al programmatore ed allutente delle astrazioni che hanno lo scopo di nascondere i complicati dettagli sottostanti.

23 Il sistema operativo È una collezione di moduli software che gestiscono le risorse hardware e software e controllano lo svolgimento delle diverse procedure di elaborazione. Le macchine virtuali di livello più basso sono tutte realizzate da moduli di sistema operativo. Fra i vari moduli cè un supervisore o kernel che risiede stabilmente in memoria centrale,ossia viene caricato una tantum allatto dellaccensione del sistema. Gli altri moduli, residenti in memoria di massa, vengono richiamati dal supervisore e caricati in memoria centrale quando devono svolgere i compiti specifici di loro competenza

24 I compiti del sistema operativo : 1. Gestione delle risorse disponibili Ogni sistema elaborativo consiste di un processore, memoria centrale, schermo, interfacce, stampanti, tastiera, mouse. Il S.O. deve fare in modo che le richieste per accedere a tali risorse vengano servite in maniera ottimale (come lesecuzione di vari programmi, le code di stampa, laccesso ai file su disco..) 2. Gestione delle periferiche Per ogni periferica presente nel sistema operativo ha un modulo chiamato driver. I driver di periferica sono programmi specializzati nel tradurre richieste formulate dallutente in una forma comprensibile dalla periferica. (Es. Driver per una stampante) 3. Controllo dellesecuzione dei programmi Quando si ci propone di eseguire un programma, esso risiede in memoria di massa; ma sappiamo che per essere eseguito deve trovarsi in memoria centrale. Viene avviato un modulo di S.O. chiamato loader, che si occupa di copiare il programma dalla memoria di massa nella RAM.

25 4. Interazione con lutente Uno dei moduli allinterno del S.O è linterprete di comandi, anche detto shell. Esso è un interprete che risponde i comandi forniti dallutente tramite la tastiera o il mouse e li traduce uno ad uno in comandi di livello più basso che portino a termine le azioni specificate dallutente. Esempio: 1. La shell di MS-DOS con comandi quali DIR, per listare i file contenuti in una directory, o COPY, per copiare i file (shell che ricevono i comandi in forma testuale). 2. Alcune shell interpretano gesti compiuti dallutente mediante il mouse o altri dispositivi di puntamento (shell visuale in Windows)

26 (a) Monoprogrammazione, monoutenza: il sistema serve un solo utente per volta ed è in grado di eseguire un solo programma per volta (b) Multiprogrammazione, monoutenza: il sistema serve un solo utente per volta ed è in grado di eseguire più programmi contemporaneamente. (c) Multiprogrammazione, multiutenza: INPUT OUTPUTELABORAZIONE (a) INPUT OUTPUTELABORAZIONE INPUT OUTPUTELABORAZIONE INPUT OUTPUTELABORAZIONE (b) UTENTE 1UTENTE 2UTENTE 3UTENTE 4UTENTE 5UTENTE 6 (c)

27 Multiprogrammazione, multiutenza:serve più utenti contemporaneamente. Il S.O. impiega una tecnica basata sulla suddivisione del tempo macchina detta time sharing per assegnare le risorse del sistema ai vari utenti. Ogni utente ha limpressione di avere la CPU interamente a propria disposizione, mentre quello che succede è che la CPU passa rapidamente da un processo allaltro. Fig III.9

28 I sistemi operativi più diffusi: MS-DOS Questo S.O. viene caricato da disco, invece, di risiedere in ROM. Esso implementa la monoprogrammazione per singolo utente, con delle limitatissime capacità di multiprogrammazione. Windows Inizialmente non si trattava di un sistema operativo ma di un programma applicativo che aggiungeva al sistema operativo (MS-DOS) una macchina virtuale di alto livello nella quale far girare altro software applicativo. Oggi è il più diffuso S.O. ed implementa la multiprogrammazione in monoutenza e permette la condivisione di risorse fra elaboratori connessi in rete. Unix Fu il primo sistema operativo ad essere scritto quasi interamente in un linguaggio ad alto livello (il C). Unix permette la multiprogrammazione e multiutente; laccesso al sistema è possibile anche attraverso terminali remoti.

29 Sistemi operativi: interfacce Interfacce testuali: le operazioni vengono compiute scrivendo dei comandi su una riga dello schermo (riga di comando). Esempio per il sistema operativo MS-DOS dove il prompt è del tipo: C:\> Interfacce grafiche: le operazioni vengono compiute selezionando oggetti grafici mediante lutilizzo del mouse. Point and click: si porta il puntatore del mouse sulloggetto e poi si preme uno dei tasti sul mouse. Interfacce intuitive: gli oggetti vengono rappresentati mediante disegni (icone) che ne richiamano la funzione.

30 Finestre

31 Mediante le finestre è possibile mandare in esecuzione ed interagire con più applicazioni contemporaneamente: - a ciascuna applicazione è riservata una finestra separata - ad ogni istante, ci sarà una sola finestra attiva corrispondente allapplicazione con la quale si sta interagendo - le finestre possono essere ridimensionate, spostate e chiuse. Elementi costitutivi delle finestre: - barra del titolo: consente di spostare, ridimensionare e chiudere le finestre - barra di menu: il menu consente di eseguire le operazioni offerte dallapplicazione - barra degli utensili: barra contenente le icone corrispondenti alle operazioni di più frequente impiego.

32 Uso del mouse: Una volta posizionato il puntatore del mouse sopra una icona, possono essere eseguite le seguenti operazioni: Selezione: click con il tasto sinistro. Apertura: doppio click con il tasto sinistro. Le possibili operazione dipendono dalloggetto: cartella: ne viene mostrato il contenuto; applicazione: viene lanciata; file di dati: viene lanciato il programma con cui è stato creato e il file viene aperto. Shortcut menu: click con il tasto destro. Viene mostrato il menu dipendente dalloggetto e dallapplicazione.

33 Barra delle applicazioni Si compone di tre parti: Menu Start: consente di eseguire le operazioni offerte dal sistema operativo; Bottoni delle applicazioni: quando una applicazione viene lanciata appare un bottone sulla barra; Area degli indicatori: mostra lorario più le icone di alcune applicazioni. Menu Start: Programmi: applicazioni istallate su sistema, suddivise in sottogruppi; Impostazioni: consente di modificare le impostazioni della macchina; Trova: consente di cercare un file o una cartella; Esegui: consente di lanciare una applicazione mediante una riga di comando; Guida in linea: mostra informazioni di aiuto sul sistema operativo; Chiudi sessione: consente di spegnere la macchina;

34

35 Il software applicativo Il software applicativo è linsieme di programmi che concorrono allimplementazione di una macchina virtuale di altissimo livello che ha lo scopo di svolgere ben determinai compiti, specifici di una particolare applicazione. È il software utilizzato dallutente finale per risolvere il problema specifico che gli interessa. Alcuni esempi: -scrittura di testi e documenti -realizzazione di disegni tecnici ed artistici -composizione di brani musicali -gestione della farmacia di un ospedale -gestione di un laboratorio di analisi cliniche -programmi di posta elettronica ( ) -programmi per la navigazione in Internet (Web Browser)

36 Elaboratori di testi o word processor Potente strumento per la creazione, lorganizzazione e la conservazione di documenti. I vantaggi derivanti dalluso dellelaboratore: -possibilità di effettuare modifiche e correzioni invisibili sul testo -possibilità di conservare i test per riprenderli i un secondo tempo -possibilità di manipolare la parte tipografica di un testo modificando i tipi di carattere (font) e limpaginazione o inserendo elementi grafici come tabelle, figure e diagrammi - possibilità di effettuare rapidamente ed automaticamente controlli ortografici e lessicali, con eventuale scelta di sinonimi. Tabelloni elettronici programma che manipola tabelle composte da righe e colonne di celle e le visualizza sullo schermo; le celle possono contenere dati numeriici, alfanumerici o formule matematiche.

37 Basi di dati o database Un database è un archivio integrato di dati controllato da un sistema di gestione (detto DBMS - Data Base Management System). Le operazioni supportate da un DBMS sono: -creare archivi -memorizzare su disco o altra memoria i dati dellarchivio -aggiornare e modificare con facilità i dati inseriti -reperire le informazioni tramite interrogazioni (query) Esempi di database: -banca dati anagrafica del comune -banca dati dei donatori di sangue -banca dati di informazioni genetiche (DNA, proteine) - banca dati degli studenti iscritti alluniversità -sistema informativo ospedaliero (cartelle cliniche dei pazienti ricoverati, gestione posti-letto, gestione farmacia interna)

38 Collegamenti fra sistemi elaborativi …. Un sistema per lelaborazione dei dati può essere dislocato in un impianto singolo o può essere distribuito su vari laboratori. In questultimo caso le varie unità sono interconnesse tramite una rete di trasmissione dati (rete). Rete locale (LAN) una rete di interconnessione di estensione limitata tipicamente allambito di un solo edificio, e che non attraverso suolo pubblico. Rete geografica una rete di interconnessione di estensione maggiore, che può coprire unarea cittadina (MAN, Metropolitan Area Network) o anche un territorio più vasto (Widea Area Network)

39 Reti locali I vari componenti (sistemi completi o singole periferiche di rete) sono connessi mediante un cavo coassiale. Sia i sistemi sia le periferiche possono essere di natura e marca diversa, creando una rete eterogenea (ethernet), in cui tutte le risorse presenti sono utilizzabili da ciascuno dei punti di accesso alla rete. Un apposito insieme di programmi (software di rete) implementa una serie di macchine virtuali, che si occupano di gestire lo scambio di inf. secondo un preciso protocollo. Protocollo: insieme di regole che governano i dettagli tecnici dello scambio di informazioni. Il software di rete risolve anche gli eventuali conflitti (collisioni) dovuti alla richiesta contemporanea di accesso alla stessa risorsa da parte di due o più utenti della rete.

40 Reti geografiche Una rete geografica può essere privata (banca, industria) o pubblica (università, enti di ricerca). Più reti separate possono essere collegate mediante gateway. Poiché ciascuna delle reti collegate può avere un protocollo diverso, il gateway provvede allopportuna conversione di protocollo al fine di garantire una corretta trasmissione delle informazioni. I sistemi, siti in località poste a distanza arbitraria tra loro, possono essere collegati mediante linea commutata o linea dedicata.

41 Linea commutata: modalità di collegamento che sfrutta la diffusione capillare di reti preesistenti, tipicamente la rete telefonica pubblica. Linea dedicata: si impiegano linee dedicate esclusivamente alla trasmissione di dati.

42 Tutte le reti create da organizzazioni tecnico- scientifiche sono collegate tra loro, pervenendo così alla costituzione di una rete unica internazionale che tocca quasi tutti i paesi del mondo: Internet. Internet, Inter-network, cioè reti fra reti. Si definisce nodo, ogni sistema connesso in rete. La rete delle reti comprende al suo interno diversi protocolli, ognuno legato ad uno specifico servizio di rete. I principali sono: -Posta elettronica o consente lo scambio di messaggi personali tra utenti dei nodi della rete. È possibile spedire solo messaggi contenenti testo (infatti linvio di file binari non dà risultati garantiti) e, soprattutto, testi non più lunghi di Kb. Importanza delle mailing list. -FTP (File Transfer Protocol): servizio di rete che consente di trasferire file da un nodo ad un altro.

43 -Telnet (Teletype Network): è possibile effettuare procedure di elaborazione su un sistema remoto. -World Wide Web o WWW: ragnatela diffusa in tutto il mondo. In questa modalità di fruizione della rete, lutente sfoglia un ipertesto suddiviso in pagine. Allinterno di ciascuna pagina esistono degli oggetti chiamati link (parole o icone) che, se attivati, richiamano suoni, animazioni o altre pagine (scritte in HTML). Poiché il Web è un unico documento enorme per aiutare lutente a ricercare informazioni specifiche, esistono diversi motori di ricerca (Web browser), che, una volta specificate alcune parole-chiave di nostro interesse, trovano un certo numero di pagine che contengono riferimenti a quelle parole.

44 Indirizzi Internet Sono utilizzati per indicare indirizzi IP, indirizzi di posta elettronica e URL di pagine Web. Domain name: stringa di caratteri, intervallata da punti, che individua un nodo della rete.( FQDN) Esempio: sirio.acme.it - il nodo si trova in Italia (it) -il nodo sta in un sub-network che si chiama acme (rete privata di unaziena o di ununiversità) -Il computer che ci interessanel sub-network acme.it si chiama sirio. Indirizzi IP: i domain name, per poter essere compresi dalle macchine collegate, vengono tradotti in un formato costituito da 4 numeri separati da punti. Esempio: La traduzione da indirizzo IP a FQDN si chiama name serving e richiede la consultazione di un enorme database che, a causa delle proprie dimensioni, è distribuito su tutta Internet invece di risiedere su un solo elaboratore.

45 Indirizzi di posta elettronica: questo tipo di indirizzo oltre a specificare un nodo, deve anche specificare un utente di quel nodo. Il formato è host, dove host è il domain name del sistema utilizzato dal destinatario, mentre utente è il nome con cui il destinatario è conosciuto presso il suo sistema remoto. Negli indirizzi di posta elettronica non si usano l indirizzo IP al posto del FQDN. Indirizzi www: sono indirizzi di pagine Web e si dicono URL (Uniform Resource Locator). Il formato usato è prot://host/pathname dove -prot indica il protocollo da utilizzare (tipo http o ftp) -host è il domain name o lindirizzo IP su cui risiede la pagina (tipo www) -pathname è il pathname del file che contiene la pagina.

46

47

48


Scaricare ppt "Un sistema per lelaborazione dellinformazione consiste di due componenti : lhardware ed il software Si può parlare di una macchina reale, che è costituita."

Presentazioni simili


Annunci Google