Universita' degli Studi di Roma - La Sapienza. Corso di laurea in Fisica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Universita' degli Studi di Roma - La Sapienza. Corso di laurea in Fisica"

Transcript

1 Universita' degli Studi di Roma - La Sapienza Corso di laurea in Fisica DISPENSE DEL CORSO DI CALCOLATORI ELETTRONICI (Modulo B) ======================================================== Tenuto dal Prof. Roberto Biancastelli N.B. Per ridurre le dimensioni del file tutta la grafica e' stata realizzata in modalita? testo, usando i caratteri grafici che devono essere disponibili nel programma di visualizzazione. Si puo' usare il programma NotePad, con caratteri Terminal. Anno Accademico Copyright ! PREFAZIONE Il corso e quindi anche le dispense sono suddivisi in tre 'moduli' A, B e C, organizzati come indicato nel programma. I primi due sono per la laurea quadriennale, mentre il modulo C (capitoli 6-14) e' per la laurea triennale (richiede la propedeuticita' dei corsi di Laboratorio di Calcolo e di Comunicazione Scientifica e Tecnologica). La relativa didattica e' stata organizzata in una serie di dispense in vista di un'informatizzazione completa del corso, con tecnologie multimediali e telematiche. Queste dispense, con tutti i programmi delle esercitazioni pratiche, sono distribuite gratuitamente su floppy disk in copia unica e per uso personale esclusivo, ai soli studenti regolarmente iscritti al corso del prof.roberto Biancastelli. Contenendo dei caratteri grafici, le dispense sono visualizzabili e stampabili con i programmi editor standard (in MS-DOS con EDIT o in Windows con NotePad, caratteri 'Terminal' e Formato senza "A capo automatico"). Se la dimensione di un file risultasse 'troppo estesa', occorre modificare le impostazioni di memoria della finestra DOS, cliccando prima con il pulsante destro sull'icona DOS o sulla barra del titolo della finestra DOS e poi con il pulsante sinistro su Proprieta' ed impostando quindi tutte le opzioni in 'Automatico').

2 I files scritti in formato Word invece possono essere letti dagli studenti, che non possiedono il programma MS-Word, scaricando gratuitamente dal sito della Microsoft ( --> Office --> Word Downloads ) il programma WordViewer97/2000 (wd97vwr32.exe). E' opportuno precisare che, essendo il resto del corso di laurea in fisica piuttosto povero di insegnamenti informatici, il compito che attende lo studente del corso di Calcolatori Elettronici e' piuttosto impegnativo. Cio' perche' questa materia, a differenza di altre, e' soggetta ad un continuo e rapido progresso tecnologico, che ha ampliato sempre di piu' negli ultimi anni il campo di insegnamento. Poiche' molti studenti arrivano a questo corso con una conoscenza iniziale della materia praticamente nulla, il docente deve risolvere due problemi di non poco conto: insegnare sempre di piu' nello stesso numero di lezioni e gestire didatticamente la crescente complessita' delle nuove tecnologie informatiche. La soluzione finora adottata e' stata quella di inserire gradualmente nel programma una parte su tecnologie avanzate e programmazione ad oggetti ed in rete. Gli studenti che, non avendo avuto una conoscenza iniziale della materia, si trovassero in difficolta' nella preparazione all'esame su quest'ultima parte non dovranno preoccuparsi, perche' nell'esame finale non verra' loro richiesta in modo fiscale una conoscenza approfondita di questi argomenti. Si tenga inoltre presente che in questo corso l'apprendimento non deve essere finalizzato al voto, ma all'acquisizione di una professionalita'in questa materia, che sia spendibile poi nel mondo del lavoro e della ricerca). Tuttavia gli studenti arrivati a questo corso senza precedenti conoscenze propedeutiche all'informatica di base (algebra di Boole, elettronica digitale, ecc.) sono invitati a studiare dall'inizio tutti gli argomenti esposti nel programma e spiegati nelle lezioni, tralasciando eventualmente gli ultimi argomenti riguardanti la programmazione in rete, applet java, ecc. Invece gli studenti arrivati a questo corso, con le conoscenze di base ed una certa esperienza di programmazione in un qualche linguaggio di alto livello precedentemente acquisita, potranno rinfrescare velocemente le loro conoscenze di base, esposte nella prima parte del programma e nelle lezioni, dedicando poi un tempo maggiore sulle ultime parti del programma riguardanti la programmazione ad oggetti, in rete, Internet, ecc. La modalita' di svolgimento delle esercitazioni e' stata organizzata in modo da permettere anche il lavoro parallelo di gruppi di studenti, che trattano argomenti diversificati in funzione della loro preparazione e degli obiettivi proposti (nell'ambito degli argomenti trattati nel corso). Ove possibile, con le cautele sotto indicate per impedire la diffusione di virus informatici, la prosecuzione del lavoro pratico sul computer di casa e' vivamente incoraggiata.! INDICE INDICE GENERALE PROGRAMMA DEL CORSO DI CALCOLATORI ELETTRONICI PROGRAMMA LOGICO DEL CORSO INTRODUZIONE Capitolo 1 - Elementi del linguaggio Pascal Capitolo 2 - Sistemi di numerazione e rappresentazione delle informazioni

3 Capitolo 3 - Strutture di dati Capitolo 4 - Introduzione all'algebre di Boole Capitolo 5 - Circuiti logici digitali Modulo C Capitolo 6 - Architettura di un calcolatore elettronico < Capitolo 7 - Sottoprogrammi e passaggio dei parametri Capitolo 8 - Programmazione Assembly Fine Modulo A Capitolo 9 - Sistema di Input/Output < > Inizio Modulo B Capitolo 10 - Programmazione concorrente Capitolo 11 - Sistema di memoria Capitolo 12 - Sistemi operativi Capitolo 13 - Sistemi in rete Capitolo 14 - Programmazione ad oggetti e linguaggio Java < Capitolo 15 - Programmazione sul Web: Apache, HTML, CGI, Java apple Capitolo 16 - Architetture avanzate Capitolo 17 - Acquisizione di dati sperimentali APPENDICE A - Sigle e definizioni utili APPENDICE B - Il simulatore H6809 APPENDICE C - Programma delle esercitazioni! Programma del Corso di CALCOLATORI ELETTRONICI Prof.R.Biancastelli - Dipartimento di Fisica Universita' di Roma - La Sapienza MODULO A RAPPRESENTAZIONE DELLE INFORMAZIONI (D,W): Sistemi numerici - Rappresentazioni posizionali - Conversioni di base - Rappresentazioni dei negativi Aritmetica binaria in complemento a due -Carry e Overflow - Rappresentazione dei numeri frazionari - Conversioni in virgola fissa e virgola mobile - Rappresentazione BCD - Codici binari. ELEMENTI DI PASCAL (W,D,G): Intestazioni, tipi e dichiarazioni di variabili, istruzioni semplici e composte, diagrammi sintattici - Procedure e funzioni - Parametri formali e passaggio dei parametri. STRUTTURE DI DATI (D,W): Vettori e matrici - Pile (Stack) - Code - Liste (a singolo e doppio 'link') - Gestione delle liste: free list e garbage collection. INTRODUZIONE ALL'ALGEBRA DI BOOLE (C,D): Operazioni e loro proprieta' - Teorema di De Morgan e legge di dualita' - Teorema di sviluppo: Mintermini, Maxtermini e forma canonica - Minimizzazione: il metodo delle mappe di Karnaugh - Operatori universali - Operatore OR-esclusivo (coincidenza e anticoincidenza).

4 CIRCUITI LOGICI DIGITALI (C,D): Circuiti combinatori SSI: Analisi e sintesi - Circuiti combinatori MSI, LSI - Sintesi a ROM e PLA - Circuiti sequenziali - Memorie ROM, RAM statiche, dinamiche e associative. Modulo C < ARCHITETTURA DI UN ELABORATORE (D,W): Organizzazione interna - Bus di memoria - Registri - Contatori di programma e unita' di controllo Unita' aritmetica - I/O bus - Istruzioni - Modi di indirizzamento: a registro, a registro indiretto, assoluto, assoluto indiretto, imme- diato, autoincremento, relativo, a registro base e indexato - Sistema di I/O: sistemi a bus dedicato e memory mapped - Porte di I/O - Proto- colli Handshake - Interruzioni - Microcomputer H6809 e sua simulazione in Pascal. PROGRAMMAZIONE ASSEMBLY (D,W) - Pseudo-istruzioni - Compilazione: PLC, tabella dei simboli e modulo oggetto - Correlatore (Link Editor) - Caricatore (Loader) - Rilocazione - Macro-istruzioni. MODULO B ELABORATORI NUMERICI (D,W): Organizzazione interna dell'unita' centrale - Microcomputer H6809 e sua simulazione in Pascal - Unita' di controllo canalizzate - Gestione della memoria - Memory Management Unit - Paginazione (memory mapping): mappa di traduzione degli indirizzi - Classificazione delle macchine: ad accumulatori (H6809), a registri generali (H8000) ed a stack (H11) - Processori RISC. SISTEMA DI INPUT/OUTPUT (W,D): Sistemi a bus dedicato e memory mapped - Porte di I/O - Protocolli Handshake - Interfacciamenti: Paralleli (Centronix, IEEE 488) e seriali (asincrono RS232C e sincroni BSC) - Programmazione I/O e sovrapposizione - I/O drivers - Sistema di inter- ruzione - Gestione delle priorita': geografica, daisy chain, mask bits, round-robin, polling e interruzioni vettorizzate - Interruzioni interne (traps) e software (system calls) - Programmazione delle interruzioni - Accesso diretto alla memoria (DMA) - Sottosistemi a dischi - Canali di I/O controllati da processori. PROGRAMMAZIONE CONCORRENTE (D,W): Processi e loro stati - Concorrenza con I/O in sovrapposizione - Variabili condivise e sezioni critiche - Errori timing-dependent e stallo (dead-lock) - Protezione delle sezioni critiche - Semafori - Bloccaggio di strutture di dati - Condivisione di struzioni. SISTEMA DI MEMORIA (D,P): Organizzazione gerarchica - Memoria a banchi, interleaved, multiport - Fetch multiplo - Registro di istruzioni a buffer - Memoria cache - Memoria virtuale - Gestione della memoria: partizioni fisse e variabili, paginazione, memoria virtuale. SISTEMI OPERATIVI E RETI (C,D,I): Dedicati, a lotti (batch) e interattivi (time-sharing) - Multitasking e multiprogrammazione - Reti locali - Software di rete ELEMENTI DEL LINGUAGGIO JAVA (D,J): Programmazione ad oggetti - Fondamenti del linguaggio Java: classi, oggetti, variabili e metodi - I/O in Java - Interfaccia grafica Swing (GUI) - Gestione degli eventi e delle eccezioni - Applicazioni e applet - Connessioni in rete e programmazione client-server. < INTERCONNESSIONE DI RETI E INTERNET (D,I,H) - Indirizzamento IP - Protocolli TCP - Inter-reti - Internet - Browser e linguaggio HTML - Web server - Script CGI e Javascript ARCHITETTURE AVANZATE (C,D): Classificazione dei sistemi di elaborazione parallela: MISD, SIMD,MIMD - Tipi di accoppiamento: Multiproces-

5 sor, multicomputer e reti locali - Esempi ACQUISIZIONE DI DATI SPERIMENTALI (D): Sistemi standard di acquisizione di dati (NIM, CAMAC, VME e FASTBUS) - Organizzazione di un sistema multitask in tempo reale - Supervisione dell'elaborazione parallela (centralizzata e distribuita) - Multiprocessing (esempi su VME e FASTBUS). ESERCITAZIONI Modulo A: Programmazione in Pascal - Simulatore del computer H Uso pratico del linguaggio binario e mnemonico Assembly del computer H6809 con simulatore e debugger. Modulo B: Programmazione concorrente su rete locale di PC (farm per la simulazione Montecarlo dello scattering coulombiano) - Uso pratico del linguaggio Java - Istallazione ed uso di Web server con uso di applet Java, Javascript e script CGI - Programmazione concorrente (client-server) su rete Intranet. Modulo C: Uso pratico del linguaggio binario e mnemonico Assembly del computer H6809 con simulatore e debugger - Programmazione concorrente su rete locale di PC (farm per la simulazione Montecarlo dello scattering coulombiano) - Uso pratico del linguaggio Java - Programmazione concorrente (client-server) su rete Intranet. PRINCIPALI RIFERIMENTI BIBLIOGRAFICI: Testo base: D: Dispense, esercizi e fotocopie di appunti/trasparenze distribuite gratuitamente dal docente su floppy disk. Testi per consultazione: W: J.Wakerly - Microcomputer Architecture and Programming - Ed. Wiley G: M.Gori et al. - Pascal e C - Ed. Mc Graw Hill C: G.Cioffi,V.Falzone - Manuale di Informatica - Ed. Calderini P: D.A.Patterson et al.- Struttura e progetto...- I/F Hard/Softw. J: Cay Horstmann - JAVA 2, i fondamenti - Ed. Mc Graw Hill I: D.Comer - Internet e reti di calcolatori - Ed. Addison-Wesley H: G.B.Shelly et al. - HTML imparare per progetti Per informazioni, spiegazioni e chiarimenti e' possibile concordare durante tutto l'anno accademico incontri con il professore al anche al di fuori degli orari di ricevimento (studenti lavoratori). Si puo' comunicare con il professore anche all'indirizzo di posta elettronica roberto.biancastelli@uniroma1.it! PROGRAMMA LOGICO DEL CORSO ========================== (Grafo che evidenzia le connessioni logiche tra i vari argomenti) RAPPRESENTAZIONE INFORMAZIONI

6 STRUTTURE DATI ALGEBRA DI BOOLE ELETTRONICA DIGITALE ARCHITETTURA ELABORATORE ^ UNITA' CENTRALE < SISTEMA SISTEMA > Modulo A I/O MEMORIA... PROGRAMMAZIONE Modulo B (ASSEMBLY,PASCAL,JAVA...) SISTEMA > PROGRAMMAZIONE MEMORY D'INTERRUZIONE CONCORRENTE MANAGEMENT v > SISTEMI OPERATIVI< MONOUTENTE SPECIALI ACCORGIMENTI HARDWARE SISTEMI OPERATIVI MULTIUTENTE,MULTITASK SOFTWARE DI RETE MULTIPROGRAMMAZIONE < > MULTIPROCESSING ARCHITETTURE AVANZATE RETI LOCALI/INTERNET/INTRANET > CAMAC ACQUISIZIONE DI DATI SPERIMENTALI > VME ( ed altre applicazioni ) > FASTBUS. > ECC...! INTRODUZIONE

7 Il campo dei calcolatori elettronici e' forse quello che piu' di tutti negli ultimi decenni ha mostrato un progresso sfrenato. Infatti non solo ha raccolto i frutti del rapidissimo progresso della microelettronica, ma ha anche contribuito al progresso della nostra societa' con le grandi innovazioni nel campo del software e della telematica. Questo enorme progresso, unito alla grande rapidita' di evoluzione di idee e sistemi, condiziona a nostro parere le modalita' di una didattica istituzionale in questa materia. Infatti, mentre da un lato gli studenti sono desiderosi di arrivare rapidamente all'apprendimento delle macchine e sistemi piu' moderni, dall'altro questi non risultano adatti ad un efficiente apprendimento di base della materia, poiche' mentre sono destinati ad una rapida obsolescenza, inevitabilmente la loro complessita' pone degli ostacoli, complicando e rallentando inutilmente la comprensione dei concetti di base, la cui acquisizione, anche se fatta in maniera piu' semplice, permette poi di capire meglio e piu' rapidamente il funzionamento non solo dei sistemi attuali (che hanno una VITA LIMITATA) ma anche e soprattutto di quelli futuri. Per questi motivi nel nostro corso adotteremo come macchina di riferimento il miglior processore tra quelli piu' semplici ad 8 bit prodotto alla fine degli anni settanta e addirittura lo semplificheremo ulteriormente riducendone il numero dei registri allo stretto indispensabile. In questo modo, per il nostro corso, il processore ideale H6809 che ne deriva assume lo stesso ruolo che il punto materiale svolge in Meccanica o che il gas perfetto svolge in Termodinamica: un'idealizzazione che non ha riscontro nella realta' ma che ci aiuta a comprendere i meccanismi che stanno alla base della materia. Per meglio comprendere i meccanismi di funzionamento impiegati nei moderni calcolatori elettronici, pur nella loro complessita', seguiremo nella nostra trattazione un criterio di evoluzione 'storica', con cui progrediremo con gradualita', dai sistemi uniprocessor con sistema d'interruzione alla programmazione concorrente ed alla multiprogrammazione per arrivare infine alle architetture avanzate di elaborazione parallela multiprocessore. Essendo nostra convinzione che un apprendimento di questa materia non puo' essere disgiunto dall'acquisizione di capacita' operative sull'uso dei computers, abbiamo associato alle lezioni teoriche delle esercitazioni pratiche svolte su personal computer dotati di un programma simulatore che fa funzionare il PC come se dentro ci fosse un processore H6809. In questo modo lo studente puo' meglio comprendere i principi della programmazione dei calcolatori elettronici che studia a lezione. Un'ultima osservazione riguarda gli studenti del corso di laurea in fisica, ai quali questo corso e' particolarmente diretto: come deve essere gia' loro noto, la fisica si occupa di scoprire e stu- diare le leggi fisiche della Natura ovvero i rapporti quantitativi che intercorrono tra le grandezze osservabili, cioe' suscettibili di misurazione e quindi quantificabili con numeri: per questo, come la matematica ed i calcoli numerici hanno un ruolo fondamentale in fisica, cosi' anche i calcolatori elettronici sono fondamentali per i fisici, come strumenti di calcolo (OFF-LINE). Inoltre i calcolatori elettronici sono anche l'elemento centrale di analisi e controllo in linea (ON-LINE) di tutti i moderni apparati sperimentali e vanno quindi visti come parte essenziale dello stru- mento con cui il fisico misura le grandezze fisiche osservabili, che sono oggetto della fisica sperimentale. Cosi' lo studio dei calcolatori elettronici e dei loro campi e modalita' di impiego va associato allo studio dei trasduttori della informazione fisica (per esempio i rivelatori di particelle), ed alle

8 metodologie di acquisizione ed analisi dei dati sperimentali, che concorrono a formare lo strumento con cui indaghiamo il mondo fisico.! AVVERTENZE IMPORTANTI PER LE ESERCITAZIONI ========================================== Licenza d'uso: Le dispense per loro natura devono fare riferimento ai libri di testo consigliati, sui quali lo studente puo' cosi' trovare, in modo omogeneo, le informazioni per gli ulteriori approfondimenti. Cio' e' stato fatto dal docente con la massima attenzione al rispetto delle disposizioni di legge sul diritto di autore e pertanto il materiale didattico consegnato allo studente non deve essere in nessun caso alterato ne' duplicato o diffuso senza specifica autorizzazione scritta dell'autore. Il software contenuto nei dischetti consegnati dal docente e' di proprieta' dei rispettivi fornitori e concesso in licenza all'universita' di Roma-La Sapienza. Puo' essere usato solo presso questa Universita' nel rispetto delle relative licenze, sui computer assegnati per le esercitazioni, per fini didattici e non puo' essere ne' asportato ne' copiato con qualsiasi mezzo. Lo stesso vale per il testo delle dispense, la cui circolazione deve essere limitata agli studenti iscritti al corso del prof.r.biancastelli. Eventuali responsabilita' civili e penali previste dalle leggi vigenti, conseguenti al mancato rispetto delle disposizioni impartite al riguardo dal docente e dagli organi universitari, sono solo dei trasgressori. Per il materiale scaricato dalla rete devono essere sempre rispettate le restrizioni di copyright indicate dai relativi fornitori. Poiche' spesso tra gli studenti si subiscono questi doveri come ingiuste vessazioni, il docente ritiene utile esprimere la propria opinione al riguardo: nei Paesi in cui e' consentito a liberi imprenditori di investire nella ricerca sul software, ripagandosi poi degli investimenti fatti con i GIUSTI proventi della vendita, una efficace tutela giuridica del software e dei diritti di autore permette, al Paese che la pratica, di sviluppare l'industria del software e di creare con essa numerosi posti di lavoro, che in prospettiva valgono molto di piu' del software trafugato (purche' le Autorita' sappiano contrastare le tendenze ai monopoli nel software per salvaguardare, con la concorrenza, il livello e la giustezza dei prezzi). Virus: Le esercitazioni si svolgeranno usando un dischetto personale per ogni studente: su questo dischetto vi saranno sia il file contenente le dispense del corso, che appunti (LEZ??.PAS) e programmi per le esercitazioni. Lo studente dovra' riconsegnare questo dischetto al docente al termine delle esercitazioni e non usare dischetti propri per ragioni di sicurezza e protezione dai 'virus'. Un virus e' un programma nascosto all'interno di un altro programma usato dell'utente. Quando viene lanciato in esecuzione esso modifica gli altri programmi eseguibili presenti sul dischetto e nel computer installandosi in maniera invisibile nella memoria e nel sistema operativo, in modo da rimanere stabilmente installato nella macchina, che risulta cosi' 'infettata' ed in grado di infettare tutti i programmi eseguibili presenti sui dischetti di utenti ignari. Questo processo di contagio dei dischetti

9 del nostro corso e' possibile anche nei vari computers dei nostri laboratori, poiche' sono aperti a tutti e qualcuno puo' portare dischetti infetti dall'esterno. I vostri dischetti, una volta infettati, se portati fuori del laboratorio possono infettare il vostro computer dell'ufficio, di casa, ecc. Per questi motivi lo studente deve riconsegnare il suo dischetto al docente al termine delle esercitazioni e non portare mai dischetti propri in laboratorio. I tecnici di laboratorio sono i custodi responsabili del funzionamento e del coordinamento nell'uso dei computer. Gli studenti devono pertanto attenersi alle disposizioni da essi impartite e segnalare loro eventuali anomalie riscontrate. PROGRAMMA DI LAVORO DURANTE LE ESERCITAZIONI PRATICHE: Lo svolgimento delle esercitazioni e' basato sul materiale didattico nel dischetto consegnato dal professore e su software scaricabile gratuitamente da Internet (dopo essersi registrati indicando il proprio indirizzo di E.mail: se non lo avete potete richiederlo ad un fornitore di servizio gratuito di posta elettronica, per esempio Netscape). Bisognera' quindi, al momento stabilito dal professore, eseguire il download dei programmi seguenti, dai siti indicati: Delphi (eserc. Pascal) Java Development Kit (eserc. Java) Perl (eserc. CGI) Apache Web-Server (eserc. Web) vedi (su Win95 potrebbe essere necessario scaricare anche l'upgrade Winsock2 da Il programma di lavoro, configurato in base alla preparazione dello studente, dovra' contenere, nell'ordine, i seguenti argomenti: 1) Uso dei comandi elementari del Sistema Operativo MS-DOS 2) Uso dell'editor del TURBOPASCAL 3) Prove di uso delle istruzioni Pascal in semplici programmi (xxxdemo.pas) 4) Comprensione ed ampliamento del programma ADDING.PAS 5) Studio del programma Monitor 6) Studio del programma di simulazione H6809BUG.PAS (con BINPROG.PAS); ricerca ed eliminazione degli errori ivi contenuti 7) Studio del microcomputer H6809 simulato su IBM-PC, scrivendo ed eseguendo un semplice programma in linguaggio macchina 8) Ampliamento del simulatore H6809 introducendovi altre istruzioni come quelle di branch condizionato o di I/O o il sistema d'interruzione 9) Uso dell'editor dell'ambiente JDK1.3 (Java Developmenti Kit) 10) Prove di uso delle istruzioni Java in semplici programmi (xxxdemo.java): FirstSample, Welcome, BigDebt, Test0, Root, NewRoot, SwapTest, SwapTest2, ShellSort, VirusLook, LotteryOdds: esempio con input da tastiera e chiamata a metodo EmployeeTest, H6809g: Monitor H6809 scritto in java Root, RootApplet: esempio di applet

10 Prova: programma contenente un errore da trovare 11) Studio del programma Monitor H6809g.java, con particolare attenzione all'uso dell' oggetto Byte (esempio di programmazione ad oggetti) 12) Realizzazione in Basic di un simulatore dello scattering coulombiano con il metodo di Montecarlo 13) Programmazione concorrente del Montecarlo su una LAN in elaborazione parallela ('farm' di computer). 14) Istallazione ed uso del Web server Apache con uso di applet Java e script CGI. 15) Programmazione concorrente su rete Intranet (facoltativo). AVVERTENZA IMPORTANTE ===================== Le esercitazioni si svolgeranno usando un dischetto personale per ogni studente: su questo dischetto vi saranno sia il file contenente le dispense del corso, che appunti (LEZ??.PAS) e programmi per le esercitazioni. Gli esercizi e le dispense su Internet, sulla programmazione ad oggetti e sul linguaggio Java saranno consegnati agli studenti all'inizio del modulo B (subito dopo Pasqua). Lo studente dovr? riconsegnare questo dischetto al docente al termine delle esercitazioni e non portare dischetti propri per ragioni di sicurezza e protezione dai 'virus'. Un virus e' un programma nascosto all'interno di un altro programma usato dell'utente. Quando viene lanciato in esecuzione esso modifica gli altri programmi eseguibili presenti sul dischetto e nel computer, installandosi in maniera invisibile nella memoria e nel sistema operativo in modo da rimanere stabilmente installato nella macchina. Questa risulta così 'infettata' ed in grado di infettare tutti i programmi eseguibili, presenti sui dischetti in essa inseriti da utenti ignari. Questo potenziale processo di contagio dei dischetti del nostro corso e' possibile sia nei computers del nostro laboratorio che in quelli del CATTID, poiche' sono centri aperti a tutti e qualcuno puo' portare dischetti infetti dall'esterno. I vostri dischetti, una volta infettati, se portati fuori dall'universita' possono infettare il vostro computer di casa, dell'ufficio, ecc. Per questi motivi lo studente deve riconsegnare il suo dischetto al docente al termine delle esercitazioni e non portare mai dischetti propri al laboratorio o al CATTID.! Per le esercitazioni si puo' utilizzare anche la sala computers del CATTID, dotata di 20 PC-IBM, ubicata come indicato nella piantina seguente: VIALE DEL POLICLINICO... EDIFICIO CATTID <--- ingresso

11 MINERALOGIA GEOLOGIA SCIENZE POLITICHE F I GIURISPRUDENZA S I C Piazza A della RETTORATO Minerva! I primi 9 capitoli sono contenuti nel file Corso_A.TXT (Modulo A)! CAPITOLO 10 - Programmazione concorrente Riassunto: Scopo essenziale di questo capitolo e' quello di introdurre le problematiche connesse con l'elaborazione simultanea di piu' compiti (processi) da parte di uno stesso elaboratore, quale si incontra per la prima volta usando il sistema di interruzione Processi e loro stati Il concetto astratto di 'processo' viene introdotto perche' aiuta a capire il funzionamento dei programmi in ambiente di interruzioni multiple. Definiamo inizialmente un processo come un compito che l'elaboratore svolge eseguendo le istruzioni di un apposito programma. Vedremo in seguito (Java) che un processo puo' anche avere piu' sottoprocessi (thread), funzionanti in concorrenza nella stessa area di memoria virtuale del processo, ognuno con un compito diverso, come per esempio quello di attendere il verificarsi di un certo evento o di eseguire un'elaborazione compatibile con la prosecuzione dell'elaborazione del programma (elaborazione in background). Quando un thread termina il suo compito, viene sospeso o eliminato. Nel capitolo precedente abbiamo visto come sia possibile, con il pieno impiego del sistema d'interruzione, far compiere al calcolatore elettronico piu' processi simultaneamente, come elaborazione, input, output, acquisizione di dati sperimentali, ecc. Con il termine 'simultaneamente' intendiamo dire che il computer esegue l'elaborazione contemporaneamente ad altri compiti, come quelli relativi all'i/o, nel senso che, mentre l'elaborazione procede, vengono serviti (durante le interruzioni) i vari dispositivi che inviano le interruzioni (input, output, acquisizione-dati, ecc.), in modo da farli funzionare tutti insieme alla loro massima velocita' (cosa resa possibile dalla maggior velocita' della CPU), e cio' 'contemporaneamente' al procedere dell'elaborazione principale. Nell'esempio citato diremo cosi' che i processi di elaborazione principale, input, output ed acquisizione-dati (identificabili come attivita' distinte della CPU) sono eseguiti in concorrenza tra loro, nel senso che la CPU esegue le istruzioni necessarie

12 alla loro esecuzione, saltando dall'un processo all'altro, in modo pilotato dal succedersi delle interruzioni (servite con le priorita' stabilite dal programmatore). Cosi' si riesce ad ottenere due risultati importanti: 1) far lavorare ogni dispositivo alla sua massima velocita' 2) ridurre i tempi morti solo a quelli necessari al salto da un processo all'altro ed al salvataggio e ripristino dello stato della macchina all'interruzione. Dopo aver definito un processo, vediamo di definire i suoi tre stati possibili. STATI DI UN PROCESSO: 1) inattivo (=inactive) 2) attivo sveglio (=active awake) 3) attivo dormiente (=active asleep). Consideriamo per esempio il processo di output di un messaggio sulla console dell'operatore (i relativi programmi Assembly e Pascal sono stati discussi nel capitolo precedente). Prima che il processo di elaborazione principale (main program) generi il messaggio, il processo di output e' nello stato inattivo. Quando la CPU genera il messaggio, attiva anche il processo di output, inviando (con il driver di output) il primo carattere alla console ed attivando l'interruzione relativa (vedi 9.7.2, dove la variabile BUSY=1/0 indica lo stato attivo/inattivo del processo di output). La CPU ritorna poi al processo di elaborazione principale. Da quel momento il processo di output e' nello stato attivo e dormiente (in attesa di risveglio, quando arrivera' il segnale d'interruzione, dopo il completamento della stampa del primo carattere). Successivamente, quando l'interruzione arriva (dopo che il primo carattere e' stato stampato), la CPU interrompe il processo di elaborazione principale, che va cosi' nello stato attivo dormiente, e salta alla routine di servizio dell'interruzione, cominciando ad eseguire le istruzioni del processo di output: in questo momento diremo che il processo di output e' nello stato attivo e sveglio. Quando poi la routine di servizio dismette l'interruzione, eseguendo l'apposita istruzione RTI (return from interrupt), il processo di output torna nello stato attivo dormiente, mentre il processo a cui si ritorna va nello stato attivo sveglio. In conclusione abbiamo definito i tre stati di un processo nel modo seguente: > DORMIENTE --- (esecuzione sospesa) INATTIVO < > ATTIVO < interrupt > SVEGLIO <--- (in esecuzione) INATTIVO: quando un processo non e' ancora iniziato; ATTIVO E SVEGLIO : un processo iniziato ed in esecuzione (cioe' la CPU ne sta eseguendo le istruzioni); ATTIVO E DORMIENTE: un processo iniziato, ma in attesa di essere continuato al momento dell'arrivo dell'interruzione (la CPU sta eseguendo le istruzioni di un altro processo). In ambiente multiprocessor possono essere svegli piu' processi contemporaneamente (con un solo processor un solo processo e' sveglio: quello su cui la CPU sta lavorando). MULTITASKING: Si possono anche attivare piu' processi di elaborazione, anziche' di I/O, ed averne l'elaborazione 'simultanea', nel modo sopra descritto, se si crea un apposito programma supervisore (chiamato

13 sistema operativo multitask o real time executive per le applicazioni in tempo reale), appositamente progettato per coordinare l'esecuzione dei vari processi, gestendone eventualmente anche le relative priorita'. In questo caso le interruzioni che fanno passare la CPU da un processo all'altro, possono essere non solo quelle generate dalle unita' di I/O, ma anche quelle generate da: - un 'real time clock' interno al calcolatore che, ad intervalli di tempo prefissati, invia segnali di interruzione (time sharing); - chiamate di sistema che sono inserite nel processo corrente per evitare che questo faccia perdere tempo alla CPU restando in un loop, in attesa che un altro processo si compia (vedi prossimo esempio). Si dice pre-emptive (cooperativo) un sistema operativo multitasking a partizioni di tempo (time-sharing), in cui la CPU assegna il controllo in ogni intervallo di tempo (time-slice) ad un task diverso e puo' interrompere un processo in corso, salvandone lo stato, per eseguirne uno piu' prioritario (riprendendo poi quello interrotto da punto in cui era). Nel multitasking non pre-emptive invece, quando un processo ottiene il controllo della CPU non puo' piu' essere interrotto e tiene il controllo finche' non e' terminato Programmazione dei processi - Sezioni critiche Per poter programmare i processi abbiamo bisogno di apposite istruzioni per dichiarare, risvegliare o mettere a dormire un processo. In Pascal queste possono essere indicate con le seguenti parole chiave (in maiuscolo): PROCESS nome_del_processo; (Dichiarazione di processo) WAKEUP nome_del_processo; (Risveglio di un processo) SLEEP UNTIL condizione; (Messa a dormire condizionata del processo) SLEEP; (Messa a dormire incondizionata del processo) In tal caso si parla di Pseudo-Pascal o Pascal concorrente. Come esempio di programmazione che usa queste nuove istruzioni esaminiamo quello che riporta i driver di I/O sotto interruzione gia' studiati nel (Programmazione delle interruzioni): PROGRAM ElaboraRighe (input,output); Istruzioni nuove:... <--- Dichiarazione variabili ================ PROCESS RigaIn; <---- PROCESS... BEGIN InputAvailable:=false; ClearInBuffer; REPEAT BEGIN KbIEN:=true; KbGO:=true; KbRDY:=false; SLEEP UNTIL KbRDY=true; SLEEP UNTIL InBuffer(KbData) END UNTIL KbData=tappo; InputAvailable:=true; SLEEP SLEEP END; PROCESS RigaOut;... BEGIN OutPrinted:=false; WHILE Buffer=pieno DO BEGIN DisplayData:=NextChar; DisplayIEN:=true; DisplayGO:=true; DisplayRDY:=false; PROCESS

14 SLEEP UNTIL DisplayRDY:=true SLEEP UNTIL END; DisplayIEN:=false; OutputPrinted:=true; SLEEP SLEEP END; END; PROCESS RigaElab;... BEGIN WAKEUP RigaIn; SLEEP UNTIL InputAvailable;... Elabora riga... SLEEP UNTIL OutputPrinted; WAKEUP RigaOut END; PROCESS WAKEUP SLEEP UNTIL SLEEP UNTIL WAKEUP BEGIN <--- Inizio Main Program OutputPrinted:=true; <--- Inizializzazione WAKEUP RigaElab; <--- Input+Elabora+Print WAKEUP... END. In questo esempio i processi funzionano come coroutines, in quanto quando sono risvegliati riprendono l'elaborazione dal punto in cui erano stati sospesi (con SLEEP). Questo fa capire come il compilatore deve tradurre in linguaggio macchina le parti di programma dichiarate come processi Sezioni critiche, errori timing-dependent La programmazione concorrente, in cui la CPU ripartisce il tempo di elaborazione tra piu' processi contemporaneamente attivi, presenta una problematica nuova. Per coprenderne l'origine, consideriamo un esempio: un processo in corso di elaborazione (attivo), tra un risveglio ed un altro puo' trovarsi inopinatamente variati i valori di alcune variabili memorizzate, perche' condivise con altri processi che sono entrati in elaborazione mentre lui era dormiente ed hanno usato quelle stesse variabili, cambiandone il valore. Le aree di programma dove sono utilizzate le variabili (o piu' in generale le risorse) condivise si chiamano 'sezioni critiche'. Questi problemi non solo possono creare errori di elaborazione, ma possono anche paralizzare l'attivita' del calcolatore: in tal caso si dice che si e' verificata una situazione di 'stallo' (dead-lock), in cui due processi si arrestano, ognuno in attesa che l'altro compia una certa azione. Per capire come cio' possa succedere, consideriamo il seguente esempio, in cui un processo MAIN preleva dati tramite un altro processo INPUT e li elabora: PROCESSO MAIN PROCESSO INPUT > interrupt > Legge dati no e' InputAvailable=true InputAvailable:=true? Preleva dati si e' no MainWaiting=true >?

15 InputAvailable:=false MainWaiting:=true si -----> MainWaiting:=false Elabora dati SLEEP Main < WAKEUP Main Se interrupt avviene < qui', Main va in SLEEP con MainWaiting cambiato in false SLEEP Input da Input; cosi' Input non eseguira' mai piu' WAKEUP Main ed entrambi i processi dormiranno per sempre (situazione di stallo)! Il punto indicato e' una sezione critica perche' usa una variabile condivisa (MainWaiting). E' istruttivo esaminare anche altri casi in cui si puo' verificare lo stallo. Un primo esempio e' quello in cui due processi per lavorare si condividono le stesse pagine di memoria, richiedendole, di volta in volta, al sistema di allocazione dinamica del sistema operativo (non ci sono pagine di memoria sufficienti da allocare ad entrambi i processi). In questo caso si verifica uno stallo quando il processo B non puo' procedere se non termina il processo A, il quale pero' non puo' terminare perche' la memoria che gli sarebbe necessaria e' stata gia' allocata a B (e rimane percio' per sempre in attesa che venga rilasciata). Si puo' verificare uno stallo anche nell'uso incorretto del bloccaggio di risorse condivise tramite semafori. Per esempio, due processi di compilazione di ordini, composti da articoli contenuti in records di un file random, da parte di due distinti operatori, possono andare in stallo se: - il primo processo accede al record dell'articolo A bloccandolo (perche' ne dovra' cambiare la giacenza all'invio dell'ordine); - il secondo processo accede al record dell'articolo B bloccandolo; - successivamente il primo processo chiede di accedere anche lui all'articolo B (bloccato) ed il secondo processo chiede poi di accedere all'articolo A, bloccato anch'esso (perche' li devono inserire nei rispettivi ordini); Ovviamente essendo gli articoli A e B gia' bloccati, l'accesso non viene concesso ed i due processi vanno a dormire per sempre perche' nessuno dei due rilascera' il bloccaggio del record che ha impegnato. La procedura corretta sarebbe quella in cui ogni processo compila l'ordine, bloccando poi i records o addirittura l'intero file (per un tempo brevissimo, durante l'aggiornamento delle giacenze), con un'unica operazione non interrompibile, solo all'invio dell'ordine. Questo tipo di errori sono assolutamente da evitare (con un'attenta progettazione e conoscendo i casi in cui possono verificarsi), perche' essendo timing-dependent, producono effetti non riproducibili. Cio' accade in quanto essi dipendono dall'istante di tempo in cui arriva l'interruzione che mette a dormire un processo e ne risveglia un altro: questo e' un evento non riproducibile nel senso che ripetendo la procedura l'interruzione non ricapitera' nello stesso microsecondo della volta precedente. Puo' cosi' capitare che un programma sembra funzionare correttamente; una volta reso operativo pero' mostra un'anomalia sporadica, che compare casualmente nel senso che, ripetendo le operazioni con le stesse modalita', l'anomalia non si ripete (perche' e' molto poco probabile che l'interruzione responsabile dell'anomalia interrompa il processo esattamente nello stesso istante, in cui la CPU sta elaborando le istruzioni della sezione critica; anzi piu' breve e' la sezione critica tanto meno sara' questa probabilita' e quindi

16 la riproducibilita' dell'anomalia) Controllo delle sezioni critiche: bloccaggio e semafori Abbiamo definito 'sezioni critiche' quelle parti del programma, che fanno riferimento a variabili condivise con altri processi e che pertanto possono variare in modo incontrollato in conseguenza di interruzioni che avvengono durante l'esecuzione delle istruzioni della sezione critica. Nella programmazione dei processi concorrenti e' percio' necessaria un'accurata analisi in fase progettuale di tutti gli eventi che possono verificarsi. Un primo modo di risolvere questi problemi, evitando stalli ed altri errori timing-dependent (molto difficili da diagnosticare), e' il BLOCCAGGIO ovvero l'accorgimento di impedire le interruzioni nelle sezioni critiche (per questo basta disabilitare temporaneamente il sistema d'interruzione). Questo rimedio, benche' semplice da attuare, non e' pero' privo di rischi: infatti e' possibile che la stessa disabilitazione del sistema di interruzione in una sezione critica possa generare stallo, se nella sezione critica c'e' un'istruzione di SLEEP, per esempio per l'attesa di un'input. Lo stallo si verificherebbe perche' il processo andato a dormire non si risveglierebbe mai piu', essendo l'interrupt disabilitato; cosi', non uscendo piu' dalla sezione critica, non si riabiliterebbe piu' il sistema d'interruzione disabilitato prima di entrare nella sezione critica. Un altro modo di proteggere le sezioni critiche del programma e' quello di regolare con SEMAFORI l'accesso alle risorse condivise, in modo che un solo processo alla volta possa usarle. Un semaforo e' una variabile condivisa che puo' assumere due valori (1=rosso e 0=verde). Basta fare un test su questa variabile prima di entrare nella sezione critica: se e' rosso non si entra (si attende o si mette in SLEEP il processo), se e' verde lo si mette rosso e si entra nella sezione critica impegnando la risorsa condivisa. La procedura e' descritta nel seguente diagramma: > Risorsa bloccata da altro processo no e' SEMAFORO=verde? si < interrupt? SEMAFORO:=rosso Uso risorsa Risorsa bloccata da questo processo SEMAFORO:=verde ecc. Attenzione pero': un interrupt, che arrivasse mentre l'elaborazione e' nel punto indicato dalla freccia, consentirebbe ad un altro processo di impegnare la risorsa (perche' SEMAFORO non e' ancora stato posto rosso) e ritornare dall'interruzione mantenendola ancora impegnata, cosicche' entrambi i processi la userebbero contemporaneamente. Per evitare questo, Test e Set del SEMAFORO devono essere fatti con un'unica istruzione indivisibile (come TSET, ISZ, DSZ, ecc.), oppure con un software interrupt, in cui si lascia disabilitato il sistema d'interruzione (senza mettere ovviamente istruzioni di SLEEP nel servizio dell'interruzione).

17 Condivisione di strutture-dati Le stesse problematiche si incontrano se le risorse condivise sono strutture di dati, scritte su disco. E' necessario evitare i seguenti errori: 1) Mentre il processo A sta leggendo, il processo B interrompe e aggiorna la struttura-dati; 2) Mentre il processo B sta scrivendo, il processo A interrompe per leggere; 3) Mentre un processo sta scrivendo, l'altro interrompe e scrive anche lui. N.B. Nessun errore avviene invece se i due processi leggono simultaneamente una stessa struttura-dati. Il bloccaggio in lettura o scrittura a livello di file o record, dev'essere messo a disposizione dal sistema operativo nei comandi di accesso ai dischi (file system) e serve a proteggere la strutturadati. Criteri analoghi si applicano a strutture-dati condivise su reti locali LAN o in ambiente di multiprocessing (un'apposita esercitazione mostrera' l'uso di questo bloccaggio nella realizzazione di una farm di computers per elaborazione parallela in rete locale) Condivisione di istruzioni. Programmi rientranti. La condivisione di istruzioni e' possibile, senza che produca errori, se il codice del programma e' scritto in maniera rientrante. Per essere rientrante un sottoprogramma deve usare soltanto i registri e lo stack per tutti i parametri e le variabili locali (come fa il Pascal, ma non il Fortran, per esempio). Devono inoltre essere evitate istruzioni automodificantesi durante la elaborazione (ovvero il programma non deve costruirsi con istruzioni di Store le successive istruzioni da eseguire): in altre parole il codice del programma dev'essere 'read-only'. Va inoltre evitata la memorizzazione di variabili in locazioni fisse di memoria (perche' sarebbero sovrascritte da un secondo processo che rientra nel sottoprogramma prima che il primo processo, che dorme perche' e' stato sospeso da un'interruzione, ne sia uscito). Il problema della generazione di codice rientrante e' gia' stata discussa nel capitolo riguardante la descrizione dei modi di indirizzamento. I programmi rientranti sono importanti in ambienti multiprogrammati perche' consentono di caricare nella memoria una sola copia delle routines di utilita', che grazie alla rientranza risultano disponibili simultaneamente a tutti gli utenti (per esempio: compilatori, text editor, ecc.). La programmazione concorrente e' facilitata dai moderni sistemi operativi e compilatori che prevedono apposite facilities e restrizioni che riducono il rischio di errori timing-dependent.! CAPITOLO 11 - Sistema di memoria Riassunto: Scopo essenziale di questo capitolo e' quello di descrivere gli accorgimenti messi in atto per migliorare le prestazioni del sistema di memoria di un calcolatore elettronico e come si possano poi risolvere i problemi connessi con il caricamento e l'elaborazione simultanea di piu' programmi nella memoria dell'elaboratore.

18 Organizzazione gerarchica del sistema di memoria Riportiamo in un'unico schema i vari elementi di memorizzazione usati in un'elaboratore per confrontarne le caratteristiche (i valori indicano solo gli ordini di grandezza): COSTO ALTO VELOCITA' ALTA ( $/Mb) CPU (registri) 1 ns 5 $ CACHE MEMORY 10 ns 1 $ MEMORIA PRIMARIA 100 ns 0.1 $ MEMORIA DI MASSA ns 0 $ MEMORIA IN RETE ns COSTO BASSO VELOCITA' BASSA Il divario tra la velocita' che si puo' rilevare tra la CPU e la memoria rende determinanti le prestazioni del sistema di memoria. Basta pensare che per ogni istruzione eseguita viene fatto almeno un accesso alla memoria (fetch): per questo le prestazioni dell'intero sistema di elaborazione vengono a dipendere dalle prestazioni del sistema di memoria ed e' quindi molto importante adottare tutti gli accorgimenti possibili per migliorarne le prestazioni Tecniche di miglioramento delle prestazioni del sistema di memoria Poiche' per ogni istruzione eseguita viene fatto almeno un accesso alla memoria (fetch), le prestazioni del sistema di memoria determinano le prestazioni dell'intero calcolatore elettronico. Per questo motivo vale la pena esaminare dapprima alcuni semplici accorgimenti che si possono adottare per velocizzare l'accesso alla memoria. 1) Memory banking: MSB LSB Bank 0 Bank 1 Bank 2 Bank Bank Offset Address Dividendo la memoria in banchi elettronici diversi (banking), si puo' avviare la lettura del fetch dell'istruzione seguente su un banco, mentre un altro banco sta completando (per esempio) il ciclo di scrittura che termina l'istruzione precedente. Naturalmente il vantaggio scompare se il banco interessato dalle due operazioni e' lo stesso (sarebbe come in assenza di banking). In questo caso pero' ci viene incontro la tecnica dell'interleaving. 2) Memory interleaving: si ottiene dal memory banking semplicemente

19 collegando in maniera diversa le linee di indirizzamento: MSB LSB Bank 0 Bank 1 Bank 2 Bank Offset Bank Address Usando i bit meno significativi come indirizzo del banco si ottiene la distribuzione degli indirizzi indicata in figura. Siccome locazioni di memoria contigue vengono ora a trovarsi su banchi distinti, risulta molto piu' frequente che i cicli di memoria capitino su banchi diversi. In questo modo si esalta il guadagno del memory banking. 3) Multiport memory: e' una tecnica costruttiva che consente all'elettronica del sistema di memoria di gestire piu' di un accesso simultaneo. E' una tecnica particolarmente utile nei sistemi multiprocessore o nei sistemi con I/O assistito da canale. 4) Multiword fetch: Siccome la fase di fetch dell'istruzione e' molto onerosa, in quanto comporta un ciclo di lettura della memoria per ogni istruzione eseguita, si puo' usare la tecnica di consentire la lettura di 2 locazioni contigue per ogni ciclo di memoria. Per esempio il computer IBM 370 eseguiva il fetch di 2 parole di 32 bit per ogni ciclo. In questo modo, se il successivo fetch era in sequenza (cioe' se non veniva eseguito un salto), l'istruzione era gia' pronta nei registri elettronici, senza bisogno di leggerla dalla memoria con un ciclo di lettura. 5) Buffered Instruction Register: La tecnica del multiword fetch, che mira a far trovare gia' pronta nei registri elettronici (molto piu' veloci della memoria) l'istruzione da eseguire, puo' essere spinta oltre, fino a prevedere un banco di molti registri elettronici che vengono caricati con le istruzioni via via lette dalla memoria. In questo modo nell'evenienza non improbabile di loop stretti si possono trovare per molte volte le istruzioni gia' pronte nel banco di registri, evitando cosi' di eseguire i cicli di lettura della memoria, ben piu' lenti. Lo schema di funzionamento, che prevede la funzione di 'freeze', che congela il contenuto del buffer nel caso dei loop stretti, e' il seguente: Prefetch MEMORIA > BUFFER > > si Fetch Freeze no PC < in Buffer < CPU <? 6) Tra gli accorgimenti hardware introdotti per migliorare le prestazioni del calcolatore elettronico, riportiamo la tecnica del pipelining (canalizzazione), anche se non riguarda direttamente il sistema di memoria. Si tratta di una tecnica che aumenta la velocita' di elaborazione, introducendo un parallelismo interno alla CPU nell'esecuzione delle istruzioni. Per comprendere l'idea di base consideriamo il caso semplificato in cui per compiere un'istruzione il calcolatore debba eseguire le tre fasi seguenti, che hanno una certa durata temporale: 1) Fetch, che preleva l'istruzione dalla memoria;

20 2) Decode, che decodifica l'istruzione ed imposta gli organi interni del calcolatore per eseguire l'istruzione; 3) Execute, che esegue l'istruzione. Normalmente queste fasi andrebbero eseguite sequenzialmente (in serie nel tempo), per cui per eseguire quattro istruzioni sono necessari dodici passi: Passo: Fase : F1 + D1 + E1 + F2 + D2 + E2 + F3 + D3 + E3 + F3 + D3 + E3 Supponiamo ora di aver costruito l'elettronica del nostro calcolatore in modo che le tre fasi possano essere eseguite indipendentemente. E' allora possibile far lavorare le tre sezioni che eseguono Fetch, Decode ed Execute in parallelo secondo lo schema seguente: Passo : Fetch : F1 F2 F3 F4 F5 F6 ecc. Decode : D1 D2 D3 D4 D5 Execute: E1 E2 E3 E4 E' evidente come il parallelismo di funzionamento delle tre sezioni del calcolatore permette di compiere il lavoro in un numero minore di passi e quindi di far funzionare piu' velocemente il calcolatore. Poiche' questo avviene facendo eseguire alla CPU il Fetch e Decode dell'istruzione seguente prima della fine dell'execute dell'istruzione precedente, e' possibile (nei casi di istruzioni di salto) che questo lavoro fatto, in cui la CPU cerca di avvantaggiarsi compiendo prima il lavoro che si prevede di dover fare subito dopo, si inutile. In questi casi (salti) il parallelismo del pipelining non funziona, la 'pipe' si svuota e l'elaborazione procede con la solita velocita' di una CPU non canalizzata per alcuni passi, finche' la 'pipe' si riempie di nuovo. Questa situazione e' mostrata nello schema seguente, in cui l'esecuzione dell'istruzione 3 esegue un salto: Passo : Fetch : F1 F2 F3 * * F4 F5 F6 Decode : D1 D2 D3 * * D4 D5 Execute: E1 E2 E3 * * E4 Come si puo' osservare dagli asterischi, lo svuotamento della 'pipe', prodotto dall'istruzione di salto, provoca una sospensione temporanea del funzionamento parallelo, con un conseguente rallentamento della elaborazione Cache memory (ad indirizzamento diretto) Per migliorare le prestazioni del sistema di memoria si possono sfruttare le caratteristiche di localita' spaziale e temporale dell'elaborazione: 1) Localita' spaziale: in assenza di salti a lungo range, l'elaborazione tende a ripetere gli accessi alle stesse locazioni entro un range limitato (basti pensare ai loop). 2) Localita' temporale: per gli stessi motivi il riutilizzo delle stesse memorie avviene con alta probabilita' a breve distanza di tempo. Queste caratteristiche sono alla base del successo della tecnica di accesso alla memoria con 'cache'. L'idea e' quella di trattenere, caricandolo in una memoria ausiliaria, non visibile al programmatore (cache=nascosta), che sia piccola ma molto veloce, il contenuto (istruzioni e dati) delle locazioni lette nella memoria principale, al fine di accedervi piu' rapidamente le volte successive, se il dato e' ancora nella memoria cache. La localita' spaziale e temporale rende molto frequente il successo di questo accesso alla memoria cache. Vediamo di comprenderne il funzionamento con un esempio di realizzazione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

5-1 FILE: CREAZIONE NUOVO DOCUMENTO Capittol lo 5 File 5-1 FILE: CREAZIONE NUOVO DOCUMENTO In Word è possibile creare documenti completamente nuovi oppure risparmiare tempo utilizzando autocomposizioni o modelli, che consentono di creare

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Proteggiamo il PC con il Firewall di Windows Vista

Proteggiamo il PC con il Firewall di Windows Vista Proteggiamo il PC con il Firewall di Windows Vista Il momento in cui un computer è più a rischio e soggetto ad attacchi informatici, è quando è connesso a internet. Per proteggere il nostro PC ed evitare

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Moodle Guida rapida per docenti

Moodle Guida rapida per docenti Moodle Guida rapida per docenti Questa vuole essere una guida rapida per semplificare la realizzazione di corsi on line tramite Moodle. Quindi descriverò solo le principali funzioni del software. Ma chi

Dettagli

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it Decreto Legislativo 196/2003 Codice in materia di protezione dei dati personali COOKIE POLICY La presente informativa è resa anche ai sensi dell art. 13 del D.Lgs 196/03 Codice in materia di protezione

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Servizio on-line di Analisi e Refertazione Elettrocardiografica

Servizio on-line di Analisi e Refertazione Elettrocardiografica Servizio on-line di Analisi e Refertazione Elettrocardiografica Guida utente Scopo del servizio... 2 Prerequisiti hardware e software... 3 Accesso all applicazione... 4 Modifica della password... 7 Struttura

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 (CLASSI NON CAMPIONE) Prova nazionale 2010 11 1 A.S. 2010 11 Pubblicato

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Manuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon

Manuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon NOTE PRELIMINARI: 1. La versione analizzata è quella del laboratorio beta della sede S. Davide di Porto, ma il programma è presente anche nel laboratorio alfa (Porto) e nel laboratorio di informatica della

Dettagli

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

STAMPA DI UNA PAGINA SEMPLICE

STAMPA DI UNA PAGINA SEMPLICE Pagina 11 copiati nel proprio sistema (disco fisso o floppy). Questa operazione è detta download o scaricamento. Il modo più semplice per effettuare un download di un file (a meno che non sia specificato

Dettagli

MANUALE ESSE3 Gestione Registro delle lezioni

MANUALE ESSE3 Gestione Registro delle lezioni MANUALE ESSE3 Gestione Registro delle lezioni DOCENTI 1 INDICE 1. INTRODUZIONE E ACCESSO... 3 2. GESTIONE DEL REGISTRO... 4 2.1. Informazioni generali... 6 2.2. Stato del Registro... 7 2.2.1. Transizioni

Dettagli

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base). Dropbox di classe Lo scopo del servizio Dropbox di classe è quello di far conoscere ai docenti del nostro istituto il funzionamento di un sistema di Cloud Storage, pronto e facile da usare, per esplorare

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Studio Legale. Guida operativa

Studio Legale. Guida operativa Studio Legale Guida operativa Cliens Studio Legale Web Cliens Studio Legale Web è un nuovo strumento che consente all avvocato di consultare i dati presenti negli archivi Cliens del proprio studio, attraverso

Dettagli

Il tutor è a disposizione per ogni chiarimento

Il tutor è a disposizione per ogni chiarimento INDICAZIONI PER ESSERE OPERATIVI Alcune istruzioni per rendervi la vita più facile e accedere alle risorse del percorso online di Sociologia intuitivamente Il tutor è a disposizione per ogni chiarimento

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Come masterizzare dischi con Nero 11

Come masterizzare dischi con Nero 11 Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento

Dettagli

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo 01595 Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo INDICE DESCRIZIONE DEL SOFTWARE DI INTERFACCIAMENTO CON I SISTEMI GESTIONALI (ART. 01595) 2 Le

Dettagli

TEORIA DEI SISTEMI OPERATIVI

TEORIA DEI SISTEMI OPERATIVI TEORIA DEI SISTEMI OPERATIVI Classificazione dei sistemi operativi (Sistemi dedicati, Sistemi batch, Sistemi interattivi multiutente) CLASSIFICAZIONE DEI SISTEMI OPERATIVI Le tre principali configurazioni

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli