Newsgroup: it.comp.os.linux.sys
Titolo: Dual Processor, API o semplicemente Sistema Operativo?

Salve a tutti:
Mi rivolgo a questa news fiducioso della preparazione e serietà delle
persone che la frequentano (fino ad ora gli interventi che ho letto sono
stati da me più che apprezzati...). Bhe, l'altro giorno con un amico si
è parlato di sistemi "dual processor".
Ora, i sistemi (hardware) dual processor devono essere supportati da
appositi sistemi operativi (come ad esempio Linux). Io uso Linux da
ormai un anno e quindi sono a posto ma il mio amico, che usa quella roba
lì... come si chiama?... ha si! winpiant98, aveva delle perplessità:
1) Egli affermava difatti che win98 non supporta un sistema
DualProcessor, e fin quì penso sia giusto.....
2) Egli affermava inoltre che, anche disponendo di un sistema che
supporta più di una CPU, bisogna che anche avere i programmi che
supportino più di una CPU, il che credo sia una CAZZATA MOSTRUOSA (anche
se non ne sono certo al 100%).
Il mio amico inoltre ha dimostrato la sua tesi dicendomi che se le API
(che penso centrino relativamente) di un   programma non supportano un
Dual Processor questo sarà pressochè inutile...
Non so francamente chi fra me e lui abbia ragione ma le cose dette dal
mio amico mi sembramo delle grandi bufale... Comunque, c'è qualcuno così
gentile da illuminarmi sull'argomento ed in particolare sul DP e sulle
API? Grazie e scusate per la domanda, forse per voi scontata!

 Dual Processor questo sarà pressochè inutile...
Se un programma esegue delle fork (man fork):
    #!/usr/bin/perl
    print "Padre: Partito!\n";
    $pid = fork();
    if ($pid == 0) {
        print "Figlio: Sono il figlio!\n";
        sleep 1;
        print "Figlio: Addio, mondo crudele!\n";
        exit 0;
    }  else {
        print "Padre: Sono il padre di $pid !\n";
        sleep 2;
        print "Padre: Muoio...\n";
    }
o se è multi-threaded (qui l'esempio è un po' più complicato da fare
con perl), dovrebbe subito avvantaggiarsi di un OS che supporti
il SMP (ad esempio Linux ed NT).
In genere però anche per applicazioni - specie se CPU bound -
non pensate per essere eseguite in parallelo, si hanno dei
notevoli vantaggi: mentre il processo in questione utilizza una
CPU, l'altra resta a disposizione di altre applicazioni o del
sistema operativo.

Ciao 
galat...@libero.it
,
 > 2) Egli affermava inoltre che, anche disponendo di un sistema che
 > supporta più di una CPU, bisogna che anche avere i programmi che
 > supportino più di una CPU, il che credo sia una CAZZATA MOSTRUOSA (anche
 > se non ne sono certo al 100%).
 > Il mio amico inoltre ha dimostrato la sua tesi dicendomi che se le API
 > (che penso centrino relativamente) di un   programma non supportano un
 > Dual Processor questo sarà pressochè inutile...
bisogna distinguere diversi casi:
se il S.O. gestisce piu' CPU e i programmi da far girare contemporaneamente 
sono > 1 allora il vantaggio sara' avidente anche se il singolo programma e'
progettato per lavorare su una sola CPU, perche' avra' + tempo macchina solo
per se' (il carico complessivo e' distribuito su piu' CPU).
se il S.O. gestisce piu' CPU e devi far funzionare 1 solo programma
"grosso", che non prevede la gestione in parallelo di operazioni interne
(thread) allora non guadagni molto, perche' il S.O. fara' girare il tuo
"programmone" su una sola CPU.
se il S.O. gestisce piu' CPU e il tuo singolo programma prevede l'utilizzo
contemporaneo di piu' CPU ( => internamente e' progettato per eseguire i
compiti in parallelo, distribuendoli su piu' thread) allora vedrai la
velocita' del programma aumentare x n CPU (+/-, non esattamente)
IMHO
-- 
Pa.Ped, Como
http://www.fastflow.it/~paolop
ICQ: 4755831
VOTE AGAINST SPAM! 
http://www.politik-digital.de/spam/it/

 Dual Processor questo sarà pressochè inutile...
Il tipo di parallelismo in questione e` SMP. In questo modello
non c'e` la necessita` che il processo distribuisca carico. E` il
sistema operativgo che decide la cpu che eseguira` ciascun
processo lanciato da un programma (non so se ci sono dei
meccanismi che permetto di dare direttive al sistema operativo).
Sono altri i tipi di architetture in cui il programma deve essere
progettato e scritto tenendo conto dei processori che avra` a
disposizione e di come sono connessi.
Spero di non essermi allontanato dal vero
                 ||
        Avro` detto cazzate?
A presto,
   Nuccio
 ---
You can find me at:
 e-mail: 
xywznucci...@usa.net
  REMOVE XYWZ FROM MY ADDRESS
 ICQ# 64759760

 Dual Processor questo sarà pressochè inutile...
Cazzata.
-- 
  /Kinkie
Se sulla scatola c'e` scritto "Per windows 95 e superiori", dovrebbe
funzionare sotto Linux, vero?

 comportamento del programma.
Processori fanno una cosa del genere. E' possibile, anche se mi
sembra improbabile, che siano riusciti a tirare fuori qualcosa di
interessante anche a livello di programma. Vedrei piu` probabile
un utilizzo massiccio dei thread da parte del sitema operativo
che si traduce nella parallizzazione delle chiamate a sistema.


 
Infatti non se la prende: credo che intendesse dire che le
applicazioni grafiche del BeOS hanno almeno 2 thread, uno che
colleziona eventi e aggiorna il display e l'altro che gestisce
l'applicazione vera e propria.
(bisogna poi vedere quanto questo sia realmente vantaggioso)
Ciao,
-- 
Diego    | Per le repliche elimina dal mio indirizzo le 
Dainese  | `x' e inverti le due parole intorno alla `@'