SISTEMI DI ELABORAZIONE E TRASMISSIONE DELLINFORMAZIONE
Nel curricolo di studi del Pento industriale per linformatica linsegnamento di Sistemi di Elaborazione e Trasmissione dell Informazione comprende due distinte aree di interesse.
La prima, a carattere più tecnologico, è larea dei sistemi per lelaborazione (calcolatori) e la trasmissione (reti) delle informazioni. conosciuti soprattutto dal punto di vista dellarchitettura, cioè al livello di confine tra le competenze dellelettronica e quelle della programmazione evoluta. La finalità dellinsegnamento è 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 dellindustria e dei servizi. interessati dalla progressiva introduzione di strumenti informatici. In rapporto a questarea, la finalità dellinsegnamento è 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 dellArea 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 allinizio 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 dellinformazione è 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 dellInformatica; per rappresentare le soluzioni dei più svariati problemi di automazione (elaborazione e trasmissione dellinformazione).
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 nellambito di quelle dellarea di indirizzo, sia perché, trattandosi di un insegnamento tecnologico, le è proprio il procedere, nellaccumulazione di conoscenze, attraverso processi di invenzione e di risoluzione di problemi.
Conoscere con un buon dettaglio limplementazione 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 allevoluzione 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 larchitettura 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.
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 luso di software funzionale e di programmi specializzati.
Conoscere in generale gli aspetti probabilistici e quantitativi relativi alla generazione e al trasporto dellinformazione tra sistemi a stati finiti.
Usare un adeguato formalismo nellanalisi 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.
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 dellinformazione: probabilità degli stati di sorgente e misura dellinformazione, codifica efficiente, canali disturbati. errori, loro individuazione e recupero dellinformazione.
Concetto di protocollo.
Automi
Automi a stati finiti con esempi nellambito 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 dallutente 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.
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 dellinformazione emessa da una sorgente, simulazione del trasporto dellinformazione 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 larchitettura di un microprocessore.
Affrontando i primi capitoli (Sistemi, Comunicazione e parte di Automi) sui sistemi informatizzabili occorre tener presenti due esigenze: quella di creare una continuità con linsegnamento 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 lanalisi 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 nellaffrontare problemi inerenti linformazione 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 dellambito industriale in cui si colloca lindirizzo 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 dellinformatica 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 dellinformazione, 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, largomento si presta anche ad interessanti osservazioni dordine metodologico sullimportanza di una documentazione ben strutturata, dellosservanza 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 lanalisi di automi si dovrà tener conto che le implementazioni potrebbero convenientemente essere affidate ad Elettronica. Specifico di Sistemi sarà dunque lattenzione per lanalisi formale del problema e linteresse per i processi che si possono controllare tramite un semplice automa a stati finiti, e leventuale soluzione programmabile.
Il livello di approfondimento dellargomento che è proprio dellinsegnamento 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 dellinsegnamento di Informatica. Si tratterà invece di innestarsi su quellesperienza 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 lanticipazione in terza dei primi elementi di un linguaggio più evoluto per la gestione dellhardware, tenendo comunque conto della necessità, da parte degli studenti, di possedere anche il semplice strumento dellassembly per il collaudo di hardware programmabile nel laboratorio di elettronica di quarta.
Conoscere in modo approfondito una CPU.
Conoscere i più diffusi bus e avere uninformazione sulle funzioni di alcune schede di espansione e dinterfaccia e relative compatibilità e standardizzazioni.
Valutare comparativamente le architetture di diversi sistemi delaborazione.
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à dellhardware.
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.
Studio del funzionamento di una CPU attraverso il debugging, la simulazione o luso di un software didattico.
Progettazione dellarchitettura 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.
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 nellottica di consentire agli allievi il massimo recupero degli sforzi già fatti, si potrebbe rimanere, almeno allinizio. nellambito 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 linteresse per lanalisi delle prestazioni dei sistemi informatici si riaggancia allobiettivo 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 linsegnamento dellassembly: 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 laspetto organizzativo che il tema assume, se proiettato verso i medi e grandi sistemi alla cui gestione i periti dovrebbero saper partecipare, daltra parte lo studio dei sistemi operativi non deve comunque limitarsi ad un apprendimento mnemonico di definizioni e di principi. E necessario che lacquisizione 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 larea elettiva e di progetto per cui casi di processi in tempo reale potrebbero essere affrontati e approfonditi, per esempio, in unapplicazione dellelaboratore nella regolazione e nel monitoraggio di impianti, se la realtà produttiva locale privilegia il settore dellautomazione.
Conoscere gli sviluppi più recenti nelle architetture degli elaboratori.
Conoscere standard dinterfaccia e tipologie di reti geografiche e locali.
Conoscere le problematiche ed i prodotti software relativi allimplementazione dei vari livelli di un protocollo di rete.
Realizzare ladattamento di prodotti standard per le comunicazioni a specifiche situazioni applicative.
Progettare e realizzare un semplice protocollo di comunicazione.
Conoscere le principali tipologie di applicazione dellelaboratore in sistemi automatici di controllo, acquisizione ed elaborazione dei segnali, comunicazione.
Affrontare lanalisi e la sintesi di piccoli sistemi dautomazione, in ambito locale o distribuito (attraverso reti telematiche) in riferimento alla scelta compiuta nellarea elettiva e di progetto.
Gli obiettivi saranno raggiunti attraverso la trattazione teorico-pratica dei temi seguenti e lapprofondimento di almeno uno di essi nellArea 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 derrore; 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 allautomazione industriale e dufficio.
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 lautomazione industriale, e di ufficio, tramite lelaborazione e la trasmissione dellinformazione.
Evoluzione delle diverse tecnologie in riferimento alle cause ed alle conseguenze socio-economiche e culturali del loro sviluppo: dalla rivoluzione informatica alla rivoluzione telematica.
Simulazione di algoritmi e di dispositivi che migliorano il parallelismo della macchina di Von Neumann.
Simulazione di architetture parallele con lhardware 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 dellArea Elettiva e di Progetto.
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 lalternativa 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 delleventuale scritto desame, 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 dellarea 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 alleventuale esperienza di stage aziendali condotta dagli alunni al termine del quarto anno.
Questarea 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 dellinsegnamento, perchè vale di più lapprofondimento della problematica affrontata nellambito del progetto sviluppato nellarea elettiva e di progetto, che non uninformazione 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 lArea Elettiva e di Progetto. In questo ambito si potrebbe studiare un caso di riorganizzazione aziendale determinato dallintroduzione 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).