Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2008, 21:00   #1
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
[sistemi operativi] paginazione

Se ne discuteva nell' area di Vista ma nin si è giunti a nessuna conclusione!
In sostanza un sistema a 32 bit senza alcuna estensione PAE abilitata puo indirizzare, per limite numerico dei 32 bit, 4GB totali di memoria.Tale memoria deve essere data dalla somma della ram e dal file di swap?
Stranamente il mio Vista Premium con 2GB di ram...invece di 4096 arriva a 4300MB
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 21:27   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
4GB e' il limite del solo indirizzamento fisico.
L'indirizzamento virtuale e' molto piu' esteso.
E' limitato sotto windows a seconda della versione, ma gia' sul 386 poteva raggiungere 64TeraByte.

library.nocrew.org/lib/cpu/23163011.pdf
Datasheet del 386, primissima pagina, da apporfondire sul capitolo della segmentazione.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 28-04-2008 alle 21:29.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 22:07   #3
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Ora leggo il documento.
Ma quando su diversi documenti(anche microsoft) inerenti l' argomento si trova scritto che per le architetture la memoria virtuale massima è di 4GB..a cosa si riferiscono?forse al singolo processo?

La cosa che non capisco è come superare tale limitazione di spazio utilizzando solo i 32 bit.

Credo poi, ma non ne sono sicuro, che i sistemi atuali utilizzino un misto di paginazione esegmentazione.

Ultima modifica di nuovoUtente86 : 28-04-2008 alle 22:12.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 00:24   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Ora leggo il documento.
Ma quando su diversi documenti(anche microsoft) inerenti l' argomento si trova scritto che per le architetture la memoria virtuale massima è di 4GB..a cosa si riferiscono?forse al singolo processo?
Esatto.
Lo spazio di memoria virtuale dedicabile per ciascun processo sotto l'architettura x86 a 32bit e' di 4GB.
Windows ha dedicato storicamente 2GB di questi per i dati e il codice, mentre altri 2GB erano dedicati al kernel.
Con il paramentro /3G e' possibile dedicare fino a 3GB per dati e codice, e uno solo per il kernel.

Processo non significa comunque applicazione. Ci sono applicazioni multiprocesso (ES: SQL Server) che potendo avere piu' di un processo, possono venirsi dedicati "virtualmente" piu' di 4GB.


Quote:
La cosa che non capisco è come superare tale limitazione di spazio utilizzando solo i 32 bit.

Credo poi, ma non ne sono sicuro, che i sistemi atuali utilizzino un misto di paginazione esegmentazione.
Un processore (ad un solo core) esegue un solo task alla volta. Tale task ha una visibilita' di 4GB virtuali. Se ci fosse solo lui lo schedulatore della paginazione potrebbe dedicargli tutta la memoria fisica disponibile. E' un discorso al limite ovviamente, perche' capitera' sempre che ci siano altri processi fondamentali che non usciranno mai dalla memoria fisica (come il paginatore stesso, la system cache, etc.)

I sistemi di oggi, ma gia' anche da NT, usano segmentazione+paginazione.
La paginazione e' proprio il supporto hardware per il file di scambio, mentre la segmentazione e' il principalmente usata per i meccanismi di protezione ad anelli, che sembrano semplici, ma non lo sono (o almeno per me la call-gate mi fregava sempre)
Tali meccanismi sono stati accennati dal 286, realizzati con il 386 e praticamente sono rimasti invariati fino al Pentium4, a parte una breve attimo di euforia quando il PenitumPro ha esteso i pin di indirizzi da 32 a 36, con conseguente aumento dell'indirizzamento fisico possibile da 4GB a 64GB.

Comunque per fortuna sta morendo tutto, con i 64bit e' tutto piu' semplice. Il modello di memoria e' quello flat, senza registri di segmento o selettori.
Non so neppure se ci sia un qualche tipo di segmentazione, ma spero che non l'abbiano messo.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 07:10   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In realtà anche con l'architettura AMD64 la segmentazione è rimasta, in particolare si usano i registri FS e GS per accedere ad aree di memoria di sistema.

Tolto questo, mi sembra che non ve ne sia rimasta più traccia, per cui "di fatto" possiamo considerarla scomparsa.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 11:00   #6
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Esatto.
Lo spazio di memoria virtuale dedicabile per ciascun processo sotto l'architettura x86 a 32bit e' di 4GB.
Windows ha dedicato storicamente 2GB di questi per i dati e il codice, mentre altri 2GB erano dedicati al kernel.
Con il paramentro /3G e' possibile dedicare fino a 3GB per dati e codice, e uno solo per il kernel.

Processo non significa comunque applicazione. Ci sono applicazioni multiprocesso (ES: SQL Server) che potendo avere piu' di un processo, possono venirsi dedicati "virtualmente" piu' di 4GB.




Un processore (ad un solo core) esegue un solo task alla volta. Tale task ha una visibilita' di 4GB virtuali. Se ci fosse solo lui lo schedulatore della paginazione potrebbe dedicargli tutta la memoria fisica disponibile. E' un discorso al limite ovviamente, perche' capitera' sempre che ci siano altri processi fondamentali che non usciranno mai dalla memoria fisica (come il paginatore stesso, la system cache, etc.)

I sistemi di oggi, ma gia' anche da NT, usano segmentazione+paginazione.
La paginazione e' proprio il supporto hardware per il file di scambio, mentre la segmentazione e' il principalmente usata per i meccanismi di protezione ad anelli, che sembrano semplici, ma non lo sono (o almeno per me la call-gate mi fregava sempre)
Tali meccanismi sono stati accennati dal 286, realizzati con il 386 e praticamente sono rimasti invariati fino al Pentium4, a parte una breve attimo di euforia quando il PenitumPro ha esteso i pin di indirizzi da 32 a 36, con conseguente aumento dell'indirizzamento fisico possibile da 4GB a 64GB.

Comunque per fortuna sta morendo tutto, con i 64bit e' tutto piu' semplice. Il modello di memoria e' quello flat, senza registri di segmento o selettori.
Non so neppure se ci sia un qualche tipo di segmentazione, ma spero che non l'abbiano messo.
Molto chiaro.
Tirando le somme:
ogni processo ha uno spazio virtuale di indirizzamento di 4GB(avevo letto da qualche parte che su XP fosse stato ridotto a 2, ma probabilmente si riferiva alla sola area codice-dati) divisi equamente tra dati-codice e spazio riservato al sistema. Quindi ogni processo ha gli indirizzi virtuali da 0 a (2^32)-1.
Ora se ricordo bene per la risoluzione degli indirizzi da virtuali a fisici si utilizzano delle gerarchie di tabelle accedute utilizzando porzioni dell' indirizzo virtuale a 32 bit, ma per consentire ad ogni processo di avere 4GB virtuali con soli 32bit disponibili vuol dire che ogni processo ha associato una struttura propria in grado di mappare l' indirizzo...o c' è qualcosa che mi sfugge?!
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 18:11   #7
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Guarda, e' molto lunga la faccenda, se proprio sei interessato e non si fa avanti nessuno posso provare a spiegare quello che mi ricordo.
E' comunque tutto scritto sul datasheet del 386.
Basta che cerchi il capitolo sulla composizione dell'indirizzo fisico.
Cerca concetti come la GDT, la LDT e i selettori.
Come detto, non e' proprio tutto semplice. Meno male che se ne sono liberati.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 07:22   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Ora se ricordo bene per la risoluzione degli indirizzi da virtuali a fisici si utilizzano delle gerarchie di tabelle accedute utilizzando porzioni dell' indirizzo virtuale a 32 bit, ma per consentire ad ogni processo di avere 4GB virtuali con soli 32bit disponibili vuol dire che ogni processo ha associato una struttura propria in grado di mappare l' indirizzo...o c' è qualcosa che mi sfugge?!
E' esatto. La struttura di cui parli è la page table, e normalmente è a 2 livelli.

La traslazione da indirizzo virtuale (a 32 bit) a indirizzo fisico avviene nel seguente modo:
- si prendono i 10 bit più alti, e si seleziona la entry (ce ne sono 1024) nella "master" page table (di cui ogni processo ha ovviamente un registro che ne contiene il puntatore) da cui si prelevano il puntatore alla page table di secondo livello e relativi flag (che si usano per marcare la pagina opportunamente; es.: pagina utente o supervisore, pagina eseguibile, pagina non presente, ecc.).
- si prendono i seguenti 10 bit, e si seleziona la entry nella page table di secondo livello da cui si preleva (finalmente) il puntatore alla pagina di memoria a cui accedere e relativi flag;
- si prendono i rimanenti 12 bit (i meno significativi) e si sommano (per la precisione: si copiano così come sono) al puntatore di cui al precedente punto, e si prelevano anche i flag.

A questo punto si ha finalmente il puntatore alla memoria fisica a cui accedere.

Questo a grandi linee, senza considerare cache TLB e segmentazione (qui ho illustrato soltanto la paginazione).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:01   #9
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E' esatto. La struttura di cui parli è la page table, e normalmente è a 2 livelli.

La traslazione da indirizzo virtuale (a 32 bit) a indirizzo fisico avviene nel seguente modo:
- si prendono i 10 bit più alti, e si seleziona la entry (ce ne sono 1024) nella "master" page table (di cui ogni processo ha ovviamente un registro che ne contiene il puntatore) da cui si prelevano il puntatore alla page table di secondo livello e relativi flag (che si usano per marcare la pagina opportunamente; es.: pagina utente o supervisore, pagina eseguibile, pagina non presente, ecc.).
- si prendono i seguenti 10 bit, e si seleziona la entry nella page table di secondo livello da cui si preleva (finalmente) il puntatore alla pagina di memoria a cui accedere e relativi flag;
- si prendono i rimanenti 12 bit (i meno significativi) e si sommano (per la precisione: si copiano così come sono) al puntatore di cui al precedente punto, e si prelevano anche i flag.

A questo punto si ha finalmente il puntatore alla memoria fisica a cui accedere.

Questo a grandi linee, senza considerare cache TLB e segmentazione (qui ho illustrato soltanto la paginazione).
Molto esauriente....praticamente da manuale....Questo avviene in maniera lineare se la pagina è in ram, in caso contrario dopo il page fault il sistama deve caricare la pagina mancante..presumo..

Quote:
di cui ogni processo ha ovviamente un registro che ne contiene il puntatore
puntatore alla page table privata di ogni processo?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:04   #10
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E' esatto. La struttura di cui parli è la page table, e normalmente è a 2 livelli.

La traslazione da indirizzo virtuale (a 32 bit) a indirizzo fisico avviene nel seguente modo:
- si prendono i 10 bit più alti, e si seleziona la entry (ce ne sono 1024) nella "master" page table (di cui ogni processo ha ovviamente un registro che ne contiene il puntatore) da cui si prelevano il puntatore alla page table di secondo livello e relativi flag (che si usano per marcare la pagina opportunamente; es.: pagina utente o supervisore, pagina eseguibile, pagina non presente, ecc.).
- si prendono i seguenti 10 bit, e si seleziona la entry nella page table di secondo livello da cui si preleva (finalmente) il puntatore alla pagina di memoria a cui accedere e relativi flag;
- si prendono i rimanenti 12 bit (i meno significativi) e si sommano (per la precisione: si copiano così come sono) al puntatore di cui al precedente punto, e si prelevano anche i flag.

A questo punto si ha finalmente il puntatore alla memoria fisica a cui accedere.

Questo a grandi linee, senza considerare cache TLB e segmentazione (qui ho illustrato soltanto la paginazione).
ma solo io ho la memoria a breve termine??Questa roba lo resettata pochi mesi dopo aver datto l'esame di sis op....
__________________
Khelidan
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:31   #11
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
ma solo io ho la memoria a breve termine??Questa roba lo resettata pochi mesi dopo aver datto l'esame di sis op....
anche io l' ho resettata...ma come vedi poi tutto torna utile...Grazie al forum e a qualche dispense mi sono rinfrescato la memoria..anche perchè...durante i corsi molti particolari vengono trascurati per questioni di tempo.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:32   #12
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Molto esauriente....praticamente da manuale....Questo avviene in maniera lineare se la pagina è in ram, in caso contrario dopo il page fault il sistama deve caricare la pagina mancante..presumo..
Presumi benissimo, ma un page fault non deve necessariamente "caricare" la pagina mancante: è sufficiente che ne fornisca una che non scateni nuovamente il page fault.
Quote:
puntatore alla page table privata di ogni processo?
Sì. Se non ricordo male è uno dei registri CRx (con x da 1 a 7; non può essere il CR0 perché è il registro di "stato" più importante), ma al momento non ricordo di preciso quale.
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
ma solo io ho la memoria a breve termine??Questa roba lo resettata pochi mesi dopo aver datto l'esame di sis op....
E fai benissimo: ormai programmare in assembly è una perdita di tempo, per cui molto meglio farne a meno.

Io ricordo ancora oggi alcuni dettagli (non tutti, come puoi vedere sopra), semplicemente perché ho lavorato in assembly per parecchi anni, e ai tempi dell'Amiga avevo quasi finito un buon emulatore 80186, da far evolvere poi in 286 prima e 386 poi, per cui non mi sono limitato a studiarmi l'assembly di questi processori, ma anche (dettagliatamente) l'ISA.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:34   #13
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
E poi da bravo furbacchione mica ti sei messo a partire con lo spiegare l'unita' di segmentazione ...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 20:58   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Se posso evitare, è meglio.

Comunque ho sempre sostenuto la paginazione e non la segmentazione (peggio ancora la combinazione delle due), ma devo riconoscere che per alcuni problemi (piuttosto comuni) la segmentazione fornisce una soluzione semplice, veloce ed elegante.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 21:03   #15
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Presumi benissimo, ma un page fault non deve necessariamente "caricare" la pagina mancante: è sufficiente che ne fornisca una che non scateni nuovamente il page fault.
Ma se un processo necessità di una pagina(codice o dati) e questa è swappata cosa gli si può restituire, piuttosto che caricare la pagina cercata
?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 21:06   #16
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Ma se un processo necessità di una pagina(codice o dati) e questa è swappata cosa gli si può restituire, piuttosto che caricare la pagina cercata
?

Stava parlando (forse) dell'allocazione, ovvero quando fai richiesta al SO di un tot di memoria a tuo uso e consumo.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 21:20   #17
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Ma se un processo necessità di una pagina(codice o dati) e questa è swappata cosa gli si può restituire, piuttosto che caricare la pagina cercata
?
Se una pagina è stata "swappata", è chiaro che dovrà essere ricaricata.

Ma, come dicevo, un page fault non necessariamente deve produrre il caricamento di una pagina. Dipende tutto da quello che vuoi implementare.
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Stava parlando (forse) dell'allocazione, ovvero quando fai richiesta al SO di un tot di memoria a tuo uso e consumo.
Generalmente è così, infatti, ma le possibilità offerte dai page fault vanno ben oltre (e si allargano ancora in combinazione con la logica di "resume" da un fault).

P.S. Si capisce che non ne voglio parlare in dettaglio?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 22:04   #18
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Stava parlando (forse) dell'allocazione, ovvero quando fai richiesta al SO di un tot di memoria a tuo uso e consumo.
solitamente(almeno in windows) mi sembra il sistema mantenga in ram delle pagine libere....Ma a parte questo(potrei certamente sbagliare) la butto li: può essere allocata una pagina riutilizzabaile...(dovrebbero chiamarsi azzerate o qualcosa del genere).


Dal discorso mi pare di capire che lavorando in assembly è possibile avere una maggiore interezione e controllo della paginazione che con la programmazione ad alto livello è del tutto trasparente essendo di fatto ad opera del SO!E' cosi?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 23:34   #19
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Anche con l'assembly, a livello utente, e' tutto nascosto e gestito dal sistema operativo.
L'unica cosa che puoi fare (ma lo fai anche ad alto livello) e' chiedere della memoria, lui te la da, e tu la usi, senza porti particolari problemi se non quello di rilasciarla correttamente quando hai finito di usarla.
Inoltre per come sono fatti Windows e Linux per l'interazione con il SO e' meglio il C++ che l'assembly
Forse anche il C va bene, ma gia' sotto Windows3.11 si usava il C++, non so quanti abbiano usato il C puro per interfacciarsi con Windows.

Questo a meno che tu non stia programmando dei driver, o addirittura un sistema operativo stesso, nel qual caso e' praticamente certo che tu debba sporcarti le mani con l'assembly in alcune parti critiche (come queste della segmentazione e della paginazione). Per il resto era gia stato studiato in modo che per gli sviluppatori fosse tutto trasparente
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 30-04-2008 alle 23:37.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Intel punta sul vetro: partnership con L...
L'acquisizione di ATI compie 20 anni: AM...
iPhone 18 Pro, Apple le prova tutte per ...
NVIDIA, Samsung, SK hynix e Broadcom: a ...
Sony rompe il silenzio: God of War Laufe...
iPhone Ultra, lancio ritardato per il pi...
Microsoft rafforza l'attivazione di Wind...
Galaxy S27 e S27+: Samsung starebbe test...
macOS più sicuro di Windows? Il n...
L'UE punta il dito contro TikTok: ecco c...
Qualcomm aumenterà i prezzi dei c...
TOP 12 Amazon weekend: al top una stampa...
Come sfruttare le offerte di Amazon per ...
Intelligenza artificiale: le Big Tech sa...
Xbox Game Pass, il mese di luglio 2026 s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v