Sei sulla pagina 1di 5

I Compendi OpenSource

di Giacomo Marciani

Teoria, Formulario e Suggerimenti Pratici

Sistemi Operativi

Introduzione ai sistemi di calcolo

Un sistema di calcolo si pu suddividere in quattro componenti: dispositivi sici, sistema operativo, programmi applicativi e utenti 1 .
Architettura del calcolatore L'architettura del calcolatore denisce la struttura hardware e l'organizzazione interna di un sistema di calcolo. In base al numero di CPU di un calcolatore distinguiamo:

sistema dotato di una sola CPU principale in grado di eseguire un set di istruzioni, comprese quelle necessarie ai processi utente. L'utilizzo di microprocessori con nalit speciche 2 , sebbene alleggerisca il carico di lavoro sulla CPU, non trasforma un sistema monoprocessore in un sistema multiprocessore, in quanto essi svolgono in autonomia il proprio compito3 .
architettura monoprocessore:

sistema dotato di pi CPU in stretta comunicazione, che condividono bus, clock, memoria e dispositivi periferici. Questi sistemi sono vantaggiosi in termini di throughput5 , economie di scala6 e adabilit7 . Attualmente esistono due categorie di sistemi mularchitettura multiprocessore

4:

tiprocessore, distinti per tipologia di multielaborazione:



multielaborazione asimmetrica

sussiste una subordinazione gerarchica tra le CPU. Una CPU principale controlla il sistema, organizzando e assegnando compiti specici alle CPU secondarie.  multielaborazione simmetrica9 : sussiste un piano di parit tra le CPU. Ogni CPU abilitata al compimento di tutte le operazioni del sistema10 .

8:

La multielaborazione pu indurre un cambiamento nel modello di accesso alla memoria principale, da UMA11 a NUMA12 , inducendo un calo delle prestazioni, minimizzabile tramite l'ottimizzazione della gestione delle risorse.
1 alternativamente potremmo concepire un sistema di calcolo come l'insieme dei suoi elementi sici, programmi e dati. 2 pensiamo a microprocessori per il controllo del disco, della tastiera e del video. 3 il sistema operativo non comunica infatti con questi microprocessori. 4 anche detti sistemi paralleli, o sistemi strettamente connessi (tightly coupled systems ). 5 l'uso concorrente delle risorse condivise riduce il guadagno atteso, ma comunque l'aumento delle unit di elaborazione consente un lavoro maggiore in minor tempo. 6 la condivisione delle risorse induce un risparmio. 7 un guasto non blocca il sistema, ma si limita a rallentarlo. Questi sistemi sono dunque capaci di realizzare la degradazione controllata (graceful degradation), nanche alla tolleranza ai guasti (fault-tolerance ). 8 anche detta asymmetric multiprocessing (AMP ). 9 anche detta symmetric multiprocessing (SMP ). 10 i processi sono eseguibili contemporaneamente, senza indurre un calo delle prestazioni. 11 ovvero Uniformed Model of Access. L'accesso alla RAM da qualunque CPU richiede lo stesso tempo. 12 ovvero No-Uniformed Model of Access. L'accesso ad acune parti della RAM richiede tempi dierenti per CPU dierenti.

architettura multicore

: architettura multiprocessore in cui pi CPU, dette core, sono raggruppate in uno stesso circuito integrato. Ne consegue un aumento delle prestazioni dovuto alla maggiore velocit all'interno di un singolo chip piuttosto che tra chip distinti, nonch alla minimizzazione della dissipazione della potenza. : sistema costituito da pi motherboard indipendenti capaci di eseguire sistemi operativi eventualemente distinti.
architettura server blade

Un sistema di calcolatori un sistema di calcolo costituito da pi calcolatori distinti ed interconnessi. Distinguiamo:

sistema composto da pi calcolatori completi connessi da una e che condividono una stessa memoria di massa. Sono utilizzati per realizzare ambienti di elaborazione ad alte prestazioni 15 . Distinguiamo due categorie di cluster per tipologia di elaborazione:
sistema cluster

rete14 ,

13 :

: un calcolatore nello stato di attesa attiva16 controlla il server attivo, e, nell'eventualit di malfunzionamenti, ne prende il ruolo.  cluster simmetrici: due o pi calcolatori eseguono indipendentemente le applicazioni, e allo stesso tempo si controllano reciprocamente.

cluster asimmetrici

Le applicazioni devono essere appositamente scritte per sfruttare la parallelizzazione 17 , e la condivisione della memoria impiega tecniche di gestione distribuita degli accessi 18 , i cui progressi sono maggiormente dovuti alle reti di memoria secondaria19 . In base alle funzionalit del calcolatore, distinguiamo:

sistema general-purpose

: sistema di calcolo con funzionalit limitate ed inerenti a speciche aree della computazione. Vi distinguiamo le seguenti categorie: sistemi integrati real-time, sistemi multimediali e sistemi palmari.
sistema specified-purpose

veloce. 15 anche detti high-performance computing environment. 16 anche detto hot standy mode. 17 anche detta parallelization, ovvero la tecnica che consiste nella suddivisione modulare di programma, in modo da potervi denire ussi di esecuzione distinti eseguibili parallelamente su singoli calcolatori all'interno del cluster. 18 anche detta Distributed Lock Manger (DLM ), che implementa le funzioni di controllo all'accesso e la mutua esclusione. 19 anche dette Storage-Area Network (SAN ).

13 anche 14 che si

detti cluster di calcolatori, o clustered systems, o anche cluster. tratti di una rete locale LAN (Local Access Network ), che di una connessione pi

Sistemi distribuiti Un sistema distribuito un insieme di calcolatori collocati a distanza, con caratteristiche spesso eterogenee, interconnessi da una rete di calcolatori per consentire agli utenti l'accesso alle varie risorse dei singoli sistemi. L'accesso alla rete demandato al driver dell'interfaccia sica con la rete. Generalmente si riscontra in questi sistemi una combinazione di modalit FTP e NFS. I calcolatori che compongono il sistema distribuito possono eseguire un sistema operativo distribuito 20 o un sistema operativo di rete 21 . Un ambiente di elaborazione il modello in base al quale un sistema distribuito ore i propri servizi. Distinguiamo i seguenti modelli:

elaborazione tradizionale computazione web-based

modello di programmazione in cui la computazione svolta da calcolatori interconnessi da grandi internetwork, utilizzando il WWW per la comunicazione.
computazione client-server

22 :

: ambiente di elaborazione in cui sistemi server rispondono alle richieste ricevute da sistemi client. Suddividiamo i

sistemi server, in funzione della modalit di interfacciamento con i sistemi client:




i risultati al client.  file server: orono un'interfaccia al le system che consente al client creazione, aggiornamento, lettura e cancellazione dei le.

computazione peer-to-peer

: orono un'interfaccia alle richieste di elaborazione dei client; il server esegue l'azione richiesta e restituisce
server per l'eleborazione

tutti i nodi all'interno del sistema sono connessi da una rete paritetica, ovvero ciascuno di essi pu fungere ora da client ora da server, a seconda che stia richiedendo o fornendo un servizio, e uno stesso servizio pu essere oerto da uno qualunque dei nodi. Vi sono due modalit di immissione nella rete:
 un registro centralizzato di consultazione della rete il proprio servizio. permette ad ogni nodo di sottoscrivervi i servizi oerti. Quando un nodo vuole ottenere un servizio consulta questo registro e stabilisce la connessione direttamente con il fornitore del servizio24 .  un protocollo di scoperta permette ad ogni nodo di inoltrare la propria richiesta di servizio a tutti gli altri nodi della rete, e stabilire con quali di essi poter stabilire la connessione25 .

23 :

20 in un sistema operativo distribuito, le funzionalit del sistema operativo sono distribuite tra diverse macchine interconnesse. 21 un sistema operativo di rete orientato alla fornitura dei servizi di interconnessione e delle applicazioni di rete. 22 la computazione web-based ha dato origine a nuovi dispositivi, quali i bilanciatori di carico (load balancers ) , che distribuiscono le connessioni di rete su una serie di server simili. 23 anche detto modello di sistema da pari a pari, o abbreviato P2P. 24 il sistema Napster utilizza questo tipo di modalit. 25 il sistema Gnutella utilizza questo tipo di modalit.

Programmi, processi, multiprogrammazione e time sharing Un pro una sequenza di istruzioni macchina di un calcolatore elettronico che, nel loro insieme, svolgono un ben determinato lavoro o servizio. Un processo una istanza di un programma in esecuzione su di un calcolatore elettronico, ovvero l'insieme di informazioni necessarie per l'esecuzione del programma stesso. Quindi un processo pu corrispondere ad un solo programma, mentre ad un programma possono corrispondere pi processi. L'esecuzione di un programma dunque la creazione di un processo associato al programma e l'esecuzione delle istruzioni macchina corrispondenti. La multiprogrammazione la capacit di intercalare concorrentemente i ussi di esecuzione dei processi attivi. Un sistema time-sharing26 un sistema multiprogrammato in cui le risorse di calcolo vengono concorrentemente commutate tra i processi attivi; si assegna dunque ciclicamente la CPU a tutti i processi attivi con una frequenza tale da dare all'utente l'illusione che siano eseguiti contemporaneamente.
gramma

26 anche

detto sistema a partizione di tempo.