Newsgroup: it.comp.aiuto
Titolo: Grande domanda

In parole povere cosa significa esattamente dire che un programma funziona
a 8 16 32 bit? 
Uno speciale ringraziamento a chi riuscira' a spiegarmi l'arcano.
----Alberto Bellutti----
--be...@mbox.vol.it--

a 8 16 32 bit? 
Di per se', significa che il codice macchina del programma manipola dati
e indirizzi di memoria in quantita` di 8, 16 o 32 bit (adesso anche 64 o
piu`, in alcune macchine di fascia alta, *molto* alta).
Non si tratta pero` di una scelta libera: e` il microprocessore che impone
dei limiti verso l'alto: ad es. un processore a 8 bit (tipo lo Z80) non
puo` eseguire codice a 16 o 32 bit (altrimenti non sarebbe a 8 bit...), 
mentre un 32 bit puo` eseguire istruzioni a 32 o 16 o 8 bit.
E' chiaro che, se occorre lo stesso tempo per eseguire le stesse istruzioni
su dati di lunghezza diversa, usare codice a 32 bit significa accrescere no-
tevolmente le prestazioni, dato che in tal modo elaboro piu` dati nello stesso
tempo.
Quanto detto sopra vale per tutti i tipi di processori, dagli Intel ai RISC
6000, agli Sparc, agli Alpha. C'e` pero` un altro aspetto della questione 
16/32 bit, legato esclusivamente ai processori Intel (rimasti gli unici in
cui tale questione si ponga ancora, e a livelli - a volte - da guerra santa).
I primi Intel, infatti, erano processori a 16 bit (non considero l'8080, che
non e` mai entrato nel mondo MSDOS e successori), come del resto quasi tutti 
gli altri concorrenti sul mercato, ma per compatibilita` col passato (8080)
hanno adottato un'architettura di memoria a "segmenti": ossia la RAM non
veniva vista come un unico spazio lineare con indirizzi da 0 a N, bensi' di-
visa in segmenti da 64 KB, per indirizzare i quali bastano 16 bit: ed e` da
questo aspetto che deriva tutta la questione 16/32 bit nei PC; infatti,
ancora oggi, dopo oltre 15 anni, l'architettura a segmenti e` ancora ben 
presente negli Intel a causa del perpetuarsi del DOS, da sempre rigidamente 
legato a detta architettura.
Se consideriamo i programmi di oggi, che manipolano normalmente non piu` pochi
KB, bensi' anche parecchi MB di dati, usare ancora l'architettura a segmenti
("programmi a 16 bit") invece di quella lineare usata dalle istruzioni a 32
bit, significa perdere parecchio in prestazioni, riducendo anche il Pentium
piu` veloce ad un 8086 sovralimentato.
In pratica poi, sia Windows 3.x che il 95, che alcuni programmi DOS, usano
per quanto possibile istruzioni a 32 bit, ma la presenza del DOS (anche
sotto Windows 95) e delle sue inevitabili limitazioni impongono un pesante
utilizzo della modalita` a 16 bit, con conseguente calo di prestazioni ri-
spetto a quanto teoricamente possibile.
L'unico modo per ovviare a cio`, e` quello di abbandonare defitivamente il DOS,
mascherato o meno, e ricostruire ex-novo i S.O.: i risultati si chiamano OS/2,
Windows NT, Linux, Solaris x86, ...
Chiudo qui, senno` tanto vale che scriva un libro...
Saluti,
Luca Polo.
-- 
+-----------------------------------------++---------------------------+
| Luca Polo   : 
ja...@gest.unipd.it
        || System administrator,     |
| (finger 
ja...@berica.gest.unipd.it
 for   || Ist. di Ing. Gestionale,  |
| address and phone numbers)              || Universita` di Padova.    |

Alberto, spegni il computer e non accenderlo mai piu'.
Non fa per te.

Non fa per te.
Come si fa a spegnere un computer?
----Alberto Bellutti----
--be...@mbox.vol.it--

 Uno speciale ringraziamento a chi riuscira' a spiegarmi l'arcano.
 Hello, fratello ! (Bella rima idiote, eh ?) ;-)
Non temere: non intendo ironizzare, IO !
Preferisco spiegarti quel poco che so ;->
In pratica la differenza tra gli 8 i 16 ed i 32 bit sta nella
trasmissione contemporanea di linee di dati.
Detto in altre parole, facendo l' esempio di una scheda di espansione
(Sound Blaster opp. la scheda video che gestisce la grafica del tuo PC),
ne esistono a 8, 16, 32 ed oggi anche a 64 bit. Ora, siccome il bit e'
l'unita' elementare di informazione del Computer (sarebbe una delle due
cifre del sistema binario: 0 -circuito chiuso- e 1 -circuito aperto-),
cio' vuol dire che esistono schede che riescono a comunicare fino a 64
di questi 0 e 1 CONTEMPORANEAMENTE al processore (le schede dette PCI
opp. IBM Microchannel).
Un sistema operativo a 32 bit (ad es Win95 opp. IBM OS/2 Warp), pertanto
opera nello stesso modo: riesce a scambiare col sistema il doppio dei
dati allo stesso tempo rispetto ad uno a 16 bit. Cio' non vuol dire che
un PC con sistema operativo a 32 bit va al doppio della velocita', ma
che ha diversi vantaggi in + nel multitasking (ovvero esecuzione di +
programmi contemporaneamente)e nella capacita' di gestire un numero
maggiore di informazioni.
Dimmmi se sono stato esauriente, e...
"Ho vinto quacchecosaa ?"
                  Jos

Non fa per te.
E bravo Francesco!
Fortuna che in Usenet c'e', almeno, qualche grande esperto come te che
ci dispensa sempre volentieri i propri preziosi consigli.
Credo proprio che tu abbia perso un'occasione per stare zitto.
				Bye, Dancin'.		

Non fa per te.
Detto da un idiota che si nasconde dietro uno stupido pseudonimo, non firma
e non dice nulla di utile, e` un complimento per Alberto.


e non dice nulla di utile, e` un complimento per Alberto.
Scusa, ma e' cambiato il dominio di VOL ?
Ora si chiama @walt.disney ??
:-)) :-)) AAhhahahaha
Ciao, Beppe
------------------------------------------------------------------
ALFA ASTUCCI srl - Viale del Lavoro 7/9 15100 ALESSANDRIA - ITALIA
Telefono : 0131 / 24 81 71	      Phone : +39 - 131 - 24 81 71
Fax : 0131 / 21 88 41		      Fax : +39 - 131 - 21 88 41
           Internet homepage : 
http://www.intelnet.vol.it/alfa/
------------------------------------------------------------------

e non dice nulla di utile, e` un complimento per Alberto.
Se ricordo bene e' lo stesso che tempo fa ha richiesto di inviare
virus come attachment sui gruppi di discussione, pretenderesti che
abbia il coraggio di firmarsi ?
Attento a non offenderlo, ...gli piace rispondere in modo molto
maleducato e degno del suo Q.I. :)
ciao
Amedeo
ps
vi consiglio di mettere un bel filtro sul vostro client (come ho fatto
io) per scartare i suoi sproloqui
Amedeo Lanza di Casalanza
--  
am...@mbox.vol.it
  --

Dimmmi se sono stato esauriente, e...
Esaurientissimo, io aggiungerei qualche precisazione sul comportamento dei
programmi a 16 bit sui sistemi operativi a 32 bit: molti potrebbero pensare
che basti il SO 32 bit per velocizzare i programmi a 16, e quando gli si dice
che non è vero non si fanno un'idea del motivo. Io credo che la spiegazione
sia relativamente semplice. Nei vecchi (?) programmi compilati a 16 bit un
dato da 32 bit veniva passato alle routine del SO in due parti (due word),
occupando due (virtuali) cicli macchina, laddove un programma compilato a 32
bit ne occupa uno soltanto, eseguendo il trasferimento "in un colpo". Piccolo
problema: i programmi a 16 bit, quando girano su un SO a 32, mica subiscono
una mutazione... continuano a trasferire quel dato in due tempi, poiché sono
stati scritti per eseguire quella operazione in quel modo. L'incremento di
velocità che alcuni programmi a 16 bit subiscono girando su SO a 32bit è in
gran parte dovuto al loro utilizzo di routines appartenenti al SO (che sono a
32 bit, ovviamente).
Beh ci sono sicuramente altri aspetti, ma credo che questo sia il più "visual"
:-) e serva a dare giusto un'idea della situazione.
Io credo che (contrariamente a quel che ne pensa pippo) questo argomento sia
tra quelli che generano maggior confusione, e non sarebbe male parlarne un
po'...
Saluti
Flavio
------------------------------------------------------------------
"Se la benzina si chiama verde, la parola verde non ha più senso."
(Beppe Grillo) 

 32 bit, ovviamente).
Credo pero' che ci sia un'ulteriore interfaccia di mezzo. Correggetemi se s=
baglio
ma le chiamate a dll che fa un programma a 16 bit rimangono tali e vanno tr=
adotte
inserendo un'interfaccia. E' vero?
--
Paolo
 
paolo....@iol.it
 
http://fs001mi.iol.it/paolo.bonetto/
   "ride bene chi ride ultimo ed io per ultimo mi voglio scompisciare."
					- Toto' -
=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D
  MY THOUGHTS REPRESENT NO CORPORATION ONLY MYSELF
=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D=
-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D

che non è vero non si fanno un'idea del motivo. ...
ti stai dimenticando che se prendo un 8088 ed un Pentium entrambi a 
4.77 Mhz il programma girera' comunque piu' velocemente sul Pentium
poiche', anche escludendo TUTTE le cache, il sistema esegue le stesse
istruzioni in minor tempo grazie al miglioramento architetturale.
Quindi macchina diversa, stesso clock, architettura a 16 e 32 bit...
risultato: VELOCITA'!!!
 *****************************
*      Roberto Colmegna       *
 * 
roberto....@login.it
 *
  ***************************

risultato: VELOCITA'!!!
OK, d'accordo, ma qui non si stava parlando di "architetture" o di
"processori" ma di "software". Parità di macchina, ma software a 32 bit contro
16... Capito mi hai? :->
Ciao
-------------------------------------------------------
"Che senso ha andare più fuori, in California, che senso ha? non serve più viaggiare. La California viene
da me. La California ti arriva nel cervello, ti gira un pò lì, poi se ne andrà un pò delusa di quello che ha
trovato dentro."
(Beppe Grillo)

 inserendo un'interfaccia. E' vero?
Esatto. Il procedimento si chiama THUNKING, ed e' alquanto macchinoso.
In pratica il  gestore di  DLL che  riceve  la richiesta di  servizio,
analizza  la  chiamata  per  scoprire   da  che  applicazione  arriva,
dopodiche'  effettua una conversione dei  parametri passati, chiama il
codice che effettua il servizio e quindi riconverte i risultati.
o   oooooo	Gian Uberto Lauri        "So, are you working on finding
      o    o	
sa...@maya.dei.unipd.it
   that bug *now* or leaving it until
     o o				  later?" - "Yes!"