Next: Memory initialization
Up: Linux Memory Management
Previous: A user process' view
Here is a summary of some of the data kept in the process table which
is used for memory managment: [These should be much better
documented. We need more details.]
- Process memory limits: ulong start_code, end_code,
end_data, brk, start_stack;
- Page fault counting: ulong min_flt, maj_flt, cmin_flt, cmaj_flt
- Local descriptor table:
struct desc_struct ldt is the local descriptor table for task.
- rss: number of resident pages.
- swappable: if 0, then process's pages will not be swapped.
- kernel_stack_page: pointer to page allocated in fork.
- saved_kernel_stack: V86 mode stuff.
- struct tss
- Stack segments
- kernel stack pointer (kernel_stack_page)
- kernel stack segment (0x10)
- = ss1 = esp2 = ss2 = 0
unused privelege levels.
- Segment selectors: ds = es = fs = gs = ss =
0x17, cs = 0x0f
All point to segments in the current ldt.
- cr3: points to the page directory for this process.
- ldt: _LDT(n) selector for current task's LDT.
Mon Apr 1 10:20:16 EST 1996