Here is a summary of some of the data kept in the process table which
is used for memory management: <#1943#> [These should be much better
documented. We need more details.]<#1943#>
- Process memory limits: <#1945#> ulong start_code, end_code,
end_data, brk, start_stack;<#1945#>
- Page fault counting: <#1946#> ulong min_flt, maj_flt, cmin_flt, cmaj_flt<#1946#>
- Local descriptor table:
<#1947#> struct desc_struct ldt[32]<#1947#> is the local descriptor table for task.
- <#1948#> rss<#1948#>: number of resident pages.
- <#1949#> swappable<#1949#>: if 0, then process' pages will not be swapped.
- <#1950#> kernel_stack_page<#1950#>: pointer to page allocated in fork.
- <#1951#> saved_kernel_stack<#1951#>: V86 mode stuff.
- <#1952#> struct tss<#1952#>
- Stack segments
- <#1955#> esp0<#1955#>
- kernel stack pointer (<#1956#> kernel_stack_page<#1956#>)
- <#1957#> ss0<#1957#>
- kernel stack segment (0x10)
- <#1958#> esp1<#1958#>
- = <#1959#> ss1<#1959#> = <#1960#> esp2<#1960#> = <#1961#> ss2<#1961#> = 0
unused privilege levels.
- Segment selectors: <#1963#> ds = es = fs = gs = ss =
0x17<#1963#>, <#1964#> cs = 0x0f<#1964#>
All point to segments in the current <#1965#> ldt[]<#1965#>.
- <#1966#> cr3<#1966#>: points to the page directory for this process.
- <#1967#> ldt<#1967#>: <#1968#> _LDT(n)<#1968#> selector for current task's LDT.