SISTEMI DI ELABORAZIONE E TRASMISSIONE DELL’INFORMAZIONE


FINALITA’

Nel curricolo di studi del Pento industriale per l’informatica l’insegnamento di Sistemi di Elaborazione e Trasmissione dell’ Informazione comprende due distinte aree di interesse.

La prima, a carattere più tecnologico, è l’area dei sistemi per l’elaborazione (calcolatori) e la trasmissione (reti) delle informazioni. conosciuti soprattutto dal punto di vista dell’architettura, cioè al livello di confine tra le competenze dell’elettronica e quelle della programmazione evoluta. La finalità dell’insegnamento è per questo aspetto, quella di contribuire alla formazione di un adeguato bagaglio di precise conoscenze tecniche e di capacità operative per il futuro perito.

La seconda area di interesse è quella delle applicazioni, cioè della conoscenza dei sistemi, nei settori dell’industria e dei servizi. interessati dalla progressiva introduzione di strumenti informatici. In rapporto a quest’area, la finalità dell’insegnamento è di tipo più metodologico perché deve fornire anche generali capacità di analisi dei sistemi, di comprensione dei processi economici. oltre che strategie specifiche di risoluzione dei problemi.

Questo secondo aspetto si può sviluppare concretamente in un crescente rapporto con la realtà delle produzioni e/o delle applicazioni informatiche presenti a livello locale e, pertanto, trova la sua naturale collocazione soprattutto nelle scelte dell’Area Elettiva e di Progetto, al quarto e quinto anno.

La materia di insegnamento ha dunque due fronti di indagine: quello "interno", dei sistemi informatici e quello "esterno". dei sistemi informatizzabili; rispetto ad entrambi è fondamentale cercare di enfatizzare quanto più possibile principi, modellizzazioni e metodologie di analisi e progetto che siano unificanti rispetto alla vana natura di impianti e processi.

Per quanto detto all’inizio diventa necessario un coordinamento con gli insegnamenti di Informatica ed Elettronica e Telecomunicazioni, per arrivare ad un comune piano di lavoro che consenta di evitare inutili duplicazioni di argomenti, disomogeneità nelle metodologie e carente integrazione tra le diverse competenze specifiche.

In questo contesto, compito precipuo di Sistemi di Elaborazione e Trasmissione dell’informazione è lo studio delle architetture che si evidenziano, ai vari livelli, connettendo i blocchi funzionali studiati nella materia di Elettronica e Telecomunicazioni, definendo il software di base, utilizzando i vari paradigmi di programmazione dell’Informatica; per rappresentare le soluzioni dei più svariati problemi di automazione (elaborazione e trasmissione dell’informazione).

Dal punto dì vista metodologico, infine, è fondamentale un rapporto organico tra didattica in aula e attività dì laboratorio, sia per il taglio più progettuale che la materia assume nell’ambito di quelle dell’area di indirizzo, sia perché, trattandosi di un insegnamento tecnologico, le è proprio il procedere, nell’accumulazione di conoscenze, attraverso processi di invenzione e di risoluzione di problemi.

OBIETTIVI GENERALI

Conoscere con un buon dettaglio l’implementazione fisica di diversi tipi di calcolatore e saperne dare una corretta descrizione astratta.

Programmare sistemi a microprocessore con bus e interfacce standard

Riconoscere, analizzare e classificare le diverse architetture di un calcolatore.

Conoscere i risultati e le linee di tendenza nel campo delle nuove architetture degli elaboratori.

Conoscere i concetti di base relativi all’evoluzione e alla struttura dei sistemi operativi.

Conoscere i principali tipi di interfacce e di protocolli per il collegamento in rete e saper progettare e realizzare semplici moduli di comunicazione.

Installare personalizzare e condurre la manutenzione di piccoli sistemi di elaborazione distribuiti.

Assolvere con responsabilità ed autonomia compiti parziali nella gestione di grandi sistemi.

Sviluppare dal punto di vista sistemico piccoli progetti di automazione studiandone l’architettura di elaboratore e/o di rete e adattando il software alle esigenze di prestazioni in tempo reale.

Valutare i costi di piccoli impianti informatici ed i tempi di sviluppo di una installazione o di un prodotto e saper stendere e controllare un piano di lavoro.

 

CLASSE TERZA Ore 5(3)

OBIETTIVI

Applicare a contesti diversi i concetti di sistema, processo, modello, variabile di stato, costante di tempo, campionamento, stabilità, controllo e retroazione.

Costruire modelli di semplici sistemi reali, o studiarne il comportamento anche mediante la costruzione di piccoli programmi di simulazione o l’uso di software funzionale e di programmi specializzati.

Conoscere in generale gli aspetti probabilistici e quantitativi relativi alla generazione e al trasporto dell’informazione tra sistemi a stati finiti.

Usare un adeguato formalismo nell’analisi e nella progettazione di automi a stati finiti.

Conoscere sia le rappresentazioni formali che le strutture concrete di un sistema di elaborazione.

Progettare, sviluppare e collaudare semplici programmi nel linguaggio macchina e/o simbolico (assembly) di un microprocessore.

Saper utilizzare semplici ambienti e/o sistemi di sviluppo e debugging di programmi a basso livello.

CONTENUTI

Sistemi

Teoria elementare dei sistemi con introduzione ai concetti di memoria, stato, retroazione, stabilità, controllo, tempo di risposta, campionamento e relativi esempi tratti non solo dal campo fisico e industriale, ma anche da quello economico, dei giochi, ecc..

Comunicazioni

Teoria elementare dell’informazione: probabilità degli stati di sorgente e misura dell’informazione, codifica efficiente, canali disturbati. errori, loro individuazione e recupero dell’informazione.

Concetto di protocollo.

Automi

Automi a stati finiti con esempi nell’ambito dei controlli e della comunicazione. Automi universali (macchine a programma). Architettura dei sistemi di elaborazione:

unità operative e automi di controllo microprograrnmato: esempi di semplici CPU.

Architetture

Livelli fisici e virtuali di un sistema di elaborazione; architetture viste dall’utente attraverso il linguaggio macchina: rappresentazione delle informazioni, registri e memoria, formato e tipi di istruzioni, metodi di indirizzamento.

Programmazione

Il linguaggio macchina o mnemonico (assembly); software di base per lo sviluppo di programmi a basso livello: assembler, linker e debugger; sistemi di sviluppo con cross-assemblatore.

LABORATORIO

Esercitazioni di modellizzazione di semplici sistemi a partire da dati sperimentali o da documentazione tecnica; manipolazione dei modelli con fogli elettronici, programmi di simulazione ecc.; risoluzione di semplici problemi di ottimizzazione, decisione, controllo.

Calcolo dell’informazione emessa da una sorgente, simulazione del trasporto dell’informazione attraverso canali con attenuazione e rumori casuali.

Analisi e sintesi di automi a stati finiti: loro implementazione a diversi livelli di astrazione in collaborazione con Elettronica e/o Informatica.

Progettazione e realizzazione di semplici programmi in linguaggio mnemonico per capire e sfruttare l’architettura di un microprocessore.

INDICAZIONI METODOLOGICHE

Affrontando i primi capitoli (Sistemi, Comunicazione e parte di Automi) sui sistemi informatizzabili occorre tener presenti due esigenze: quella di creare una continuità con l’insegnamento di alcune materie scientifiche del biennio e quella di introdurre gradualmente gli allievi agli specifici campi di applicazione della nuova disciplina.

Per quanto riguarda il primo aspetto si tratta di utilizzare richiami ed esperienze di chimica e fisica del biennio per affrontare l’analisi di sistemi di complessità maggiore

(con retroazioni e controlli), insegnando quindi agli allievi a ragionare per analogie e a documentarsi sui diversi testi a loro disposizione. Anche nell’affrontare problemi inerenti l’informazione e la sua trasmissione, o la simulazione di semplici sistemi campionati, si possono sfruttare i primi elementi di calcolo delle probabilità e di programmazione in un linguaggio evoluto acquisiti dagli allievi nel corso del biennio.

Circa gli esempi da proporre, tenuto conto dell’ambito industriale in cui si colloca l’indirizzo e di quanto viene sviluppato in Elettronica, non si può tralasciare una breve rassegna di esempi tecnici (semplici macchine, dispositivi di consumo di massa, controllori programmabili), ma sarà anche necessario dare spazio ad un più accentuato interesse della disciplina per sistemi di natura organizzativa e socio-economica, pur essi campi di applicazione dell’informatica e ambito di esemplificazione dei concetti di sistema, processo, automa, controllo.

Il tema Comunicazione inoltre, rappresenta, fin dal terzo anno, il crescente interesse della materia per i sistemi di trasmissione dell’informazione, che si sviluppa di pari passo con quello per i sistemi di elaborazione. In questa fase, però, al di là dei primi aspetti tecnico-scientifici del problema, l’argomento si presta anche ad interessanti osservazioni d’ordine metodologico sull’importanza di una documentazione ben strutturata, dell’osservanza dei protocolli, della padronanza di una lingua pratica ed efficace, per favorire la comunicazione tra chi lavora allo stesso progetto e con la committenza.

Alla prima parte del programma dovrebbe comunque essere dedicato al più un quadrimestre, per lasciare un adeguato spazio alla seconda parte (Automi, Architetture e Programmazione), che riguarda più propriamente i sistemi informatici e deve essere sviluppata in stretto coordinamento con gli insegnamenti di Elettronica ed Informatica.

Riguardo l’analisi di automi si dovrà tener conto che le implementazioni potrebbero convenientemente essere affidate ad Elettronica. Specifico di Sistemi sarà dunque l’attenzione per l’analisi formale del problema e l’interesse per i processi che si possono controllare tramite un semplice automa a stati finiti, e l’eventuale soluzione programmabile.

Il livello di approfondimento dell’argomento che è proprio dell’insegnamento di Sistemi è quello del passaggio ad automi con memoria esterna e poi programmabili che consente di avvicinare gradualmente la struttura di principio di una CPU alla Von Neumann.

Trattandosi di un terzo anno conviene non disorientare gli allievi e scegliere di studiare essenzialmente un solo microprocessore, cercando comunque di superare il semplice nozionismo descrittivo con le prime considerazioni sugli aspetti architetturali. Queste verranno sicuramente riprese poi al quarto e al quinto anno con maggior ricchezza di esempi a confronto ed una capacità di approccio formale molto più spinta

Per quanto riguarda infine la programmazione (in assembly) si eviterà di affrontarla come un duplicato dell’insegnamento di Informatica. Si tratterà invece di innestarsi su quell’esperienza per sfruttarne al massimo le acquisizioni metodologiche.

In partenza si potrebbero proporre esercizi di implementazione di semplici costrutti già usati in ambienti più evoluti, utilizzando le istruzioni essenziali del linguaggio macchina, cercando di mantenere e consolidare uno stile coerente di sviluppo per raffinamenti successivi.

Solo in seguito si approfondiranno in modo più sistematico le particolarità di un linguaggio macchina (metodi di indirizzamento, uso dei flag, ecc.).

Non è da escludere l’anticipazione in terza dei primi elementi di un linguaggio più evoluto per la gestione dell’hardware, tenendo comunque conto della necessità, da parte degli studenti, di possedere anche il semplice strumento dell’assembly per il collaudo di hardware programmabile nel laboratorio di elettronica di quarta.

 

CLASSE QUARTA Ore 6(3)

OBIETTIVI

Conoscere in modo approfondito una CPU.

Conoscere i più diffusi bus e avere un’informazione sulle funzioni di alcune schede di espansione e d’interfaccia e relative compatibilità e standardizzazioni.

Valutare comparativamente le architetture di diversi sistemi d’elaborazione.

Conoscere i concetti di base su evoluzione e struttura dei sistemi operativi.

Saper applicare principi e modelli della programmazione concorrente (ad esempio:

procedurale, a scambio di messaggi, a chiamata di procedure remote, ecc.).

Conoscere i livelli più bassi di un sistema operativo: sincronizzazione di processi elementari, gestione delle interruzioni hardware e software.

Utilizzare le risorse di base (software e firmware) di un sistema operativo per lo sviluppo di semplici applicazioni.

Utilizzare un linguaggio di programmazione che consenta un buon livello di astrazione nella definizione dei processi e la visibilità dell’hardware.

CONTENUTI

Microprocessori

Supporto delle architetture al Sistema Operativo: elaborazione di interrupt, gestione e protezione della memoria.

Concorrenza nei sistemi di elaborazione: modello "pipelined", prefetching, memorie cache, coprocessori.

Confronti tra architetture di diverse CPU, set di istruzioni, modi di funzionamento e bus standard.

Principi e strumenti per testare le prestazioni degli elaboratori.

Programmazione

Introduzione ad un linguaggio di sistema adatto a capire e sviluppare piccoli moduli di software di base a diversi livelli di astrazione.

Cenni ai linguaggi per la programmazione concorrente.

Sistemi Operativi

Il sistema operativo nella gerarchia dei livelli di un sistema di elaborazione.

Risorse, processi, processori, parallelismo reale e virtuale, cooperazione/competizione, sincronizzazione.

Gestione delle eccezioni hardware e software. Nucleo, schedulazione a basso livello e stati di un processo.

Sincronizzazione mediante semafori. Problemi classici elementari di programmazione concorrente. Problema dello stallo e soluzioni tipiche.

Elaborazioni in tempo reale: primitive ed applicazioni.

Rappresentazione e gestione fisica di file e indirizzari sul disco.

Tecniche elementari di gestione della memoria. Rilocabilità e rientranza dei programmi.

LABORATORIO

Studio del funzionamento di una CPU attraverso il debugging, la simulazione o l’uso di un software didattico.

Progettazione dell’architettura di semplici sistemi di controllo e/o comunicazione basati su di un bus standard, utilizzando le schede di interfaccia realizzate in Elettronica o i prodotti disponibili sul mercato.

Realizzazione di routine di servizio ad interruzioni: scrittura di driver per le diverse interfacce collegate al bus.

Utilizzazione delle chiamate al sistema operativo.

Avvio ad un uso ragionato della documentazione disponibile sul software di base (manuali tecnici di riferimento, guide per il programmatore) e alla produzione di una documentazione standard dei progetti sviluppati e del software prodotto.

Utilizzo del linguaggio di comando per il controllo dei lavori.

Realizzazione di semplici programmi nel linguaggio evoluto prescelto.

Risoluzione di semplici problemi di sincronizzazione tra processi.

Realizzazione e simulazione di singole funzioni del sistema operativo.

Sviluppo di una applicazione in tempo reale.

 

INDICAZIONI METODOLOGICHE

Il tema Microprocessori richiede di tenere presenti in parallelo due linee di studio:

quella delle architetture delle CPU (strutture a grossi blocchi, modi di funzionamento, incremento delle prestazioni in rapporto alle funzioni del sistema operativo) e quella delle architetture dei sistemi costruiti intorno ad esse (bus, interfacce, espansioni, ecc.) sia per supportarne più efficacemente i modi operativi, che per adeguarsi meglio alla configurazione e alle esigenze del mondo esterno e delle applicazioni.

Il primo sottotema prosegue e allarga un campo di interessi che fin dal terzo anno si individua come proprio di Sistemi, mentre il secondo sottotema va sviluppato in collaborazione con Elettronica, che tratta, dal punto di vista delle linee e dei segnali, il problema della realizzazione e sincronizzazione di un sistema basato su di un bus.

Sempre nell’ottica di consentire agli allievi il massimo recupero degli sforzi già fatti, si potrebbe rimanere, almeno all’inizio. nell’ambito della stessa famiglia di processori di cui si è già studiato un componente in terza, per poi arrivare in un secondo tempo alle necessarie valutazioni comparative tra famiglie di processori.

In questo capitolo l’interesse per l’analisi delle prestazioni dei sistemi informatici si riaggancia all’obiettivo trasversale di far acquisire conoscenze ed atteggiamenti adeguati alla risoluzione di problemi di natura non solo squisitamente tecnica, ma pure organizzativa ed economica.

Per il tema Programmazione possono valere le stesse indicazioni metodologiche date in terza per l’insegnamento dell’assembly: esso va svolto in parallelo con il tema Sistemi Operativi, quindi si può iniziare con esempi tratti dai problemi di comunicazione e sincronizzazione, usando poche istruzioni fondamentali per approfondirle in seguito secondo le necessità.

Circa il tema Sistemi Operativi occorre tener presente che, pur dovendo garantire alla trattazione una certa sistematicità, soprattutto per l’aspetto organizzativo che il tema assume, se proiettato verso i medi e grandi sistemi alla cui gestione i periti dovrebbero saper partecipare, d’altra parte lo studio dei sistemi operativi non deve comunque limitarsi ad un apprendimento mnemonico di definizioni e di principi. E’ necessario che l’acquisizione dei concetti fondamentali sia confortata da una loro verifica e da un. loro confronto con un sistema operativo avanzato in uso nella scuola.

A questo proposito si rammenta che anche un utile anticipo della trattazione dei primi tre livelli (fisico, data-link e di rete) del tema Reti di quinta potrebbe fornire una valida alternativa per trattare problematiche di concorrenza, sincronizzazione e comunicazione tra processi.

Inoltre, nel quarto anno, si apre l’area elettiva e di progetto per cui casi di processi in tempo reale potrebbero essere affrontati e approfonditi, per esempio, in un’applicazione dell’elaboratore nella regolazione e nel monitoraggio di impianti, se la realtà produttiva locale privilegia il settore dell’automazione.

 

CLASSE QUINTA Ore 6(3)

OBIETTIVI

Conoscere gli sviluppi più recenti nelle architetture degli elaboratori.

Conoscere standard d’interfaccia e tipologie di reti geografiche e locali.

Conoscere le problematiche ed i prodotti software relativi all’implementazione dei vari livelli di un protocollo di rete.

Realizzare l’adattamento di prodotti standard per le comunicazioni a specifiche situazioni applicative.

Progettare e realizzare un semplice protocollo di comunicazione.

Conoscere le principali tipologie di applicazione dell’elaboratore in sistemi automatici di controllo, acquisizione ed elaborazione dei segnali, comunicazione.

Affrontare l’analisi e la sintesi di piccoli sistemi d’automazione, in ambito locale o distribuito (attraverso reti telematiche) in riferimento alla scelta compiuta nell’area elettiva e di progetto.

CONTENUTI

Gli obiettivi saranno raggiunti attraverso la trattazione teorico-pratica dei temi seguenti e l’approfondimento di almeno uno di essi nell’Area Elettiva e di Progetto.

Architetture

Nuove architetture parallele (multiprocessore, array processor) e non Von Neumann (data flow, ecc.).

Sistemi di elaborazione distribuiti.

Reti di comunicazione geografiche e locali.

Reti

Standard di interfaccia e protocolli di accesso ad una rete: collegamenti via satellite; comunicazioni a radio pacchetti.

Livelli di data link, di rete, di trasporto; rilevazione e correzione d’errore; algoritmi di instradamento e di controllo delle congestioni; gestione delle connessioni e recupero guasti.

Livelli superiori nel modello di riferimento OSI: gestione delle attività, modello client/server, chiamata di procedure remote: problema della sicurezza: crittografia.

Protocolli orientati all’automazione industriale e d’ufficio.

Applicazioni e servizi

Trasferimento file; programmi più diffusi per comunicazioni e accesso a banche dati.

Posta elettronica, terminali virtuali. facsimile. videotel.

Basi di dati distribuite: file server.

Tipologie di sistemi per l’automazione industriale, e di ufficio, tramite l’elaborazione e la trasmissione dell’informazione.

Evoluzione delle diverse tecnologie in riferimento alle cause ed alle conseguenze socio-economiche e culturali del loro sviluppo: dalla rivoluzione informatica alla rivoluzione telematica.

LABORATORIO

Simulazione di algoritmi e di dispositivi che migliorano il parallelismo della macchina di Von Neumann.

Simulazione di architetture parallele con l’hardware ed il software disponibili.

Collegamento di periferiche utilizzando gli standard studiati; progettazione e realizzazione di collegamenti locali tra personal computer; installazione e collegamenti ad una LAN.

Risoluzione di problemi di sincronizzazione e comunicazione tra processi attivati su macchine diverse collegate in rete.

Utilizzazione della strumentazione elettronica e di prodotti software per lo sviluppo ed il collaudo dei programmi e dei collegamenti.

Realizzazione di un lavoro su un tema dell’Area Elettiva e di Progetto.

INDICAZIONI METODOLOGICHE

Sul tema delle Architetture il necessario confronto tra nozioni teoriche e realizzazioni pratiche può raggiungere un livello adeguatamente significativo anche con attrezzature piuttosto semplici (ad esempio: schede di tipo transputer. linguaggio OCCAM, ecc.). Non è poi da sottovalutare il ricorso alla simulazione tramite software adatto, mentre rimane sempre valida l’alternativa di vedere una rete locale come ambiente di elaborazione complesso e non convenzionale.

Anche sulle Reti e le Applicazioni, come per i Sistemi Operativi del 4° anno, occorre contemperare le esigenze di una trattazione sistematica con quelle del necessario consolidamento delle conoscenze nella pratica del laboratorio. Bisogna evitare di ridurre la trattazione di questo tema a puro nozionismo descrittivo, per privilegiare, invece, le semplici realizzazioni alla portata degli allievi, in laboratorio. Ciò consente di preparare gli alunni alla risoluzione pratica di piccoli problemi di dimensionamento di sistemi e interfacce e di programmazione. in vista anche dell’eventuale scritto d’esame, e permette comunque di avere lo spunto per le opportune lezioni di inquadramento della tematica complessiva.

Al 5° anno, inoltre, cresce ancor di più il peso dell’area elettiva e di progetto, introdotta per consentire al programma di insegnamento di raccordarsi con più elasticità alle caratteristiche locali delle produzioni e delle applicazioni informatiche e/o all’eventuale esperienza di stage aziendali condotta dagli alunni al termine del quarto anno.

Quest’area di progetto consente eventualmente di approfondire aspetti particolari dei temi proposti per il quinto anno. Occorre comunque evitare di andare incontro ad un appesantimenlto nozionistico dell’insegnamento, perchè vale di più l’approfondimento della problematica affrontata nell’ambito del progetto sviluppato nell’area elettiva e di progetto, che non un’informazione necessariamente generica e teorica su tutto.

Infine è importante che il perito informatico sappia apprezzare la rilevanza dei problemi di economia aziendale, conoscere fondamentali criteri di scelta e pianificazione, valutare i costi di piccoli impianti informatici ed i tempi di sviluppo ed installazione di un prodotto. Tali obiettivi si possono raggiungere solo attraverso l’Area Elettiva e di Progetto. In questo ambito si potrebbe studiare un caso di riorganizzazione aziendale determinato dall’introduzione significativa di tecnologie informatiche a livello di servizi con documentazione originale o visite in luogo.

Analogamente si potrebbe scegliere lo studio di un caso in ambito prettamente industriale (automazione della produzione e del controllo di impianti).