4.6 Processo di build di ecos Applicazioni...53 Considerazioni finali e Conclusioni...55 Riferimenti Bibliografici...59

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "4.6 Processo di build di ecos...52 4.7 Applicazioni...53 Considerazioni finali e Conclusioni...55 Riferimenti Bibliografici...59"

Transcript

1 Sommario Ringraziamenti...3 Introduzione Sistemi operativi Realtime Concetto di Realtime RealTime OS Hard vs Soft Realtime Panoramica sui Sistemi operativi RealTime Content Switch, Stack, Task Control Block, Preemption e Timeslices Concorrenza Interrupt Scheduler Caratteristiche di ecos Dove è cominciato tutto Cygnus Solutions L'origine di ecos Configurabilità e configurazione I componenti chiave di ecos Supporto a processori e piattaforme di valutazione Supporto tecnico ad ecos Vione d'ineme del stema ecos Terminologia di ecos Il component framework Component Repotory Opzioni di Configurazione Pacchetti e componenti Target Template Caratteristiche di ecos Portabilità Caratteristiche di base di HAL Funzionalità di HAL Configurazione di HAL Componenti di configurazione comuni Componenti di configurazione specifici dell'architettura Inizializzazione di HAL Il kernel di ecos Meccanismi di gestione del tempo in ecos Scheduler nativi in ecos Bitmap Scheduling MLQ scheduler Sincronizzazione dei thread con ecos Esempio di applicazione usando ecos Processo di build di ecos Un'occhiata più da vicino Setup dell'hardware di sviluppo Tool di configurazione di ecos Redboot Installazione di RedBoot Boot di RedBoot

2 4.6 Processo di build di ecos Applicazioni...53 Conderazioni finali e Concluoni...55 Riferimenti Bibliografici

3 Ringraziamenti Ringrazio la Prof. Leonardi e il Prof. Valenti per la pazienza e la disponibilità che hanno avuto nei miei confronti durante il periodo di stesura dell'elaborato. Ringrazio immensamente Alfonso e Patrizia, i miei genitori, per la fiducia dimostrata in questi anni e per la sopportazione delle mie frequenti cri univertarie; senza di loro non sarei mai arrivato fino a questo punto e quindi a loro va tutto il mio rispetto, la mia riconoscenza e la mia stima. Ringrazio Alex, mio fratello, anche lui ha mi sopportato parecchio, soprattutto nelle mie richieste di aiuto notturne pre-esame e Cristiana, sua moglie, che più di una volta è data da fare per darmi aiuto con gli esami. Ringrazio poi mia nonna, i miei zii e i miei cugini che sono sempre interessanti di come stesse procedendo l'univertà. Ringrazio tutti i miei amici, in particolar modo Mattia, Lancia, Della, Menga e Bobby con cui ho passato diverse ore a studiare; sono dimostrati veri amici e credo potrò sempre contare su di loro. Non posso poi non menzionare Kenzo e Ruset per le goliardiche serate passate aseme. Un ulteriore grazie a tutti i compagni di attività sportive, specialmente quelli della pallanuoto con cui sono rimasto in contatto nonostante l'abbia dovuta abbandonare. Devo un grazie anche alle mie amiche Elisa e Alice che mi hanno sempre ascoltato e hanno sempre avuto parole di conforto quando ne avevo bisogno. Infine un grazie a tutti coloro che in qualche modo hanno creduto in me e mi hanno sostenuto. 3

4 Introduzione Un stema operativo (SO, o in inglese OS) è il componente di infrastruttura software di un stema informatico (computer) responsabile della gestione, del coordinamento delle attività e la condivione delle risorse hardware del computer. Il stema operativo mette a dispozione dell'utente una interfaccia software (grafica o testuale) per accedere alle risorse hardware (dischi, memoria, I/O in generale) del stema. Il compito principale del stema operativo è quello di permettere all'utente, umano o non, di interagire direttamente con la macchina. Quando invece parliamo di stema operativo realtime, intendiamo un stema operativo multitasking (che permette l'esecuzione contemporanea di più proces) programmato per applicazioni realtime cioè genericamente con vincoli temporali. Queste applicazioni includono stemi embedded (progettati per uno specifico scopo), robot industriali, macchine a controllo numerico, equipaggiamento scientifico, etc. Come vedrà nel capitolo uno del presente elaborato, un stema operativo realtime rende posbile la creazione di un stema realtime, ma non garantisce che il risultato finale a realtime; questo richiede infatti il corretto sviluppo del software. Un stema operativo realtime non deve necessariamente avere grandi capacità elaborative quanto piuttosto garantire di riuscire a fare il proprio lavoro entro i tempi prefissati. I SO realtime sono valutati in modo migliore più velocemente e/o deterministicamente rispondono a particolari eventi piuttosto che alla quantità di lavoro che riescono a svolgere in un determinato periodo. Nel capitolo uno inoltre vedremo poi come un stema realtime riesce attraverso algoritmi di scheduling (organizzazione del lavoro) a fornire gli strumenti che gli permettono di essere predicibile nel tempo. La diffuone di dispotivi embedded che utilizzano stemi operativi realtime è curamente sottostimata dalla popolazione media; questo perché sono generalmente nascosti. Solitamente hanno risorse limitate e sono studiati per avere una bassa interazione con l'uomo, oppure quando permettono l'interazione, questa avviene in maniera diversa rispetto a quella clasca mouse-tastiera-monitor. L'interazione, nei ca di stemi operativi realtime per dispotivi embedded, avviene solitamente con attuatori (pulsanti) e/o sensori. Un esempio di dispotivi commerciali che fanno uso di questo tipo di stemi operativi sono: lettori mp3, console portatili da gioco, stampanti, fotocamere, dispotivi GPS, robot, telefoni cellulari etc. 4

5 Vista la diffuone di questi stemi operativi, nel capitolo due andremo ad introdurre ecos, un stema operativo realtime, open source, royalty-free per stemi embedded, che viene utilizzato per il tipo di applicazioni poc'anzi descritte. Vedremo come e perché è nato, come è strutturato, quali sono i suoi componenti chiave, come configura e con quali piattaforme hardware può essere utilizzato. Il capitolo tre è dedicato all'approfondimento delle caratteristiche chiave di ecos: il kernel, HAL, lo scheduler e i meccanismi di ncronizzazione dei thread. Nel quarto capitolo poi andremo a vedere un esempio di processo di build di ecos, cioè come riesce attraverso l'ambiente fornito da ecos a realizzare una propria applicazione che girerà poi su una piattaforma hardware reale. Infine l'elaborato conclude con alcune conderazioni e commenti relativi a quanto appreso. 5

6 1 Sistemi operativi Realtime 1.1 Concetto di Realtime Nel panorama informatico vi sono molteplici definizioni di realtime, ma il più di esse sono contraddittorie. Il tema è piuttosto discusso poiché non trova un accordo sulla terminologia. La definizione canonica di un stema realtime, data da Donald Gillies (matematico e informatico), è la seguente: Un stema è realtime quando la correttezza della computazione dipende non solo dalla correttezza logica della computazione, ma anche dal tempo richiesto per produrre il risultato di questa. Se la restrizione temporale del stema non sono rispettate, questo può portare alla cri del stema. Questa definizione, ha portato altri ad aggiungere: è essenziale che che le restrizioni temporali del stema abbiano una garanzia che vengano rispettate. Questa garanzia richiede che il stema a di tipo prevedibile. Sarebbe inoltre gradito che il stema mantenga un altro grado di utilizzazione mentre soddisfa le restrizioni temporali. Il clasco esempio di software che deve essere realtime è quello del stema frenante ABS: se non viene azionato in tempo il stema ABS, questo può causare un incidente. Quindi è estremamente importante che i progettisti di stemi realtime conoscano tutte le posbili castiche di funzionamento del stema in modo da poterne prevedere il comportamento. Per questo motivo i progettisti spendono gran parte del loro tempo a studiare quello che è definito il caso peggiore in termini prestazionali. L'istituto degli ingegneri elettrici ed elettronici (IEEE) definisce invece il concetto di realtime attraverso lo standard POSIX : Real time in un stema operativo: l'abilita del stema operativo di soddisfare un determinato carico di lavoro in un determinato tempo di risposta. Anche il dipartimento di ingegneria aerospaziale del politecnico di Milano dà la sua definizione di stema realtime: un stema capace di garantire requiti temporali del processo sotto il suo controllo. Il stema deve quindi essere veloce e predicibile. Veloce gnifica con basse latenze, per esempio nel rispondere ad eventi esterni ancroni in tempi ridotti. Più è bassa la latenza, meglio il stema risponde ad eventi che richiedono attenzione immediata. Predicibile gnifica che deve essere posbile determinare il periodo di completamento del processo in un tempo certo. 6

7 Un'altra interessante definizione di stema operativo realtime (o RTOS) è quella data dal prof. Claudio Melchiorri del DEIS (Dipartimento di Elettronica, Informatica e Sistemistica dell'univertà di Bologna): un RTOS è un stema in cui per valutare la correttezza delle operazioni condera anche la variabile tempo. Devono essere garantite quindi due tipologie di correttezza: la correttezza logica e quella temporale. La prima implica che i risultati e le risposte forniti dal stema ano quelli previsti (giusta computazione dei dati), mentre la seconda deve fare in modo che i dati ano prodotti entro certi limiti temporali fissati (deadlines). Nel marzo 2003, presso la nostra Univertà, è tenuto un seminario sulla progettazione dei stemi embedded e realtime, durante il quale il Prof. Valenti ha illustrato il suo punto di vista sulle caratterizzazioni realtime: Le specifiche tecniche dei stemi embedded contengono spesso vincoli sui tempi di risposta agli eventi esterni tali, da soli, a giustificare l'avvio di una progettazione hardware dedicata. Tali vincoli temporali, indicati dal Prof. Valenti, possono essere di vario tipo: Deadline: è la richiesta temporale più restrittiva; conste nella pretesa di ascurare un tempo masmo di risposta prevedibile e sempre inferiore ad un certo limite fra il presentar di un evento e la generazione dell'evento effetto. Si conderi, come esempio, un stema di controllo dei freni di un veicolo che, in alcun caso, può ammettere un ritardo imprevedibile fra il comando di frenatura e l'attuazione dello stesso. Average: è una richiesta piuttosto generica che conste nello specificare un ritardo tipico fra evento stimolo ed evento effetto. Questo traduce nel dimenonamento del tempo medio di risposta in una tuazione standard senza conderare il caso peggiore che potrebbe anche essere notevolmente più lento. Burst: è una richiesta che non influisce sul tempo di risposta ma, piuttosto, sulla capacita del stema di non perdere eventi, eventualmente utilizzando strumenti di accodamento hardware (fifo o milari). Si conderi, ad esempio, un frame grabber che deve acquire una immagine senza, ovviamente, perdere alcun pixel, pur potendo impiegare un tempo variabile nella succesva elaborazione dell'informazione. I stemi che hanno almeno un vincolo del tipo deadline sono identificati come stemi hard realtime mentre quelli che hanno almeno un vincolo "average" o "burst" sono detti stemi soft realtime. Nel caso in cui le specifiche funzionali non contengano alcun vincolo temporale, invece, ha un stema senza caratterizzazione realtime. 7

8 1.2 RealTime OS Hard vs Soft Realtime Una volta introdotto il concetto di realtime, posamo approfondire l'argomento andando ad analizzare le due modalità appena annunciate: la modalità hard-realtime e softrealtime. La modalità hard-realtime condera inutile il completamento dell'operazione dopo la sua deadline temporale, poiché questo può portare (nell'ambito di utilizzo) a un guasto completo del stema. I stemi hard-realtime sono usati quando è imperativo che il completamento dell'elaborazione rientri nei tempi prestabiliti. Questi stemi sono rivolti ad ambiti in cui il non rispetto della deadline può causare danni fici al stema e all'ambiente che lo circonda: per esempio un pacemaker o il stema di frenata di un auto. Nei stemi soft-realtime invece posamo pensare che le deadline vengano mediamente rispettate, ma non vi sono garanzie che questo accada, né possono fare previoni deterministiche sui tempi di esecuzione delle operazioni succesve. I stemi softrealtime, sono tipicamente usati dove vi è un accesso di tipo concorrenziale dei dati con più stemi interconnes tra di loro che ne fanno uso. Un esempio tipico è quello del stema che ncronizza i voli aerei di linea: i piani aerei devono rimanere costantemente aggiornati, ma può operare senza danni anche con latenze di qualche secondo. Generalmente anche i stemi audio-video sono di questo tipo: se la garanzia temporale non viene rispettata, avrà un degrado della qualità del segnale, ma il stema può continuare a funzionare. 1.3 Panoramica sui Sistemi operativi RealTime Innanzitutto dobbiamo definire cosa rende realtime un stema operativo (RTOS): un RTOS deve essere multi-threaded e preemptible. Deve cioè permettere l'esecuzione di più thread e deve essere munito di un stema che permetta l'interruzione temporanea di un processo che è in esecuzione senza la sua cooperazione. Tale processo verrà poi ripristinato quando il processo a priorità più alta che è stato messo in esecuzione al suo posto, ha concluso le sue operazioni. 8

9 Deve essere presente un meccanismo di priorità. Nella progettazione del stema, sa a priori che alcuni thread hanno più priorità di esecuzione rispetto ad altri; il stema operativo deve prevedere un meccanismo di gestione di queste priorità. L'OS deve supportare un meccanismo di ncronizzazione dei thread di tipo prevedibile (per esempio mutex, semafori, flags, monitor, etc..). Il comportamento deve essere noto. Ciò implica che i produttori di RTOS rilascino determinate specifiche: masma latenza nel servire una richiesta di interrupt, determinato verificando a analiticamente che sperimentalmente il numero di cicli macchina (clock) che intercorre nel caso peggiore fra l'irq (interrupt request) e l'esecuzione della prima istruzione della ISR (interrupt service routine): questo deve essere prevedibile, ripetibile e compatibile con i requisti dell'applicazione. Questo valore, detto interrupt latency, non dipende dal numero di interrupt multanei in attesa essendo per definizione quello del caso peggiore (worst case). il masmo tempo che richiede ogni chiamata di stema (system call). Questo valore può essere eventualmente dato in forma tabulare per determinate configurazioni, ad esempio il numero totale di task o oggetti di stema. Il progettista ne dovrà tenere conto. il tempo masmo di mascheramento degli interrupt da parte di OS e drivers. Lo sviluppatore ha inoltre la completa responsabilità di caratterizzare opportunamente dal punto di vista temporale ogni elemento che possa introdurre ritardi nel processamento degli eventi da trattare in realtime ad esempio dovrà essere posta molta attenzione ai canali DMA ed all'eventuale adozione di cache per dispotivi di memoria intrinsecamente lenti (DRAM). L'offerta commerciale di stemi operativi Real Time è piuttosto ampia. Senza entrare troppo nel dettaglio, andremo ad elencare quelli più conosciuti: ecos (Red Hat) LynxOS (LynuxWorks) Neutrino (QNX Software System) Nucleus (Mentor Graphics) psosystem (Wind River) 9

10 QNX (QNX Software System) Quadros (RTXC) Linux/RT (TimeSys) VxWorks (Wind River) RTAI (Politecnico di Milano) 1.4 Content Switch, Stack, Task Control Block, Preemption e Timeslices Ogni stema operativo per permettere l'esecuzione contemporanea di thread e proces (stema operativo multitasking), ha bisogno di un stema che salvi lo stato della CPU nei momenti in cui deve eseguire un cambio di processo attivo. Questo stato, cioè il contenuto dei registri della CPU e del program counter, è chiamato contesto e l'operazione di cambio contesto è detto context switch. Un registro è una piccola quantità di memoria molto veloce che riede all'interno della CPU che è usata per velocizzare l'esecuzione di programmi, fornendo un accesso veloce ai dati più usati, solitamente durante l'elaborazione. Il program counter invece è un registro specifico che memorizza l'indirizzo di memoria della prosma istruzione che deve essere eseguita. Si noti che su alcune architetture, il program counter memorizza l'indirizzo dell'istruzione che sta eseguendo. Il contesto normalmente trova su una porzione dello stack di ogni processo e concorre a formare il task control block (TCB) ineme a informazioni di carattere più generale come il nome del task, la priorità o dati statistici di esecuzione utili per il debug (figura 1.1). 10

11 Figura 1.1: Contesto e Task Control Block Lo stack è infatti una struttura dati con politica di accesso di tipo LIFO (Last Input First Output) cioè i dati vengono letti in modo inverso rispetto a cui sono stati scritti. Oltre al contesto, lo stack può contenere: variabili automatiche indirizzo di ritorno di chiamate (call) argomenti relativi ai registri Il meccanismo del context switch è una caratteristica fondamentale dei stemi operativi multitasking poiché anche in caso di CPU ngola, ha l'illuone di avere l'esecuzione multanea di due o più proces: la rapida esecuzione di questo meccanismo (centinaia o migliaia di volte al secondo) dà appunto questa illuone (figura 1.2). Figura 1.2: Meccanismo del context switch Il cambio di contesto può avvenire come risultato di un processo che ha volontariamente rinunciato al suo tempo disponibile di CPU, come decione presa dallo scheduler in conseguenza del fatto che il processo ha terminato il timeslice di CPU oppure in seguito ad una preemption causata dall'arrivo di un thread a priorità più alta. Il timeslice è un periodo di tempo predefinito in fase di progettazione entro il quale ogni processo ha il 11

12 permesso di funzionare; al termine di questo tempo ovviamente il lavoro di quest'ultimo non viene perduto, ma viene congelato per poi essere ripreso al momento opportuno. Lo scheduler è quella parte del stema operativo che occupa di scegliere quale processo mandare in esecuzione (riesumandolo o facendolo partire ex novo). Nelle figure 1.3 e 1.4 viene illustrato per una particolare architettura (H8S), la tuazione della CPU idle (libera) con il task 1 pronto e poi con il task 1 in esecuzione. È importante notare che il context switch è generalmente abbastanza avido di risorse, richiedendo un tempo di CPU conderevole (qualche microsecondo) per ogni cambio di contesto; se da una parte infatti il diminuire del tempo di timeslice potrebbe darci maggiore illuone di esecuzione contemporanea di proces, dall'altra ci porta ad un degrado prestazionale causato dalle richieste di stema effettuate durante il cambio di contesto. Vediamo ora i punti essenziali del context switch partendo dal caso di avere due task, task 1 e task 2, di cui task 1 è in esecuzione (figura 1.4) e subisce preemption a causa dell'arrivo del task 2 più prioritario. 1. Sospenone del processo corrente attraverso il salvataggio del contesto 2. Recupero del contesto del prosmo processo da mettere in esecuzione 3. Inserimento del contesto appena recuperato nei registri della CPU (figura 1.5) 4. Ritorno alla locazione di memoria puntata dal program counter (ritorno alla linea di codice che rimette in esecuzione il processo che era stato interrotto) e quindi dopo al context switch il processo in esecuzione è il task 2 (figura 1.6). Figura 1.3: Stato della CPU con il task1 pronto 12

13 Figura 1.4: Figura il task 1 mette in esecuzione Figura 1.5: il task 2 a priorità più alta di task 1 effettua un Context Switch 13

14 Figura 1.6: Il Task 2 è in esecuzione 1.5 Concorrenza La gestione del multitasking in un stema operativo è tanto importante quanto delicata. Per capire meglio come gestisce il multitasking è necessario mettere in evidenza la differenza che c'è tra thread e proces. Mentre i proces sono solitamente indipendenti tra di loro, utilizzando diverse aree di memoria, i thread condividono risorse di stema, memoria e informazioni di stato. La progettazione di applicativi concorrenti in un ambiente orientato ai proces richiede dei servizi di stema (system call) dedicate alla comunicazione come le pipe o i socket di unix. La memoria viene infatti solitamente gestita attraverso MMU (Memory Managment Unit). In questo caso non sono richiesti particolari accorgimenti nel codice applicativo per ascurare la constenza dei dati scambiati in quanto è il kernel ad occupar di questo (atomicità della read o della write, acces concorrenti). La progettazione degli stes applicativi in un ambiente orientato ai thread invece viene da un lato agevolata dalla condivione della memoria; ogni thread infatti può accedere alla medema locazione di memoria per leggere o modificarne il contenuto senza richiedere alcun servizio al SO. Il software applicativo deve però disporre di alcuni 14

15 strumenti per ascurare la constenza dei dati condivi. Ad esempio: due thread accedono ad una variabile di tipo char che normalmente (dipendente comunque dall'architettura), viene acceduta con una istruzione non interrompibile. In questo caso non estono particolari problemi in quanto in un accesso concorrente in scrittura perde il precedente valore ma mantiene l'ultimo scritto. Ipotizziamo comunque che questa variabile di tipo char (detto comunemente tipo atomico) debba essere incrementata da due thread concorrenti. Il thread A legge il valore corrente della variabile (ad esempio 0) poi accinge a scrivervi il nuovo valore (1). Nel mentre il thread B opera una preemption di A e decide di fare lo stesso, quindi legge ancora 0 (A non ha ancora scritto il suo nuovo valore) e scrive il suo nuovo valore 1. A questo punto il thread A viene ripreso ed esegue la scrittura di 1 mentre il doppio incremento avrebbe richiesto la scrittura del valore 2. I thread A e B devono essere ncronizzati per evitare questo tipo di comportamento che facilmente degenera se il tipo di dati acceduti non è atomico o se le operazioni su questi sono più complesse del semplice incremento. Il SO deve mettere a dispozione dei meccanismi di ncronizzazione (in questo caso dei mutex) e il software applicativo deve utilizzarli; è quindi responsabilità del programmatore/stemista evitare il crear di tuazioni quali race condition (corse critiche) e deadlock (stallo). 1.6 Interrupt Lo stato di interruzione rappresenta un contesto aggiuntivo a quello dei proces o dei thread. Si definisce interrupt un tipo particolare di interruzione della CPU che provoca l'interruzione di un processo qualora verifichino determinate condizioni oppure il processo in esecuzione debba effettuare una richiesta al stema operativo. È come un segnale o messaggio, generalmente di natura ancrona, che arriva alla CPU per avvisarla del verificar di un certo evento. Ci sono due tipi di interrupt: Interrupt hardware generati da dispotivi esterni alla CPU, che hanno il compito di comunicare il verificar di eventi esterni, di solito dispotivi di Input/Output. Interrupt software che sono delle istruzioni assembly, tipo INT xx o SYSCALL, che possono essere asmilate alle chiamate di sottoprogrammi, ma che sfruttano il meccanismo delle interruzioni per passare il controllo dal programma 15

16 chiamante a quello chiamato, e viceversa; vengono utilizzati per accedere direttamente alle risorse del stema operativo. L'uso di interrupt è una tecnica ampiamente utilizzata in stemi multitasking e in particolare in stemi di tipo realtime. Quando presenta un interrupt il SO ha poca libertà di azione in quanto normalmente è bloccata la rilevazione di altri eventi ancroni. Come è stato detto, nei stemi realtime il tempo masmo di blocco di una interruzione, deve essere dichiarato. Per un stema operativo general purpose come UNIX o Linux, il trattamento dell'interruzione viene eseguito dal kernel stesso, eventualmente delegando parte della elaborazione ai device drivers. In un stema operativo realtime invece, il trattamento viene solitamente delegato all'applicativo che è stato scritto in modo che sappia come deve operare. Il kernel mette solo a dispozione i mezzi per ncronizzare i thread con l'evento (segnalazione di semafori, accodamento dei dati, schedulazione di thread). 1.7 Scheduler Sebbene a già stata messa in evidenza l'importanza dello scheduler, cerchiamo di fare un po' di chiarezza sul comportamento nei stemi operativi convenzionali, nei stemi operativi soft-realtime e nei stemi operativi hard-realtime. Per i primi posamo dire che il meccanismo di schedulazione ha l'obiettivo di ottimizzare le prestazioni globali del stema, per esempio cercando il compromesso tra la minimizzazione dell'overhead (cioè richieste aggiuntive a quelle strettamente necessarie) e la distribuzione delle risorse di processore ai vari task. Invece nei stemi soft-realtime cerca di ottimizzare i tempi di risposta, mentre nei stemi hard-realtime lo scheduler ha il compito di garantire il rispetto delle deadline. In questi ultimi stemi, interruzioni e proces hanno tutti una priorità definita in quanto è imperativo che vi a sempre la corrispondenza tra tempo fico e tempo di clock. Riassumendo posamo dire che lo scheduler provvede a scegliere quale thread mettere in esecuzione ogni qualvolta un evento interno od esterno modifichi lo stato globale del stema. 16

17 2 Caratteristiche di ecos 2.1 Dove è cominciato tutto Cygnus Solutions Cygnus Solutions, fu fondata nel 1989 da John Gilmore, Michael Tiemann e David Henkel-Wallace con lo scopo di fornire supporto commerciale al free software. Il suo motto era: Making free software affordable, cioè Rendiamo il free software conveniente. Cygnus è un acronimo di "Cygnus, Your GNU Support", "Cygnus, il Tuo Supporto a GNU. L'idea che ebbero questi sviluppatori fu quella di concentrare il loro lavoro sulla creazione di un piccolo set di strumenti open source che sarebbe poi stato venduto. Iniziarono quindi vendendo il compilatore GNU (GCC) e il debugger (GDB) come un piccolo pacchetto software. Questo fu posbile grazie all'enorme talento di Tiemmann, il quale contribuì a numero port del compilatore GNU e scrisse il primo compilatore nativo in C++. L'altro importante contributo venne da Henkel-Wallace e Gilmore che svilupparono rispettivamente le binutils (utility binarie) e il debugger GDB. Questo lavoro ebbe talmente grandi proporzioni che Gilmore divenne il nuovo mantainer di GDB; quando la comunità internet lo venne a sapere, vi fu una inondazione di differenti veroni del debugger; questo portò a integrare in GDB le nuove caratteristiche proposte dalla comunità. Tutto questo duro lavoro è poi stato ripagato in quello che oggi chiamiamo GNUPro Developers Kit, il quale include: GCC Gnu Compiler Collection, un compilatore con supporto a numero linguaggi di programmazione, fra cui il C in particolare; G++ - Compilatore C++ che fa parte di GCC; GDB - GNU DeBugger; GAS GNU Assembler; LD GNU Linker; Cygwin Un set di strumenti per migrare applicazioni da UNIX/Linux alla piattaforma Microsoft Windows; Inght Interfaccia grafica per fare debug; 17

18 Source-Navigator - Un strumento per la comprenone e l'anali del codice 2.2 L'origine di ecos Alla fine degli anni '90 il mercato dei stemi operativi realtime era piuttosto frammentato. Cygnus, grazie all'esperienza maturata e al rapporto con i produttori di semiconduttori, volle creare una soluzione software per dispotivi embedded che fosse di alta qualità e concorrenziale dal punto di vista dei costi. Questa soluzione andava ad affiancare al set GNUPro, espandendo l'offerta di Cygnus. Quello che questo team andò a sviluppare fu un stema operativo realtime che permetteva l'astrazione dell'hardware e che era altamente configurabile. Nacque co ecos (embedded Configurable operative system), un RTOS che adattava a numero stemi embedded e che grazie alla sua flesbilità permetteva una forte riduzione dei tempi per lo sviluppo di questi stemi: la riduzione dei tempi e quindi dei costi è sempre un aspetto fondamentale nei stemi embedded. Utilizzando il modello di sviluppo open source, ecos è a costo zero dato che può essere scaricato e provato gratuitamente. Inoltre un altro aspetto estremamente importante è l'essere royalty-free, cioè non vi sono neppure costi a posteriori. Gli sviluppatori hanno accesso completo a tutto il codice sorgente, strumenti inclu, che possono essere modificati a piacere. Non ci sono costi iniziali associati a licenze di utilizzo del codice e neppure ai tools relativi; tutto ciò che serve per inizializzare lo sviluppo di un stema embedded può essere fatto senza alcuna spesa. Gli sviluppatori non devono neanche dare nessun contributo relativo al codice sviluppato per componenti aggiuntivi o applicazioni sviluppate, ma devono fornire le eventuali modifiche fatte al codice di ecos. Questo permette alla comunità open source di sviluppare un prodotto sempre migliore Configurabilità e configurazione Per capire meglio l'architettura di ecos, è importante analizzare le peculiarità del framework che compongono il stema ecos. Il framework dei componenti è specificamente orientato ai stemi embedded e adatta perfettamente al modello dei stemi embedded. 18

19 Usando questo framework, un enorme quantità di funzioni per una applicazione può essere costruita da componenti software già utilizzati o da blocchi di esso. Il framework dei componenti di ecos è stato progettato per minimizzare l'uso di memoria dei componenti del stema, permettere agli utenti di tenere sotto controllo le tempistiche per soddisfare le caratteristiche di realtime, ed utilizzare i più diffu linguaggi di programmazione (C, C++ e assembly). La maggior parte dei stemi embedded oggi sul mercato supporta più funzionalità di quelle che servono per una specifica applicazione. Spesso viene incluso software aggiuntivo che dà un supporto generico a caratteristiche a cui gli sviluppatori di stemi embedded non sono interessati o di cui non hanno bisogno. Questo software aggiuntivo concorre a rendere il stema più complesso ed inoltre più il codice è lungo e più ci sono probabilità che qualcosa non vada. Un esempio estremo è quello del programma Hello world : usando i tradizionali RTOS, che hanno supporto a mutex, task switching ed altre caratteristiche integrate, tutte queste funzionalità sarebbero presenti nonostante non ce ne a il bisogno. In questo senso ecos dà la maggiore posbilità di controllo dei componenti di run-time, dando la posbilità agli sviluppatori di rimuovere ciò che non è necessario. Il stema ecos è quindi un stema altamente scalabile: possono creare stemi con dimenoni dell'ordine delle centinaia di bytes fino a migliaia di kilobytes quando caratteristiche come lo stack di rete e componenti di terze parti come un web server vengono utilizzate. Gli sviluppatori possono scegliere i componenti che soddisfano le richieste base delle loro applicazioni e configurare quel particolare componente per una specifica implementazione richiesta dall'applicazione. Questo gnifica potere abilitare o meno una specifica caratteristica di un componente, o selezionare una particolare implementazione di quel componente. Un esempio pratico è quello della configurazione dello scheduler del kernel: ecos dà la posbilità di selezionare il numero di livelli di priorità e se utilizzare i time slicing. Ogni linea di codice non necessaria per l'applicazione viene eliminata dall'immagine finale dell'applicazione. La configurabilità permette alle ditte di costruire una base di componenti riutilizzabili, con l'accesso al codice sorgente del componente. Questo può ridurre il tempo di sviluppo e il tempo di immisone sul mercato poiché i componenti sono altamente portabili e possono essere utilizzati in un ampio range di applicazioni. Il framework di ecos incoraggia lo sviluppo di codice di terze parti in modo tale da estendere caratteristiche e funzionalità dei componenti chiave di ecos. Se gli 19

20 sviluppatori lavorano per estendere funzioni sul prodotto e contribuiscono a renderle disponibili in ecos, la crescita delle funzionalità di ecos sono senza limiti. Inoltre, se la funzionalità non è al momento disponibile, il codice sorgente è disponibile e permette di risolvere il problema da sé. La filosofia del controllo dei componenti nell'implementazione di ecos è quella di ridurre le dimenoni del codice, sempre e il più posbile. In questo modo anche stemi minimali non soffrono dell'inserimento di codice aggiuntivo necessario al supporto di caratteristiche avanzate che vengono usate solo in stemi più comples. Nello sviluppo di applicazioni, i metodi di controllo dei componenti software possono essere di 3 tipi: a tempo di esecuzione, a tempo di link e tempo di compilazione. Il metodo utilizzato da ecos è quest'ultimo, in combinazione con il linking selettivo fornito dal GNU Linker: in questo modo hanno i migliori risultati in termini di dimenone del codice e ciò lo rende adatto allo sviluppo di stemi embedded. L'uso del metodo di controllo a tempo di compilazione, anche detto metodo di configurazione a livello sorgente, avviene grazie al preprocessore C e ciò offre numerosme opzioni specifiche che possono essere applicate al codice. Oltre alla generazione di codice più corto, la configurazione a livello sorgente offre molti altri importanti vantaggi nello sviluppo di software per stemi embedded: le applicazioni sono più veloci perché le variabili non devono essere controllate durante l esecuzione per determinare quale azione intraprendere; il codice è più reattivo e le latenze sono ridotte, il che permette di avere stemi più deterministici che è molto importante in dispotivi realtime; il codice generato è più semplice, rendendo verifiche e test più facili da eseguire il codice è generato su misura dell'applicazione e crea quindi una specifica applicazione per RTOS; i costi possono essere ridotti perché l'utilizzo di risorse è ottimizzato e il numero di cicli di CPU sono sfruttati in modo efficiente, permettendo l uso di hardware più economico I componenti chiave di ecos Le funzionalità standard che aspettano di avere in un stema operativo realtime per dispotivi embedded, sono tutte incluse aseme al kernel realtime come componenti 20

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

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

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

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

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

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

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

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

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

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

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 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

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

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

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

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

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

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

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

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

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

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

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

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

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

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

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

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

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

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

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

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

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

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

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 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

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 RTX 2009: funzionalità ed uso pratico Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Definizione di Sistema Tempo Reale: Definizione

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Introduzione ecos. Agenda. Giovanni Perbellini

Introduzione ecos. Agenda. Giovanni Perbellini Introduzione ecos Giovanni Perbellini Agenda Introduzione ecos Toolchain Download codice sorgente Binutils GCC/G++ Newlib GDB/Insight Compilazione toolchain Selezione Target Compilazione ecos Configtool

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

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

Antivirus. Lezione 07. A cosa serve un antivirus

Antivirus. Lezione 07. A cosa serve un antivirus Lezione 07 Antivirus A cosa serve un antivirus Un antivirus è un programma studiato per cercare tramite una scansione nel sistema in cui è installato la presenza di virus. La funzionalità di un antivirus

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

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

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

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

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

DOCUMENTAZIONE POISSON

DOCUMENTAZIONE POISSON DOCUMENTAZIONE POISSON INDICE: 1. Primo approccio all'interfaccia 2. Distribuzione dei dati 3. Effettuare una elaborazione e una lettura dell'elaborazione 4. Sistema di aggiornamenti 5. Assistenza 6. Acquisto

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

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata. Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa

Dettagli

TITLE Sistemi Operativi 1

TITLE Sistemi Operativi 1 TITLE Sistemi Operativi 1 Cos'è un sistema operativo Definizione: Un sistema operativo è un programma che controlla l'esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

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

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

Dettagli

Procedura per la configurazione in rete di DMS.

Procedura per la configurazione in rete di DMS. Procedura per la configurazione in rete di DMS. Sommario PREMESSA... 2 Alcuni suggerimenti... 2 Utilizzo di NAS con funzione di server di rete - SCONSIGLIATO:... 2 Reti wireless... 2 Come DMS riconosce

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

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

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

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

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

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

System Center Virtual Machine Manager Library Management

System Center Virtual Machine Manager Library Management System Center Virtual Machine Manager Library Management di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione La Server Virtualization è la possibilità di consolidare diversi server fisici in un unico

Dettagli

L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche.

L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche. L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche. Le licenze Cosa è la licenza? licenza o contratto d'uso è il contratto con il quale

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545 Capitolo 3 - Dalla strategia al piano editoriale GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI 03078860545 Social Toolbox ed i contenuti presenti nel seguente documento (incluso a

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE PREMESSA La presente guida è da considerarsi come aiuto per l utente per l installazione e configurazione di Atollo Backup. La guida non vuole approfondire

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Hardware delle reti LAN

Hardware delle reti LAN Hardware delle reti LAN Le reti LAN utilizzano una struttura basata su cavi e concentratori che permette il trasferimento di informazioni. In un ottica di questo tipo, i computer che prendono parte allo

Dettagli

Implementazione di sistemi real time

Implementazione di sistemi real time Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

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

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

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

Approfondimento: Migrazione dei database e backup della posta

Approfondimento: Migrazione dei database e backup della posta Approfondimento: Migrazione dei database e backup della posta In questo approfondimento ci focalizzeremo sulla migrazione dei database analizzando le differenze operative e le varie implicazioni a seconda

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 (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

CRM Configurazione e gestione accessi

CRM Configurazione e gestione accessi Gestione dei Reparti VtigerCrm fornisce funzionalità per configurare i privilegi di accesso ai dati in maniera granulare per ogni utente o gruppo di utenti registrato nel programma. Le funzionalità di

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003)

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003) Università degli Studi Magna Græcia di Catanzaro Corso di Laurea in Ingegneria Informatica e Biomedica Sistemi Operativi A.A. (2002-2003) Docente: Prof. Mario Cannataro cannataro@unicz.it www.icar.cnr.it

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2

FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2 FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2 Con l avvento di Windows Vista ed Sql Server 2005, e quindi dei Pc con tali sistemi già preinstallati, il setup di Inazienda può diventare un operazione piuttosto

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

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013] MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire

Dettagli