First of all iam feeling overjoyed cos u put my name beside Maxs’ 
>Which method is used by NT/200/xp?
Page directories are different for each task, though the info can be shared between directories
>when a new process is scheduled for running
Contents of the Register holding the Page Directory Pointer, ie, CR3 is updated for each process switch. OS will create those only the first time process is loaded, later on it’ll only be updates, trivial 
Your calculation is correct!! Yeah…these page tables can be swapped out.And so they will can be created from PagedPool itself. Its only necessary that TaskSegment, which is a descriptor of each process be resident (someone can clarify more).
Giri.
----- Original Message -----
From: Deepu.L.R
To: NT Developers Interest List
Sent: Friday, December 20, 2002 5:09 PM
Subject: [ntdev] Re: Doubts regarding GDT/LDT
hai Max, Giri and all
thanks for the reply…
-
Similarlly the intel docs says that, Memory management software has an option of using one page directory for all tasks,one page directory for each task or some combination of two. Which method is used by NT/200/xp?
-
Since each process has it own address space, when a new process is scheduled for running, will the previous process’s Page directory and Page Table will become invalid and OS will create/load PD & PT of the new process?
-
what is the total size of memory required to keep Page direcotry + Page Table . is it like this? and where is this tables created ? In paged pool or in non paged pool ? will these tables itself gets paged out?
Page Directory - 1024 (PD entries) * 4 byte (size of one entry) = 4 k
Pagetable - 1024 (total page tables ) * 1024 (entries in each page table) * 4 byte = 4 mb -
total (4Mb + 4 k).
Thanks,
Deepu.
----- Original Message -----
From: Seshagiri Babu K V
To: NT Developers Interest List
Sent: Friday, December 20, 2002 3:02 PM
Subject: [ntdev] Re: Doubts regarding GDT/LDT
GDT has segments descriptors which describe segments which are global to the system. You can assume these segments to be in the upper 2GB of the memory in NT, which you will be knowing won’t change from process to process.
But LDT’s are specific to a process (Eventhough segments can be shared between process, lets ignore that here).
LDT’s are formed using the data described in the .exe file, or a dll, for instance. As you know the basic segments in any exe can be code, data segments, which some times can be in multiple numbers. These form the Local segments (and hence local Desriptors) for this process and will be referenced by a Segment Descriptor each.
As u can easily make out, Segment Descriptor specifies things like starting address of the segment, length of the segment, protection on the segment etc.
GDT’s LDT’s exists irrespective of whether Virtual Memory is present or not. For ex, if virtual memory is not used, the address obtained after Segment Translation is the Linear physical address of the location. When Virtual Memory is supported, you need to translate the address obtained from Segment Translation, which will be the Virtual Address, to get the actual Physical address.
Giri.
----- Original Message -----
From: Deepu.L.R
To: NT Developers Interest List
Sent: Friday, December 20, 2002 11:58 AM
Subject: [ntdev] Doubts regarding GDT/LDT
hai all,
I am a student, and please help me to clear some doubts regarding GDT an LDT. I am asking these doubts based on the NT/2000/Xp OS.
-
According to intels’s docs both GDT and LDT contains the segment descriptors. what are the difference between descriptors in these two tables?
-
Is GDT - contains the descriptors for the entire OS and LDT contains the descriptors for each process. If it is true when a new thread is scheduled to run, will the LDT will get a set of values specific to that process ?
-
What are the details NT/200/xp keeps in these tables ?
-
Is there any relation between GDT/LDT and the virtual memory management in NT/2000/xp?
Thanks,
Deepu.L.R
You are currently subscribed to ntdev as: xxxxx@sasken.com
To unsubscribe send a blank email to %%email.unsub%%
You are currently subscribed to ntdev as: xxxxx@m2comsys.com
To unsubscribe send a blank email to %%email.unsub%%
You are currently subscribed to ntdev as: xxxxx@sasken.com
To unsubscribe send a blank email to %%email.unsub%%