Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Papouille wrote:Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
Papouille wrote:
Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
Papouille wrote:Je n'ai pas les idéés claires sur la raison d'exister des segments, et
du mécanisme de segmentation en général.
Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
> Il n'y a pas de segmentation de mémoire en Win32
> Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
> Il n'y a pas de segmentation de mémoire en Win32
> Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
> Il n'y a pas de segmentation de mémoire en Win32
> Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
On 19 jan, 10:08, Papouille wrote:Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
MSDN =>
"each process has a private 32-bit address space from which all of the
memory for the process is allocated--including code, resources, data,
DLLs (dynamic-link libraries), and dynamic memory. "
Après, ça dépend ce que tu appelles "segment".
Les pages de 4K pour le paging de la mémoire virtuelle, ça s'appelle
aussi des "segments de 4K"...
On 19 jan, 10:08, Papouille <Papoui...@papouille.net> wrote:
Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
MSDN =>
"each process has a private 32-bit address space from which all of the
memory for the process is allocated--including code, resources, data,
DLLs (dynamic-link libraries), and dynamic memory. "
Après, ça dépend ce que tu appelles "segment".
Les pages de 4K pour le paging de la mémoire virtuelle, ça s'appelle
aussi des "segments de 4K"...
On 19 jan, 10:08, Papouille wrote:Il n'y a pas de segmentation de mémoire en Win32
Chaque process s'exécute dans son propre espace d'adressage
Oui, mais en théorie la segmentation est propre a chaque process. Donc
en Win32, vous voulez dire qu'il n'y a pas de segment de stack, de data
et de code indépendant pour chaque process ?
MSDN =>
"each process has a private 32-bit address space from which all of the
memory for the process is allocated--including code, resources, data,
DLLs (dynamic-link libraries), and dynamic memory. "
Après, ça dépend ce que tu appelles "segment".
Les pages de 4K pour le paging de la mémoire virtuelle, ça s'appelle
aussi des "segments de 4K"...
Dans le MSDN que vous citez, j'y vois moi la définition de l'espace
d'adresses virtuelles. Dans cet espace il pourrait y avoir plusieurs
segment : un pour le code, l'autre pour les données, l'autre pour le cod e.
Dans le MSDN que vous citez, j'y vois moi la définition de l'espace
d'adresses virtuelles. Dans cet espace il pourrait y avoir plusieurs
segment : un pour le code, l'autre pour les données, l'autre pour le cod e.
Dans le MSDN que vous citez, j'y vois moi la définition de l'espace
d'adresses virtuelles. Dans cet espace il pourrait y avoir plusieurs
segment : un pour le code, l'autre pour les données, l'autre pour le cod e.
C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
En résumé : http://www.jps.at/dev/kurs/2-1.html
ou détaillé : doc Intel
http://download.intel.com/design/intarch/papers/esc_ia_p.pdf
ou MSDN :
http://www.microsoft.com/technet/archive/winntas/training/ntarchitectoview/ntarc_7.mspx?mfr=true
C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
En résumé : http://www.jps.at/dev/kurs/2-1.html
ou détaillé : doc Intel
http://download.intel.com/design/intarch/papers/esc_ia_p.pdf
ou MSDN :
http://www.microsoft.com/technet/archive/winntas/training/ntarchitectoview/ntarc_7.mspx?mfr=true
C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
En résumé : http://www.jps.at/dev/kurs/2-1.html
ou détaillé : doc Intel
http://download.intel.com/design/intarch/papers/esc_ia_p.pdf
ou MSDN :
http://www.microsoft.com/technet/archive/winntas/training/ntarchitectoview/ntarc_7.mspx?mfr=true
Oui, je connais la programmation en flat memory model, mais sur des
microcontrôleurs qui ne gèrent pas la segmentation. Mais le sujet du fil
concerne la segmentation...
Oui, je connais la programmation en flat memory model, mais sur des
microcontrôleurs qui ne gèrent pas la segmentation. Mais le sujet du fil
concerne la segmentation...
Oui, je connais la programmation en flat memory model, mais sur des
microcontrôleurs qui ne gèrent pas la segmentation. Mais le sujet du fil
concerne la segmentation...
Christian ASTOR a écrit :C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
Oui, pas de de doute, c'est bien le flat memory model. ça fonctionne
bien... mais il n'y est pas question de segmentation là. Ma question
porte sur la taille des segments lors des mécanismes de segmentation.
Christian ASTOR a écrit :
C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
Oui, pas de de doute, c'est bien le flat memory model. ça fonctionne
bien... mais il n'y est pas question de segmentation là. Ma question
porte sur la taille des segments lors des mécanismes de segmentation.
Christian ASTOR a écrit :C'est le "flat memory model" en Win32 par opposition au "segmented
memory model" en 16-bits
Oui, pas de de doute, c'est bien le flat memory model. ça fonctionne
bien... mais il n'y est pas question de segmentation là. Ma question
porte sur la taille des segments lors des mécanismes de segmentation.
ça. Il faut garder à l'esprit que plus le nombre de bits augmente, plus
les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe de 16
bits, et un registre variable de 16 bits, plutôt que de créer un registre
variable de 20 bits.
L'autre avantage des segments est qu'ils rendent possible la création
d'espaces mémoire distincts pour le code, les données, la pile etc. Les
sélecteurs CS, DS, SS pouvant être distincts, chacun dispose de son
propre espace mémoire. Evidemment, sur le 8086 les segments se
chevauchaient. Mais plus tard avec l'apparition de techniques telles que
la mémoire paginée, himem, ou le mode protégé, cette notion a été
généralisée.
Aujourd'hui avec les progrès réalisés en architecture, je pense que cette
notion va disparaître. D'abord il y a très peu de systèmes d'exploitation
et de compilateurs qui utilisent pleinement cette fonction. Ensuite il y
a d'autres techniques plus simples comme la mémoire virtuelle.
Voilà, si tu cherches dans les archives de ce groupe (vers 2001-2002) je
pense que tu trouveras des discussions intéressantes d'AMcD, d'autres
contributeurs et de moi-même sur le sujet.
ça. Il faut garder à l'esprit que plus le nombre de bits augmente, plus
les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe de 16
bits, et un registre variable de 16 bits, plutôt que de créer un registre
variable de 20 bits.
L'autre avantage des segments est qu'ils rendent possible la création
d'espaces mémoire distincts pour le code, les données, la pile etc. Les
sélecteurs CS, DS, SS pouvant être distincts, chacun dispose de son
propre espace mémoire. Evidemment, sur le 8086 les segments se
chevauchaient. Mais plus tard avec l'apparition de techniques telles que
la mémoire paginée, himem, ou le mode protégé, cette notion a été
généralisée.
Aujourd'hui avec les progrès réalisés en architecture, je pense que cette
notion va disparaître. D'abord il y a très peu de systèmes d'exploitation
et de compilateurs qui utilisent pleinement cette fonction. Ensuite il y
a d'autres techniques plus simples comme la mémoire virtuelle.
Voilà, si tu cherches dans les archives de ce groupe (vers 2001-2002) je
pense que tu trouveras des discussions intéressantes d'AMcD, d'autres
contributeurs et de moi-même sur le sujet.
ça. Il faut garder à l'esprit que plus le nombre de bits augmente, plus
les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe de 16
bits, et un registre variable de 16 bits, plutôt que de créer un registre
variable de 20 bits.
L'autre avantage des segments est qu'ils rendent possible la création
d'espaces mémoire distincts pour le code, les données, la pile etc. Les
sélecteurs CS, DS, SS pouvant être distincts, chacun dispose de son
propre espace mémoire. Evidemment, sur le 8086 les segments se
chevauchaient. Mais plus tard avec l'apparition de techniques telles que
la mémoire paginée, himem, ou le mode protégé, cette notion a été
généralisée.
Aujourd'hui avec les progrès réalisés en architecture, je pense que cette
notion va disparaître. D'abord il y a très peu de systèmes d'exploitation
et de compilateurs qui utilisent pleinement cette fonction. Ensuite il y
a d'autres techniques plus simples comme la mémoire virtuelle.
Voilà, si tu cherches dans les archives de ce groupe (vers 2001-2002) je
pense que tu trouveras des discussions intéressantes d'AMcD, d'autres
contributeurs et de moi-même sur le sujet.
Cyrille Szymanski a écrit :
ça. Il faut garder à l'esprit que plus le nombre de bits augmente,
plus les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe
de 16 bits, et un registre variable de 16 bits, plutôt que de créer
un registre variable de 20 bits.
Intéressant, oui. Je n'avais pas envsagé cela : Gain de performance
donc...
... je ne vois pas l'utilité de faire des séparations logiques entre
type de données. Si c'est pour que chacun ait son propre espace
mémoire, alors c'est limité comme avantage
Cyrille Szymanski a écrit :
ça. Il faut garder à l'esprit que plus le nombre de bits augmente,
plus les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe
de 16 bits, et un registre variable de 16 bits, plutôt que de créer
un registre variable de 20 bits.
Intéressant, oui. Je n'avais pas envsagé cela : Gain de performance
donc...
... je ne vois pas l'utilité de faire des séparations logiques entre
type de données. Si c'est pour que chacun ait son propre espace
mémoire, alors c'est limité comme avantage
Cyrille Szymanski a écrit :
ça. Il faut garder à l'esprit que plus le nombre de bits augmente,
plus les opérations (additions, soustractions...) sont chères. Il est
probablement plus efficace d'adresser 20 bits avec un registre fixe
de 16 bits, et un registre variable de 16 bits, plutôt que de créer
un registre variable de 20 bits.
Intéressant, oui. Je n'avais pas envsagé cela : Gain de performance
donc...
... je ne vois pas l'utilité de faire des séparations logiques entre
type de données. Si c'est pour que chacun ait son propre espace
mémoire, alors c'est limité comme avantage