Esistono vari modi per classificare le architetture hardware
by user
Comments
Transcript
Esistono vari modi per classificare le architetture hardware
MODELLI ARCHITETTURALI Esistono vari modi per classificare le architetture hardware, ricordando quella di Flynn(1972) si basa su due tipi di flussi: flusso di istruzioni; flusso dei dati; A seconda di come si combinano flusso di dati e istruzioni si hanno 4 tipi di configurazioni ISTRUZIONI SINGOLE ISTRUZIONI MULTIPLE DATI SINGOLI SISD MISD DATI MULTIPLI SIMD MIMD SISD (SINGLE ISTRUCTION SINGLE DATA) SIMD(SINGLE ISTRUCTION MULTIPLE DATA) MISD(MULTIPLE ISTRUCTION SINGLE DATA) MIMD(MULTIPLE ISTRUCTION MULTIPLE DATA) SISD La macchina di Von Neumann è un esempio - tutte le macchine che hanno una sola CPU appartengono a questa categoria. SIMD l'elaborazioni avviene su più flussi dati in contemporanea ma con un singolo flusso istruzione.(macchine a vector processor o array processor), sfruttano la stessa istruzione su flussi dati diversa. MISD Ad oggi non sono state ancora costruite macchine di questa topologia. MIMD Sono elaboratori con più unita centrali indipendenti che posso lavorare anch'essi su flussi dati differenti. Per questa categoria si fa un ulteriore classificazione in riferimento a come è suddivisa la memoria fisica: macchine a memoria fisica condivisa(multiprocessor)-shared memory macchine a memoria privata(multicomputer)- multiprocessor avendo una memoria condivisa hanno un unico spazio di indirizzamento condiviso, quindi visto il flusso di dati multiplo si deve gestire e sincronizzare opportunamente la memoria.(rimedio Memoria distribuita) multicomputer non avendo una memoria condivisa lo scambio di messaggi(message passing) avviene mediante opportune procedure(send e receive), le LAN sono sistemi MIMD multicomputer a memoria privata con mezzo condiviso. Le politiche di message passing più comuni sono Hypercube, Mesh, Torus. Cluster di pc Si può pertanto parlare propriamente di cluster quando un insieme di computer completi ed interconnessi ha le seguenti proprietà: I vari computer appaiono all’utente come una singola risorsa computazionale; Le varie componenti sono risorse dedicate al funzionamento dell’insieme. Questi sistemi utilizzano tecnologia Myrinet e QsNet e i sitemi operativi Osix, OpenMosix, Beowulf, ParallelKnoppix che permettono l'interconnessione basata su canale anche a gruppi di pc. Vantaggi: enorme diminuzione del tempo di elaborazione. Un cluster di PC è un gruppo di computer collegati tra loro di operare come una singola unità . I cluster sono stati progettati per ottenere prestazioni di alto livello e di calcoli complessi . Essi sono stati utilizzati per sostituire il supercomputer sia perché non sono significativamente meno costosi da montare e mantenere , e sono capaci di prestazioni simili . I cluster possono essere costruite in qualsiasi ufficio con il giusto equipaggiamento e un'attenta pianificazione . Il cluster più elementare contiene solo due computer . Come si aggiungono altri computer, la rete diventa più complessa . Cose che ti serviranno tre o più computer Cluster scaffale : Finestre elenco Network cavi piatto interruttore Mostra più istruzioni 1 riunire tutti i computer che si desidera collegare alla vostra rete per creare il cluster . I computer dovrebbero essere equipaggiati con lo stesso hardware , il software e il sistema operativo . Impostare il computer in modo che le impostazioni di tutti i computer sono uguali . 2 Organizza i computer su una griglia cluster. Questi rack sono progettati su misura in base al numero di computer che si intende utilizzare per costruire il cluster . Essi sono utilizzati per memorizzare e organizzare i PCU nel cluster e ridurre al minimo la quantità di spazio del cluster occupa . 3 Configurare rete del cluster . Tutti i computer devono essere collegati in rete attraverso un interruttore piatto con i cavi Ethernet di base . 4 Configurare un account di servizio di clustering sul gruppo amministratore locale su ogni computer del cluster. < Br > 5 consente al prestatore di servizio di crittografia di Windows su ogni computer della rete . 6 Installare Windows 2003 cluster su ogni computer del cluster . 7 Aprire Amministrazione cluster . Qui, i computer della rete saranno chiamati nodi . Selezionare " Crea nuovo gruppo " dalla finestra a discesa e selezionare " OK ". Si aprirà una nuova procedura guidata cluster. 8 Seguire le istruzioni della procedura guidata di installazione per completare l'impostazione del cluster. Il prompt varierà , a seconda delle vostre risposte e del tipo di gruppo che si sta configurando . ALTRO MODO: SCARICARE PARALLELKNOPPIX http://www.parallelknoppix.info/distro.aspx Un po' di storia: prime architetture aterminali remoti-- architetture client server Architettura cooperativa: L'evoluzione della architettura client-server è l'architettura cooperativa che si basa su entità autonome che esportano e richiedono servizi secondo il modello di sviluppo a componenti per la programmazione lato server proprio delle programmazione a oggetti . Di fatto è stato preso uno dei principi chiave della programmazione orientata agli oggetti, l'incapsulamento , applicandolo all’ abbattimento delle differenze tra i prodotti usati nell’ infrastruttura hardware, software, di programmazione e di rete di un sistema distribuito. Per rendere efficace l’ utilizzo di questi meccanismi è necessario introdurre una standardizzazione sulle modalità con la quale i servizi vengono offerti e come i client possano richiederli: ◀ oDp ▶ ( Open Distributed Processes ) e CORBA ( Common Object Request Broker Architecture) sono due esempi di standardizzazione. Architettura WEB-centric L’ evoluzione che negli ultimi anni ha caratterizzato i sistemi distribuiti riguarda il Web : la diffusione capillare delle piattaforma mobili ha, di fatto, provocato uno spostamento delle applicazioni sul server facendo “ in qualche modo” regredire gli host quasi “ a terminali stupidi del secolo passato” , utilizzati solo per l’ interfaccia grafica verso l’ utente. Molte applicazioni gestionali sono state “ convertite al Web” rendendo il Web server come centro del sistema distribuito ( WEB-centric) al quale i client vi accedono per ottenere dei servizi: tutta la computazione avviene sui server che restituisce ai client il risultato. Architettura completamente distribuita In opposizione alla architettura WEB-centric troviamo l’ architettura completamente distribuita, tipica di sistemi dove è necessaria la cooperazione di gruppi di entità paritetiche, come nei sistemi ◀ groupware ▶ , che dialogano tra loro ciascuno offrendo i propri servizi e richiedendo servizi che spesso risultano essere duplicati per garantire l’ immunità ai guasti (vengono introdotte ridondanze anche nei dati). Le tecnologie più importanti sono: ■◗ OMG ( Object Management Group ): è un consorzio creato nel 1989 da varie aziende tra cui Microsoft , HP , NCR , SUN , allo scopo di creare sistemi di gestione di architetture distribuite; ■◗ RMI ( Remote Method nvocation ): è una tecnologia che consente a processi Java distribuiti di comunicare attraverso una rete; è specifica appunto del mondo Java ; ■◗ DCOM ( Distributed Component Object Model ): è una tecnologia informatica introdotta nel 1996 da Microsoft ed è basato estensione in rete della precedente tecnologia COM Architettura a livelli Per alleggerire il carico elaborativo dei serventi sono state introdotte le applicazioni multi-livello, nelle quali avviene la separazione delle funzionalità logiche del software in livelli. Si introducono gli strumenti di middleware , cioè uno strato software “ in mezzo” che si colloca sopra al sistema operativo ma sotto i programmi applicativi, e sono l’ evoluzione dei sistemi operativi distribuiti. Questo software si interpone quindi negli elaboratori locali tra le applicazioni e il sistema operativo locale creando un’ architettura a tre livelli , può quindi essere diverso da host a host, e sarà descritta nella prossima lezione. Riportiamo due definizioni di middelware . Lo scopo principale di middleware è di permettere e garantire l'interoperabilità delle applicazione sui diversi sistemi operativi. Inoltre permette la connettività tra servizi che devono interagire e collaborare su piattaforme distribuite sulla base di meccanismi di programmazione e API relativamente semplici. Di fatto la presenza di questo strato rende facilmente programmabili i sistemi distribuiti offrendo una specifica modalità di interazione, che può essere per esempio un paradigma di interazione basato sulla chiamata di procedure remote RPC Remote Procedure Call ) oppure un paradigma di programmazione basata sullo scambio di messaggi