|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
[Assembler]Limite segment descriptors
Come mai in modalità protetta i segmenti devono avere il limite di 0xFFFF? Cosa succede se tale limite è maggiore o minore? Grazie.
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Questo vale soltanto col 286: dal 386 in poi, in modalità protetta a 32 bit, puoi avere un tetto di 1MB (se la memoria non m'inganna) con granularità di 1 byte, o fino a 4GB con granularità di 4KB.
__________________
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 |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
Quote:
|
|
|
|
|
|
|
#4 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
oggidì si usa solo la paginazione, che è molto più flessibile e tra le altre cose permette anche di condividere memoria tra più processi con diversi tipi di protezione (anche differenti da un processo all'altro volendo). |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
Quote:
Quindi il mio discorso si può applicare alle pagine? Se due processi hanno la stessa pagina condivisa vuol dir che stanno usando gli stessi dati? Altra cosa: hai detto che la segmentazione non si usa più, ma non è usata insieme alla paginazione? Cioè prima si creano i segmenti e poi tali segmenti vengon o paginati. Non si usa più questo metodo combinato? |
|
|
|
|
|
|
#6 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
comunque si, con la paginazione è possibile condividere memoria, e la pagina può anche essere protetta: puoi metterla in sola lettura, in scrittura, o in "no-access"; e la puoi anche proteggere diversamente in processi diversi. Quote:
la segmentazione a quanto pare non si usa più ti ho detto come si fa: i pochi segmenti che esistono occupano concettualmente TUTTA la memoria (credo che il limite venga impostato a 0xFFFFFFFF). infatti una delle cose che non capirò mai è perché Linux usa la dicitura "segmentation fault"... |
||
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
Quote:
|
|
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Comunque è anche vero che per diversi altri aspetti la segmentazione porta ad altre complicazioni, che non presenta la paginazione, per cui è diventata praticamente obsoleta. P.S. Linux ti segnala segmentation fault perché, correttamente, sarà accaduto qualcosa a qualche segmento (codice, dati, stack, ecc.); che è anche più utile perché ti fornisce delle informazioni aggiuntive su quale potrebbe essere stata la causa (un page fault su un sistema che usa soltanto la paginazione, è più "anonimo" da questo punto di vista).
__________________
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 |
||
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6603
|
Quote:
|
|
|
|
|
|
|
#13 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
per il resto la segmentazione viene semplicemente "ignorata", non so come spiegartelo meglio: il meccanismo è sempre attivo e non lo si può disabilitare ma segmenti che ci sono immagino che siano una trentina e poco più: la IDT, le LDT dei vari processi, e i segmenti codice-dati-stack di tutti i processi, che sono tutti uguali (non so se è un segmento codice-dati-stack per ogni processo o uno per tutti i processi del sistema: entrambe le cose sono possibili). |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:25.



















