home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / thes4000.zip / theseus.zip / THES4000.EXE / theseus4.inf (.txt) < prev    next >
OS/2 Help File  |  2000-10-12  |  403KB  |  13,439 lines

  1.  
  2. ΓòÉΓòÉΓòÉ <hidden> Alias Record ΓòÉΓòÉΓòÉ
  3.  
  4. There is an alias record for each memory object which has more than one Arena 
  5. Record referring to it. The handle of the alias record is a hal. 
  6.  
  7.  
  8. ΓòÉΓòÉΓòÉ <hidden> Arena ΓòÉΓòÉΓòÉ
  9.  
  10. An arena maps a linear address space by way of a doubly linked circular chain 
  11. of arena records. Each arena starts with a sentinel record. There are three 
  12. separate arenas associated with each process: With SMP and the e-Business 
  13. server for both UNI and SMP a 32-bit application can now address and allocate 
  14. memory above the 512MB linear address space ( shared arena ). 
  15.  
  16.  private       Maps the linear address space unique to that process. This 
  17.                memory holds EXE files and memory objects allocated using the 
  18.                DosAllocMem function. 
  19.  high private  Maps the linear address space above the 512MB line unique to 
  20.                that process. Allocation units are 4K pages. Allocation starts 
  21.                at the 512MB linear address mark incrementing toward the system 
  22.                arena. 
  23.  shared        Maps the linear address space shared by all the processes. This 
  24.                memory holds DLL files and memory objects allocated using the 
  25.                DosAllocSharedMem function. 
  26.  high shared   Maps the linear address space above the 512MB line shared by all 
  27.                the processes.  Allocation units are 4k pages. Allocation starts 
  28.                at the system arena lowest linear address and is allocted 
  29.                towards the high private arena. 
  30.  system        Maps the linear address space which belongs to the OS/2 system. 
  31.  
  32.  
  33. ΓòÉΓòÉΓòÉ <hidden> Arena Record ΓòÉΓòÉΓòÉ
  34.  
  35. There is an arena record for each memory object that has linear address space 
  36. allocated to it. The handle of the arena record is a har. The arena records are 
  37. arranged in arenas. 
  38.  
  39.  
  40. ΓòÉΓòÉΓòÉ <hidden> Claimable Page ΓòÉΓòÉΓòÉ
  41.  
  42. A claimable page is one that is not marked present in a particular Page Table 
  43. Entry, however, the page is present. On the first reference to the page, the 
  44. page will simply be marked "present". 
  45.  
  46.  
  47. ΓòÉΓòÉΓòÉ <hidden> Clean Page ΓòÉΓòÉΓòÉ
  48.  
  49. A clean page is one that has not been written to in RAM since being loaded from 
  50. disk. 
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ <hidden> Committed Memory ΓòÉΓòÉΓòÉ
  54.  
  55. Committed memory is memory that has been both allocated and committed. 
  56. Committed memory has an entry in the Virtual Page Table and can be "backed" by: 
  57.  
  58.      A page of real RAM 
  59.      A page of DASD in the SWAPPER.DAT file 
  60.      A page of a program file 
  61.      Nothing. 
  62.  
  63.  
  64. ΓòÉΓòÉΓòÉ <hidden> Context ΓòÉΓòÉΓòÉ
  65.  
  66. Many memory objects are associated with a particular OS/2 process. The context 
  67. of a memory object refers to the process with which it is associated. 
  68.  
  69.  
  70. ΓòÉΓòÉΓòÉ <hidden> Context Record ΓòÉΓòÉΓòÉ
  71.  
  72. There is a context record for each process that can access a particular memory 
  73. object in the shared arena. The handle of the context record is a hco. 
  74.  
  75.  
  76. ΓòÉΓòÉΓòÉ <hidden> Description in English ΓòÉΓòÉΓòÉ
  77.  
  78. Memory objects are "described" in several of the THESEUS displays as follows: 
  79.  
  80.  Description   Meaning 
  81.  module_name #nnnn 
  82.                The memory object is part of a module. The module is named and 
  83.                the nnnn is the object/segment number within the module. The 
  84.                object/segment type (code or data) is shown. If the 
  85.                object/segment is data, it is indicated whether it is shared or 
  86.                private. (If the object/segment table is swapped out, then the 
  87.                object/segment number is FFFF.) 
  88.  module_name allocated it 
  89.                The memory object was allocated by the named module using one of 
  90.                the Dos... functions. 
  91.  string (owner) 
  92.                The memory object is part of the Operating System. The kernel 
  93.                "subsystem" is named in string. This was decoded using the 
  94.                "owner" field of the Object Record. 
  95.  string (hmte [system owner]) 
  96.                The memory object is part of the Operating System. The kernel 
  97.                "subsystem" is named in string. This was decoded using the 
  98.                "hmte" field of the Object Record. 
  99.  
  100.  
  101. ΓòÉΓòÉΓòÉ <hidden> Dirty Page ΓòÉΓòÉΓòÉ
  102.  
  103. A dirty page is one that has been written to in RAM, but not yet written to the 
  104. SWAPPER.DAT file. 
  105.  
  106.  
  107. ΓòÉΓòÉΓòÉ <hidden> DTE ΓòÉΓòÉΓòÉ
  108.  
  109. A DTE, or Descriptor Table Entry, is an entry in a Descriptor Table (GDT, LDT, 
  110. or IDT). It includes the linear address and size of a segment. 
  111.  
  112.  
  113. ΓòÉΓòÉΓòÉ <hidden> Exit List ΓòÉΓòÉΓòÉ
  114.  
  115. The list of routines that are to be executed when a process ends. 
  116.  
  117.  
  118. ΓòÉΓòÉΓòÉ <hidden> File Handle ΓòÉΓòÉΓòÉ
  119.  
  120. The handle of a file. There are process handles which are unique for a process 
  121. and system handles which are common across the entire system. 
  122.  
  123.  
  124. ΓòÉΓòÉΓòÉ <hidden> Flat Address ΓòÉΓòÉΓòÉ
  125.  
  126. A flat address is a virtual offset. Because the selector registers (loaded by 
  127. the operating system) have a base address of 00000000, flat is equivalent to 
  128. linear. 
  129.  
  130.  
  131. ΓòÉΓòÉΓòÉ <hidden> Fonts ΓòÉΓòÉΓòÉ
  132.  
  133. Fonts control the shapes and sizes of the characters being displayed. Only 
  134. monospace fonts (all characters the same width) can be used by THESEUS. Only 
  135. display fonts can be selected in THESEUS. Printer fonts cannot be changed by 
  136. THESEUS. 
  137.  
  138.  
  139. ΓòÉΓòÉΓòÉ <hidden> Free Page ΓòÉΓòÉΓòÉ
  140.  
  141. A free page is a page of RAM not currently in use. However, it may be allocated 
  142. by the Page Manager and associated with a memory object. 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ <hidden> GDT ΓòÉΓòÉΓòÉ
  146.  
  147. The Global Descriptor Table contains the descriptor table entries for selectors 
  148. that can be accessed by any process. 
  149.  
  150.  
  151. ΓòÉΓòÉΓòÉ <hidden> Handle ΓòÉΓòÉΓòÉ
  152.  
  153. Within the OS/2 system, a handle is used to refer from one control block to 
  154. another, without using the actual address. A handle is normally a 16-bit word. 
  155.  
  156.  
  157. ΓòÉΓòÉΓòÉ <hidden> hal ΓòÉΓòÉΓòÉ
  158.  
  159. The handle of an alias record is a hal. 
  160.  
  161.  
  162. ΓòÉΓòÉΓòÉ <hidden> har ΓòÉΓòÉΓòÉ
  163.  
  164. The handle of an arena record is a har. 
  165.  
  166.  
  167. ΓòÉΓòÉΓòÉ <hidden> hco ΓòÉΓòÉΓòÉ
  168.  
  169. The handle of a context record is a hco. 
  170.  
  171.  
  172. ΓòÉΓòÉΓòÉ <hidden> hmte ΓòÉΓòÉΓòÉ
  173.  
  174. The handle of an MTE is a hmte. 
  175.  
  176.  
  177. ΓòÉΓòÉΓòÉ <hidden> hob ΓòÉΓòÉΓòÉ
  178.  
  179. The handle of an object record is a hob. 
  180.  
  181.  
  182. ΓòÉΓòÉΓòÉ <hidden> Hyperblock Links ΓòÉΓòÉΓòÉ
  183.  
  184. Hyperblock* links allow you to navigate from one control block to another by 
  185. using the mouse to select the address of the block to be viewed. A hyperblock 
  186. link is denoted by its different color. The color of the links can be changed 
  187. with the 'Link' color option of the Misc menu in the Process Hierarchy window. 
  188.  
  189.  
  190. ΓòÉΓòÉΓòÉ <hidden> Idle Page ΓòÉΓòÉΓòÉ
  191.  
  192. An idle pages is a page that has not been recently used. The Page Ager program 
  193. runs when the number of free pages becomes small. Idle pages are placed on the 
  194. idle list before being removed from the system. 
  195.  
  196.  
  197. ΓòÉΓòÉΓòÉ <hidden> IDT ΓòÉΓòÉΓòÉ
  198.  
  199. The Interrupt Descriptor Table contains the descriptor table entries for 
  200. selectors used to execute the proper interrupt routine. 
  201.  
  202.  
  203. ΓòÉΓòÉΓòÉ <hidden> LDT ΓòÉΓòÉΓòÉ
  204.  
  205. The Local Descriptor Table contains the descriptor table entries for selectors 
  206. that can be accessed by a single process. There is one for each process. 
  207.  
  208.  
  209. ΓòÉΓòÉΓòÉ <hidden> Linear Address ΓòÉΓòÉΓòÉ
  210.  
  211. A linear address is the intermediate result when the CPU is resolving memory 
  212. addresses. They are represented by THESEUS as llllllll (in hexadecimal 
  213. notation). 
  214.  
  215.  
  216. ΓòÉΓòÉΓòÉ <hidden> Locked Page ΓòÉΓòÉΓòÉ
  217.  
  218. A locked page is a page of RAM that has been locked with the DevHlp_Lock... 
  219. function. It may be locked either long term or short term. 
  220.  
  221.  
  222. ΓòÉΓòÉΓòÉ <hidden> Memory Leak ΓòÉΓòÉΓòÉ
  223.  
  224. When a program allocates memory and then does not free it, that program is said 
  225. to be "leaking memory." 
  226.  
  227.  
  228. ΓòÉΓòÉΓòÉ <hidden> Memory Object ΓòÉΓòÉΓòÉ
  229.  
  230. A memory object is the logical allocation unit of memory. Applications allocate 
  231. memory objects using the DosAllocMem or DosAllocSharedMem functions. 
  232.  
  233.  
  234. ΓòÉΓòÉΓòÉ <hidden> MTE ΓòÉΓòÉΓòÉ
  235.  
  236. An MTE, or Module Table Entry, is an in-memory description of an executable 
  237. module. The handle of an MTE is an hmte. 
  238.  
  239.  
  240. ΓòÉΓòÉΓòÉ <hidden> n-way ΓòÉΓòÉΓòÉ
  241.  
  242. This term is used to indicate the number of processers in an SMP configuration. 
  243. For example 1-way would be one active processor in an SMP configuration or if 
  244. there where three it would be 3-way. 
  245.  
  246.  
  247. ΓòÉΓòÉΓòÉ <hidden> Object Record ΓòÉΓòÉΓòÉ
  248.  
  249. There is an object record for each memory object in the system. Most objects 
  250. are real objects and associated with arena records, containing a linear 
  251. address. However, some objects are pseudo-objects, and the linear address is in 
  252. the object record. The handle of an object record is a hob. 
  253.  
  254.  
  255. ΓòÉΓòÉΓòÉ <hidden> Owner ΓòÉΓòÉΓòÉ
  256.  
  257. All allocated memory has an owner. For system memory, that owner is a 
  258. hexadecimal value, starting with hex FF. Each sub-system in the kernel has one 
  259. or more unique values for keeping track of allocated memory. For private 
  260. memory, the owner is the hob of a PTDA or MTE. For shared memory, the owner may 
  261. be either a system owner value, the hob of a PTDA, or the hob of an MTE. The 
  262. owner value is in the object record. 
  263.  
  264.  
  265. ΓòÉΓòÉΓòÉ <hidden> Page Directory ΓòÉΓòÉΓòÉ
  266.  
  267. The Page Directory is the first-level address translation table used by the 
  268. hardware to map a linear address to a physical address. The entries in the Page 
  269. Directory point to Page Tables. 
  270.  
  271.  
  272. ΓòÉΓòÉΓòÉ <hidden> Page Frame Table ΓòÉΓòÉΓòÉ
  273.  
  274. The Page Frame Table has an entry for each page in the physical address space. 
  275. This space includes all the real RAM in the machine, the I/O RAM space, and the 
  276. ROM space. This table keeps track of the contents of each physical page. 
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ <hidden> Page Table ΓòÉΓòÉΓòÉ
  280.  
  281. The Page Table is the second-level address translation table used by the 
  282. hardware to map a linear address to a physical address. The entries in the Page 
  283. Directory point to Page Tables, which in turn point to pages of physical RAM. 
  284.  
  285.  
  286. ΓòÉΓòÉΓòÉ <hidden> PDE ΓòÉΓòÉΓòÉ
  287.  
  288. A PDE, or Page Directory Entry, contains the physical address of a particular 
  289. Page Table. 
  290.  
  291.  
  292. ΓòÉΓòÉΓòÉ <hidden> Physical Address ΓòÉΓòÉΓòÉ
  293.  
  294. A physical address is the final result when the CPU is resolving memory 
  295. addresses. They are used to address the memory chips. They are represented by 
  296. THESEUS as pppppppp (in hexadecimal notation). 
  297.  
  298.  
  299. ΓòÉΓòÉΓòÉ <hidden> Physical Memory ΓòÉΓòÉΓòÉ
  300.  
  301. The physical memory in the machine is referenced by a physical address. (As 
  302. opposed to virtual memory.) 
  303.  
  304.  
  305. ΓòÉΓòÉΓòÉ <hidden> PID ΓòÉΓòÉΓòÉ
  306.  
  307. The process ID is a 16-bit number that uniquely identifies an OS/2 process. 
  308.  
  309.  
  310. ΓòÉΓòÉΓòÉ <hidden> Popup Menu ΓòÉΓòÉΓòÉ
  311.  
  312. A popup menu is activated by a single-click of mouse button 2 or by pressing 
  313. the Shift-F10 key sequence. A popup menu appears next to the item selected. 
  314.  
  315.  
  316. ΓòÉΓòÉΓòÉ <hidden> Present Pages ΓòÉΓòÉΓòÉ
  317.  
  318. Present pages are those pages currently in RAM. 
  319.  
  320.  
  321. ΓòÉΓòÉΓòÉ <hidden> Process ΓòÉΓòÉΓòÉ
  322.  
  323. In the OS/2 system, processes are the owners of resources. One or more 
  324. cooperating processes make up each application. Each process takes its name 
  325. from EXE file it is associated with. Each process is uniquely identified within 
  326. the OS/2 system by its PID. 
  327.  
  328. (In other systems, processes are called "tasks.") 
  329.  
  330.  
  331. ΓòÉΓòÉΓòÉ <hidden> Process Page Directory ΓòÉΓòÉΓòÉ
  332.  
  333. Each process is associated with a Process Page Directory. This directory 
  334. contains the PDEs for the first 512MB of linear address space. The Process Page 
  335. Directory is copied into the first 128 entries of the System Page Directory 
  336. when the process is dispatched. 
  337.  
  338.  
  339. ΓòÉΓòÉΓòÉ <hidden> Pseudo-Objects ΓòÉΓòÉΓòÉ
  340.  
  341. Pseudo-objects are areas of memory allocated from kernel heap space. Because 
  342. they have hobs, they can be accessed the same way as normal memory objects. 
  343. MTEs and PTDAs are pseudo-objects. 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ <hidden> PTDA ΓòÉΓòÉΓòÉ
  347.  
  348. The PTDA, or Per Task Data Area, describes the resources owned by a process. 
  349.  
  350.  
  351. ΓòÉΓòÉΓòÉ <hidden> PTE ΓòÉΓòÉΓòÉ
  352.  
  353. The PTE, or Page Table Entry, contains the physical address of a page. 
  354.  
  355.  
  356. ΓòÉΓòÉΓòÉ <hidden> RAM ΓòÉΓòÉΓòÉ
  357.  
  358. RAM, or Random Access Memory, is the modifiable memory in the computer used by 
  359. programs. See Physical Memory. 
  360.  
  361.  
  362. ΓòÉΓòÉΓòÉ <hidden> Resident Pages ΓòÉΓòÉΓòÉ
  363.  
  364. Resident pages are pages of RAM that cannot be swapped.  They must remain in 
  365. RAM at all times until freed. 
  366.  
  367.  
  368. ΓòÉΓòÉΓòÉ <hidden> ROM ΓòÉΓòÉΓòÉ
  369.  
  370. ROM, or Read Only Memory, is the unchangeable memory in the computer used by 
  371. permanent programs. See Physical Memory. 
  372.  
  373.  
  374. ΓòÉΓòÉΓòÉ <hidden> SFT ΓòÉΓòÉΓòÉ
  375.  
  376. The System File Table entry contains information about each unique instance of 
  377. an open file. 
  378.  
  379.  
  380. ΓòÉΓòÉΓòÉ <hidden> SMP ΓòÉΓòÉΓòÉ
  381.  
  382. Symetrical MultiProcessors. 
  383.  
  384.  
  385. ΓòÉΓòÉΓòÉ <hidden> Swappable Pages ΓòÉΓòÉΓòÉ
  386.  
  387. Swappable pages are pages of RAM that can be swapped. They may be in RAM or on 
  388. disk. 
  389.  
  390.  
  391. ΓòÉΓòÉΓòÉ <hidden> Swapped Pages ΓòÉΓòÉΓòÉ
  392.  
  393. Swapped pages are those pages currently in the SWAPPER.DAT file. 
  394.  
  395.  
  396. ΓòÉΓòÉΓòÉ <hidden> SWAPPER.DAT ΓòÉΓòÉΓòÉ
  397.  
  398. The SWAPPER.DAT file is the disk file where pages are kept after being swapped 
  399. out. 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ <hidden> System Page Directory ΓòÉΓòÉΓòÉ
  403.  
  404. The System Page Directory is the page directory which is pointed to by the 
  405. processors' Control Register 3. 
  406.  
  407.  
  408. ΓòÉΓòÉΓòÉ <hidden> TCB ΓòÉΓòÉΓòÉ
  409.  
  410. The TCB, or Thread Control Block, contains information unique to a thread. 
  411.  
  412.  
  413. ΓòÉΓòÉΓòÉ <hidden> Thread ΓòÉΓòÉΓòÉ
  414.  
  415. A thread is the dispatchable entity within the OS/2 system. A thread is 
  416. identified within a process by its TID. It is uniquely identified within the 
  417. OS/2 system by a thread number. 
  418.  
  419.  
  420. ΓòÉΓòÉΓòÉ <hidden> Thread Number ΓòÉΓòÉΓòÉ
  421.  
  422. A thread number is the system wide unique identifier for a thread. A thread 
  423. number is used within the OS/2 dispatcher, for example. Do not confuse the 
  424. thread number with thread ID. 
  425.  
  426.  
  427. ΓòÉΓòÉΓòÉ <hidden> TIB ΓòÉΓòÉΓòÉ
  428.  
  429. The TIB, or Thread Information Block, contains information about the currently 
  430. running thread and is accessible by the application program. 
  431.  
  432.  
  433. ΓòÉΓòÉΓòÉ <hidden> TID ΓòÉΓòÉΓòÉ
  434.  
  435. The TID, or Thread ID, is a 16-bit number that uniquely identifies a thread 
  436. within a process. 
  437.  
  438.  
  439. ΓòÉΓòÉΓòÉ <hidden> TSD ΓòÉΓòÉΓòÉ
  440.  
  441. The TSD, or Thread Swappable Data, is the portion of a thread control block 
  442. that is swappable. 
  443.  
  444.  
  445. ΓòÉΓòÉΓòÉ <hidden> TSS ΓòÉΓòÉΓòÉ
  446.  
  447. The TSS, or Task State Segment, is a 386 control block used by the processor to 
  448. control its multi-tasking functions. 
  449.  
  450.  
  451. ΓòÉΓòÉΓòÉ <hidden> UVirt Page ΓòÉΓòÉΓòÉ
  452.  
  453. A UVirt page is a page that has been defined by a device driver or the kernel 
  454. by using one of their special functions. The device driver function is 
  455. DevHlp_PhysToUVirt. The "physical address" in the Page Table Entry may not 
  456. point to a real page of RAM. It may point to an I/O adapter card or some other 
  457. "pseudo-memory." 
  458.  
  459.  
  460. ΓòÉΓòÉΓòÉ <hidden> Virtual Address ΓòÉΓòÉΓòÉ
  461.  
  462. Virtual addresses have both selectors and offsets. They are represented by 
  463. THESEUS as ssss:oooo or ssss:oooooooo (selector:offset) (all in hexadecimal 
  464. notation). 
  465.  
  466.  
  467. ΓòÉΓòÉΓòÉ <hidden> Virtual Memory ΓòÉΓòÉΓòÉ
  468.  
  469. Virtual memory is memory as seen by the program. It is referenced by a virtual 
  470. address or a flat address. (As opposed to physical memory.) 
  471.  
  472.  
  473. ΓòÉΓòÉΓòÉ <hidden> Virtual Page Table ΓòÉΓòÉΓòÉ
  474.  
  475. The Virtual Page Table keeps track of committed memory. This table contains an 
  476. entry for each page of committed memory. 
  477.  
  478.  
  479. ΓòÉΓòÉΓòÉ <hidden> Working Set ΓòÉΓòÉΓòÉ
  480.  
  481. The working set is the set of memory (pages) referenced in the last n time 
  482. intervals. The working set includes both resident and locked pages and 
  483. swappable pages. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
  487.  
  488. References in this publication to IBM products, programs, or services do not 
  489. imply that IBM intends to make these available in all countries in which IBM 
  490. operates. 
  491.  
  492. Any reference to an IBM product, program, or service is not intended to state 
  493. or imply that only IBM's product, program, or service may be used. 
  494.  
  495. Any functionally equivalent product, program, or service that does not infringe 
  496. any of IBM's intellectual property rights or other legally protectible rights 
  497. may be used instead of the IBM product, program, or service. 
  498.  
  499. Evaluation and verification of operation in conjunction with other products, 
  500. programs, or services, except those expressly designated by IBM, are the user's 
  501. responsibility. 
  502.  
  503. IBM may have patents or pending patent applications covering subject matter in 
  504. this document.  The furnishing of this document does not give you any rights to 
  505. these patents. 
  506.  
  507. You can inquire, in writing, to the IBM Director of Commercial Relations, IBM 
  508. Corporation, Purchase, NY 10577 - USA, or to the IBM Director of Commercial 
  509. Relations, IBM World Trade Asia Corporation, IBM Kamiya-cho Building, 4-3-9 
  510. Toranomon, Minato-ku, Tokyo, Japan. 
  511.  
  512. The following terms, denoted by an asterisk (*) in this reference, are 
  513. trademarks of the IBM Corporation in the United States and/or other countries: 
  514.  
  515. IBM   THESEUSn    Operating System/2    Hyperblock   OS/2
  516. SystemView   Presentation Manager   CSet/2  WARP
  517.  
  518. The following terms, denoted by a double asterisk (**) in this reference, are 
  519. trademarks of other companies as follows: 
  520.  
  521. Microsoft   Microsoft Corporation
  522.  
  523. The following paragraph does not apply to the United Kingdom or any country 
  524. where such provisions are inconsistent with local law. 
  525.  
  526. INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS INFORMATION "AS IS" 
  527. WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT 
  528. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 
  529. PARTICULAR PURPOSE. 
  530.  
  531. Some states do not allow disclaimer of express or implied warranties in certain 
  532. transactions; therefore, this statement may not apply to you. 
  533.  
  534. This information could include technical inaccuracies or typographical errors. 
  535. Changes are periodically made to the information herein; these changes will be 
  536. incorporated in new editions of the information.  IBM may make improvements 
  537. and/or changes in the product(s) and/or the program(s) described in this 
  538. information at any time. 
  539.  
  540. It is possible that this information may contain reference to, or information 
  541. about, IBM products (machines and programs), programming, or services that are 
  542. not announced in your country.  Such references or information must not be 
  543. construed to mean that IBM intends to announce such IBM products, programming, 
  544. or services in your country. 
  545.  
  546. Requests for copies of this information and for technical information about IBM 
  547. products should be made to your IBM Authorized Dealer or your IBM Marketing 
  548. Representative. 
  549.  
  550. (C) Copyright International Business Machines Corporation 1992, 1999.  All 
  551. rights reserved. 
  552.  
  553. Note to U.S. Government Users:  Documentation and programs related to 
  554. restricted rights.  Use, duplication, or disclosure is subject to restrictions 
  555. set forth in GSA ADP Schedule Contract with IBM Corp. 
  556.  
  557.  
  558. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  559.  
  560. THESEUS4* is a memory analysis program for the OS/2 WARP* 3.x, 4.x, and 
  561. e-Business server systems to: 
  562.  
  563.    1. Determine the amount of memory consumed by each active process. 
  564.         a) Memory leak detection. 
  565.         b) Working set analysis. 
  566.         c) Memory utilization. 
  567.    2. Look at application memory (in hexadecimal notation) 
  568.         a) In hexadecimal byte notation. 
  569.         b) In hexadecimal word notation (2 bytes). 
  570.         c) In hexadecimal double word notation ( 4 bytes ). 
  571.         d) In unassembled notation. 
  572.    3. Look at selected OS/2 system control blocks (formatted) 
  573.    4. Look at selected machine registers and control blocks (formatted) 
  574.  
  575.  THESEUS4 uses two classes of windows: 
  576.  
  577.  Process Hierarchy     Shows the hierarchy of processes as they currently exist 
  578.                        in memory. There is only 1 window of this class. 
  579.  Detail                Shows information about specific areas in either the 
  580.                        OS/2 system or application memory. There can be up to 16 
  581.                        windows of this class. 
  582.  
  583.  Other topics include: 
  584.  
  585.  Demonstration               demonstrating some of THESEUS4's functions 
  586.  How to use THESEUS4         understanding how to use THESEUS4 
  587.  Memory Explanations         understanding how memory is managed in OS/2 3.x, 
  588.                              4.x, and e-Business server. 
  589.  Glossary                    meanings of terms. 
  590.  
  591.  
  592. ΓòÉΓòÉΓòÉ 3. Who Was Theseus? ΓòÉΓòÉΓòÉ
  593.  
  594. Theseus (pronounced Thee'-see-us) was one of the Attic heroes of Greek 
  595. mythology. According to legend, he was one of the young Greeks chosen to be 
  596. sacrificed to the Minotaur, the mythical half man/half bull confined in the 
  597. Labyrinth. Instead, Theseus killed the Minotaur. One of the local girls, 
  598. Ariadne, gave him a thread, which he used to mark his trail into and out of the 
  599. Labyrinth. He then married Ariadne and they sailed off into the sunset. 
  600.  
  601. The analogy of the labyrinth is appropriate, because assigning memory to a user 
  602. in the OS/2 environment is quite complex, much like the Labyrinth of old. 
  603. However, this program knows its way through the labyrinth and can assist you in 
  604. determining the amount of memory used by your programs. 
  605.  
  606.  
  607. ΓòÉΓòÉΓòÉ 4. A Short Demonstration ΓòÉΓòÉΓòÉ
  608.  
  609. THESEUS4 is a PM windowed application with hyperblock linking between the OS/2 
  610. control blocks. To try it out: 
  611.  
  612.    1. Bring up THESEUS4. 
  613.    2. Select the Registers pull-down. 
  614.    3. Select Control Registers. 
  615.    4. Double-click mouse button 1 while pointing at the GDT base value (which 
  616.       is in green). 
  617.    5. What you are seeing is the formatted GDT. 
  618.    6. Close that window. 
  619.    7. Double-click mouse button 2 while pointing at the GDT base value (which 
  620.       is in green). 
  621.    8. What you are seeing is a "description" of the GDT memory object. 
  622.    9. Press the F1 key to obtain a help panel that explains what you are 
  623.       looking at. 
  624.  
  625.  
  626. ΓòÉΓòÉΓòÉ 5. Glossary ΓòÉΓòÉΓòÉ
  627.  
  628.  Word       Definition 
  629.  Alias Record There is an alias record for each memory object which has more 
  630.             than one Arena Record referring to it. The handle of the alias 
  631.             record is a hal. 
  632.  Arena      An arena maps a linear address space by way of a doubly linked 
  633.             circular chain of arena records. Each arena starts with a sentinel 
  634.             record. There are three separate arenas associated with each 
  635.             process: With SMP and the e-Business server for both UNI and SMP a 
  636.             32-bit application can now address and allocate memory above the 
  637.             512MB linear address space ( shared arena ). 
  638.             private            Maps the linear address space unique to that 
  639.                                process. This memory holds EXE files and memory 
  640.                                objects allocated using the DosAllocMem 
  641.                                function. 
  642.             high private       Maps the linear address space above the 512MB 
  643.                                line unique to that process. Allocation units 
  644.                                are 4K pages. Allocation starts at the 512MB 
  645.                                linear address mark incrementing toward the 
  646.                                system arena. 
  647.             shared             Maps the linear address space shared by all the 
  648.                                processes. This memory holds DLL files and 
  649.                                memory objects allocated using the 
  650.                                DosAllocSharedMem function. 
  651.             high shared        Maps the linear address space above the 512MB 
  652.                                line shared by all the processes.  Allocation 
  653.                                units are 4k pages. Allocation starts at the 
  654.                                system arena lowest linear address and is 
  655.                                allocted towards the high private arena. 
  656.             system             Maps the linear address space which belongs to 
  657.                                the OS/2 system. 
  658.  Arena Record There is an arena record for each memory object that has linear 
  659.             address space allocated to it. The handle of the arena record is a 
  660.             har. The arena records are arranged in arenas. 
  661.  Claimable Page A claimable page is one that is not marked present in a 
  662.             particular Page Table Entry, however, the page is present. On the 
  663.             first reference to the page, the page will simply be marked 
  664.             "present". 
  665.  Clean Page A clean page is one that has not been written to in RAM since being 
  666.             loaded from disk. 
  667.  Committed Memory Committed memory is memory that has been both allocated and 
  668.             committed. Committed memory has an entry in the Virtual Page Table 
  669.             and can be "backed" by: 
  670.                 A page of real RAM 
  671.                 A page of DASD in the SWAPPER.DAT file 
  672.                 A page of a program file 
  673.                 Nothing. 
  674.  Context    Many memory objects are associated with a particular OS/2 process. 
  675.             The context of a memory object refers to the process with which it 
  676.             is associated. 
  677.  Context Record There is a context record for each process that can access a 
  678.             particular memory object in the shared arena. The handle of the 
  679.             context record is a hco. 
  680.  Description in English Memory objects are "described" in several of the 
  681.             THESEUS displays as follows: 
  682.                  Description   Meaning 
  683.             module_name #nnnn 
  684.                                The memory object is part of a module. The 
  685.                                module is named and the nnnn is the 
  686.                                object/segment number within the module. The 
  687.                                object/segment type (code or data) is shown. If 
  688.                                the object/segment is data, it is indicated 
  689.                                whether it is shared or private. (If the 
  690.                                object/segment table is swapped out, then the 
  691.                                object/segment number is FFFF.) 
  692.             module_name allocated it 
  693.                                The memory object was allocated by the named 
  694.                                module using one of the Dos... functions. 
  695.             string (owner) 
  696.                                The memory object is part of the Operating 
  697.                                System. The kernel "subsystem" is named in 
  698.                                string. This was decoded using the "owner" field 
  699.                                of the Object Record. 
  700.             string (hmte [system owner]) 
  701.                                The memory object is part of the Operating 
  702.                                System. The kernel "subsystem" is named in 
  703.                                string. This was decoded using the "hmte" field 
  704.                                of the Object Record. 
  705.  Dirty Page A dirty page is one that has been written to in RAM, but not yet 
  706.             written to the SWAPPER.DAT file. 
  707.  DTE        A DTE, or Descriptor Table Entry, is an entry in a Descriptor Table 
  708.             (GDT, LDT, or IDT). It includes the linear address and size of a 
  709.             segment. 
  710.  Exit List  The list of routines that are to be executed when a process ends. 
  711.  File Handle The handle of a file. There are process handles which are unique 
  712.             for a process and system handles which are common across the entire 
  713.             system. 
  714.  Flat Address A flat address is a virtual offset. Because the selector 
  715.             registers (loaded by the operating system) have a base address of 
  716.             00000000, flat is equivalent to linear. 
  717.  Fonts      Fonts control the shapes and sizes of the characters being 
  718.             displayed. Only monospace fonts (all characters the same width) can 
  719.             be used by THESEUS. Only display fonts can be selected in THESEUS. 
  720.             Printer fonts cannot be changed by THESEUS. 
  721.  Free Page  A free page is a page of RAM not currently in use. However, it may 
  722.             be allocated by the Page Manager and associated with a memory 
  723.             object. 
  724.  GDT        The Global Descriptor Table contains the descriptor table entries 
  725.             for selectors that can be accessed by any process. 
  726.  Handle     Within the OS/2 system, a handle is used to refer from one control 
  727.             block to another, without using the actual address. A handle is 
  728.             normally a 16-bit word. 
  729.  hal        The handle of an alias record is a hal. 
  730.  har        The handle of an arena record is a har. 
  731.  hco        The handle of a context record is a hco. 
  732.  hmte       The handle of an MTE is a hmte. 
  733.  hob        The handle of an object record is a hob. 
  734.  Hyperblock Links Hyperblock* links allow you to navigate from one control 
  735.             block to another by using the mouse to select the address of the 
  736.             block to be viewed. A hyperblock link is denoted by its different 
  737.             color. The color of the links can be changed with the 'Link' color 
  738.             option of the Misc menu in the Process Hierarchy window. 
  739.  Idle Page  An idle pages is a page that has not been recently used. The Page 
  740.             Ager program runs when the number of free pages becomes small. Idle 
  741.             pages are placed on the idle list before being removed from the 
  742.             system. 
  743.  IDT        The Interrupt Descriptor Table contains the descriptor table 
  744.             entries for selectors used to execute the proper interrupt routine. 
  745.  LDT        The Local Descriptor Table contains the descriptor table entries 
  746.             for selectors that can be accessed by a single process. There is 
  747.             one for each process. 
  748.  Linear Address A linear address is the intermediate result when the CPU is 
  749.             resolving memory addresses. They are represented by THESEUS as 
  750.             llllllll (in hexadecimal notation). 
  751.  Link       see Hyperblock Link. 
  752.  Locked Page A locked page is a page of RAM that has been locked with the 
  753.             DevHlp_Lock... function. It may be locked either long term or short 
  754.             term. 
  755.  Memory Leak When a program allocates memory and then does not free it, that 
  756.             program is said to be "leaking memory." 
  757.  Memory Object A memory object is the logical allocation unit of memory. 
  758.             Applications allocate memory objects using the DosAllocMem or 
  759.             DosAllocSharedMem functions. 
  760.  MTE        An MTE, or Module Table Entry, is an in-memory description of an 
  761.             executable module. The handle of an MTE is an hmte. 
  762.  n-way      This term is used to indicate the number of processers in an SMP 
  763.             configuration. For example 1-way would be one active processor in 
  764.             an SMP configuration or if there where three it would be 3-way. 
  765.  Object Record There is an object record for each memory object in the system. 
  766.             Most objects are real objects and associated with arena records, 
  767.             containing a linear address. However, some objects are 
  768.             pseudo-objects, and the linear address is in the object record. The 
  769.             handle of an object record is a hob. 
  770.  Owner      All allocated memory has an owner. For system memory, that owner is 
  771.             a hexadecimal value, starting with hex FF. Each sub-system in the 
  772.             kernel has one or more unique values for keeping track of allocated 
  773.             memory. For private memory, the owner is the hob of a PTDA or MTE. 
  774.             For shared memory, the owner may be either a system owner value, 
  775.             the hob of a PTDA, or the hob of an MTE. The owner value is in the 
  776.             object record. 
  777.  Page Directory The Page Directory is the first-level address translation table 
  778.             used by the hardware to map a linear address to a physical address. 
  779.             The entries in the Page Directory point to Page Tables. 
  780.  Page Frame Table The Page Frame Table has an entry for each page in the 
  781.             physical address space. This space includes all the real RAM in the 
  782.             machine, the I/O RAM space, and the ROM space. This table keeps 
  783.             track of the contents of each physical page. 
  784.  Page Table The Page Table is the second-level address translation table used 
  785.             by the hardware to map a linear address to a physical address. The 
  786.             entries in the Page Directory point to Page Tables, which in turn 
  787.             point to pages of physical RAM. 
  788.  PDE        A PDE, or Page Directory Entry, contains the physical address of a 
  789.             particular Page Table. 
  790.  Physical Address A physical address is the final result when the CPU is 
  791.             resolving memory addresses. They are used to address the memory 
  792.             chips. They are represented by THESEUS as pppppppp (in hexadecimal 
  793.             notation). 
  794.  Physical Memory The physical memory in the machine is referenced by a physical 
  795.             address. (As opposed to virtual memory.) 
  796.  PID        The process ID is a 16-bit number that uniquely identifies an OS/2 
  797.             process. 
  798.  Popup Menu A popup menu is activated by a single-click of mouse button 2 or by 
  799.             pressing the Shift-F10 key sequence. A popup menu appears next to 
  800.             the item selected. 
  801.  Present Pages Present pages are those pages currently in RAM. 
  802.  Process    In the OS/2 system, processes are the owners of resources. One or 
  803.             more cooperating processes make up each application. Each process 
  804.             takes its name from EXE file it is associated with. Each process is 
  805.             uniquely identified within the OS/2 system by its PID. (In other 
  806.             systems, processes are called "tasks.") 
  807.  Process Page Directory Each process is associated with a Process Page 
  808.             Directory. This directory contains the PDEs for the first 512MB of 
  809.             linear address space. The Process Page Directory is copied into the 
  810.             first 128 entries of the System Page Directory when the process is 
  811.             dispatched. 
  812.  Pseudo-Object Pseudo-objects are areas of memory allocated from kernel heap 
  813.             space. Because they have hobs, they can be accessed the same way as 
  814.             normal memory objects. MTEs and PTDAs are pseudo-objects. 
  815.  PTDA       The PTDA, or Per Task Data Area, describes the resources owned by a 
  816.             process. 
  817.  PTE        The PTE, or Page Table Entry, contains the physical address of a 
  818.             page. 
  819.  RAM        RAM, or Random Access Memory, is the modifiable memory in the 
  820.             computer used by programs. See Physical Memory. 
  821.  Resident Pages Resident pages are pages of RAM that cannot be swapped.  They 
  822.             must remain in RAM at all times until freed. 
  823.  ROM        ROM, or Read Only Memory, is the unchangeable memory in the 
  824.             computer used by permanent programs. See Physical Memory. 
  825.  SFT        The System File Table entry contains information about each unique 
  826.             instance of an open file. 
  827.  SMP        Symetrical MultiProcessors. 
  828.  Swappable Pages Swappable pages are pages of RAM that can be swapped. They may 
  829.             be in RAM or on disk. 
  830.  Swapped Pages Swapped pages are those pages currently in the SWAPPER.DAT file. 
  831.  SWAPPER.DAT The SWAPPER.DAT file is the disk file where pages are kept after 
  832.             being swapped out. 
  833.  System Page Directory The System Page Directory is the page directory which is 
  834.             pointed to by the processors' Control Register 3. 
  835.  TCB        The TCB, or Thread Control Block, contains information unique to a 
  836.             thread. 
  837.  Thread     A thread is the dispatchable entity within the OS/2 system. A 
  838.             thread is identified within a process by its TID. It is uniquely 
  839.             identified within the OS/2 system by a thread number. 
  840.  Thread Number A thread number is the system wide unique identifier for a 
  841.             thread. A thread number is used within the OS/2 dispatcher, for 
  842.             example. Do not confuse the thread number with thread ID. 
  843.  TIB        The TIB, or Thread Information Block, contains information about 
  844.             the currently running thread and is accessible by the application 
  845.             program. 
  846.  TID        The TID, or Thread ID, is a 16-bit number that uniquely identifies 
  847.             a thread within a process. 
  848.  TSD        The TSD, or Thread Swappable Data, is the portion of a thread 
  849.             control block that is swappable. 
  850.  TSS        The TSS, or Task State Segment, is a 386 control block used by the 
  851.             processor to control its multi-tasking functions. 
  852.  UVirt Page A UVirt page is a page that has been defined by a device driver or 
  853.             the kernel by using one of their special functions. The device 
  854.             driver function is DevHlp_PhysToUVirt. The "physical address" in 
  855.             the Page Table Entry may not point to a real page of RAM. It may 
  856.             point to an I/O adapter card or some other "pseudo-memory." 
  857.  Virtual Address Virtual addresses have both selectors and offsets. They are 
  858.             represented by THESEUS as ssss:oooo or ssss:oooooooo 
  859.             (selector:offset) (all in hexadecimal notation). 
  860.  Virtual Memory Virtual memory is memory as seen by the program. It is 
  861.             referenced by a virtual address or a flat address. (As opposed to 
  862.             physical memory.) 
  863.  Virtual Page Table The Virtual Page Table keeps track of committed memory. 
  864.             This table contains an entry for each page of committed memory. 
  865.  Working Set The working set is the set of memory (pages) referenced in the 
  866.             last n time intervals. The working set includes both resident and 
  867.             locked pages and swappable pages. 
  868.  
  869.  
  870. ΓòÉΓòÉΓòÉ 6. How to use THESEUS4 ΓòÉΓòÉΓòÉ
  871.  
  872. The following aspects of using THESEUS4 are explored: 
  873.  
  874.      Hyperblock Links 
  875.      Mouse Usage 
  876.      Memory Analysis Using THESEUS4 
  877.      How to Do Things with THESEUS4 
  878.  
  879.  
  880. ΓòÉΓòÉΓòÉ 6.1. Hyperblock (tm) links ΓòÉΓòÉΓòÉ
  881.  
  882. Hyperblock* links allow you to navigate from one control block to another by 
  883. using the mouse to select the address of the block to be viewed. A hyperblock 
  884. link is denoted by its different color. The color of the links can be changed 
  885. with the 'Link' color option of the Misc menu in the Process Hierarchy window. 
  886.  
  887.  
  888. ΓòÉΓòÉΓòÉ 6.2. Mouse usage and item selection ΓòÉΓòÉΓòÉ
  889.  
  890. The usage of the Mouse is dependent on the context, as follows: 
  891.  
  892. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  893. ΓöéItem\Context  ΓöéMain Window   ΓöéDetail Window       ΓöéDetail Window Γöé
  894. Γöé              Γöé              Γöé(normal usage)      Γöé(selecting an Γöé
  895. Γöé              Γöé              Γöé                    Γöéarea)         Γöé
  896. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  897. ΓöéPointer       ΓöéPoints to the ΓöéPoints to the       ΓöéMarks off     Γöé
  898. Γöé              Γöédesired       Γöédesired hyperblock  Γöéopposite      Γöé
  899. Γöé              Γöéprocess.      Γöélink.               Γöécorners of theΓöé
  900. Γöé              Γöé              Γöé                    Γöéarea to be    Γöé
  901. Γöé              Γöé              Γöé                    Γöéselected.     Γöé
  902. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  903. ΓöéButton 1      ΓöéSelects the   ΓöéSelects the         ΓöéStarts/stops  Γöé
  904. Γöé(single-click)Γöéprocess that  Γöéhyperblock link thatΓöéselecting the Γöé
  905. Γöé              Γöéthe pointer isΓöéthe pointer is over.Γöéarea.         Γöé
  906. Γöé              Γöéover.         Γöé                    Γöé              Γöé
  907. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  908. ΓöéButton 1      ΓöéDisplays      ΓöéDisplays the linked Γöé              Γöé
  909. Γöé(double-click)Γöégeneral       Γöémemory object that  Γöé              Γöé
  910. Γöé              Γöéinformation   Γöéthe pointer is over.Γöé              Γöé
  911. Γöé              Γöéabout the     Γöé                    Γöé              Γöé
  912. Γöé              Γöéprocess that  Γöé                    Γöé              Γöé
  913. Γöé              Γöéthe pointer isΓöé                    Γöé              Γöé
  914. Γöé              Γöéover.         Γöé                    Γöé              Γöé
  915. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  916. ΓöéButton 2      Γöé              ΓöéDisplays a popup    Γöé              Γöé
  917. Γöé(single-click)Γöé              Γöémenu customized for Γöé              Γöé
  918. Γöé              Γöé              Γöéthe hyperblock link Γöé              Γöé
  919. Γöé              Γöé              Γöéwhich is selected.  Γöé              Γöé
  920. Γöé              Γöé              ΓöéIf there is not a   Γöé              Γöé
  921. Γöé              Γöé              Γöéhyperblock link     Γöé              Γöé
  922. Γöé              Γöé              Γöéselected, then      Γöé              Γöé
  923. Γöé              Γöé              Γöédisplays a general  Γöé              Γöé
  924. Γöé              Γöé              Γöépopup menu.         Γöé              Γöé
  925. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  926. ΓöéButton 2      Γöé              ΓöéDescribes the linkedΓöé              Γöé
  927. Γöé(double-click)Γöé              Γöémemory object that  Γöé              Γöé
  928. Γöé              Γöé              Γöéthe pointer is over.Γöé              Γöé
  929. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  930.  
  931. There is a pause between releasing mouse button 2 and the display of the popup 
  932. menu. As a result, the program can distinguish between a single-click and a 
  933. double-click. The time used is the system-maintained time for double-clicks 
  934. (SV_DBLCLKTIME). 
  935.  
  936.  
  937. ΓòÉΓòÉΓòÉ 6.3. Memory Analysis Using THESEUS4 ΓòÉΓòÉΓòÉ
  938.  
  939. We have found it necessary to look at memory usage in several different ways. 
  940. Sometimes we need to see how much memory has been allocated, sometimes we need 
  941. to see how much has been committed, sometimes we need to see how much is in 
  942. use. The various memory analysis functions of THESEUS4 were created to satisfy 
  943. these needs. 
  944.  
  945. Analysis of memory usage can be done by THESEUS4 as follows: 
  946.  
  947.      Memory Usage for the Entire System 
  948.      Kernel Memory Usage 
  949.      Memory Usage by a Single Process 
  950.      Working Set of the Entire System 
  951.      Working Set of a Single Process 
  952.  
  953.  
  954. ΓòÉΓòÉΓòÉ 6.3.1. Memory Usage for the Entire System ΓòÉΓòÉΓòÉ
  955.  
  956. The amount of memory (RAM) consumed by each process is determined and then a 
  957. summary of consumption by all processes is displayed by the RAM Usage by 
  958. Process function. Memory is considered consumed if it is allocated and marked 
  959. present in the Page Table Entry. 
  960.  
  961. This is done for the entire system and the display includes data for all 
  962. processes. 
  963.  
  964. This gives an overall indication of memory consumption. However, since this 
  965. does not consider which pages are being used, only present, the actual amount 
  966. of memory needed by each process may be less than the amount shown. 
  967.  
  968.  
  969. ΓòÉΓòÉΓòÉ 6.3.2. Kernel Memory Usage ΓòÉΓòÉΓòÉ
  970.  
  971. The amount of memory consumed by the operating system is determined by system 
  972. owner code by the Kernel Memory Usage function. The information is displayed 
  973. sorted by system owner code. 
  974.  
  975. This is useful to determine how much memory is consumed by: 
  976.  
  977.      Device driver allocated (owner = FF6B - allocated via devhlp AllocPhys), 
  978.       which includes any "RAM disk" allocated 
  979.      Kernel code (owner = FFAA - os2krnl load image) 
  980.      Any object allocated by the kernel, device drivers and IFSs. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ 6.3.3. Memory Usage by a Single Process ΓòÉΓòÉΓòÉ
  984.  
  985. Details about the memory usage by the selected process is displayed by the 
  986. Memory Utilization function. This data is computed as if there were no other 
  987. processes in the system. When multiple copies of a particular program are 
  988. running, each of them would show the EXE file as being consumed by that 
  989. process. 
  990.  
  991. This is done for only the selected process. Some detail for the process is 
  992. shown. 
  993.  
  994. This is useful for determining if a process is leaking memory. See Is a Process 
  995. Leaking Memory? (method 1) for a description of how to do this. 
  996.  
  997.  
  998. ΓòÉΓòÉΓòÉ 6.3.4. Working Set of the Entire System ΓòÉΓòÉΓòÉ
  999.  
  1000. The working set memory utilization of the entire system can be determined by 
  1001. the Working Set for the Entire System function. 
  1002.  
  1003. This is most useful if the working set of all the programs you normally run can 
  1004. be held in RAM at the same time. 
  1005.  
  1006. To see how to use this function, please see: 
  1007.  
  1008.      Working Set of the Entire System? 
  1009.      Working Set When it does not all fit? 
  1010.  
  1011.  
  1012. ΓòÉΓòÉΓòÉ 6.3.5. Working Set of a Single Process ΓòÉΓòÉΓòÉ
  1013.  
  1014. The working set memory utilization of a single process can be determined by the 
  1015. Working Set for a Single Process function. 
  1016.  
  1017. This is useful if you are only interested in a single process or if all of your 
  1018. the programs you normally run do not fit in RAM. 
  1019.  
  1020. To see how to use this function, please see: 
  1021.  
  1022.      Working Set of a Single Process? 
  1023.      Working Set When it does not all fit? 
  1024.  
  1025.  
  1026. ΓòÉΓòÉΓòÉ 6.4. How to Do Things with THESEUS4 ΓòÉΓòÉΓòÉ
  1027.  
  1028. It is possible to do a number of different program analysis functions in 
  1029. addition to the memory analysis functions. Some of them are: 
  1030.  
  1031.      What is at an Address? 
  1032.      Valid Contexts for a Shared Linear Address? 
  1033.      Where is Code Loaded? 
  1034.      Is a Process Leaking Memory? (programatic method) This also includes the 
  1035.       functions for determining why the SWAPPER.DAT file is continuing to 
  1036.       increase in size. 
  1037.      Is a Process Leaking Memory? (old method 1) 
  1038.      Is a Process Leaking Memory? (old method 2) 
  1039.      Working Set of the Entire System? 
  1040.      Working Set of a Multi-Process Application? 
  1041.      Working Set of a Single Process? 
  1042.      Working Set When it does not all fit? 
  1043.  
  1044.  
  1045. ΓòÉΓòÉΓòÉ 6.4.1. What is at an Address? ΓòÉΓòÉΓòÉ
  1046.  
  1047. To determine what memory object is at a specific address: 
  1048.  
  1049.    1. Select the process in whose context the address lies. 
  1050.    2. Select the General Process Information option of the Process pull-down. 
  1051.    3. Select the Show Description option of the Functions pull-down. 
  1052.    4. Enter the desired address type and value. 
  1053.    5. The object description is shown. 
  1054.  
  1055.  
  1056. ΓòÉΓòÉΓòÉ 6.4.2. Valid Contexts for a Shared Linear Address? ΓòÉΓòÉΓòÉ
  1057.  
  1058. To determine what processes have access to a shared linear address: 
  1059.  
  1060.    1. Select the 'sysinit' process. 
  1061.    2. Select the Shared Object Summary option of the Process pull-down. 
  1062.    3. Select the Show Description option. 
  1063.    4. Enter the desired address type and value. 
  1064.    5. The object description is shown, including all the processes' Page Table 
  1065.       Entries for the object. The Context Records also show which processes 
  1066.       have access and the type of access allowed. 
  1067.  
  1068.  
  1069. ΓòÉΓòÉΓòÉ 6.4.3. Where is Code Loaded? ΓòÉΓòÉΓòÉ
  1070.  
  1071. To determine where code objects are loaded (so you can program a tool like the 
  1072. "Intel In-Circuit Analyzer" (ICE): 
  1073.  
  1074.    1. Select the process in whose context the program is running. 
  1075.    2. Select the Modules option of the System pull-down. 
  1076.    3. Find the module you are interested in. (You can use the Find dialog to 
  1077.       have THESEUS4 find the module for you.) 
  1078.    4. Double-click the left mouse button while pointing at the MTE @ (first 
  1079.       column) value. This will display the formatted MTE. 
  1080.    5. Move to the Object/Segment Table, at the bottom of the display. 
  1081.    6. Double-click the right mouse button while pointing at the address of the 
  1082.       particular object/segment you want to map. The Page Table Entries map the 
  1083.       virtual/logical address of the module into the physical addresses needed. 
  1084.  
  1085.  
  1086. ΓòÉΓòÉΓòÉ 6.4.4. Is a Process Leaking Memory? (programatic method) ΓòÉΓòÉΓòÉ
  1087.  
  1088. To determine which process is leaking memory, use the Memory Leak Detection 
  1089. option on the System pull-down. 
  1090.  
  1091. To determine which memory object is leaking memory for a specific process, use 
  1092. the Memory Leak Detection option on the Process pull-down. 
  1093.  
  1094. To determine which pages in a memory object are being leaked, use the Memory 
  1095. Object Leak Detection option of the Functions pull-down in a detail window, 
  1096. after selecting the linear address of the memory object. 
  1097.  
  1098. There is a 'white paper' on CompuServe which discusses how to find memory leaks 
  1099. using both THESEUS4 and CSet/2's "debug malloc" support. I highly recommend 
  1100. that you get this to understand the mechanics of doing leak detection and 
  1101. correction. After logging onto CompuServe, 
  1102.  
  1103. go os2df2
  1104. lib 9
  1105. file name is "memlks.exe"
  1106. It is a "self-extracting" zip file. 
  1107.  
  1108.  
  1109. ΓòÉΓòÉΓòÉ 6.4.5. Is a Process Leaking Memory? (old method 1) ΓòÉΓòÉΓòÉ
  1110.  
  1111. To determine if a process is leaking memory: 
  1112.  
  1113.    1. Select the process you wish to examine. 
  1114.    2. Perform the function that you wish to examine. (This will cause all the 
  1115.       related pages of program and data to be loaded.) 
  1116.    3. Select the Memory Utilization option of the Process pull-down. Do not 
  1117.       close this window. 
  1118.    4. Perform the function that you wish to examine. 
  1119.    5. Select the Memory Utilization option of the Process pull-down, again. 
  1120.    6. Compare the results in the two Memory Utilization displays. Look at the 
  1121.       Total Shared originated and the Total Private lines, as these are the 
  1122.       ones that will change if leaking is taking place. (If you forget which 
  1123.       display is which, the time and date of display generation are displayed 
  1124.       on the last line of the display.) 
  1125.  
  1126.  
  1127. ΓòÉΓòÉΓòÉ 6.4.6. Is a Process Leaking Memory? (old method 2) ΓòÉΓòÉΓòÉ
  1128.  
  1129. To determine if a process is leaking memory, when the SWAPPER.DAT file is 
  1130. growing: 
  1131.  
  1132.    1. Select the Swapper display. 
  1133.    2. Look at the entries at the bottom of the display. If a process is leaking 
  1134.       memory, it will usually have a lot of pages in the SWAPPER.DAT file which 
  1135.       are the same type of  memory object as the one which is being leaked. 
  1136.  
  1137.  
  1138. ΓòÉΓòÉΓòÉ 6.4.7. Working Set of the Entire System? ΓòÉΓòÉΓòÉ
  1139.  
  1140. To determine the working set of the entire system: 
  1141.  
  1142.    1. Select the Working Set option of the System pull-down. 
  1143.    2. Select the Working Set Parameters option of the Functions pull-down. 
  1144.    3. Make any changes that you want to the default data collection parameters. 
  1145.    4. Select the Working Set Start option of the Functions pull-down. 
  1146.    5. Perform the functions (in your application) that you want measured. 
  1147.    6. Return to THESEUS4's working set window and select the Working Set Stop 
  1148.       option of the Functions pull-down. 
  1149.    7. A summary of the working set for the entire system is displayed. 
  1150.    8. Detail working set information may be obtained by: 
  1151.           Selecting the Show Detail by Page option of the Functions pull-down 
  1152.           Selecting the Show Detail by Object option of the Functions 
  1153.            pull-down 
  1154.  
  1155.  If you want to know the working sets of individual processes, see the section 
  1156.  Working Set of a Single Process. 
  1157.  
  1158.  
  1159. ΓòÉΓòÉΓòÉ 6.4.8. Working Set of a Multi-Process Application? ΓòÉΓòÉΓòÉ
  1160.  
  1161. A method we use in Austin in the performance analysis departments to determine 
  1162. the working set of our complex, multi-process applications is to plot the 
  1163. results of the System Working Set output and look at the changes as we perform 
  1164. various functions. 
  1165.  
  1166.    1. Input the following one of the two commands to get the data collection 
  1167.       started: 
  1168.  
  1169.             workset2 system 5 12 /plot > filename   ( for system working set )
  1170.               -or-
  1171.             workset2 processName 5 12 /plot > filename    ( for a process )
  1172.       If you want to collect the data at another interval or number of 
  1173.       intervals in the working set, change the 5 and 12 to whatever you want. 
  1174.       NOTE: It is not recommended to change these, we found that these work 
  1175.       best. 
  1176.    2. Run your application, noting the times that you do specific events in 
  1177.       your scenario. 
  1178.    3. When you have completed the scenario, input the following: 
  1179.  
  1180.             ctl-c to stop the output of data.
  1181.  
  1182.    4. The output file is formatted for easy importing into most plotting 
  1183.       spread-sheets. There are four columns of data: 
  1184.         a) Time of day in hours, minutes, and seconds, without any delimiters. 
  1185.            For instance, current time is 10:26:10 AM and that would be 
  1186.            presented as 102610. 
  1187.         b) The now column in megabytes. 
  1188.         c) The working set column in megabytes. 
  1189.         d) The free column in megabytes. 
  1190.  
  1191.       We generally edit the time column and put in information which is better 
  1192.       for the horizontal plotting axis, for instance, we would put in the names 
  1193.       of the specific events in the scenario. 
  1194.    5. We then "import" this data into a plotting spread-sheet and plot the now 
  1195.       and working set columns. We get something similar to the following: 
  1196.  
  1197.    6. The difference between the RAM at B and the RAM at A is the size of the 
  1198.       application "steady-state" working set. 
  1199.    7. If there are changes at point C and point D, then these functions have 
  1200.       additional memory requirements. 
  1201.    8. The spikes at the specific functions shows the "transient" memory 
  1202.       required to perform these functions. 
  1203.    9. The highest of the working set spikes shows how much RAM is needed to be 
  1204.       able to run the application without thrashing RAM. 
  1205.   10. After the "stop" function is done, the working set should return to the 
  1206.       value at point A. 
  1207.  
  1208.  When this kind of test is run, the machine it is run on must have more memory 
  1209.  than the working set requires, such that the working set is no larger than 85% 
  1210.  of RAM. Otherwise, the system "page ager" and THESEUS4 conflict and the 
  1211.  resulting data is unreliable. 
  1212.  
  1213.  The customer machine must have more RAM than the highest of the "steady-state" 
  1214.  points. If it doesn't, then steady-state paging will occur and our experience 
  1215.  is that the user will not be satisfied with performance. Also, if the machine 
  1216.  has less than any one spike, then paging will occur during the processing of 
  1217.  that function and performance will degrade. 
  1218.  
  1219.  
  1220. ΓòÉΓòÉΓòÉ 6.4.9. Working Set of a Single Process? ΓòÉΓòÉΓòÉ
  1221.  
  1222. To determine the working set of memory for a particular process: 
  1223.  
  1224.    1. Select the process you wish to measure. 
  1225.    2. Select the Working Set option of the Process pull-down. 
  1226.    3. Select the Working Set Parameters option of the Functions pull-down. 
  1227.    4. Make any changes that you want to the default data collection parameters. 
  1228.    5. Select the Working Set Start option of the Functions pull-down. 
  1229.    6. Perform the functions (in your application) that you want measured. 
  1230.    7. Return to THESEUS4's working set window and select the Working Set Stop 
  1231.       option of the Functions pull-down. 
  1232.    8. A summary of the working set for the specified process is displayed. 
  1233.    9. Detail working set information may be obtained by: 
  1234.           Selecting the Show Detail by Page option of the Functions pull-down 
  1235.           Selecting the Show Detail by Object option of the Functions 
  1236.            pull-down 
  1237.  
  1238.  If you want to know the working set of the entire system, see the section 
  1239.  Working Set of the Entire System. 
  1240.  
  1241.  
  1242. ΓòÉΓòÉΓòÉ 6.4.10. Working Set When it does not all fit? ΓòÉΓòÉΓòÉ
  1243.  
  1244. To determine the working set of memory of a group of processes that do not all 
  1245. fit into RAM at the same time: 
  1246.  
  1247.    1. Start your system without any of your applications. 
  1248.    2. Do Working Set of the Entire System to determine the working set of the 
  1249.       base system with your configuration. 
  1250.    3. Do Working Set of a Single Process for each of your applications, one at 
  1251.       a time. 
  1252.    4. Do the following calculation: 
  1253.               Recommended amount of memory from step 2 
  1254.       +       Recommended amount of memory from each case of step 3 
  1255.       -       188K (THESEUS4's working set while taking the measurement) 
  1256.       =       Total working set for your case. 
  1257.  
  1258.  
  1259. ΓòÉΓòÉΓòÉ 7. Memory Explanations ΓòÉΓòÉΓòÉ
  1260.  
  1261. The following aspects of memory under the OS/2 system are explored: 
  1262.  
  1263.      Memory Addressing in the OS/2 System 
  1264.      Memory States 
  1265.      Memory Management Control Blocks 
  1266.      Cost of Memory Objects 
  1267.  
  1268.  
  1269. ΓòÉΓòÉΓòÉ 7.1. Memory Addressing in the OS/2 System ΓòÉΓòÉΓòÉ
  1270.  
  1271. The OS/2 system uses four types of addresses: 
  1272.  
  1273.  Virtual    Virtual addresses have both selectors and offsets. They are 
  1274.             represented by THESEUS as ssss:oooo or ssss:oooooooo 
  1275.             (selector:offset) (all in hexadecimal notation). These are 
  1276.             sometimes referred to as "16:16" addresses. This is the address 
  1277.             type that "16-bit / segmented" programs use. The system uses the 
  1278.             Global and Local Descriptor Tables to convert a virtual address to 
  1279.             a linear address. 
  1280.  
  1281.  Flat       A flat address is a virtual offset. Because the selector registers 
  1282.             (loaded by the operating system) have a base address of 00000000, 
  1283.             flat is equivalent to linear. These are sometimes referred to as 
  1284.             "0:32" addresses. This is the address type that "32-bit / flat" 
  1285.             programs use. 
  1286.  
  1287.  Linear     A linear address is the intermediate result when the CPU is 
  1288.             resolving memory addresses. They are represented by THESEUS as 
  1289.             llllllll (in hexadecimal notation). 
  1290.  
  1291.  Physical   A physical address is the final result when the CPU is resolving 
  1292.             memory addresses. They are used to address the memory chips. They 
  1293.             are represented by THESEUS as pppppppp (in hexadecimal notation). 
  1294.  
  1295.  See the Thunking Addresses section for conversion of "16:16" and "0:32" 
  1296.  addresses. 
  1297.  
  1298.  Because linear and physical addresses are both presented by THESEUS4 as eight 
  1299.  hexadecimal digits, the particular type must be deduced from context. However, 
  1300.  if THESEUS4 presents the address as a hyperblock link, it will do the proper 
  1301.  processing if the link is used. 
  1302.  
  1303.  Refer to the Intel 80386 Programmer's Reference Manual, Chapter 5 for more 
  1304.  information about how the processor handles addressing. 
  1305.  
  1306.  
  1307. ΓòÉΓòÉΓòÉ 7.1.1. Thunking Addresses ΓòÉΓòÉΓòÉ
  1308.  
  1309. The process of converting virtual addresses from one form to another is 
  1310. referred to as thunking. 
  1311.  
  1312. Addresses can be converted from the "0:32" flat address form to the "16:16" 
  1313. virtual address form by: 
  1314.  
  1315. selector = ((flat >> 16) << 3) | 7;
  1316. offset = flat & 0x0000FFFF;
  1317.  
  1318. Addresses can be converted from the "16:16" virtual address form to the "0:32" 
  1319. flat address form by: 
  1320.  
  1321. flat = ((selector >> 3) << 16) | offset;
  1322.  
  1323. Where: 
  1324.  
  1325.  Symbol    Meaning 
  1326.  >> n      Right shift n bits, filling on the left with zeros. 
  1327.  << n      Left shift n bits, filling on the right with zeros. 
  1328.  |         Bitwise or. 
  1329.  &         Bitwise and. 
  1330.  
  1331.  
  1332. ΓòÉΓòÉΓòÉ 7.1.2. Translation Lookaside Buffer ΓòÉΓòÉΓòÉ
  1333.  
  1334. The 80386 and i486 processors use a Translation Lookaside Buffer (TLB) to 
  1335. improve the instruction execution rate when doing paging. The TLB is a four-way 
  1336. set-associative memory which maps linear addresses to physical addresses. 
  1337.  
  1338. Each time a linear address without a TLB entry is translated, the appropriate 
  1339. TLB entry is loaded and this "...will add 13, 21 or 28 clocks to the 
  1340. instruction depending on whether the Accessed and/or Dirty bit in neither, one 
  1341. or both of the page entries needs to be set in memory" (Intel i486 
  1342. Microprocessor Programmer's Reference Manual, 1990, page E-2). 
  1343.  
  1344. The bottom three bits of the linear address page number (bits 12-14 of the 
  1345. linear address) are used to select the set of four data entries. Because most 
  1346. memory objects start on 64K boundaries, these bits are zeros and the same set 
  1347. of data entries is used for all address translation. TLB "thrashing" can occur 
  1348. if the first page of more than four memory objects are being referenced by the 
  1349. program. This causes the program execution time to substantially increase. 
  1350. Because the programmer has little control over where the variables used in 
  1351. high-level languages are stored, this problem is likely to occur. 
  1352.  
  1353.  
  1354. ΓòÉΓòÉΓòÉ <hidden> page entries ΓòÉΓòÉΓòÉ
  1355.  
  1356. Page Directory or Page Table 
  1357.  
  1358.  
  1359. ΓòÉΓòÉΓòÉ 7.2. Memory States ΓòÉΓòÉΓòÉ
  1360.  
  1361. Memory in OS/2* has several states. The states are explored: 
  1362.  
  1363.      Physical Memory States 
  1364.      Physical Memory State Change Table 
  1365.      Virtual Memory States 
  1366.      Virtual Memory State Change Table 
  1367.      Memory State Venn Diagram 
  1368.  
  1369.  
  1370. ΓòÉΓòÉΓòÉ 7.2.1. Physical Memory States ΓòÉΓòÉΓòÉ
  1371.  
  1372. Physical memory pages have three states: 
  1373.  
  1374.  State      Explanation 
  1375.  Free       A page that is not in use.  A free page can be attached to a 
  1376.             virtual page. 
  1377.  Attached   A page that is in use. The physical page is attached to a virtual 
  1378.             page, and one or more Page Table Entries point directly to it. 
  1379.  Idle       A page that has not been used recently. The Page Table Entry is not 
  1380.             connected directly to the physical page. Instead, the Page Table 
  1381.             Entry is connected to the physical page by way of the Virtual Page 
  1382.             Table. 
  1383.  
  1384.  Attached pages have three substates: 
  1385.  
  1386.  State        Explanation 
  1387.  Swappable    The page is swappable or discardable. 
  1388.  Locked       The memory has been locked by a Device Driver. The lock may be 
  1389.               either long-term or short-term. 
  1390.  Resident     The page must remain in RAM at all times and cannot be swapped or 
  1391.               discarded. 
  1392.  
  1393.  Idle pages have two substates: 
  1394.  
  1395.  State   Explanation 
  1396.  Dirty   The page contents have been modified and must be written to the swap 
  1397.          file before attaching the page to another virtual page. 
  1398.  Clean   The page contents have not been modified. The page can, therefore, be 
  1399.          given to another virtual page without the Page Manager writing the 
  1400.          contents to disk. 
  1401.  
  1402.  (Attached pages have the substates of Dirty and Clean, also. However, the 
  1403.  Dirty/Clean substate is interesting only if the page is in the Idle state.) 
  1404.  
  1405.  Physical Memory State Change Table 
  1406.  
  1407.  
  1408. ΓòÉΓòÉΓòÉ 7.2.2. Physical Memory State Change Table ΓòÉΓòÉΓòÉ
  1409.  
  1410. Following are the primary physical page state transitions: 
  1411.  
  1412. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1413. ΓöéFrom StateΓöéTo State ΓöéReason                                      Γöé
  1414. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1415. ΓöéFree      ΓöéAttached ΓöéA virtual page is referenced that has no    Γöé
  1416. Γöé          Γöé         Γöéphysical page attached to it. The page is   Γöé
  1417. Γöé          Γöé         Γöézeroed before being given to the            Γöé
  1418. Γöé          Γöé         Γöéapplication.                                Γöé
  1419. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1420. ΓöéAttached  ΓöéFree     ΓöéThe application performs a DosFreeMem       Γöé
  1421. Γöé          Γöé         Γöéfunction on the memory object.              Γöé
  1422. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1423. ΓöéAttached  ΓöéIdle     ΓöéThe page ager "idles" the page if it has notΓöé
  1424. Γöé          Γöé         Γöébeen accessed recently.                     Γöé
  1425. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1426. ΓöéIdle      ΓöéAttached ΓöéEither: 1. the application references the   Γöé
  1427. Γöé          Γöé         Γöépage, or 2. another application needs a     Γöé
  1428. Γöé          Γöé         Γöépage, so this one is paged out and then     Γöé
  1429. Γöé          Γöé         Γöéattached. The page is zeroed before being   Γöé
  1430. Γöé          Γöé         Γöégiven to the application.                   Γöé
  1431. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1432. ΓöéIdle      ΓöéFree     ΓöéThe application performs a DosFreeMem       Γöé
  1433. Γöé          Γöé         Γöéfunction on the memory object.              Γöé
  1434. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1435.  
  1436. Following are the substate transitions: 
  1437.  
  1438. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1439. ΓöéFrom StateΓöéTo State ΓöéReason                                      Γöé
  1440. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1441. ΓöéSwappable ΓöéLocked   ΓöéA device driver performs a DevHlp_Lock      Γöé
  1442. Γöé          Γöé         Γöéfunction on the page.                       Γöé
  1443. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1444. ΓöéLocked    ΓöéSwappableΓöéA device driver performs a DevHlp_Unlock    Γöé
  1445. Γöé          Γöé         Γöéfunction on the page.                       Γöé
  1446. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1447. ΓöéResident  Γöé         ΓöéSubstate changes not allowed for resident   Γöé
  1448. Γöé          Γöé         Γöépages.                                      Γöé
  1449. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1450. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1451. ΓöéClean     ΓöéDirty    ΓöéThe page is modified by a program.          Γöé
  1452. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1453. ΓöéDirty     ΓöéClean    ΓöéThe page is written to disk by the Memory   Γöé
  1454. Γöé          Γöé         ΓöéManager.                                    Γöé
  1455. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1456.  
  1457.  
  1458. ΓòÉΓòÉΓòÉ 7.2.3. Virtual Memory States ΓòÉΓòÉΓòÉ
  1459.  
  1460. Virtual memory pages have three states: 
  1461.  
  1462.  State           Explanation 
  1463.  Free            The virtual memory is not allocated to the application. 
  1464.  Decommitted     Linear address space is allocated, but it is not valid for the 
  1465.                  program to reference the page. 
  1466.  Committed       Linear address space is allocated, and it is valid for the 
  1467.                  program to reference the page. 
  1468.  
  1469.  Committed pages have six substates: 
  1470.  
  1471.  State       Explanation 
  1472.  Guard       Guard pages are used to manage stacks, linearly expanding objects 
  1473.              or sparse objects. When referenced, a 'guard page entered' 
  1474.              condition is raised. 
  1475.  AOD         (Allocate On Demand)  The page has not been referenced and does 
  1476.              not have a page of physical memory attached. This is the normal 
  1477.              state of a page after being committed and before being referenced. 
  1478.              When referenced, a physical page is zeroed and attached to the 
  1479.              virtual page. 
  1480.  TBL         (To Be Loaded)  The page has not been referenced and does not have 
  1481.              a page of physical memory attached. This page was created by the 
  1482.              loader. When referenced, the page is retrieved from the 
  1483.              appropriate disk file. 
  1484.  Present     A physical page is attached to the virtual page, and the 
  1485.              appropriate Page Table Entry points directly to it. This is the 
  1486.              state of a page that is in active use. 
  1487.  Idle        A page which has not been used recently. The Page Table Entry is 
  1488.              not connected directly to the physical page. Instead, the Page 
  1489.              Table Entry is connected to the physical page by way of the 
  1490.              Virtual Page Table. When referenced, the page is returned to the 
  1491.              present state. 
  1492.  Swapped     The contents of the page have been swapped to disk. When 
  1493.              referenced, the page is loaded from disk and returned to the 
  1494.              present state. 
  1495.  
  1496.  Present pages have the same substates as attached physical memory. See the 
  1497.  Physical Memory States section for an explanation. 
  1498.  
  1499.  Virtual Memory State Change Table 
  1500.  
  1501.  
  1502. ΓòÉΓòÉΓòÉ 7.2.4. Virtual Memory State Change Table ΓòÉΓòÉΓòÉ
  1503.  
  1504. Following are the primary virtual page state transitions: 
  1505.  
  1506. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1507. ΓöéFrom State ΓöéTo State   ΓöéReason                                   Γöé
  1508. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1509. ΓöéFree       ΓöéDecommittedΓöéDosAllocMem or DosAllocSharedMem w/o     Γöé
  1510. Γöé           Γöé           ΓöéPAG_COMMIT                               Γöé
  1511. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1512. ΓöéFree       ΓöéCommitted  ΓöéDosAllocMem or DosAllocSharedMem w/      Γöé
  1513. Γöé           Γöé           ΓöéPAG_COMMIT                               Γöé
  1514. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1515. ΓöéDecommittedΓöéFree       ΓöéDosFreeMem                               Γöé
  1516. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1517. ΓöéDecommittedΓöéCommitted  ΓöéDosSetMem w/ PAG_GUARD or PAG_COMMIT     Γöé
  1518. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1519. ΓöéCommitted  ΓöéFree       ΓöéDosFreeMem or the program terminates     Γöé
  1520. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1521. ΓöéCommitted  ΓöéDecommittedΓöéDosSetMem w/ PAG_DECOMMIT. If a page is  Γöé
  1522. Γöé           Γöé           Γöéattached, it is freed.                   Γöé
  1523. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1524.  
  1525. Following are the substate transitions within the committed state: 
  1526.  
  1527. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1528. ΓöéFrom StateΓöéTo StateΓöéReason                                       Γöé
  1529. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1530. ΓöéGuard     ΓöéAOD     ΓöéDosSetMem w/ PAG_COMMIT                      Γöé
  1531. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1532. ΓöéAOD       ΓöéGuard   ΓöéDosSetMem w/ PAG_GUARD                       Γöé
  1533. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1534. ΓöéAOD       ΓöéPresent ΓöéThe page is referenced.                      Γöé
  1535. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1536. ΓöéTBL       ΓöéPresent ΓöéThe page is referenced.                      Γöé
  1537. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1538. ΓöéPresent   ΓöéTBL     ΓöéThe page is discarded by the Swapper.        Γöé
  1539. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1540. ΓöéPresent   ΓöéIdle    ΓöéThe Page Ager "idles" the page if it has not Γöé
  1541. Γöé          Γöé        Γöébeen accessed recently.                      Γöé
  1542. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1543. ΓöéIdle      ΓöéPresent ΓöéThe page is referenced.                      Γöé
  1544. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1545. ΓöéIdle      ΓöéSwapped ΓöéThe Swapper writes the page contents to disk Γöé
  1546. Γöé          Γöé        Γöébecause it needs the physical page.          Γöé
  1547. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1548. ΓöéSwapped   ΓöéPresent ΓöéThe page is referenced.                      Γöé
  1549. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1550.  
  1551.  
  1552. ΓòÉΓòÉΓòÉ 7.2.5. Memory State Venn Diagram ΓòÉΓòÉΓòÉ
  1553.  
  1554. The Venn diagram for the states of physical and virtual memory is: 
  1555.  
  1556.  
  1557. ΓòÉΓòÉΓòÉ 7.3. Memory Management Control Blocks ΓòÉΓòÉΓòÉ
  1558.  
  1559. The memory management control blocks are presented in three methods: 
  1560.  
  1561.      The Different Views of Memory 
  1562.      Table of Memory Management Control Blocks 
  1563.      Pictures of Memory Control Blocks 
  1564.  
  1565.  
  1566. ΓòÉΓòÉΓòÉ 7.3.1. The Different Views of Memory ΓòÉΓòÉΓòÉ
  1567.  
  1568. The Memory Manager uses several control blocks to keep track of all the 
  1569. different views of memory. The views are: 
  1570.  
  1571.  View       Control Blocks 
  1572.  Virtual    The GDT and LDT are used to convert virtual addresses to linear 
  1573.             addresses. 
  1574.  Linear     The arena is used to manage the linear address space. 
  1575.  Physical   The Page Directory and Page Tables are used to convert linear 
  1576.             addresses to physical addresses. 
  1577.  Modules    The MTE is used to manage modules. 
  1578.  
  1579.  For an explanation of the relationship of the linear and physical views, see 
  1580.  Linear/Physical Relationship. 
  1581.  
  1582.  For a tabular summary, see Table of Memory Management Control Blocks. 
  1583.  
  1584.  
  1585. ΓòÉΓòÉΓòÉ 7.3.1.1. Virtual View Control Blocks ΓòÉΓòÉΓòÉ
  1586.  
  1587. The GDT and LDT are used to convert virtual addresses to linear addresses. 
  1588.  
  1589.  GDT   (Global Descriptor Table) The GDT has selectors which are valid in any 
  1590.        process context. These include selectors for device drivers, system 
  1591.        tables, kernel code, and the flat selectors that are loaded by the 
  1592.        system for 32-bit flat programs. 
  1593.  LDT   (Local Descriptor Table) Each process has an LDT, which is used only for 
  1594.        16-bit segmented applications. 
  1595.  
  1596.  
  1597. ΓòÉΓòÉΓòÉ 7.3.1.2. Linear View Control Blocks ΓòÉΓòÉΓòÉ
  1598.  
  1599. The arena is used to manage the linear address space. 
  1600.  
  1601.  arena           The arena keeps track of what linear addresses are being used. 
  1602.                  The arena contains arena records, alias records, object 
  1603.                  records, and context records. See sections starting with 
  1604.                  Arenas with Arena Records for a pictorial representation of 
  1605.                  their relationships of these control blocks. See section Arena 
  1606.                  Relationships for a pictorial representation of the 
  1607.                  relationships between the various types of arenas. 
  1608.  arena header    There is an arena header for each arena. They are doubly 
  1609.                  linked. The Arena Header picture shows this graphically. 
  1610.  private arena   The PTDA contains the arena header for the private arena for 
  1611.                  that process. The arena header has a pointer to the sentinel 
  1612.                  arena record for the private arena for that Process. The 
  1613.                  private arena is usable only in the context of that process. 
  1614.                  The Arena Header picture shows this graphically. 
  1615.  shared arena    The shared arena tracks all of the shared memory objects in 
  1616.                  the system. The shared arena is context-sensitive, because the 
  1617.                  backing memory (pages of real RAM) may be process-unique. 
  1618.                  (This is the case for the instance data in a DLL file.) The 
  1619.                  context records keep track of which processes can access each 
  1620.                  memory object. 
  1621.  system arena    The system arena maps the linear address space which belongs 
  1622.                  to the OS/2 system. The system memory objects are not 
  1623.                  addressable by application programs. 
  1624.  VPT             (Virtual Page Table) The Virtual Page Table has an entry for 
  1625.                  each committed page. Each entry also includes the hob of the 
  1626.                  memory object that is attached to the page. 
  1627.  
  1628.  
  1629. ΓòÉΓòÉΓòÉ 7.3.1.3. Physical View Control Blocks ΓòÉΓòÉΓòÉ
  1630.  
  1631. The Page Directory and Page Tables are used to convert linear addresses to 
  1632. physical addresses. 
  1633.  
  1634.  PD    (Page Directory) The Page Directory is the first-level address 
  1635.        translation table used by the hardware to map a linear address to a 
  1636.        physical address. The entries in the Page Directory point to Page 
  1637.        Tables. 
  1638.  PT    (Page Table) The Page Table is the second-level address translation 
  1639.        table used by the hardware to map a linear address to a physical 
  1640.        address. The entries in the Page Directory point to Page Tables, which 
  1641.        in turn point to pages of physical RAM. 
  1642.  PPD   (Process Page Directory) Each PTDA contains a pointer to a Process Page 
  1643.        Directory which points to Page Tables that track the physical pages that 
  1644.        may be referenced by that Process. The PPD maps the area for both the 
  1645.        private and shared arenas. 
  1646.  PFT   (Page Frame Table) The Page Frame Table keeps track of physical memory. 
  1647.        There is an entry for each addressable page of RAM in the machine. Each 
  1648.        in-use entry in this table has a pointer to an entry in the Virtual Page 
  1649.        Table, which effectively links physical and linear memory. 
  1650.  PRT   (Page Range Table) The Page Range Table tells which pages are 
  1651.        addressable. 
  1652.  
  1653.  For systems up to and including 2.11, the Process Page Directory (PPD) mapped 
  1654.  the entire private and shared arenas. However, starting with OS/2 Warp, the 
  1655.  PPD maps the private arena and the "read/write data" portion of the shared 
  1656.  arena. The "code" and "read-only data" portion of the shared arena is mapped 
  1657.  from the System Page Directory. As a result, the Process Working Set and Leak 
  1658.  Detection computations can no longer determine which process is accessing a 
  1659.  particular page of DLL code. 
  1660.  
  1661.  
  1662. ΓòÉΓòÉΓòÉ 7.3.1.4. Module View Control Blocks ΓòÉΓòÉΓòÉ
  1663.  
  1664. The MTE is used to manage modules. 
  1665.  
  1666.  MTE   (Module Table Entry) Each module that is loaded has an MTE that is used 
  1667.        to manage the memory objects that make up the module. The MTEs are 
  1668.        linked together. The PTDA points to the MTE for the EXE file for that 
  1669.        process. 
  1670.  
  1671.        The MTE is split into resident and swappable portions. There are several 
  1672.        substates in each category, including the object/segment table that has 
  1673.        the actual object/segment information for the module. 
  1674.  
  1675.  
  1676. ΓòÉΓòÉΓòÉ 7.3.1.5. Linear/Physical Relationship ΓòÉΓòÉΓòÉ
  1677.  
  1678. The picture Arena Relationships shows pictorially how the arenas are arranged 
  1679. in the linear address space. 
  1680.  
  1681.  For OS/2 Warp 3.x and 4.x versions 
  1682.            The Process Page Directory maps the linear space represented by the 
  1683.            private arena and the first portion of the shared arena, which 
  1684.            includes only the read/write data memory objects. This is the first 
  1685.            320M of the linear address space. 
  1686.  
  1687.  For e-Business version 
  1688.            Addressing of linear address space above 512M was added. 
  1689.  
  1690.            The code and read-only data memory objects in the shared arena are 
  1691.            mapped by the System Page Directory. This is the next 192M of the 
  1692.            linear address space. 
  1693.  
  1694.  The System Page Directory maps all the system arena. This is the top 2.5G of 
  1695.  linear address space. 
  1696.  
  1697.  The linear address space between 512M (0.5G) and 1.5G is not mapped by any 
  1698.  arena.  This is not true for SMP and e-Busines SMP and UNI kernels.  The area 
  1699.  between the 512M and up to 3.0G can be allocated and address for 32-bit 
  1700.  applications.  This area is split into an area called the high private 
  1701.  starting at 512M and high shared starting at 3.0G.  The 3.0G can be adjusted 
  1702.  to the 512M line using VIRTUALADDRESSLIMIT= in CONFIG.SYS.  The reason for 
  1703.  lowering high address space is to increase the number of processes.  The 
  1704.  System Page Directory doesn't have page tables for that region of space. 
  1705.  
  1706.  
  1707. ΓòÉΓòÉΓòÉ 7.3.2. Table of Memory Management Control Blocks ΓòÉΓòÉΓòÉ
  1708.  
  1709. A summary of how the various Memory Management Control Blocks refer to each 
  1710. other: 
  1711.  
  1712. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1713. ΓöéControl Block ----->ΓöéPointer Type ------>ΓöéControl Block       Γöé
  1714. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1715. Γöéalias record        Γöéhar                 Γöéarena record        Γöé
  1716. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1717. Γöéarena record        Γöéhar                 Γöénext arena record inΓöé
  1718. Γöé                    Γöé                    Γöéthe arena           Γöé
  1719. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1720. Γöéarena record        Γöéhal                 Γöéalias record        Γöé
  1721. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1722. Γöéarena record        Γöéhob                 Γöéobject record       Γöé
  1723. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1724. Γöéarena record        Γöéhco                 Γöécontext record      Γöé
  1725. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1726. Γöéobject record       Γöéhar                 Γöéarena record        Γöé
  1727. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1728. Γöéobject record       Γöéhob                 Γöéowner               Γöé
  1729. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1730. Γöéobject record       Γöéhob                 Γöéthe EXE or DLL file Γöé
  1731. Γöé                    Γöé                    Γöéwhich allocated the Γöé
  1732. Γöé                    Γöé                    Γöémemory              Γöé
  1733. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1734. Γöécontext record      Γöéhob                 ΓöéPTDA with access to Γöé
  1735. Γöé                    Γöé                    Γöéthe shared object   Γöé
  1736. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1737. Γöécontext record      Γöéhco                 Γöénext context record Γöé
  1738. Γöé                    Γöé                    Γöéin the access chain Γöé
  1739. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1740. Γöéarena header        Γöélinear address      Γöéarena sentinel      Γöé
  1741. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1742. ΓöéPTDA                Γöélinear address and  ΓöéLDT                 Γöé
  1743. Γöé                    Γöéhob                 Γöé                    Γöé
  1744. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1745. ΓöéPTDA                Γöélinear address      ΓöéProcess Page        Γöé
  1746. Γöé                    Γöé                    ΓöéDirectory           Γöé
  1747. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1748. ΓöéPTDA                Γöéhob                 ΓöéMTE of the EXE file Γöé
  1749. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1750. ΓöéMTE                 Γöélinear address      Γöénext MTE in the listΓöé
  1751. Γöé                    Γöé                    Γöéof MTEs             Γöé
  1752. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1753. ΓöéPage Directory      Γöéphysical address    ΓöéPage Table          Γöé
  1754. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1755. ΓöéPage Table Entry    ΓöéImplied by the      ΓöéPage Frame Entry    Γöé
  1756. Γöé                    Γöéphysical address    Γöé                    Γöé
  1757. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1758. ΓöéPage Frame Entry    ΓöéLinear address      ΓöéVirtual Page Entry  Γöé
  1759. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1760. ΓöéVirtual Page Entry  Γöéhob                 ΓöéObject Record       Γöé
  1761. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1762. ΓöéVirtual Page Entry  Γöéframeid             ΓöéPhysical page       Γöé
  1763. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1764.  
  1765. This is all the information that is gathered together by: 
  1766.  
  1767.      Description of Linear Object, 
  1768.      Description of Segment, and 
  1769.      Description of Physical Object. 
  1770.  
  1771.  
  1772. ΓòÉΓòÉΓòÉ 7.3.3. Pictures of Memory Control Blocks ΓòÉΓòÉΓòÉ
  1773.  
  1774. The memory manager control block pictures are: 
  1775.  
  1776.      Arena Header picture 
  1777.      Arena Relationships 
  1778.      Arenas with Arena Records 
  1779.      Arenas with Object Records 
  1780.      Arenas with Context Records 
  1781.  
  1782.  
  1783. ΓòÉΓòÉΓòÉ 7.3.3.1. Arena Header picture ΓòÉΓòÉΓòÉ
  1784.  
  1785. Most arena headers are within PTDAs and all are linked together: 
  1786.  
  1787. Next picture: Arena Relationships. 
  1788.  
  1789.  
  1790. ΓòÉΓòÉΓòÉ 7.3.3.2. Arena Relationships ΓòÉΓòÉΓòÉ
  1791.  
  1792. The arenas are related by linear address: 
  1793.  
  1794. Adjacent pictures: Arenas with Arena Records, Arena Headers. 
  1795.  
  1796.  
  1797. ΓòÉΓòÉΓòÉ 7.3.3.3. Arenas with Arena Records ΓòÉΓòÉΓòÉ
  1798.  
  1799. The arenas are made up of doubly linked arena records: 
  1800.  
  1801. Adjacent pictures: Arenas with Object Records, Arena Relationships. 
  1802.  
  1803.  
  1804. ΓòÉΓòÉΓòÉ 7.3.3.4. Arenas with Object Records ΓòÉΓòÉΓòÉ
  1805.  
  1806. All the arena records, except the sentinel, have object records: 
  1807.  
  1808. Adjacent pictures: Arenas with Context Records, Arenas with Arena Records. 
  1809.  
  1810.  
  1811. ΓòÉΓòÉΓòÉ 7.3.3.5. Arenas with Context Records ΓòÉΓòÉΓòÉ
  1812.  
  1813. The arena records in the shared arena have context records: 
  1814.  
  1815. Previous picture: Arenas with Object Records. 
  1816.  
  1817.  
  1818. ΓòÉΓòÉΓòÉ 7.4. Cost of Memory Objects ΓòÉΓòÉΓòÉ
  1819.  
  1820. The cost of a memory object can be summarized as follows: 
  1821.  
  1822.  Item                    Cost in bytes (decimal) 
  1823.  DTE                     8 
  1824.  PTE                     4 * total number of pages 
  1825.  Arena Record            22 
  1826.  Object Record           16 
  1827.  Context Record          5 * number of Processes that have access to the object 
  1828.  Page Frame Record       12 * number of pages in RAM 
  1829.  Virtual Page Record     12 * number of committed pages 
  1830.  
  1831.  If the object is loaded from a 32-bit EXE/DLL file, then add: 
  1832.  
  1833.  Item                    Cost in bytes (decimal) 
  1834.  MTE object entry        24 
  1835.  
  1836.  If the object is loaded from a 16-bit EXE/DLL file, then add: 
  1837.  
  1838.  Item                    Cost in bytes (decimal) 
  1839.  MTE segment entry       16 
  1840.  
  1841.  Remember that this is a per-object/segment cost. Each object/segment loaded 
  1842.  from the module must be included. 
  1843.  
  1844.  
  1845. ΓòÉΓòÉΓòÉ 8. Changes ΓòÉΓòÉΓòÉ
  1846.  
  1847. Changes that have been made to THESEUS4 3.001: 
  1848.  
  1849.    1. 231954 - fix for fix pack 12 kernel changes. 
  1850.  
  1851.  Changes that have been made to THESEUS4 3.002: 
  1852.  
  1853.    1. 238201 - fix for Warp 4 fp13 and e-business fp1. 
  1854.  
  1855.    2. 238203 - convert old debug to new trace output. 
  1856.  
  1857.    3. 238246 - new rexx api for linear usage by process. A new command file 
  1858.       getlinmp.cmd is used to display the linear usage by process. 
  1859.  
  1860.    4. 238433 - Apar PJ27114 TRAP-e fixed. 
  1861.  
  1862.    5. 238698 - Warp 4 debug kernel page frame function loops. 
  1863.  
  1864.  
  1865. ΓòÉΓòÉΓòÉ 9. Process Hierarchy Window ΓòÉΓòÉΓòÉ
  1866.  
  1867. The Process Hierarchy window shows the parent/child relationships of processes 
  1868. as they currently exist in memory. 
  1869.  
  1870. After a process has been selected, you may then move on to a Detail window. 
  1871.  
  1872. Options available on the Process Hierarchy window are: 
  1873.  
  1874.  System      Lists the displays applicable to the system as a whole. 
  1875.  Process     Lists the displays applicable to the selected process. 
  1876.  Registers   Lists the displays applicable to the processor. 
  1877.  Misc        Lists the miscellaneous functions. 
  1878.  Window      Lists the existing THESEUS Detail windows. 
  1879.  Help        Lists the help functions. 
  1880.  
  1881.  The window automatically updates at 10 second interval. This can be changed 
  1882.  with the Options dialog of the Contents Update sub-menu of the Misc pull-down. 
  1883.  
  1884.  
  1885. ΓòÉΓòÉΓòÉ 9.1. Selecting a Process ΓòÉΓòÉΓòÉ
  1886.  
  1887. You may select a process in either of two ways: 
  1888.  
  1889.      Place the mouse pointer over a process name, then press mouse button 1. 
  1890.  
  1891.      Use the arrow keys: 
  1892.  
  1893.       Left         Moves to the parent of the current process. 
  1894.       Right        Moves to the oldest child of the current process. 
  1895.       Up           Moves to the next younger sibling of the current process. 
  1896.       Down         Moves to the next older sibling of the current process. 
  1897.  
  1898.  If no process is selected, pressing any arrow key makes "sysinit" the selected 
  1899.  process. 
  1900.  
  1901.  
  1902. ΓòÉΓòÉΓòÉ 9.2. Keys ΓòÉΓòÉΓòÉ
  1903.  
  1904. The key usage in the Process Hierarchy window is: 
  1905.  
  1906.  Left            Moves to the parent of the current process. 
  1907.  Right           Moves to the oldest child of the current process. 
  1908.  Up              Moves to the next younger sibling of the current process. 
  1909.  Down            Moves to the next older sibling of the current process. 
  1910.  Alt+Left        Scrolls the window information left. 
  1911.  Alt+Right       Scrolls the window information right. 
  1912.  Alt+Up          Scrolls the window information up. 
  1913.  Alt+Down        Scrolls the window information down. 
  1914.  Page Up         Scrolls the window information up 1/2 the screen height. 
  1915.  Page Down       Scrolls the window information down 1/2 the screen height. 
  1916.  Print Screen    Prints the contents of the window. 
  1917.  F1              Requests contextual help. 
  1918.  F3              Exits THESEUS. 
  1919.  Enter           Displays General Process Information for the selected process. 
  1920.                  (This is the same as double-clicking mouse button 1.) 
  1921.  
  1922.  
  1923. ΓòÉΓòÉΓòÉ 9.3. System ΓòÉΓòÉΓòÉ
  1924.  
  1925. The System pull-down contains displays applicable to the system as a whole. A 
  1926. process does not have to be selected in order to select one of these displays. 
  1927.  
  1928. Functions available are: 
  1929.  
  1930.  Working Set 
  1931.            Displays the working set of memory for the entire system. 
  1932.  Memory Leak Detection 
  1933.            Displays the number of pages of memory that each process is 
  1934.            accumulating. 
  1935.  Nonswappable Memory Analysis 
  1936.            Displays information about the contents of nonswappable memory. 
  1937.  Linear Usage by Process 
  1938.            Displays a map of the linear address usage for all processes. This 
  1939.            includes the private and shared arenas. 
  1940.  Page Contents 
  1941.            Displays the contents of each page of physical memory. 
  1942.  RAM Usage by Process 
  1943.            First determines and then displays the amount of RAM consumed my 
  1944.            each process. 
  1945.  Free, Idle and Locked Memory 
  1946.            Generates the summary information about free, idle and locked pages. 
  1947.  Swapper 
  1948.            Displays information about the contents of the SWAPPER.DAT file. 
  1949.  General System 
  1950.            A set of displays containing general system information. 
  1951.  Kernel Information 
  1952.            A set of displays containing kernel information. 
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ 9.3.1. Working Set ΓòÉΓòÉΓòÉ
  1956.  
  1957. Select one: 
  1958.  
  1959.       Selecting 
  1960.  
  1961.       Example Output 
  1962.  
  1963.       Contents of Display 
  1964.  
  1965.       Algorithm 
  1966.  
  1967.       Illustration 
  1968.  
  1969.       Related Topics 
  1970.  
  1971.  
  1972. ΓòÉΓòÉΓòÉ <hidden> Selecting the Working Set Display ΓòÉΓòÉΓòÉ
  1973.  
  1974. When you select the Working Set option of the System pull-down on the Process 
  1975. Hierarchy window, the memory working set of the entire System is computed and 
  1976. displayed. 
  1977.  
  1978. There are optional values that can be shown in realtime. 
  1979.  
  1980.  
  1981. ΓòÉΓòÉΓòÉ <hidden> Example of the Working Set Display ΓòÉΓòÉΓòÉ
  1982.  
  1983. Working Set for the entire System:
  1984. Use the 'Functions' pull-down or the 'Popup Menu'
  1985.   to start and stop the data collection.
  1986. Collection started: interval = 5, Working Set is 3 intervals.
  1987. current time  --------- Total ----------   ------   ------ ---- Process -----
  1988. hh:mm:ss.tt      now       ws   accessed     Free     Idle contributed  total
  1989. 10:49:02.84    4.789M   4.789M     4.789M   3.191M   0.008M          7      7
  1990. 10:49:07.84    4.664M   4.828M     4.828M   3.191M   0.008M          7      7
  1991. 10:49:12.84    4.664M   4.828M     4.828M   3.191M   0.008M          7      7
  1992. 10:49:17.84    4.664M   4.664M     4.828M   3.191M   0.008M          7      7
  1993. 10:49:22.84    4.664M   4.664M     4.828M   3.191M   0.008M          7      7
  1994. 10:49:27.84    4.664M   4.664M     4.828M   3.191M   0.008M          7      7
  1995. 10:49:32.84    4.734M   4.734M     4.898M   3.191M   0.008M          7      7
  1996. 10:49:37.87    5.172M   5.184M     5.199M   3.180M   0.008M          7      7
  1997.  
  1998. 8 samples collected.
  1999.                                     Total
  2000. Absolute minimum amount of memory:  5.172M
  2001. Recommended amount of memory:       5.184M
  2002. Total amount of accessed memory:    5.199M
  2003.  
  2004.  
  2005. ΓòÉΓòÉΓòÉ <hidden> Contents of the Working Set Display ΓòÉΓòÉΓòÉ
  2006.  
  2007. The following values are computed and optionally presented in realtime: 
  2008.  
  2009.  Column         Meaning 
  2010.  
  2011.  current time   The time of the sample, presented in 
  2012.                 hours:minutes:seconds.hundredths. 
  2013.  
  2014.  now            The amount of memory referenced in the current interval. 
  2015.  
  2016.  ws             The working set, which is the amount of memory referenced in 
  2017.                 the past n intervals. 
  2018.  
  2019.  accessed       The total amount of memory accessed since the start of the 
  2020.                 collection run. 
  2021.  
  2022.  Free           The amount of free memory. 
  2023.  
  2024.  Idle           The amount of idle memory. 
  2025.  
  2026.  Process contributed The number of processes that had memory accessed during 
  2027.                 the interval. This value indicates the number of processes 
  2028.                 which are both running and touching non-system memory. 
  2029.  
  2030.  Process total  The total number of processes found during the interval. This 
  2031.                 number changes as processes are created or destroyed. 
  2032.  
  2033.  When the Stop option is selected: 
  2034.  
  2035.  ii samples collected. 
  2036.            The number of samples collected is reported (in decimal notation). 
  2037.  Absolute minimum amount of memory 
  2038.            The maximum value from the now column. This is the amount of memory 
  2039.            absolutely required to run the application without "thrashing" 
  2040.            memory. 
  2041.  Recommended amount of memory 
  2042.            The maximum value from the ws column. This is the recommended amount 
  2043.            of memory for the application to run with minimum impact on paging. 
  2044.  Total amount of accessed memory 
  2045.            The maximum value from the accessed column. This is the amount of 
  2046.            memory required to run the application with no paging activity. 
  2047.  
  2048.  Note:   If either Absolute minimum amount of memory or Recommended amount of 
  2049.  memory are more than 80% of physical RAM, then the results are probably not 
  2050.  valid. You should run your tests on a machine which has too much RAM, in order 
  2051.  to get meaningful results. 
  2052.  
  2053.  
  2054. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2055.  
  2056.      Memory addressing 
  2057.  
  2058.      Memory Management Control Blocks 
  2059.  
  2060.      Memory Analysis Techniques 
  2061.  
  2062.      Detail of Working Set (by Page) 
  2063.  
  2064.      Detail of Working Set (by Object) 
  2065.  
  2066.      Summary by Process 
  2067.  
  2068.  
  2069. ΓòÉΓòÉΓòÉ <hidden> System Working Set Algorithm ΓòÉΓòÉΓòÉ
  2070.  
  2071. To compute the working set for the entire OS/2 system, you need to know: 
  2072.  
  2073.      Which pages have been referenced 
  2074.      When the pages were touched. 
  2075.  
  2076.  The algorithm is: 
  2077.  
  2078.    1. The accessed flags are cleared from the Page Tables of all processes 
  2079.       running in the system. 
  2080.  
  2081.    2. A timer is started, and on each timer tick: 
  2082.  
  2083.         a) The pages which have been accessed are noted. 
  2084.         b) The accessed flags are cleared. 
  2085.         c) The number of pages which have been accessed anytime within the 
  2086.            specified number of intervals is counted. 
  2087.         d) Summary information for the interval is generated. 
  2088.         e) The interval information is displayed, if requested. 
  2089.  
  2090.    3. When the Stop option is selected: 
  2091.  
  2092.         a) Summary numbers for the entire run are generated. They are: 
  2093.            Absolute minimum amount of memory 
  2094.                           The maximum of all the now entries. 
  2095.            Recommended amount of memory 
  2096.                           The maximum of all the ws entries. 
  2097.            Total amount of accessed memory 
  2098.                           The maximum of all the accessed entries. 
  2099.         b) The results are displayed. 
  2100.  
  2101.  
  2102. ΓòÉΓòÉΓòÉ <hidden> Working Set Illustration ΓòÉΓòÉΓòÉ
  2103.  
  2104. To illustrate how the working set algorithm works, the follow table will be 
  2105. used: 
  2106.  
  2107. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2108. Γöétick  Γöéwhich pagesΓöépage 1Γöépage 2Γöépage 3Γöénow   Γöéws    ΓöéaccessedΓöé
  2109. Γöé      Γöéaccessed   Γöé      Γöé      Γöé      Γöé      Γöé      Γöé        Γöé
  2110. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2111. Γöé 0    Γöé           Γöé 255  Γöé 255  Γöé 255  Γöé      Γöé      Γöé        Γöé
  2112. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2113. Γöé 1    Γöé 1         Γöé 1    Γöé 255  Γöé 255  Γöé 1    Γöé 1    Γöé 1      Γöé
  2114. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2115. Γöé 2    Γöé 2         Γöé 1    Γöé 1    Γöé 255  Γöé 1    Γöé 2    Γöé 2      Γöé
  2116. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2117. Γöé 3    Γöé 1 3       Γöé 2    Γöé 1    Γöé 1    Γöé 2    Γöé 3    Γöé 3      Γöé
  2118. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2119. Γöé 4    Γöé 1         Γöé 3    Γöé 1    Γöé 1    Γöé 1    Γöé 3    Γöé 3      Γöé
  2120. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2121. Γöé 5    Γöé 1         Γöé 4    Γöé 1    Γöé 1    Γöé 1    Γöé 2    Γöé 3      Γöé
  2122. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2123. Γöé 6    Γöé 1         Γöé 5    Γöé 1    Γöé 1    Γöé 1    Γöé 1    Γöé 3      Γöé
  2124. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2125.  
  2126. The number of intervals in the working set is 3 for this illustration. 
  2127.  
  2128. The meanings of the columns are: 
  2129.  
  2130.  Column            Meaning 
  2131.  tick              The interval number. 
  2132.  pages accessed    Indicates which page numbers were accessed during this 
  2133.                    interval. 
  2134.  page n            The number of intervals since the page was accessed. (255 
  2135.                    indicates the page has never been accessed. The value is not 
  2136.                    allowed to be incremented above 254, so that value simply 
  2137.                    means that the page was accessed "a long time ago.") This 
  2138.                    corresponds to the time column in the detail displays. 
  2139.  now               The number of pages accessed in this interval. This 
  2140.                    corresponds to the now column in the displays. 
  2141.  ws                The number of pages considered to be in the working set. 
  2142.                    This corresponds to the ws column in the displays. 
  2143.  accessed          The number of pages which have been accessed since the run 
  2144.                    began. This corresponds to the accessed column in the 
  2145.                    displays. 
  2146.  
  2147.  Explanation at each tick: 
  2148.  
  2149.  0  At initialization all pages are marked as "never been accessed." 
  2150.  1  Page 1 was accessed. Since it was the only page accessed in the last 
  2151.     interval, the now column has 1. Page 1 has been accessed within the last 3 
  2152.     intervals, so the ws column has 1. 
  2153.  2  Page 2 was accessed. Since it was the only page accessed in the last 
  2154.     interval, the now column has 1. Pages 1 and 2 have been accessed within the 
  2155.     last 3 intervals, so the ws column has 2. 
  2156.  3  Pages 1 and 3 were accessed. They were the only pages accessed in the last 
  2157.     interval, so the now column has 2. Pages 1, 2 and 3 have been accessed 
  2158.     within the last 3 intervals, so the ws column has 3. 
  2159.  4  Page 1 was accessed. Since it was the only page accessed in the last 
  2160.     interval, the now column has 1. Pages 1, 2 and 3 have been accessed within 
  2161.     the last 3 intervals, so the ws column has 3. 
  2162.  5  Page 1 was accessed. Since it was the only page accessed in the last 
  2163.     interval, the now column has 1. Pages 1 and 3 have been accessed within the 
  2164.     last 3 intervals, so the ws column has 2. (Page 2 was accessed 4 intervals 
  2165.     ago.) 
  2166.  6  Page 1 was accessed. Since it was the only page accessed in the last 
  2167.     interval, the now column has 1. Page 1 has been accessed within the last 3 
  2168.     intervals, so the ws column has 1. (Page 2 was accessed 5 intervals ago and 
  2169.     page 3 was accessed 4 intervals ago.) 
  2170.  
  2171.  
  2172. ΓòÉΓòÉΓòÉ 9.3.2. Memory Leak Detection ΓòÉΓòÉΓòÉ
  2173.  
  2174. Select one: 
  2175.  
  2176.       Selecting 
  2177.  
  2178.       Example Output 
  2179.  
  2180.       Contents of Display 
  2181.  
  2182.       Related Topics 
  2183.  
  2184.  
  2185. ΓòÉΓòÉΓòÉ <hidden> Selecting the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  2186.  
  2187. When you select the Memory Leak Detection option of the System pull-down on the 
  2188. Process Hierarchy window, information about memory accumulation for each 
  2189. process in the system is computed and shown. 
  2190.  
  2191. This can be done either on a periodic basis or under user control. See Related 
  2192. Topics for the references for specifying control. 
  2193.  
  2194.  
  2195. ΓòÉΓòÉΓòÉ <hidden> Example of the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  2196.  
  2197. Memory leak detection:
  2198. < End of THESEUSn (v 3.00.000) output @ 13:21:01 on 8/5/1993 >
  2199. Use the 'Function' pull-down to start and stop the data collection.
  2200. Leak data captured.
  2201. Periodic update started with interval of 10 seconds.
  2202. Previous sample will be used as the base.
  2203. < End of THESEUSn (v 3.00.000) output @ 13:21:10 on 8/5/1993 >
  2204. ----------Private-----------  -----------Shared-----------
  2205. Allocated  Committed  Actual  Allocated  Committed  Actual   PID   Name
  2206.       +16        +17     +17        +64                     0000   System
  2207.       +16         +1      +1                    +0      +0  0004   PMSHL32
  2208.      +160        +56     +39                 +1540    +774  0061  +CMD
  2209. < End of THESEUSn (v 3.00.000) output @ 13:21:21 on 8/5/1993 >
  2210. ----------Private-----------  -----------Shared-----------
  2211. Allocated  Committed  Actual  Allocated  Committed  Actual   PID   Name
  2212.       -16        -17     -17        -64                     0000   System
  2213.       -16         -1      -1                    +0      +0  0004   PMSHL32
  2214.      -160        -56     -39                 -1540    -774  0061  -CMD
  2215. < End of THESEUSn (v 3.00.000) output @ 13:21:31 on 8/5/1993 >
  2216. Periodic updated stopped.
  2217. < End of THESEUSn (v 3.00.000) output @ 13:21:32 on 8/5/1993 >
  2218.  
  2219.  
  2220. ΓòÉΓòÉΓòÉ <hidden> Contents of the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  2221.  
  2222. One line is displayed for each process whose allocated, committed, or actual 
  2223. (present + swapped) memory values have changed: 
  2224.  
  2225.  Column      Meaning 
  2226.  Private Allocated The change in the number of pages of allocated (virtual) 
  2227.              memory in the private arena. 
  2228.  Private Committed The change in the number of pages of committed memory in the 
  2229.              private arena. 
  2230.  Private Actual The change in the number of pages of actual memory in the 
  2231.              private arena. 
  2232.  Shared Allocated The change in the number of pages of allocated (virtual) 
  2233.              memory in the shared arena. 
  2234.  Shared Committed The change in the number of pages of committed memory in the 
  2235.              shared arena. 
  2236.  Shared Actual The change in the number of pages of actual memory in the shared 
  2237.              arena. 
  2238.  PID         The PID of the process for this line. 
  2239.  Name        The name of the process on this line. If the process is new (not 
  2240.              present in the base data), then a prefix '+' is shown. If the 
  2241.              process has terminated, then a prefix '-' is shown. 
  2242.  
  2243.  
  2244. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2245.  
  2246.      Memory addressing 
  2247.  
  2248.      Memory states 
  2249.  
  2250.      Leak detection control 
  2251.  
  2252.      Manual data capture 
  2253.  
  2254.      Manual data compare 
  2255.  
  2256.  
  2257. ΓòÉΓòÉΓòÉ 9.3.3. Nonswappable Memory Analysis ΓòÉΓòÉΓòÉ
  2258.  
  2259. Select one: 
  2260.  
  2261.       Selecting 
  2262.  
  2263.       Example Output 
  2264.  
  2265.       Contents of Display 
  2266.  
  2267.       Related Topics 
  2268.  
  2269.  
  2270. ΓòÉΓòÉΓòÉ <hidden> Selecting the Nonswappable Memory Analysis display ΓòÉΓòÉΓòÉ
  2271.  
  2272. When you select the Nonswappable Memory Analysis option of the System pull-down 
  2273. on the Process Hierarchy window, information about nonswappable memory is 
  2274. displayed. 
  2275.  
  2276.  
  2277. ΓòÉΓòÉΓòÉ <hidden> Example of the Nonswappable Memory Analysis display ΓòÉΓòÉΓòÉ
  2278.  
  2279. This is from a freshly booted ThinkPad 720C with 16M RAM and 160M hardfile, 
  2280. running OS/2 Warp, using the "Easy Installation" option. 
  2281.  
  2282. Nonswappable Memory analysis:
  2283. Apps & DLLs      = 00009000 ->   36K -> 0.035M
  2284. Process overhead = 00048000 ->  288K -> 0.281M
  2285. DD allocated     = 0000D000 ->   52K -> 0.051M
  2286. DOS              = 00008000 ->   32K -> 0.031M
  2287. VDisk            = 00000000 ->    0K -> 0.000M
  2288. File system      = 001D9000 -> 1892K -> 1.848M
  2289. Kernel code      = 00063000 ->  396K -> 0.387M
  2290. Kernel data      = 0004D000 ->  308K -> 0.301M
  2291. Kernel heap      = 00072000 ->  456K -> 0.445M
  2292.  
  2293. Total            = 00361000 -> 3460K -> 3.379M
  2294.  
  2295.  
  2296. ΓòÉΓòÉΓòÉ <hidden> Contents of the Nonswappable Memory Analysis Display ΓòÉΓòÉΓòÉ
  2297.  
  2298. The information presented on the Nonswappable Memory Analysis display is as 
  2299. follows: 
  2300.  
  2301.  Apps & DLLS         Memory which is in the private and shared arenas. 
  2302.  Process overhead    Memory which is in the system arena and is used by the 
  2303.                      system to manage processes. 
  2304.  DD allocated        Memory allocated by device drivers, or on their behalf. 
  2305.  DOS                 Memory allocated for the Virtual DOS Machine support. 
  2306.  VDisk               Memory allocated for a VirtualDisk. 
  2307.  File system         Memory allocated by the File System, including FAT chache. 
  2308.  Kernel code         Kernel code. 
  2309.  Kernel data         Kernel data and whatever doesn't fit in the other 
  2310.                      categories. 
  2311.  Kernel heap         The resident and locked portions of the kernel heap, 
  2312.                      including HPFS cache. 
  2313.  xxxxxxxx            Amount of memory in hexadecimal bytes in this category. 
  2314.  iiiK                Amount of memory in Kilobytes in this category. 
  2315.  iiiM                Amount of memory in Megabytes in this category. 
  2316.  
  2317.  
  2318. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2319.  
  2320.      Memory addressing 
  2321.  
  2322.  
  2323. ΓòÉΓòÉΓòÉ 9.3.4. Linear Usage by Process ΓòÉΓòÉΓòÉ
  2324.  
  2325. Select one: 
  2326.  
  2327.       Selecting 
  2328.  
  2329.       Example Output 
  2330.  
  2331.       Contents of Display 
  2332.  
  2333.       Related Topics 
  2334.  
  2335.  
  2336. ΓòÉΓòÉΓòÉ <hidden> Selecting the Linear Usage by Process Display ΓòÉΓòÉΓòÉ
  2337.  
  2338. When you select the Linear Usage by Process option of the System pull-down on 
  2339. the Process Hierarchy window, information about usage of linear address space 
  2340. of all processes is shown. 
  2341.  
  2342. For the private arena, each block of memory (64K) is shown on a separate line, 
  2343. with the processes being shown as columns. Whether a block is allocated or free 
  2344. in each process is shown. 
  2345.  
  2346. For the shared arena, each memory object is shown on a separate line, with the 
  2347. processes being shown as columns. The highest access ability of each process is 
  2348. indicated. 
  2349.  
  2350.  
  2351. ΓòÉΓòÉΓòÉ <hidden> Example of the Linear Usage by Process Display ΓòÉΓòÉΓòÉ
  2352.  
  2353. Linear memory map:
  2354.          Process Names
  2355.          sLLLLECSEPHSSSEPMWWPMKSLNLSCSRSASACACVT
  2356.          yOAASPNPPMAPPTPMUKKMALPSBPPMPEPCPSMCMDH
  2357.          sGNNDWTMWSRMMOWSGSSDHOMCQDMSMMMSMPKSDME
  2358.          iDMDARRNMHDSNPPHLTTAJN
  2359.          nASLEOLBULENELSLRAALODIISLOALACAS0MEEEE
  2360.          iEGLMU
  2361.          tME
  2362.  
  2363.  
  2364. address   usage...
  2365. 00000000  ....................................0.
  2366. 00010000  00000000000000000000000000000000..0000
  2367. 00020000  11111101111011111110101110101111..1100
  2368. 00030000  2222220222202222.220202220202222002200
  2369. 00040000  33333303333033332331303330303333113310
  2370. 00050000  44444414444144443441404440414344224451
  2371. 00060000  55555525555255554551505550525455335591
  2372. 00070000  66666636666366665662606660636565446632
  2373. 00080000  x77777477774777767737077707476755x7773
  2374. 00090000   x8xx85x8885888878848088808587856 8814
  2375. 000A0000    x  96 9996999989959099909698957 99.5
  2376. 000B0000       07 0xx7000.9x060000000709058 00.6
  2377. 000C0000       18 1  811100 171011101810159 1x77
  2378. 000D0000       29 2  9221x. 2820.2202921250 2 18
  2379. ┬╖┬╖┬╖
  2380. 01440000                6
  2381. 01450000                .
  2382. 01460000                .
  2383. 01470000                7
  2384. 01480000                x
  2385. 01490000
  2386.  
  2387. There is 43.500M between the private and shared arenas.
  2388. Shared arena starts at 04000000, which is 64.000M.
  2389.  Free memory from 04000000 for 225.750M, which is equivalent to 3612 64K spaces.
  2390. 121C0000  ..............o.......................     0  PMWIN    allocated it
  2391. 121D0000  ......w.ww.wwwoww.wwwwwwwwwwwww.w.ww.w    20  PMGRE    allocated it
  2392.  object is 128K
  2393. 121F0000  ......w.ww.wwwoww.wwwwwwwwwwwww.w.ww.w     1  PMGRE    allocated it
  2394. 12200000  ......w.ww.wwwoww.wwwwwwwwwwwww.w.ww.w     2  PMGRE    allocated it
  2395. 12210000  ......w.ww.wwwoww.wwwwwwwwwwwww.w.ww.w     8  PMGRE    allocated it
  2396. 12220000  ..............o.......................     0  PMWIN    allocated it
  2397. 12230000  ........w.....o.......................     1  IBM42XX  #0008 (shared data)
  2398. 12240000  ........e.....o.......................     2  IBM42XX  #0005 (shared code)
  2399. 12250000  ........e.....o.......................     5  IBM42XX  #0003 (shared code)
  2400. 12260000  ........e.....o.......................     9  IBM42XX  #0002 (shared code)
  2401. ┬╖┬╖┬╖
  2402. 1AE50000  ........o..eeeeee.eeeeeeeeeeeee.e.ee.e     0  IBMXGA32 #0003 (shared code)
  2403.  object is 256K
  2404. 1AE90000  ........o..eeeeee.eeeeeeeeeeeee.e.ee.e        IBMXGA32 #0004 (shared code)
  2405. 1AEA0000  ........o..wwwwww.wwwwwwwwwwwww.w.ww.w     0  IBMXGA32 #0005 (shared data)
  2406.  Free memory from 1AEB0000 for 17.188M, which is equivalent to 275 64K spaces.
  2407. 1BFE0000  rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.r  infoseg (local or global) (owner)
  2408. 1BFF0000  rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.r  infoseg (local or global) (owner)
  2409. Total number of committed pagees     = 00048
  2410. Total free space in the shared arena = 39.500M.
  2411.  
  2412.  
  2413. ΓòÉΓòÉΓòÉ <hidden> Contents of the Linear Usage by Process Display ΓòÉΓòÉΓòÉ
  2414.  
  2415. The process names are shown at the tops of their respective columns, with the 
  2416. names being printed vertically. The processes will be listed in the same order 
  2417. that they are in the Process List option of the General System option of the 
  2418. System pull-down. 
  2419.  
  2420. Each of the entries is Hyperblock linked. When you select a particular entry, 
  2421. the process context and linear address are both set so that the normal 
  2422. "display" and "describe" functions work properly. 
  2423.  
  2424.       For the private arena: 
  2425.  
  2426.           One line is displayed for each 64K block of address space. Each 
  2427.            memory object starts on a 64K boundary and is a multiple of 64K 
  2428.            bytes long. (This is part of the definition of the "16-bit 
  2429.            compatibility region" that all the application processes run in.) 
  2430.  
  2431.           Each process is shown as a separate column. 
  2432.  
  2433.           Each memory object is represented by a number. The numbers start at 
  2434.            0 for each process. Each time a new memory object is encountered, 
  2435.            the number is incremented. So, if you see a vertical string of 
  2436.            several 0's, that indicates that the memory object is more than 64K 
  2437.            bytes long. For instance, if there are 3 0's in a row, then it is 
  2438.            between 132K and 192K bytes long. 
  2439.  
  2440.            Note:   If there are memory objects less than 64K in size, they will 
  2441.            consume numbers, but not necessarily be displayed.  The VDM process 
  2442.            has some that are like this. Since the purpose in this display is to 
  2443.            look at overall usage of linear addresss space, this is not 
  2444.            considered to be a problem. 
  2445.  
  2446.           Free space in the address space is represented with a dot (.). 
  2447.  
  2448.           An x is put at the end of the private arena for each process. The x 
  2449.            is on the line following the last allocated block. 
  2450.  
  2451.           The free space between the end of the largest private arena and the 
  2452.            shared arena sentinel is reported. 
  2453.  
  2454.       For the shared arena: 
  2455.  
  2456.           One line is displayed for each memory object. If the memory object 
  2457.            is greater than 64K bytes, then another line is used to report the 
  2458.            size of the memory object in Kilobytes or Megabytes, whichever is 
  2459.            appropriate. 
  2460.  
  2461.           Each process is shown as a separate column. 
  2462.  
  2463.           Each memory object is represented by a letter, indicating what 
  2464.            accessability the process has to the memory object, with the 
  2465.            following priority applied to the various valid attributes: 
  2466.  
  2467.            Character         Meaning 
  2468.  
  2469.            i                 The object is "instance" data for the process. 
  2470.  
  2471.            o                 This process is the "originator" of the memory 
  2472.                              object. 
  2473.  
  2474.            w                 The process can write to the memory object. 
  2475.  
  2476.            e                 The process can execute the code in the memory 
  2477.                              object. 
  2478.  
  2479.            r                 The process can read the contents of the memory 
  2480.                              object. 
  2481.  
  2482.            s                 The process has shared access, which was not one 
  2483.                              of the above. (I do not believe it is possible to 
  2484.                              get this attribute, but it is here as a "default" 
  2485.                              value, just in case.) 
  2486.  
  2487.            .                 The process does not have access to the memory 
  2488.                              object. This is used so that it is easier to scan 
  2489.                              across the display and keep the eye on a 
  2490.                              particular line. 
  2491.  
  2492.           The column following the memory object is the decimal count of 
  2493.            committed pages for the object. 
  2494.  
  2495.           The next column is the name of the shared module associated with the 
  2496.            object and an explaination of what the object is for. 
  2497.  
  2498.           Free space in the address space is reported as the amount in 
  2499.            Kilobytes. If the amount is greater than 64K, the number of 64K 
  2500.            memory objects which would fit in the free space is reported. 
  2501.  
  2502.           The total committed pages for the shared arena is reported at the 
  2503.            end. 
  2504.  
  2505.           The total free space in the shared arena is reported at the end. For 
  2506.            purposes of this calculation, the shared arena is considered to 
  2507.            start at the first memory object, not at the address in the 
  2508.            sentinel. The address in the sentinel is a "high water mark" of the 
  2509.            private arenas, with a minimum of 64M. 
  2510.  
  2511.  
  2512. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2513.  
  2514.      Memory addressing 
  2515.  
  2516.      Memory states 
  2517.  
  2518.  
  2519. ΓòÉΓòÉΓòÉ 9.3.5. Page Contents ΓòÉΓòÉΓòÉ
  2520.  
  2521. Select one: 
  2522.  
  2523.       Selecting 
  2524.  
  2525.       Example Output 
  2526.  
  2527.       Contents of Display 
  2528.  
  2529.       Related Topics 
  2530.  
  2531.  
  2532. ΓòÉΓòÉΓòÉ <hidden> Selecting the Page Contents display ΓòÉΓòÉΓòÉ
  2533.  
  2534. When you select the Page Contents option of the System pull-down on the Process 
  2535. Hierarchy window, information about the contents and state of each page of 
  2536. physical memory is shown. 
  2537.  
  2538.  
  2539. ΓòÉΓòÉΓòÉ <hidden> Example of the Page Contents Display ΓòÉΓòÉΓòÉ
  2540.  
  2541.                          relative
  2542. physical        vp   hob     page owner state  description
  2543. 00000000  FF3FE000  FF77     0000               generic init-time only
  2544. 00001000  FF3FE050  0007     0000  FF6D    R   DosHelp segment (owner)
  2545. ┬╖┬╖┬╖
  2546. 0000E000  FF41980A  070A     000B  FFF7     D  PMGRE    allocated it
  2547. ┬╖┬╖┬╖
  2548. 00130000  FF3FE492  0015     000B  FFAA   L    os2krnl load image (owner)
  2549. ┬╖┬╖┬╖
  2550. 002FF000                                        free
  2551. 00300000  FF411A92  0859     0005  0A7F  I     TCP32DLL #0001 (shared code)
  2552. ┬╖┬╖┬╖
  2553. 017FF000  FF407B8C  001D     000A  FFB3    R   VP array (owner)
  2554.  
  2555.    69 pages (  276K or  0.270M) are marked I (Idle).
  2556.   176 pages (  704K or  0.688M) are marked L (Locked).
  2557.  1727 pages ( 6908K or  6.746M) are marked R (Resident).
  2558.  1228 pages ( 4912K or  4.797M) are marked D (Dirty).
  2559. There are 6045 pages (24180K or 23.613M) reported.
  2560.  
  2561.  
  2562. ΓòÉΓòÉΓòÉ <hidden> Contents of the Page Contents Display ΓòÉΓòÉΓòÉ
  2563.  
  2564. One line is displayed for each entry in the Page Frame Table: 
  2565.  
  2566.  Column          Meaning 
  2567.  physical        The physical address for the page on this line. 
  2568.  vp              The linear address of the Virtual Page Table entry for this 
  2569.                  page. 
  2570.  hob             The hob of the object record associated with this memory 
  2571.                  object. 
  2572.  relative page   Which page within the memory object. 
  2573.  owner           This is either the special system owner code or the hob of the 
  2574.                  memory object that created this memory object. 
  2575.  state           The state of the page: 
  2576.                  I        The page is idle. 
  2577.                  L        The page is locked. 
  2578.                  R        The page is resident. 
  2579.                  D        The page is dirty. 
  2580.  description     A description in English of the object that the page is a part 
  2581.                  of. 
  2582.  
  2583.  
  2584. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2585.  
  2586.      Memory addressing 
  2587.  
  2588.  
  2589. ΓòÉΓòÉΓòÉ 9.3.6. RAM Usage by Process ΓòÉΓòÉΓòÉ
  2590.  
  2591. Select one: 
  2592.  
  2593.       Selecting 
  2594.  
  2595.       Example Output 
  2596.  
  2597.       Contents of Display 
  2598.  
  2599.       Algorithm 
  2600.  
  2601.       Related Topics 
  2602.  
  2603.  
  2604. ΓòÉΓòÉΓòÉ <hidden> Selecting the RAM Usage by Process Display ΓòÉΓòÉΓòÉ
  2605.  
  2606. When you select the RAM Usage by Process option of the System pull-down on the 
  2607. Process Hierarchy window, information about RAM utilization for the entire 
  2608. system is computed and displayed. All pages of RAM are assigned to a process, 
  2609. after which summaries are provided. 
  2610.  
  2611. CAUTION:
  2612. This is a 'snap-shot' of RAM at the time of display generation. It does not 
  2613. represent the amount of RAM required by the various processes, including the 
  2614. 'system'. Use Working Set to compute the RAM required by processes and the 
  2615. system. 
  2616.  
  2617. The display generation takes about 7 seconds on an 8MB 20Mhz P70. 
  2618.  
  2619.  
  2620. ΓòÉΓòÉΓòÉ <hidden> Example of the RAM Usage by Process Display ΓòÉΓòÉΓòÉ
  2621.  
  2622. RAM Usage by Process:
  2623. --------- private --------   ------ owned shared ------
  2624.    bytes   Kbytes   Mbytes      bytes   Kbytes   Mbytes   who
  2625. 00409000     4132    4.035   0026A000     2472    2.414   system
  2626. 00000000        0    0.000                                sysinit
  2627. 00031000      196    0.191   000D5000      852    0.832   PMSHL32
  2628. 00009000       36    0.035   00005000       20    0.020   HARDERR
  2629. 000BE000      760    0.742   00047000      284    0.277   PMSHL32
  2630. 00018000       96    0.094   0000A000       40    0.039   PULSE
  2631. 00061000      388    0.379                                VDM
  2632. 00025000      148    0.145   00008000       32    0.031   CMD
  2633. 0004B000      300    0.293   00008000       32    0.031   THESEUSn
  2634. --------   ------   ------   --------   ------   ------
  2635. 001E1000     1924    1.879   0013B000     1260    1.230   total RAM in use
  2636. 00611000     6212    6.066   free RAM
  2637. --------   ------   ------
  2638. 00FA0000    16000   15.625   total of all RAM pages found
  2639.  
  2640.  
  2641. ΓòÉΓòÉΓòÉ <hidden> Contents of the RAM Usage by Process Display ΓòÉΓòÉΓòÉ
  2642.  
  2643. CAUTION:
  2644. This is a 'snap-shot' of RAM at the time of display generation. It does not 
  2645. represent the amount of RAM required by the various processes, including the 
  2646. 'system'. Use Working Set to compute the RAM required by processes and the 
  2647. system. 
  2648.  
  2649. The information presented on the RAM Usage by Process display is as follows, 
  2650. with one line displayed for each process: 
  2651.  
  2652.  Column           Meaning 
  2653.  private          Memory from the private arena of this process. If multiple 
  2654.                   processes have the same page in their private arenas, the 
  2655.                   process with the lowest PID value is charged with the memory. 
  2656.  owned shared     Memory from the shared arena that is owned by this process. 
  2657.  bytes            The amount of memory in bytes. 
  2658.  Kbytes           The amount of memory in kilobytes. 
  2659.  Mbytes           The amount of memory in megabytes. 
  2660.  who              Name of the process whose data appears on the line. 
  2661.  
  2662.  
  2663. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2664.  
  2665.      Memory addressing 
  2666.  
  2667.      Memory Management Control Blocks 
  2668.  
  2669.      Memory Analysis Using THESEUSn 
  2670.  
  2671.  
  2672. ΓòÉΓòÉΓòÉ <hidden> RAM Usage by Process Algorithm ΓòÉΓòÉΓòÉ
  2673.  
  2674.    1. An array having an entry for each page in the machine is allocated, and 
  2675.       backing RAM is forced for it. This array is called PF-parallel. This 
  2676.       array keeps track of the state of each page and which process is charged 
  2677.       with the page. 
  2678.  
  2679.    2. Memory for a private copy of the Page Frame Table is allocated, and the 
  2680.       Page Frame Table is copied into it. This table is called private-PF. 
  2681.  
  2682.    3. The free pages (as indicated in private-PF) are marked in PF-parallel and 
  2683.       counted. 
  2684.  
  2685.    4. The idle pages (as indicated in private-PF) are marked in PF-parallel and 
  2686.       counted. 
  2687.  
  2688.    5. For each process: 
  2689.  
  2690.         a) For each arena record in its private arena: 
  2691.  
  2692.              1. Execute the MarkPresentPages routine (below). 
  2693.  
  2694.    6. For each arena record in the shared arena: 
  2695.  
  2696.         a) If there is an hco in the arena record: 
  2697.  
  2698.              1. Determine the process indicated as the originator by looking at 
  2699.                 the context records. 
  2700.  
  2701.              2. Execute the MarkPresentPages routine for the originator 
  2702.                 process. 
  2703.  
  2704.         b) If there is no hco in the arena record: 
  2705.  
  2706.              1. For each process: 
  2707.  
  2708.                   a) Execute the MarkPresentPages routine for the non-shared 
  2709.                      DLL object. 
  2710.  
  2711.    7. For each arena record in the system arena: 
  2712.  
  2713.         a) Execute the MarkPresentPages routine. 
  2714.  
  2715.    8. For each entry in PF-parallel that has not been assigned or that is 
  2716.       marked idle: 
  2717.  
  2718.         a) Get the hob from private-PF. 
  2719.  
  2720.         b) The object record and the linear address (from the arena record) can 
  2721.            be used to determine which process should be charged with the page. 
  2722.            The method used is similar to what occurred in preceding steps for 
  2723.            normal objects. 
  2724.  
  2725.    9. For each entry in PF-parallel: 
  2726.  
  2727.         a) Add a page to the proper counter being charged. This will either be 
  2728.            the free counter or a process counter. 
  2729.  
  2730.   10. Display the counters, showing both private and shared memory. 
  2731.  
  2732.  The MarkPresentPages routine is passed a range of pages and a thing to assign 
  2733.  them to. The algorithm is: 
  2734.  
  2735.    1. For each page in the object which is present and not UVirt: 
  2736.  
  2737.         a) If the page has not been assigned to something and this is a shared 
  2738.            page, then assign it to this thing. 
  2739.  
  2740.         b) If the page is a shared page and is already assigned to something 
  2741.            and the linear addresses do not match, there is a conflict. 
  2742.  
  2743.         c) If the page is not a shared page and is already assigned to 
  2744.            something or the linear addresses do not match, there is a conflict. 
  2745.  
  2746.         d) If system pages are being assigned and if the owner code indicates 
  2747.            INFOSEGOWNER, then assign the page to the system. 
  2748.  
  2749.         e) If system pages are being assigned and if the owner code indicates 
  2750.            VDMALIASOWNER or VDHOWNER, do not assign the page. It will be 
  2751.            assigned to the VDM that really owns it when the VDM is processed. 
  2752.  
  2753.         f) If a conflict was detected, print out both the old and new 
  2754.            information about the page. 
  2755.  
  2756.         g) If there was no conflict, modify PF-parallel to indicate what the 
  2757.            page was assigned to and the type of memory (shared, private, or 
  2758.            system). 
  2759.  
  2760.  
  2761. ΓòÉΓòÉΓòÉ 9.3.7. Free, Idle, and Locked Memory ΓòÉΓòÉΓòÉ
  2762.  
  2763. Select one: 
  2764.  
  2765.       Selecting 
  2766.  
  2767.       Example Output 
  2768.  
  2769.       Contents of Display 
  2770.  
  2771.       Related Topics 
  2772.  
  2773.  
  2774. ΓòÉΓòÉΓòÉ <hidden> Selecting the Free, Idle, and Locked Memory display ΓòÉΓòÉΓòÉ
  2775.  
  2776. When you select the Free, Idle, and Locked Memory option of the System 
  2777. pull-down on the Process Hierarchy window, information about free, idle, and 
  2778. locked memory is displayed. 
  2779.  
  2780. If the list of pages making up a category is desired, double-click mouse button 
  2781. 1 with the pointer over the page count. (This procedure is similar to "display 
  2782. a control block" processing.) 
  2783.  
  2784.  
  2785. ΓòÉΓòÉΓòÉ <hidden> Example of the Free, Idle, and Locked Memory Display ΓòÉΓòÉΓòÉ
  2786.  
  2787. Free, Idle, and Locked Memory:
  2788. Free                RAM = 000BD000 bytes (  756K) ( 0.738M).
  2789. Idle                RAM = 00076000 bytes (  472K) ( 0.461M).
  2790.         (Dirty idle RAM = 00068000 bytes (  416K) ( 0.406M)).
  2791. Long  Term Locked   RAM = 0001C000 bytes (  112K) ( 0.109M).
  2792. Short Term Locked   RAM = 00000000 bytes (    0K) ( 0.000M).
  2793. Short & Long Locked RAM = 00000000 bytes (    0K) ( 0.000M).
  2794.  
  2795.  
  2796. ΓòÉΓòÉΓòÉ <hidden> Contents of the Free, Idle, and Locked Memory Display ΓòÉΓòÉΓòÉ
  2797.  
  2798. The information presented on the Free, Idle, and Locked Memory display is as 
  2799. follows: 
  2800.  
  2801.  Free RAM = xxxxxxxx 
  2802.            Amount of free memory. 
  2803.  Idle RAM = xxxxxxxx 
  2804.            Amount of idle memory. 
  2805.  Dirty idle RAM 
  2806.            Amount of idle memory which is marked dirty. 
  2807.  Long  Term Locked RAM = xxxxxxxx 
  2808.            Amount of Long Term Locked memory. 
  2809.  Short Term Locked RAM = xxxxxxxx 
  2810.            Amount of Short Term Locked memory. 
  2811.  Short & Long Locked RAM = xxxxxxxx 
  2812.            Amount of memory that is both Long Term and Short Term Locked. This 
  2813.            memory is not included in the Short and Long values on the previous 
  2814.            lines. (There are three separate counts of locked memory.) 
  2815.  
  2816.  
  2817. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2818.  
  2819.      Memory addressing 
  2820.  
  2821.      Physical addresses 
  2822.  
  2823.  
  2824. ΓòÉΓòÉΓòÉ 9.3.8. Swapper ΓòÉΓòÉΓòÉ
  2825.  
  2826. Select one: 
  2827.  
  2828.       Selecting 
  2829.  
  2830.       Example Output 
  2831.  
  2832.       Contents of Display 
  2833.  
  2834.       Related Topics 
  2835.  
  2836.  
  2837. ΓòÉΓòÉΓòÉ <hidden> Selecting the Swapper Display ΓòÉΓòÉΓòÉ
  2838.  
  2839. When you select the Swapper option of the System pull-down on the Process 
  2840. Hierarchy window, information about the contents of the SWAPPER.DAT file will 
  2841. be displayed. 
  2842.  
  2843.  
  2844. ΓòÉΓòÉΓòÉ <hidden> Example of the Swapper Display ΓòÉΓòÉΓòÉ
  2845.  
  2846. Analysis of the SWAPPER.DAT file:
  2847. There are 1152 disk frames in SWAPPER.DAT (each is 4K bytes).
  2848. There are  715 frames used.  (2860K => 2.793M)
  2849. There are  437 frames free.  (1748K => 1.707M)
  2850. There are 1152 frames total. (4608K => 4.500M)
  2851.  
  2852.  
  2853. ΓòÉΓòÉΓòÉ <hidden> Contents of the Swapper Display ΓòÉΓòÉΓòÉ
  2854.  
  2855. The information presented on the Swapper display is as follows: 
  2856.  
  2857.  There are iiii disk frames in SWAPPER.DAT (each is 4K bytes). 
  2858.            The number of 4KB disk frames currently allocated for the 
  2859.            SWAPPER.DAT file. 
  2860.  There are iiii frames used. 
  2861.            The number of 4KB disk frames that are currently being used. The 
  2862.            amount is also given in kilobytes and megabytes of space. 
  2863.  There are iiii frames free. 
  2864.            The number of 4KB disk frames that are currently free. The amount is 
  2865.            also given in kilobytes and megabytes of space. 
  2866.  There are iiii frames total. 
  2867.            The total number of 4KB disk frames that were found. (The sum of the 
  2868.            previous two lines.) The amount is also given in kilobytes and 
  2869.            megabytes of space. 
  2870.  There are iiii frames compressed. 
  2871.            Starting with Warp 3, pages which have only a few bits in them are 
  2872.            compressed and placed in a "compressed pages" area in the Kernel 
  2873.            Resident Heap, instead of being written to the SWAPPER.DAT file. The 
  2874.            number of these pages is shown here. They will not be reported in 
  2875.            the SWAPPER.DAT contents (by page) display. 
  2876.  
  2877.  
  2878. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  2879.  
  2880.      Memory addressing 
  2881.  
  2882.      SWAPPER.DAT contents (by page) 
  2883.  
  2884.  
  2885. ΓòÉΓòÉΓòÉ 9.3.9. General System ΓòÉΓòÉΓòÉ
  2886.  
  2887. The General System option contains: 
  2888.  
  2889.  General System Information 
  2890.            Displays selected general system information. 
  2891.  Device Drivers 
  2892.            Displays information about all Device Drivers currently loaded. 
  2893.  GDT 
  2894.            Displays the Global Descriptor Table. 
  2895.  Modules 
  2896.            Displays information about all modules currently loaded. 
  2897.  System Anchor Segment 
  2898.            Displays the System Anchor Segment. 
  2899.  Global Info Seg 
  2900.            Displays the Global Information Segment. 
  2901.  Open Files 
  2902.            Displays information about the files that are open. 
  2903.  Process List 
  2904.            Displays a list of all processes that are running. 
  2905.  
  2906.  
  2907. ΓòÉΓòÉΓòÉ 9.3.9.1. General System Information ΓòÉΓòÉΓòÉ
  2908.  
  2909. Select one: 
  2910.  
  2911.       Selecting 
  2912.  
  2913.       Example Output 
  2914.  
  2915.       Contents of Display 
  2916.  
  2917.       Related Topics 
  2918.  
  2919.  
  2920. ΓòÉΓòÉΓòÉ <hidden> Selecting the General System Information Display ΓòÉΓòÉΓòÉ
  2921.  
  2922. When you select the General System Information option of the General System 
  2923. option of the System pull-down on the Process Hierarchy window, information 
  2924. that THESEUS discovers during its initialization is displayed. The values 
  2925. returned by DosQuerySysInfo are displayed, also. 
  2926.  
  2927.  
  2928. ΓòÉΓòÉΓòÉ <hidden> Example of the General System Information Display ΓòÉΓòÉΓòÉ
  2929.  
  2930. General System Information:
  2931.  
  2932. OS/2 version        = 2.45, revision = 0.
  2933. Os2krnl build level = 14.040
  2934.  
  2935. SYSLEVEL.OS2 information
  2936. OS/2 Component ID   = 5639A6150
  2937. CSD GA level        = XR04500
  2938. CSD Previous level  = XR0E001
  2939.  
  2940. SYSLEVEL.FPK information
  2941. OS/2 Component ID   = 566933010
  2942. CSD Current level   = XR0E001
  2943. CSD Previous level  = XR0E001
  2944.  
  2945. Theseusn Version    = n.000.00
  2946. Machine information: Model = 252 (0xFC),
  2947.                      Submodel = 1 (0x01),
  2948.                      Revision = 0 (0x00),
  2949.                      ABIOS = 0 (0x00).
  2950. BIOS date = 02/04/98.
  2951. RAM available to OS/2 = 027A0000 bytes (39.625M).
  2952. It appears that all of it is being used as 'paging space' by OS/2.
  2953.   (This is the 'proper' usage of the memory.)
  2954.  
  2955. Following are the values from DosQuerySysInfo:
  2956.  1. QSV_MAX_PATH_LENGTH      = 260.
  2957.  2. QSV_MAX_TEXT_SESSIONS    = 16.
  2958.  3. QSV_MAX_PM_SESSIONS      = 16.
  2959.  4. QSV_MAX_VDM_SESSIONS     = 513.
  2960.  5. QSV_BOOT_DRIVE           = 3.
  2961.  6. QSV_DYN_PRI_VARIATION    = 1.
  2962.  7. QSV_MAX_WAIT             = 2.
  2963.  8. QSV_MIN_SLICE            = 32.
  2964.  9. QSV_MAX_SLICE            = 320.
  2965. 10. QSV_PAGE_SIZE            = 4096.
  2966. 11. QSV_VERSION_MAJOR        = 20.
  2967. 12. QSV_VERSION_MINOR        = 45.
  2968. 13. QSV_VERSION_REVISION     = 0.
  2969. 14. QSV_MS_COUNT             = 108986695 (30:16:26).
  2970. 15. QSV_TIME_LOW             = 960906256.
  2971. 16. QSV_TIME_HIGH            = 0.
  2972. 17. QSV_TOTPHYSMEM           = 41549824 (40576K -> 39.625M).
  2973. 18. QSV_TOTRESMEM            = 11776000 (11500K -> 11.230M).
  2974. 19. QSV_TOTAVAILMEM          = 122761216 (119884K -> 117.074M).
  2975. 20. QSV_MAXPRMEM             = 308936704 (301696K -> 294.625M).
  2976. 21. QSV_MAXSHMEM             = 271777792 (265408K -> 259.188M).
  2977. 22. QSV_TIMER_INTERVAL       = 310.
  2978. 23. QSV_MAX_COMP_LENGTH      = 255.
  2979. 24. QSV_FOREGROUND_FS_SESSION = 20.
  2980. 25. QSV_FOREGROUND_PROCESS    = 80.
  2981. 26. QSV_NUMPROCESSORS        = 1.
  2982. 27. QSV_MAXHPRMEM            = 469762048 (458752K -> 448.000M).
  2983. 28. QSV_MAXHSHMEM            = 469762048 (458752K -> 448.000M).
  2984. 29. QSV_MAXPROCESSES         = 513.
  2985. 30. QSV_VIRTUALADDRESSLIMIT  = 40000000
  2986. System Anchor Segment (SAS) selector = 0070.
  2987. Size of PTDA                 = 0760 bytes.
  2988. Size of TCB                  = 02F4 bytes.
  2989. Size of Alias        record  = 0008 bytes.
  2990. Size of Arena        record  = 0016 bytes.
  2991. Size of Object       record  = 0010 bytes.
  2992. Size of Context      record  = 0005 bytes.
  2993. Size of Page Frame   record  = 000C bytes.
  2994. Size of Virtual Page record  = 000A bytes.
  2995. Size of SFT entry            = 00A2 bytes.
  2996. har of System Arena Sentinel = 0004.
  2997. har of Shared Arena Sentinel = 0006.
  2998. har above 512m Shr Arena Sen = 0005.
  2999. har of Page Frame table      = 0020.
  3000. har of Virtual Page table    = 0023.
  3001. System Page Directory        @ FF383000.
  3002. System Page Tables start     @ FA000000.
  3003. DLL code Page Tables start   @ FF17B000.
  3004. Start address shared global  @ 1E000000.
  3005. Alias Record Table           @ FD938020.
  3006. < End of THESEUSn (v n.000.00) output @ 14:24:16 on 6/13/2000 >
  3007.  
  3008.  
  3009. ΓòÉΓòÉΓòÉ <hidden> Contents of the General System Information display ΓòÉΓòÉΓòÉ
  3010.  
  3011. The following information appears on the General System Information display: 
  3012.  
  3013. The first group of values is "discovered" by THESEUS during its initialization: 
  3014.  
  3015.  OS/2 version = i.i, revision = i. 
  3016.            The major and minor version numbers, followed by the revision. 
  3017.  This looks like... 
  3018.            Based on several parameters, THESEUS determines which level of OS/2 
  3019.            you are running. 
  3020.  SYSLEVEL.OS2 informaiton 
  3021.            Shows the component ID, CSD ga level and CSD previous level. 
  3022.  SYSLEVEL.FPK information 
  3023.            If it exists then ith shows the component ID, CSD current level and 
  3024.            CSD previous level. 
  3025.  Theseus Version: 
  3026.  Theseus version = i.iiii.ii. 
  3027.  Machine information:. 
  3028.            Indentifies the PC model and BIOS level as best as possible. 
  3029.  BIOS date = mm/dd/yy. 
  3030.            The date from the ROM BIOS chip at physical memory location 0xFFFF5. 
  3031.  RAM available to OS/2 = hhhhhhhh bytes (dd.dddM). 
  3032.            The amount of RAM available to the OS/2 system. This may be less 
  3033.            than the total RAM in your system by 128KB (.125MB), because, on 
  3034.            some systems, 128KB is used to copy the BIOS from ROM into RAM. This 
  3035.            is because ROM is too slow to keep the processor running at full 
  3036.            speed. 
  3037.  
  3038.            Note:   This is presented as a cross-check. If the amount is 
  3039.            different than what you expect, then OS/2 may not be using memory on 
  3040.            a memory board installed in your machine. 
  3041.  It appears... 
  3042.            This message indicates whether or not OS/2 is using the area above 
  3043.            the 16M line in physical RAM as "Fast Swap" space or as "normal 
  3044.            paging" space. 
  3045.  
  3046.  The second group is retrieved from DosQuerySysInfo. The following QSV_ 
  3047.  descriptions come from the on-line documentation of the DosQuerySysInfo system 
  3048.  call. 
  3049.  
  3050.  QSV_MAX_PATH_LENGTH 
  3051.            Maximum length, in bytes, of a path name. 
  3052.  QSV_MAX_TEXT_SESSIONS 
  3053.            Maximum number of text sessions. 
  3054.  QSV_MAX_PM_SESSIONS 
  3055.            Maximum number of PM sessions. 
  3056.  QSV_MAX_VDM_SESSIONS 
  3057.            Maximum number of DOS sessions. 
  3058.  QSV_BOOT_DRIVE 
  3059.            Drive from which the system was started (1 means drive A, 2 means 
  3060.            drive B, and so on). 
  3061.  QSV_DYN_PRI_VARIATION 
  3062.            Dynamic priority variation flag (0 means absolute priority, 1 means 
  3063.            dynamic priority). 
  3064.  QSV_MAX_WAIT 
  3065.            Maximum wait in seconds. 
  3066.  QSV_MIN_SLICE 
  3067.            Minimum time slice in milliseconds. 
  3068.  QSV_MAX_SLICE 
  3069.            Maximum time slice in milliseconds. 
  3070.  QSV_PAGE_SIZE 
  3071.            Memory page size in bytes.  This value is 4096 for the 80386 
  3072.            processor. 
  3073.  QSV_VERSION_MAJOR 
  3074.            Major version number. 
  3075.  QSV_VERSION_MINOR 
  3076.            Minor version number. 
  3077.  QSV_VERSION_REVISION 
  3078.            Revision letter. 
  3079.  QSV_MS_COUNT 
  3080.            Value of a 32-bit, free-running millisecond counter. This value is 
  3081.            zero when the system is started. This value does not reflect the 
  3082.            "suspended" time for Thinkpads; it is only that time that the 
  3083.            processor is running. It is also formatted as hours, minutes, and 
  3084.            seconds. 
  3085.  QSV_TIME_LOW 
  3086.            Low-order 32 bits of the time in seconds since January 1, 1970 at 
  3087.            0:00:00. 
  3088.  QSV_TIME_HIGH 
  3089.            High-order 32 bits of the time in seconds since January 1, 1970 at 
  3090.            0:00:00. 
  3091.  QSV_TOTPHYSMEM 
  3092.            Total amount of physical memory in the system. 
  3093.  QSV_TOTRESMEM 
  3094.            Total amount of resident memory in the system. 
  3095.  QSV_TOTAVAILMEM 
  3096.            Maximum amount of memory that can be allocated by all processes in 
  3097.            the system. This number is advisory and is not guaranteed, since 
  3098.            system conditions change constantly. 
  3099.  QSV_MAXPRMEM 
  3100.            Maximum amount of memory that this process can allocate in its 
  3101.            private arena. This number is advisory and is not guaranteed, since 
  3102.            system conditions change constantly. 
  3103.  QSV_MAXSHMEM 
  3104.            Maximum amount of memory that this process can allocate in the 
  3105.            shared arena. This number is advisory and is not guaranteed, since 
  3106.            system conditions change constantly. 
  3107.  QSV_TIMER_INTERVAL 
  3108.            Timer interval in tenths of a millisecond. 
  3109.  QSV_MAX_COMP_LENGTH 
  3110.            Maximum length, in bytes, of one component in a path name. 
  3111.  QSV_FGND_SG_ID 
  3112.            Foreground Screen Group ID. 
  3113.  QSV_FGND_PID 
  3114.            Foreground Process ID. 
  3115.  QSV_NUMBERPROCESSORS 
  3116.            This value is zero for OS/2 system that do not support SMP. 
  3117.            Otherwise it is the number of processors. 
  3118.  QSV_MAXHPRMEM 
  3119.            For WARP SMP systems that have high memory support, it is the 
  3120.            maximum amount of memory that this process can allocate in its high 
  3121.            private arena. This number is advisory and is not guaranteed, since 
  3122.            system conditions change constantly. 
  3123.  QSV_MAXHSHMEM 
  3124.            For WARP SMP systems that have high memory support, it is the 
  3125.            maximum amount of memory that this process can allocate in the high 
  3126.            shared arena. This number is advisory and is not guaranteed, since 
  3127.            system conditions change constantly. 
  3128.  QSV_MAXPROCESSES 
  3129.            For WARP SMP systems that have high memory support. Indicates the 
  3130.            maximum number of processes that can be started. 
  3131.  QSV_VITUALADDRESSLIMIT 
  3132.            For WARP SMP systems that have high memory support, it is the upper 
  3133.            address that can addressed by the process.  This value is in 
  3134.            hexadecimal. 
  3135.  
  3136.  The last group of values is also "discovered" by THESEUS during its 
  3137.  initialization: 
  3138.  
  3139.  System Anchor Segment (SAS) selector = ssss. 
  3140.            The selector that points to the System Anchor Segment is located 
  3141.            from the GDT. 
  3142.  Size of PTDA = hhhh bytes. 
  3143.            The PTDA is different sizes on different systems. 
  3144.  Size of TCB = hhhh bytes. 
  3145.            The TCB is different sizes on different systems. 
  3146.  Size of Arena record = hhhh bytes. 
  3147.            The size of the Arena record, as mapped by a .H file. 
  3148.  Size of Object record = hhhh bytes. 
  3149.            The size of the Object record, as mapped by a .H file. 
  3150.  Size of Context record = hhhh bytes. 
  3151.            The size of the Context record, as mapped by a .H file. 
  3152.  Size of Page Frame record = hhhh bytes. 
  3153.            The size of the Page Frame record, as mapped by a .H file. 
  3154.  Size of Virtual Page record = hhhh bytes. 
  3155.            The size of the Virtual Page record, as mapped by a .H file. 
  3156.  Size of SFT entry = hhhh bytes. 
  3157.            The SFT entry is different sizes on different systems. 
  3158.  har of System Arena Sentinel = hhhh. 
  3159.            The System Arena's Sentinel is not pointed to by anything and must 
  3160.            be discovered. 
  3161.  har of Shared Arena Sentinel = hhhh. 
  3162.            The Shared Arena's Sentinel is pointed to from the process's 
  3163.            sentinel. 
  3164.  har of Page Frame table = hhhh. 
  3165.            The Page Frame table's har is discovered, based on its address. 
  3166.  har of Virtual Page table = hhhh. 
  3167.            The Virtual Page Table's har is discovered, based on its owner 
  3168.            value. 
  3169.  System Page Directory @ hhhhhhhh. 
  3170.            The linear address of the System Page Directory. 
  3171.  System Page Tables start @ hhhhhhhh. 
  3172.            The linear address of were the system page tables start. 
  3173.  DLL code Page Tables start @ hhhhhhhh. 
  3174.            The linear address of were the DLL code page tables start. 
  3175.  Start address shared global @ hhhhhhhh. 
  3176.            The linear address of were the shared global area start. 
  3177.  Alias Record Table @ hhhhhhhh. 
  3178.            The linear address of were the Alias Record table start. 
  3179.  
  3180.  
  3181. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3182.  
  3183.      Memory addressing 
  3184.  
  3185.      Handles 
  3186.  
  3187.  
  3188. ΓòÉΓòÉΓòÉ 9.3.9.2. Device Drivers ΓòÉΓòÉΓòÉ
  3189.  
  3190. Select one: 
  3191.  
  3192.       Selecting 
  3193.  
  3194.       Example Output 
  3195.  
  3196.       Contents of Display 
  3197.  
  3198.       Related Topics 
  3199.  
  3200.  
  3201. ΓòÉΓòÉΓòÉ <hidden> Selecting the Device Drivers display ΓòÉΓòÉΓòÉ
  3202.  
  3203. When you select the Device Drivers option of the General System option of the 
  3204. System pull-down on the Process Hierarchy window, information about all Device 
  3205. Drivers currently loaded is displayed. Device Drivers defined in the CONFIG.SYS 
  3206. file, but which did not load are not shown. 
  3207.  
  3208.  
  3209. ΓòÉΓòÉΓòÉ <hidden> Example of the Device Drivers Display ΓòÉΓòÉΓòÉ
  3210.  
  3211. Device Drivers:
  3212. Header addr Limit  Strategy   Limit  Name/Units Attr ...
  3213.  0070:08EC  06A4C  0F00:06A0  09A0F  NUL        8084 CHR NUL LVL=OS/2
  3214.  0400:0908  06A4C  0F00:06A8  09A0F  CON        8083 CHR SCR KBD LVL=OS/2
  3215.  0778:0000  00040  0798:0000  0022A  THESEU2$   8080 CHR LVL=OS/2
  3216.  0550:0000  01CD7  0558:0E00  02603         5   2080 IBM LVL=OS/2
  3217.  04D0:0000  0010A  04D8:0002  00790  CLOCK$     8188 CHR CLK LVL=3 ??
  3218.  
  3219.  
  3220. ΓòÉΓòÉΓòÉ <hidden> Contents of the Device Drivers Display ΓòÉΓòÉΓòÉ
  3221.  
  3222. One line is displayed for each Device Driver: 
  3223.  
  3224.  Column          Meaning 
  3225.  Header addr     The virtual address (selector:offset) of the header for the 
  3226.                  Device Driver. 
  3227.  Limit           Limit value for the header segment. (This value is 1 less than 
  3228.                  the size of the segment.) 
  3229.  Strategy        The virtual address (selector:offset) of the Strategy Routine 
  3230.                  of the Device Driver. 
  3231.  Limit           Limit value for the Strategy Routine segment. (This value is 1 
  3232.                  less than the size of the segment.) 
  3233.  Name/Units      For character devices, the name of the device. 
  3234.                  For block devices, the number of units supported by the 
  3235.                  device. 
  3236.  Attr            The device attributes in hexadecimal notation. 
  3237.  ...             The device attributes decoded and presented in English: 
  3238.                  CHR            Bit 15 - The device is a "character" device. 
  3239.                                 Otherwise, it is a "block" device. 
  3240.                  IDC            Bit 14 - The device supports "Inter-device 
  3241.                                 Driver Communication". If this option is set, 
  3242.                                 the IDC Entry Point must be valid. 
  3243.                  IBM            Bit 13 - The device is non-IBM block format. 
  3244.                  SHR            Bit 12 - The device supports "shared device 
  3245.                                 access checking." 
  3246.                  OPN            Bit 11 - The device supports removable media 
  3247.                                 (block devices) or device open/close (character 
  3248.                                 devices). 
  3249.                  LVL            Bits 9-7 - Function level of support. 
  3250.                                 PC/DOS         000 - PC/DOS device driver. 
  3251.                                                (This should never be seen in 
  3252.                                                OS/2 2.0.) 
  3253.                                 OS/2           001 - OS/2 device driver, that 
  3254.                                                does not support DosDevIOCTL2 
  3255.                                                packets. 
  3256.                                 IOCTL2         010 - OS/2 device driver, that 
  3257.                                                supports DosDevIOCTL2 and 
  3258.                                                SHUTDOWN request packets. 
  3259.                                 BitStrip       011 - OS/2 device driver, with a 
  3260.                                                Capabilities Bit Strip in the 
  3261.                                                header. 
  3262.                                 ??             Level was not one of the above. 
  3263.                                                The level value is printed. 
  3264.                  CLK            Bit 3 - The device is the CLOCK device. 
  3265.                  NUL            Bit 2 - The device is the NULL device. 
  3266.                  SCR            Bit 1 - The device is the SCREEN (STDOUT). 
  3267.                  KBD            Bit 0 - The device is the KEYBOARD (STDIN). 
  3268.  
  3269.  
  3270. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3271.  
  3272.      Memory addressing 
  3273.  
  3274.      Virtual addresses 
  3275.  
  3276.  
  3277. ΓòÉΓòÉΓòÉ 9.3.9.3. GDT ΓòÉΓòÉΓòÉ
  3278.  
  3279. Select one: 
  3280.  
  3281.       Selecting 
  3282.  
  3283.       Example Output 
  3284.  
  3285.       Contents of Display 
  3286.  
  3287.       Descriptor Table Entry Description 
  3288.  
  3289.       Related Topics 
  3290.  
  3291.  
  3292. ΓòÉΓòÉΓòÉ <hidden> Selecting the GDT Display ΓòÉΓòÉΓòÉ
  3293.  
  3294. When you select the GDT option of the General System option of the System 
  3295. pull-down on the Process Hierarchy window, the contents of the GDT is 
  3296. displayed. 
  3297.  
  3298. The display generation takes about 3 seconds on an 8MB 20Mhz P70. 
  3299.  
  3300.  
  3301. ΓòÉΓòÉΓòÉ <hidden> Example of the GDT Display ΓòÉΓòÉΓòÉ
  3302.  
  3303. Global Descriptor Table:
  3304. GDT(0010) BTSS32  Base=FFE42DC8 Limit=00067 DPL=0               P=1 G=0
  3305. GDT(0018) Data    Base=FFE42966 Limit=003FF DPL=0 ED=0  W=1 A=1 P=1 G=0 B=0 Alias
  3306. GDT(0020) Data    Base=FFEDA000 Limit=003FF DPL=0 ED=0  W=1 A=1 P=1 G=0 B=0 Alias
  3307. GDT(0028) LDT     Base=7C6D5000 Limit=0FFFF DPL=0               P=1
  3308. ┬╖┬╖┬╖
  3309. GDT(0038) Data    Base=7CAD5DAC Limit=000F3 DPL=3 ED=0  W=1 A=0 P=1 G=0 B=0
  3310. ┬╖┬╖┬╖
  3311. GDT(0058) Code    Base=00000000 Limit=1BFFF DPL=2 CF=1  R=1 A=1 P=1 G=1 D=1 Alias
  3312. ┬╖┬╖┬╖
  3313. GDT(05B8) CallG   Selector=DFEE Offset=0292 DPL=3 WordCount=03  P=1
  3314. ┬╖┬╖┬╖
  3315. GDT(07A8) CallG32 Selector=07C0 Offset=01A0 DPL=3 WordCount=00  P=1
  3316. ┬╖┬╖┬╖
  3317.  
  3318.  
  3319. ΓòÉΓòÉΓòÉ <hidden> Contents of the GDT Display ΓòÉΓòÉΓòÉ
  3320.  
  3321. One line is displayed for each valid entry in the GDT. 
  3322.  
  3323. Please see the Descriptor Table Entry for the format of an entry. 
  3324.  
  3325.  
  3326. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3327.  
  3328.      Memory addressing 
  3329.  
  3330.      Virtual addresses 
  3331.  
  3332.  
  3333. ΓòÉΓòÉΓòÉ 9.3.9.4. Modules ΓòÉΓòÉΓòÉ
  3334.  
  3335. Select one: 
  3336.  
  3337.       Selecting 
  3338.  
  3339.       Example Output 
  3340.  
  3341.       Contents of Display 
  3342.  
  3343.       Related Topics 
  3344.  
  3345.  
  3346. ΓòÉΓòÉΓòÉ <hidden> Selecting the Modules Display ΓòÉΓòÉΓòÉ
  3347.  
  3348. When you select the Modules option of the General System option of the System 
  3349. pull-down on the Process Hierarchy window, information about all modules 
  3350. currently loaded is displayed. 
  3351.  
  3352.  
  3353. ΓòÉΓòÉΓòÉ <hidden> Example of the Modules Display ΓòÉΓòÉΓòÉ
  3354.  
  3355. Modules currently loaded:
  3356.   MTE @    hob    Name    type  Full Path
  3357. FEB63770  0252  THESEUS    LX   D:\THESEUSn\THESEUSn.EXE
  3358. FEB43AC0  026E  VIEWDOC    LX   C:\OS2\VIEWDOC.EXE
  3359. FEB3BB34  0220  CMD        LX   C:\OS2\CMD.EXE
  3360. FEB60584  01F8  PMEXEC     LX   C:\OS2\PMEXEC.EXE
  3361. FEB5ABB0  014B  HARDERR    NE   C:\OS2\SYSTEM\HARDERR.EXE
  3362. ┬╖┬╖┬╖
  3363.  
  3364.  
  3365. ΓòÉΓòÉΓòÉ <hidden> Contents of the Modules Display ΓòÉΓòÉΓòÉ
  3366.  
  3367. One line is displayed for each module currently loaded: 
  3368.  
  3369.  Column          Meaning 
  3370.  MTE @           Linear address of the Module Table Entry (MTE) of the module. 
  3371.  hob             The hob of the MTE. 
  3372.  Name            The name of the module. 
  3373.  type            Specifies the type of module: 
  3374.                  NE       The module was generated by the linker on the OS/2 
  3375.                           1.x system. The module is all 16-bit. 
  3376.                  LX       The module was generated by the linker on the OS/2 
  3377.                           system. The module may be any combination of 16 & 
  3378.                           32-bit. 
  3379.  Full Path       The fully qualified path name of the file. 
  3380.  
  3381.  
  3382. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3383.  
  3384.      Memory addressing 
  3385.  
  3386.      Handles 
  3387.  
  3388.  
  3389. ΓòÉΓòÉΓòÉ 9.3.9.5. System Anchor Segment ΓòÉΓòÉΓòÉ
  3390.  
  3391. Select one: 
  3392.  
  3393.       Selecting 
  3394.  
  3395.       Example Output 
  3396.  
  3397.       Contents of Display 
  3398.  
  3399.       Related Topics 
  3400.  
  3401.  
  3402. ΓòÉΓòÉΓòÉ <hidden> Selecting the System Anchor Segment Display ΓòÉΓòÉΓòÉ
  3403.  
  3404. When you select the System Anchor Segment option of the General System option 
  3405. of the System pull-down on the Process Hierarchy window, the contents of the 
  3406. System Anchor Segment are displayed. 
  3407.  
  3408. Many of the tables and control block chains used by the OS/2 system have their 
  3409. anchors in the System Anchor Segment. 
  3410.  
  3411.  
  3412. ΓòÉΓòÉΓòÉ <hidden> Example of the System Anchor Segment Display ΓòÉΓòÉΓòÉ
  3413.  
  3414. System Anchor Segment (SAS), selector = 0070
  3415. tables_area @ 0016
  3416.                   GDT      = 0008 (selector) - ERROR
  3417.                   LDT      = 0000 (selector) - ERROR
  3418.                   IDT      = 0018 (selector)
  3419.                   GDT pool = 0100 (starting selector)
  3420. flat_sel    = 0158 (selector) (this is for the Kernel Data)
  3421. config_area @ 001E
  3422.                   Config table @ 09D6 (offset into SAS) (?)
  3423. dd_area     @ 0020
  3424.                   bimodal chain          @ 094F (offset into SAS)
  3425.                   real    chain          @ 0000 (offset into SAS)
  3426.                   Drive Parameter Block  = 04E8 (selector) (?)
  3427.                   ABIOS Common Data Area = 0430 (selector) (?)
  3428.                   ABIOS Common Data Area = 6A00 (segment) (?)
  3429.                   FSC Common Data Area   = 00C8 (selector) (?)
  3430. vm_area     @ 002C
  3431.                   arena records      @ FEF29020 (flat)
  3432.                   object records     @ FF08A020 (flat)
  3433.                   context records    @ FFEC8020 (flat)
  3434.                   kernel MTE records @ FFF2F46C (flat)
  3435.                   linked MTE list    @ FFF2E9A8 (flat)
  3436.                   page frame table   @ FFE20000 (flat)
  3437.                   page range table   @ FFE1F000 (flat)
  3438.                   swap frame table   @ 7C7C3144 (flat), length = 512
  3439.                   idle head          @ FFE2078C (flat) (within 'page frame table')
  3440.                   free head          @ FFE20780 (flat) (within 'page frame table')
  3441.                   heap array         @ 00000000 (flat) (?)
  3442. task_area   @ 0058
  3443.                   PTDA           = 0030 (selector)
  3444.                   Process tree   @ FFE518DC (flat)
  3445.                   Thread array   @ FFE318B9 (flat) (array of TCB linears)
  3446.                   Current Thread @ FFE2B802 -> 002E
  3447.                   Thread Count   @ FFE2B806 -> 0031
  3448. ras_area    @ 006A
  3449.                   System Trace Data area = 0000 (selector) (?)
  3450.                   System Trace Data area = 0000 (segment) (?)
  3451.                   Trace enable table     @ 07CC (offset into SAS) (?)
  3452. file_area   @ 0070
  3453.                   Master File Table           = FEB30FC0 (flat) (?)
  3454.                   System File Table           = 00C0 (selector)
  3455.                   Volume Parameter Block      = 03E8 (selector) (?)
  3456.                   Current Directory Structure = 0608 (selector)
  3457.                   Buffer Segment              = 00A8 (selector) (?)
  3458. info_area   @ 007C
  3459.                   Global Info Segment       = 0428 (selector)
  3460.                   Local Info Segment        = 03B8 (selector)
  3461.                   3xBox Info Segment        = FFFFFFFF (?)
  3462.                   Codepage Data Info Block  = 061B (selector)
  3463.  
  3464.  
  3465. ΓòÉΓòÉΓòÉ <hidden> Contents of the System Anchor Segment Display ΓòÉΓòÉΓòÉ
  3466.  
  3467. There are some fields within the System Anchor Segment (SAS) which I have been 
  3468. unable to verify. They are all marked with a (?) on the display and are also 
  3469. explicitly indicated in the descriptions below. 
  3470.  
  3471. The fields of the System Anchor Segment are displayed as follows: 
  3472.  
  3473.  System Anchor Segment (SAS), selector = ssss 
  3474.            The GDT selector that points to the SAS. 
  3475.  
  3476.  tables_area @ oooo 
  3477.            The offset within the SAS that contain selectors to certain system 
  3478.            tables. 
  3479.  GDT = ssss (selector) - ERROR 
  3480.            The selector of the Global Descriptor Table (GDT). The value 
  3481.            displayed is incorrect. 
  3482.  LDT = ssss (selector) - ERROR 
  3483.            The selector of the Local Descriptor Table (LDT). The value 
  3484.            displayed is incorrect. 
  3485.  IDT = ssss (selector) 
  3486.            The selector of the Interrupt Descriptor Table (IDT). 
  3487.  GDT pool = ssss (starting selector) 
  3488.            Starting selector of a pool of GDT selectors used by the OS/2 
  3489.            kernel. 
  3490.  
  3491.  flat_sel = ssss (selector) (this is for the Kernel Data) 
  3492.            Selector used by the kernel as the flat addressing selector for its 
  3493.            data. 
  3494.  
  3495.  config_area @ oooo 
  3496.            The offset within the SAS that contains the configuration pointers. 
  3497.  Config table @ oooo (offset into SAS) (?) 
  3498.            The Configuration table itself is at this offset within the SAS. 
  3499.            (This is unverified.) 
  3500.  
  3501.  dd_area @ oooo 
  3502.            The offset within the SAS that contains the information about Device 
  3503.            Drivers. 
  3504.  bimodal chain @ oooo (offset into SAS) 
  3505.            The offset within the SAS that contains the start of the chain of 
  3506.            "bimodal" device drivers. (This is the device header for the NUL 
  3507.            device.) 
  3508.  real chain @ oooo (offset into SAS) 
  3509.            The offset within the SAS that contains the start of the chain of 
  3510.            "real mode" device drivers. (This appears to be a hold over from 
  3511.            1.x.) 
  3512.  Drive Parameter Block = ssss (selector) (?) 
  3513.            The segment with the Driver Parameter Block information. (This is 
  3514.            unverified.) 
  3515.  ABIOS Common Data Area = ssss (selector) (?) 
  3516.            The segment with the ABIOS Common Data Area. This selector is valid 
  3517.            for Protect mode. (This is unverified.) 
  3518.  ABIOS Common Data Area = ssss (segment) (?) 
  3519.            The segment with the ABIOS Common Data Area. This segment is valid 
  3520.            for Real mode. (This is unverified.) 
  3521.  FSC Common Data Area = ssss (selector) (?) 
  3522.            The segment with the File System Control (FSC) Common Data Area. 
  3523.            (This is unverified.) 
  3524.  
  3525.  vm_area @ oooo 
  3526.            The offset within the SAS that contains the information about Memory 
  3527.            Management. 
  3528.  arena records @ llllllll (flat) 
  3529.            The linear address of the Arena Table. 
  3530.  object records @ llllllll (flat) 
  3531.            The linear address of the Object Table. 
  3532.  context records @ llllllll (flat) 
  3533.            The linear address of the Context Table. 
  3534.  kernel MTE records @ llllllll (flat) 
  3535.            The linear address of the last MTE which is a DLL. This points to 
  3536.            DOSCALLS.DLL. 
  3537.  linked MTE list @ llllllll (flat) 
  3538.            The linear address of the linear address of the first MTE which is a 
  3539.            DLL. 
  3540.  page frame table @ llllllll (flat) 
  3541.            The linear address of the Page Frame Table. 
  3542.  page range table @ llllllll (flat) 
  3543.            The linear address of the Page Range Table. 
  3544.  swap frame table @ llllllll (flat), length = iii 
  3545.            The linear address of the table of bits that indicate the 
  3546.            free/allocated state of the SWAPPER.DAT page frames. The length is 
  3547.            given as the number of bits in the table. 
  3548.  idle head @ llllllll (flat) (within 'page frame table') 
  3549.            The head of the "idle chain" of pages. This head is within the Page 
  3550.            Frame Table and points to an entry that has no physical memory 
  3551.            associated with it. 
  3552.  free head @ llllllll (flat) (within 'page frame table') 
  3553.            The head of the "free chain" of pages. This head is within the Page 
  3554.            Frame Table and points to an entry that has no physical memory 
  3555.            associated with it. 
  3556.  heap array @ llllllll (flat) (?) 
  3557.            This value is always zero. 
  3558.  
  3559.  task_area @ oooo 
  3560.            The offset within the SAS that contains the information about 
  3561.            processes and threads. 
  3562.  PTDA = ssss (selector) 
  3563.            The selector points to the active process's PTDA. This segment is 
  3564.            "sparse" and contains the PTDA, TCB and TSD. 
  3565.  Process tree @ llllllll (flat) 
  3566.            The linear address of the top process (sysinit) in the process tree. 
  3567.  Thread array @ llllllll (flat) (array of TCB linears) 
  3568.            The linear address of the Thread Table. There is one entry for each 
  3569.            thread defined in the system. The index into this table is the 
  3570.            thread number. 
  3571.  Current Thread @ llllllll -> hhhh 
  3572.            The linear address of the word containing the current thread number. 
  3573.            This is followed by the actual value. This will always be a thread 
  3574.            in THESEUS. 
  3575.  Thread Count @ llllllll -> hhhh 
  3576.            The linear address of the word containing the actual number of 
  3577.            threads in the system. This is not the maximum number of threads. 
  3578.  
  3579.  ras_area @ oooo 
  3580.            The offset within the SAS that contains the information about trace. 
  3581.  System Trace Data area = ssss (selector) 
  3582.            The selector of the System Trace buffer. (This is unverified.) 
  3583.  System Trace Data area = ssss (segment) (?) 
  3584.            The selector of the System Trace buffer. (This is unverified.) 
  3585.  Trace enable table @ oooo (offset into SAS) (?) 
  3586.            ??? (This is unverified.) 
  3587.  
  3588.  file_area @ oooo 
  3589.            The offset within the SAS that contains the information about File 
  3590.            System. 
  3591.  Master File Table = llllllll (flat) (?) 
  3592.            Linear address of the Master File Table. (This is unverified.) 
  3593.  System File Table = ssss (selector) 
  3594.            This is the selector of the segment containing the System File Table 
  3595.            selectors 
  3596.  Volume Parameter Block = ssss (selector) (?) 
  3597.            ??? (This is unverified.) 
  3598.  Current Directory Structure = ssss (selector) 
  3599.            This is the selector of the segment containing the current 
  3600.            directory. 
  3601.  Buffer Segment = ssss (selector) (?) 
  3602.  
  3603.  info_area @ oooo 
  3604.            The offset within the SAS that contains the information about Info 
  3605.            Segments. 
  3606.  Global Info Segment = ssss (selector) 
  3607.            The selector of the Global Information Segment. This selector is for 
  3608.            "ring 0" and is not usable by an application program. 
  3609.  Local Info Segment = ssss (selector) 
  3610.            The selector of the Local Information Segment. This selector is for 
  3611.            "ring 0" and is not usable by an application program. 
  3612.  3xBox Info Segment = hhhhhhhh (?) 
  3613.            ??? (This is unverified.) 
  3614.  Codepage Data Info Block = ssss (selector) 
  3615.            This selector points to the code page table currently loaded. 
  3616.  
  3617.  
  3618. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3619.  
  3620.      Memory addressing 
  3621.  
  3622.      Virtual addresses 
  3623.  
  3624.      Linear addresses 
  3625.  
  3626.  
  3627. ΓòÉΓòÉΓòÉ 9.3.9.6. Global Info Seg ΓòÉΓòÉΓòÉ
  3628.  
  3629. Select one: 
  3630.  
  3631.       Selecting 
  3632.  
  3633.       Example Output 
  3634.  
  3635.       Contents of Display 
  3636.  
  3637.       Related Topics 
  3638.  
  3639.  
  3640. ΓòÉΓòÉΓòÉ <hidden> Selecting the Global Info Seg Display ΓòÉΓòÉΓòÉ
  3641.  
  3642. When you select the Global Info Seg option of the General System option of the 
  3643. System pull-down on the Process Hierarchy window, the contents of the Global 
  3644. Information Segment is displayed. 
  3645.  
  3646.  
  3647. ΓòÉΓòÉΓòÉ <hidden> Example of the Global Info Seg Display ΓòÉΓòÉΓòÉ
  3648.  
  3649. Global Info Seg:
  3650. Time since 1/1/1970  = 289D662A (hex secs)
  3651. Time since ipl       = 0151A406 (hex msecs)
  3652. Current time         = 14:52:26.53
  3653. Time zone            = undefined
  3654. Timer interval       = 31.0 (msec)
  3655. Date                 = 8/5/1991
  3656. Day of week          = 1 (Monday)
  3657. OS/2 version         = 20.0, revision = ' '
  3658. Current screen group = 1
  3659. Maximum number of screen groups = 16
  3660. HugeShift            = 3
  3661. ProtectOnly          = 0 (No)
  3662. Current PID          = 0005
  3663. Dynamic Scheduling   = 1 (Dynamic)
  3664. MaxWait              = 3 (sec)
  3665. Min time slice       = 32, Max time slice = 32 (msec)
  3666. Boot drive           = 3 (C:)
  3667. Trace control flags:
  3668.    0-15: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  3669.   16-31: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  3670. Max VIO windowable sessions = 16
  3671. Max PM  windowable sessions = 16
  3672. Error logging status = 0
  3673. MMPH selector        = 0000, linear = 00000000
  3674.  
  3675.  
  3676. ΓòÉΓòÉΓòÉ <hidden> Contents of the Global Info Seg Display ΓòÉΓòÉΓòÉ
  3677.  
  3678. The following information is taken from the Control Program Programming 
  3679. Reference, version 1.2. 
  3680.  
  3681. The information presented on the Global Info Seg display is as follows: 
  3682.  
  3683.  Time since 1/1/1970 = hhhhhhhh (hex secs) 
  3684.            Time in seconds since January 1, 1970. 
  3685.  Time since ipl = hhhhhhhh (hex msecs) 
  3686.            Time in milliseconds. 
  3687.  Current time = hh:mm:ss.hh 
  3688.            Current time as hours:minutes:seconds.hundredths. 
  3689.  Time zone = undefined 
  3690.            Minutes from UTC; if the value is hex FFFF, the time zone is 
  3691.            undefined. 
  3692.  Timer interval = dd.d (msec) 
  3693.            Timer interval in milliseconds. 
  3694.  Date = m/d/yyyy 
  3695.            Date as month/day/year. 
  3696.  Day of week = i (aaaaaa) 
  3697.            Day of the week. The number is given, followed by the day in ASCII. 
  3698.  OS/2 version = vv.v, revision = 'c' 
  3699.            OS/2 version, given as major version then minor version. The 
  3700.            revision is a letter. 
  3701.  Current screen group = d 
  3702.            Current foreground full-screen session. 
  3703.  Maximum number of screen groups = dd 
  3704.            Maximum number of full-screen sessions, in decimal notation. 
  3705.  HugeShift = d 
  3706.            Shift count for huge segments. 
  3707.  ProtectOnly = d (aa) 
  3708.            Protect-mode-only indicator. The number is given, followed by yes or 
  3709.            no. This is controlled by the PROTECTONLY command in the CONFIG.SYS 
  3710.            file. 
  3711.  Current PID = hhhh 
  3712.            Process ID of the current foreground process. 
  3713.  Dynamic Scheduling = d (aaaaaaa) 
  3714.            Dynamic variation flag. The number is given, followed by Absolute or 
  3715.            Dynamic. This is controlled by the PRIORITY command in the 
  3716.            CONFIG.SYS file. 
  3717.  MaxWait = d (sec) 
  3718.            Maximum wait in seconds. This is controlled by the MAXWAIT command 
  3719.            in the CONFIG.SYS file. 
  3720.  Min time slice = dd, Max time slice = dd (msec) 
  3721.            Minimum and maximum time-slice values. These are controlled by the 
  3722.            TIMESLICE command in the CONFIG.SYS file. 
  3723.  Boot drive = d (c:) 
  3724.            Drive from which the system was booted. The number is given, 
  3725.            followed by the drive letter and a colon. 
  3726.  Trace control flags: 
  3727.            The flags used to control what trace events are being generated. 
  3728.  Max VIO windowable sessions = dd 
  3729.            Maximum number of VIO windowable sessions. 
  3730.  Max PM  windowable sessions = dd 
  3731.            Maximum number of Presentation Manager sessions. 
  3732.  Error logging status = d 
  3733.            Error-logging status value. 
  3734.  MMPH selector = ssss, linear = llllllll 
  3735.            The selector and linear address to be used when doing MMPH hooks. 
  3736.            MMPH is the OS/2 name given to the same type hooks designated as 
  3737.            MMIO in the OS/2 1.x system. 
  3738.  
  3739.  
  3740. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3741.  
  3742.      Memory addressing 
  3743.  
  3744.      Virtual addresses 
  3745.  
  3746.      Linear addresses 
  3747.  
  3748.  
  3749. ΓòÉΓòÉΓòÉ 9.3.9.7. Open Files ΓòÉΓòÉΓòÉ
  3750.  
  3751. Select one: 
  3752.  
  3753.       Selecting 
  3754.  
  3755.       Example Output 
  3756.  
  3757.       Contents of Display 
  3758.  
  3759.       Related Topics 
  3760.  
  3761.  
  3762. ΓòÉΓòÉΓòÉ <hidden> Selecting the Open Files Display ΓòÉΓòÉΓòÉ
  3763.  
  3764. When you select the Open Files option of the General System option of the 
  3765. System pull-down on the Process Hierarchy window, information about all files 
  3766. that are open is displayed. 
  3767.  
  3768.  
  3769. ΓòÉΓòÉΓòÉ <hidden> Example of the Open Files Display ΓòÉΓòÉΓòÉ
  3770.  
  3771. Open Files:
  3772. System File Table - (table of selectors) selector = 00C0
  3773. System File Table - Selector = 03F8
  3774.             Ref  System
  3775.  Address  Count  Handle   PID   --Chain--  --MFT---  name
  3776. 03F8:0008     1   0000   0002              FEB563C8  D:\EA DATA. SF
  3777. 03F8:0087     1   0001  System             FEB5632C  C:\OS2\DLL\PMSHAPIM.DLL
  3778. 03F8:0106     1   0002  System             FEB562E4  C:\OS2\DLL\PMSDMRI.DLL
  3779. ┬╖┬╖┬╖
  3780. 03F8:31A4     1   0064  System             FEB619A4  C:\THESEUSn\THESEUSn.EXE
  3781.  
  3782. There were 99 open files found.
  3783.  
  3784.  
  3785. ΓòÉΓòÉΓòÉ <hidden> Contents of the Open Files Display ΓòÉΓòÉΓòÉ
  3786.  
  3787. The information presented on the Open Files display is as follows: 
  3788.  
  3789.  System File Table - (table of selectors) selector = ssss 
  3790.            This is the selector of the table of selectors which make up the 
  3791.            System File Table (SFT). 
  3792.  System File Table - Selector = ssss 
  3793.            This is the selector of the segment of the SFT which follows. 
  3794.  
  3795.  One line is displayed for each file that is open: 
  3796.  
  3797.  Column            Meaning 
  3798.  Address           Virtual address of the SFT entry for this file. 
  3799.  Ref Count         Number of processes that reference this file. 
  3800.  System Handle     The system wide handle for this file. 
  3801.  PID               Process ID of the process that opened this file This has 
  3802.                    'System' if it was opened by the system instead of a 
  3803.                    process. 
  3804.  Chain             The virtual address of an SFT which is opened for the same 
  3805.                    file. 
  3806.  MFT               The linear address of the Master File Table (MFT) entry for 
  3807.                    this file. 
  3808.  name              The name of the file. 
  3809.  
  3810.  This is followed by a line which gives the total number of SFT entries which 
  3811.  are used. 
  3812.  
  3813.  
  3814. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3815.  
  3816.      Memory addressing 
  3817.  
  3818.      Virtual addresses 
  3819.  
  3820.      System File Table entries 
  3821.  
  3822.  
  3823. ΓòÉΓòÉΓòÉ 9.3.9.8. Process List ΓòÉΓòÉΓòÉ
  3824.  
  3825. Select one: 
  3826.  
  3827.       Selecting 
  3828.  
  3829.       Example Output 
  3830.  
  3831.       Contents of Display 
  3832.  
  3833.       Related Topics 
  3834.  
  3835.  
  3836. ΓòÉΓòÉΓòÉ <hidden> Selecting the Process List Display ΓòÉΓòÉΓòÉ
  3837.  
  3838. When you select the Process List option of the General System option of the 
  3839. System pull-down on the Process Hierarchy window, information about all 
  3840. processes currently running is displayed. Also shown are the total number of 
  3841. threads in the system and the PID of the current selected process. 
  3842.  
  3843.  
  3844. ΓòÉΓòÉΓòÉ <hidden> Example of the Process List Display ΓòÉΓòÉΓòÉ
  3845.  
  3846.        PTDA       PTDA      # of   Parent
  3847.  PID    hob     Linear   Threads      PID   Name
  3848. 0001   006E   FFE537DC         5     0000   sysinit
  3849. 0002   0090   7D3D5020        20     0001   PMSHL32
  3850. 0003   018C   7D3D5844         3     0002   HARDERR
  3851. 0005   0245   7D3D688C        11     0002   PMSHL32
  3852. 0006   02CA   7D3D6068         3     0002   PULSE
  3853. 0007   02F7   7D3D70B0         1     0002   VDM
  3854. 0008   030D   7D3D78D4         1     0002   CMD
  3855. 011C   033D   7D3DA188         1     0002   THESEUSn
  3856. 45 threads were found.
  3857. Current PID qualifier = 0000.
  3858.  
  3859.  
  3860. ΓòÉΓòÉΓòÉ <hidden> Contents of the Process List Display ΓòÉΓòÉΓòÉ
  3861.  
  3862. One line is displayed for each process: 
  3863.  
  3864.  Column          Meaning 
  3865.  PID             Process ID of the process. 
  3866.  PTDA hob        Hob of the PTDA. 
  3867.  PTDA Linear     The linear address of the PTDA. 
  3868.  # of Threads    The number of threads in the process. 
  3869.  Parent PID      PID of the parent process. 
  3870.  Name            Name of the process. 
  3871.  
  3872.  
  3873. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3874.  
  3875.      Memory addressing 
  3876.  
  3877.  
  3878. ΓòÉΓòÉΓòÉ 9.3.10. Kernel Information ΓòÉΓòÉΓòÉ
  3879.  
  3880. The Kernel Information option contains: 
  3881.  
  3882.  Kernel Memory Usage 
  3883.            First determines and then displays the amount of memory consumed by 
  3884.            the Operating System. 
  3885.  System Object Summary 
  3886.            Displays the System Object Summary. 
  3887.  System Arena Table 
  3888.            Displays the System Arena Table. 
  3889.  System Page Table 
  3890.            Displays the System Page Table. 
  3891.  Page Frame Table 
  3892.            Displays the Page Frame Table. 
  3893.  
  3894.  
  3895. ΓòÉΓòÉΓòÉ 9.3.10.1. Kernel Memory Usage ΓòÉΓòÉΓòÉ
  3896.  
  3897. Select one: 
  3898.  
  3899.       Selecting 
  3900.  
  3901.       Example Output 
  3902.  
  3903.       Contents of Display 
  3904.  
  3905.       Algorithm 
  3906.  
  3907.       Related Topics 
  3908.  
  3909.  
  3910. ΓòÉΓòÉΓòÉ <hidden> Selecting the Kernel Memory Usage Display ΓòÉΓòÉΓòÉ
  3911.  
  3912. When you select the Kernel Memory Usage option of the Kernel Information option 
  3913. of the System pull-down on the Process Hierarchy window, information about 
  3914. kernel memory usage is computed and displayed. The memory is accumulated by 
  3915. system owner code, sorted by system owner code. 
  3916.  
  3917. The display generation takes about 2 seconds on an 8MB 20Mhz P70. 
  3918.  
  3919.  
  3920. ΓòÉΓòÉΓòÉ <hidden> Example of the Kernel Memory Usage Display ΓòÉΓòÉΓòÉ
  3921.  
  3922. Memory Usage for System Memory (memory in the 'System' Arena):
  3923. allocated committed   present  resident  owner
  3924.  00010000  00002000  00002000  00002000  FF31 (Named pipe NP segment)
  3925.  00010000  00001000  00001000  00001000  FF33 (DD strat2 request packets)
  3926.  00001000  00001000  00001000  00001000  FF37 (ROM data)
  3927.  00010000  00001000  00001000  00001000  FF40 (DD strat1 request packets)
  3928.  00020000  00020000  00020000  00020000  FF41 (Allocated via DevHlp AllocPhys)
  3929.  00400000  00002000  00002000  00002000  FF43 (Resident R/W 1Meg mem heap owner)
  3930.  00100000  00002000  00002000  00002000  FF44 (Resident R/W 1Meg mem heap owner)
  3931.  00010000  00001000  00001000  00001000  FF47 (record lock record owner)
  3932.  --------  --------  --------  --------
  3933.  00561000  0002A000  0002A000  0002A000  Subtotal for 'Miscellaneous' group 1
  3934. ┬╖┬╖┬╖
  3935. allocated committed   present  resident  Totals
  3936.  --------  --------  --------  --------
  3937.  8383E000  005B1000  00533000  003BE000  Total (in bytes)
  3938.   2154744      5828      5324      3832  Total (in Kbytes)
  3939.  2104.242     5.691     5.199     3.742  Total (in Mbytes)
  3940.  
  3941.  
  3942. ΓòÉΓòÉΓòÉ <hidden> Contents of the Kernel Memory Usage Display ΓòÉΓòÉΓòÉ
  3943.  
  3944. One line is displayed for each system owner with allocated memory: 
  3945.  
  3946.  Column        Meaning 
  3947.  allocated     The total amount of linear address space allocated. 
  3948.  committed     The amount of committed memory for this owner. 
  3949.  present       The actual amount of RAM which is present for the owner. This is 
  3950.                real RAM. 
  3951.  resident      The amount of resident memory for this owner. 
  3952.  owner         The system owner, presented as a hexadecimal value followed by a 
  3953.                short ASCII name. 
  3954.  
  3955.  
  3956. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  3957.  
  3958.      Memory addressing 
  3959.  
  3960.      Memory Management Control Blocks 
  3961.  
  3962.      Detail for System Owner 
  3963.  
  3964.  
  3965. ΓòÉΓòÉΓòÉ <hidden> Kernel Memory Usage Algorithm ΓòÉΓòÉΓòÉ
  3966.  
  3967.    1. For each arena record in the system arena: 
  3968.  
  3969.         a) Determine the amount of linear space allocated by looking at the 
  3970.            page count in the arena record. 
  3971.         b) Check the Page Directory and Page Tables to determine how many pages 
  3972.            within the linear address range represented by this entry are 
  3973.            committed and how many are present. 
  3974.  
  3975.    2. Display the results, sorted by system owner value. 
  3976.  
  3977.  
  3978. ΓòÉΓòÉΓòÉ 9.3.10.2. Object Summary ΓòÉΓòÉΓòÉ
  3979.  
  3980. Select one: 
  3981.  
  3982.       Selecting 
  3983.  
  3984.       Example Output 
  3985.  
  3986.       Contents of Display 
  3987.  
  3988.       Related Topics 
  3989.  
  3990.  
  3991. ΓòÉΓòÉΓòÉ <hidden> Selecting the Object Summary Display ΓòÉΓòÉΓòÉ
  3992.  
  3993. The Object Summary display can be selected in several ways: 
  3994.  
  3995.      When you select the System Object Summary option of the Kernel 
  3996.       Information option of the System pull-down on the Process Hierarchy 
  3997.       window, a summary of all the memory objects defined in the system arena 
  3998.       is displayed. 
  3999.  
  4000.      When you select the Private Object Summary option of the Process 
  4001.       pull-down on the Process Hierarchy window, a summary of all the memory 
  4002.       objects defined in the private arena for the selected process is 
  4003.       displayed. 
  4004.  
  4005.      When you select the Shared Object Summary option of the Process pull-down 
  4006.       on the Process Hierarchy window, a summary of all the memory objects 
  4007.       defined in the shared arena for the selected process is displayed. 
  4008.  
  4009.      When you select the hyperblock link from the bytes allocated column of 
  4010.       the Process Memory Utilization display, a summary of all the memory 
  4011.       objects defining that memory type is displayed. 
  4012.  
  4013.  
  4014. ΓòÉΓòÉΓòÉ <hidden> Example of an Object Summary Display ΓòÉΓòÉΓòÉ
  4015.  
  4016.   Object  Allocated  Committed   Present   Swapped
  4017.  address     memory     memory    memory    memory  Description
  4018. 7BC00000   00400000   00112000  00004000  00000000  'VDM Alias' (decoded owner from object record)
  4019. 7C2D5000   00010000   00003000  00003000  00000000  'SEL LDT' (decoded owner from object record)
  4020. ┬╖┬╖┬╖
  4021. FFF4C000   0000F000   0000F000  0000F000  00000000  'os2krnl load image' (decoded owner from object record)
  4022. FFF5B000   00065000   0005D000  00053000  00000000  'os2krnl load image' (decoded owner from object record)
  4023.            --------   --------  --------  --------
  4024. Totals:    83AC5000   007D8000  005DF000  00000000  (in bytes)
  4025.             2157332       8032      6012         0  (in Kbytes)
  4026.            2106.770      7.844     5.872     0.000  (in Mbytes)
  4027. Number of objects = 207.
  4028.  
  4029.  
  4030. ΓòÉΓòÉΓòÉ <hidden> Contents of an Object Summary Display ΓòÉΓòÉΓòÉ
  4031.  
  4032. One line is displayed for each memory object in the selected arena or area: 
  4033.  
  4034.  Column                  Meaning 
  4035.  Object address          Linear address of the memory object. 
  4036.  Allocated memory        Amount of allocated memory (in bytes). 
  4037.  Committed memory        Amount of committed memory (in bytes). 
  4038.  Present memory          Amount of RAM in use (in bytes). 
  4039.  Swapped memory          Amount of memory (in bytes) that has been written to 
  4040.                          the swap file. 
  4041.  Description             A description in English of the object. 
  4042.  
  4043.  Totals of all the "amount" columns are given in hexadecimal bytes, decimal 
  4044.  kilobytes, and decimal megabytes. The number of objects found is also 
  4045.  indicated. 
  4046.  
  4047.  The number of free areas in the linear address space is shown, along with the 
  4048.  total amount of memory in hexadecimal bytes, decimal kilobytes, and decimal 
  4049.  megabytes. The largest 10 areas are shown, sorted by size. 
  4050.  
  4051.  Note:   It is possible for a page to be both present and swapped. The 
  4052.  following is one way this can occur: 
  4053.  
  4054.    1. A read/write page is written into (becomes "dirty"). 
  4055.    2. The page is not used for a long time and is swapped out to disk. 
  4056.    3. When the page is referenced, it is brought back into RAM. Until the RAM 
  4057.       page is written into, both pages are valid. If the RAM page gets aged, it 
  4058.       will not need to be written to disk, because the copy there is still 
  4059.       valid. Once the RAM page is written into, the swapped page is discarded. 
  4060.  
  4061.  
  4062. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4063.  
  4064.      Memory addressing 
  4065.  
  4066.      Linear addresses 
  4067.  
  4068.      Memory Management Control Blocks 
  4069.  
  4070.  
  4071. ΓòÉΓòÉΓòÉ 9.3.10.3. System Arena Table ΓòÉΓòÉΓòÉ
  4072.  
  4073. Select one: 
  4074.  
  4075.       Selecting 
  4076.  
  4077.       Example Output 
  4078.  
  4079.       Contents of Display 
  4080.  
  4081.       Arena Record Description 
  4082.  
  4083.       Related Topics 
  4084.  
  4085.  
  4086. ΓòÉΓòÉΓòÉ <hidden> Selecting the System Arena Table display ΓòÉΓòÉΓòÉ
  4087.  
  4088. When you select the System Arena Table option of the Kernel Information option 
  4089. of the System pull-down on the Process Hierarchy window, the contents of the 
  4090. System Arena is displayed. 
  4091.  
  4092. The display generation takes about 2 seconds on an 8MB 20Mhz P70. 
  4093.  
  4094.  
  4095. ΓòÉΓòÉΓòÉ <hidden> Example of the System Arena Table Display ΓòÉΓòÉΓòÉ
  4096.  
  4097. System Arena Table:
  4098.  har    pages   linear flg next prev link hash hob  hal  sel  / Decoded flags
  4099. 0004 00000000 60000000 003 01E1 0010 0000 0000 Sentinel, max pages=000FFFC0
  4100. 01E1 00000400 7C000000 001 020E 0004 0000 007A 022D 0000 0000 /
  4101. 020E 00000010 7C705000 121 01D5 01E1 0000 0000 0238 0000 0000 / Write Read
  4102. ┬╖┬╖┬╖
  4103. 0006 00000003 FFF36000 009 000F 000E 0000 0000 0007 0000 0100 / Mapped
  4104. 000F 00000009 FFF39000 001 0010 0006 0000 0000 0010 0000 0000 /
  4105. 0010 0000007E FFF42000 001 0004 000F 0000 0000 0011 0000 0000 /
  4106.  
  4107.  
  4108. ΓòÉΓòÉΓòÉ <hidden> Contents of the System Arena Table Display ΓòÉΓòÉΓòÉ
  4109.  
  4110. One line is displayed for each entry in the system arena. 
  4111.  
  4112. Please see the arena record for the format of an entry. 
  4113.  
  4114.  
  4115. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4116.  
  4117.      Handles 
  4118.  
  4119.  
  4120. ΓòÉΓòÉΓòÉ 9.3.10.4. System Page Table ΓòÉΓòÉΓòÉ
  4121.  
  4122. Select one: 
  4123.  
  4124.       Selecting 
  4125.  
  4126.       Example Output 
  4127.  
  4128.       Contents of Display 
  4129.  
  4130.       Page Table Entry Description 
  4131.  
  4132.       Related Topics 
  4133.  
  4134.  
  4135. ΓòÉΓòÉΓòÉ <hidden> Selecting the System Page Table Display ΓòÉΓòÉΓòÉ
  4136.  
  4137. When you select the System Page Table option of the Kernel Information option 
  4138. of the System pull-down on the Process Hierarchy window, the contents of the 
  4139. System Page Table is displayed. 
  4140.  
  4141. The display generation takes about 8 seconds on an 8MB 20Mhz P70. 
  4142.  
  4143.  
  4144. ΓòÉΓòÉΓòÉ <hidden> Example of the System Page Table Display ΓòÉΓòÉΓòÉ
  4145.  
  4146. System Page Table:
  4147. *Linear=7C000000 Physical=0065D000 D=1 A=1 User  R/W P=1 Resident
  4148.  Linear=7C000000 Physical=0002F000 D=1 A=1 User  R/W P=1
  4149.  Linear=7C001000 Physical=00183000 D=1 A=1 User  R/W P=1
  4150. ┬╖┬╖┬╖
  4151.  Linear=7C0F4000 FrameId=000F4     D=0 A=0 User  R/W P=0 UVirt
  4152.  Linear=7C0F5000 Physical=000F5000 D=0 A=1 User  R/W P=1 UVirt
  4153.  Linear=7C0F6000 FrameId=000F6     D=0 A=0 User  R/W P=0 UVirt
  4154. ┬╖┬╖┬╖
  4155.  Linear=7C852000 Physical=00668000 D=0 A=1 Super R/O P=1 Resident
  4156.  Linear=7C875000 Physical=005D3000 D=1 A=1 User  R/W P=1
  4157.  Linear=7C876000 FrameId=00001     D=0 A=0 User  R/W P=0
  4158. ┬╖┬╖┬╖
  4159.  
  4160.  
  4161. ΓòÉΓòÉΓòÉ <hidden> Contents of the System Page Table Display ΓòÉΓòÉΓòÉ
  4162.  
  4163. One line is displayed for each valid entry in the System Page Table. 
  4164.  
  4165. Please see the Page Table Entry for the format of an entry. 
  4166.  
  4167.  
  4168. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4169.  
  4170.      Memory addressing 
  4171.  
  4172.      Linear addresses 
  4173.  
  4174.      Physical addresses 
  4175.  
  4176.  
  4177. ΓòÉΓòÉΓòÉ 9.3.10.5. Page Frame Table ΓòÉΓòÉΓòÉ
  4178.  
  4179. Select one: 
  4180.  
  4181.       Selecting 
  4182.  
  4183.       Example Output 
  4184.  
  4185.       Contents of Display 
  4186.  
  4187.       Related Topics 
  4188.  
  4189.  
  4190. ΓòÉΓòÉΓòÉ <hidden> Selecting the Page Frame Table Display ΓòÉΓòÉΓòÉ
  4191.  
  4192. When you select the Page Frame Table option of the Kernel Information option of 
  4193. the System pull-down on the Process Hierarchy window, the contents of the Page 
  4194. Frame Table is displayed. A map of physical memory is also shown. 
  4195.  
  4196. The display generation takes about 6 seconds on an 8MB 20Mhz P70. 
  4197.  
  4198.  
  4199. ΓòÉΓòÉΓòÉ <hidden> Example of the Page Frame Table Display ΓòÉΓòÉΓòÉ
  4200.  
  4201. Physical memory map:
  4202.     From         To     Size
  4203. 00000000   00033000    0.203M
  4204. 00037000   0009F000    0.410M
  4205. 00100000   017FF000   23.000M
  4206.  
  4207. Page Frame table:
  4208.  Free head = 000A0000, flink = 005BC, blink = 00409
  4209.  Idle head = 000A1000, flink = 0065F, blink = 0065F
  4210.                         ---lock---
  4211. physical    vp   pteCnt long short flink blink block flags
  4212. 00000000 FF421000 0001  0000 0000              00000 0000
  4213. 00001000 FF42105A 0001  0000 0000              00000 0000
  4214. 00002000 FF421064 0001  0000 0000              00000 0000
  4215. ┬╖┬╖┬╖
  4216. 0009F000 FF40B2BC 0002  0000 0000              00000 0000
  4217.  
  4218. The Page Range Table indicates a break in the physical memory.
  4219.  
  4220. 00100000 FF40B2C6 0001  0000 0000              00000 0000
  4221. ┬╖┬╖┬╖
  4222.  
  4223.  
  4224. ΓòÉΓòÉΓòÉ <hidden> Contents of the Page Frame Table Display ΓòÉΓòÉΓòÉ
  4225.  
  4226. A map of physical memory is shown. One line is displayed for each range of 
  4227. pages: 
  4228.  
  4229.  Column      Meaning 
  4230.  From        The starting physical address of this range. 
  4231.  To          The ending physical address of this range. 
  4232.  Size        The size in megabytes of this range. 
  4233.  
  4234.  The heads of the free and idle lists are shown. They consist of only a flink 
  4235.  and blink fields. 
  4236.  
  4237.  Breaks in the contiguous range of pages are noted with the sentence, "The Page 
  4238.  Range Table indicates a break in the physical memory." 
  4239.  
  4240.  One line is displayed for each entry in the Page Frame Table: 
  4241.  
  4242.  Column          Meaning 
  4243.  physical        The physical address for the page on this line. 
  4244.  vp              The linear address of the Virtual Page Table entry for this 
  4245.                  page. 
  4246.  pteCnt          The number of PTEs that refer to this page as being present. 
  4247.  lock long       The number of long term locks outstanding for this page. 
  4248.  lock short      The number of short term locks outstanding for this page. 
  4249.  flink           Forward link.  Used when a page is on the free or idle list. 
  4250.  blink           Backward link.  Used when a page is on the free or idle list. 
  4251.  block           Pager disk frame or Loader Block number 
  4252.  flags           Flags indicating the status of the page. They are shown as hex 
  4253.                  and then decoded into ASCII: 
  4254.                  fast             Page is in fast memory. 
  4255.                  busy             Page is busy. 
  4256.                  free             Page is on the free chain. 
  4257.                  reserved?        Reserved bit. 
  4258.  
  4259.  
  4260. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4261.  
  4262.      Memory addressing 
  4263.  
  4264.  
  4265. ΓòÉΓòÉΓòÉ 9.4. Process ΓòÉΓòÉΓòÉ
  4266.  
  4267. The Process pull-down contains displays which are applicable to the selected 
  4268. process. 
  4269.  
  4270. For information on selecting a process, see Selecting a Process. 
  4271.  
  4272. Functions available are: 
  4273.  
  4274.  Working Set 
  4275.            Displays the working set of memory for the process. 
  4276.  Memory Utilization 
  4277.            Displays details of memory usage for the process. 
  4278.  Memory Leak Detection 
  4279.            Displays the number of pages of memory that each object is 
  4280.            accumulating. 
  4281.  General Process Information 
  4282.            Displays general information about the process. 
  4283.  Per Task Data Area (PTDA) 
  4284.            Displays the PTDA. 
  4285.  LDT 
  4286.            Displays the LDT. 
  4287.  Page Table 
  4288.            Displays the process unique Page Table. 
  4289.  Private Object Summary 
  4290.            Displays a summary of the private arena memory objects. 
  4291.  Shared Object Summary 
  4292.            Displays a summary of the shared arena memory objects. 
  4293.  Private Arena Table 
  4294.            Displays the process unique arena table. 
  4295.  Shared Arena Table 
  4296.            Displays the shared arena, in the process' context. 
  4297.  
  4298.  
  4299. ΓòÉΓòÉΓòÉ 9.4.1. Working Set ΓòÉΓòÉΓòÉ
  4300.  
  4301. Select one: 
  4302.  
  4303.       Selecting 
  4304.  
  4305.       Example Output 
  4306.  
  4307.       Contents of Display 
  4308.  
  4309.       Algorithm 
  4310.  
  4311.       Illustration 
  4312.  
  4313.       Related Topics 
  4314.  
  4315.  
  4316. ΓòÉΓòÉΓòÉ <hidden> Selecting the Working Set Display ΓòÉΓòÉΓòÉ
  4317.  
  4318. When you select the Working Set option of the Process pull-down on the Process 
  4319. Hierarchy window, memory working set of the selected process is computed and 
  4320. displayed. 
  4321.  
  4322. There are optional values which can be shown in realtime. 
  4323.  
  4324.  
  4325. ΓòÉΓòÉΓòÉ <hidden> Example of the Working Set Display ΓòÉΓòÉΓòÉ
  4326.  
  4327. Working Set for the Process with PID = 0100, name = 'THESEUSn':
  4328. Use the 'Functions' pull-down to start and stop the data collection.
  4329. Collection started: interval = 5, Working Set is 3 intervals.
  4330. current time ------ Process -------   ------ System DLL -----
  4331. hh:mm:ss.tt     now      ws   acc'd       now      ws   acc'd
  4332. 16:54:53.16   0.180M  0.180M  0.180M    0.406M  0.406M  0.406M
  4333. 16:54:58.00   0.184M  0.195M  0.195M    0.379M  0.438M  0.438M
  4334. 16:55:03.03   0.184M  0.195M  0.195M    0.379M  0.438M  0.438M
  4335. 16:55:08.00   0.180M  0.188M  0.195M    0.414M  0.414M  0.438M
  4336. 16:55:13.00   0.188M  0.195M  0.199M    0.449M  0.449M  0.473M
  4337. 16:55:18.03   0.184M  0.195M  0.199M    0.379M  0.449M  0.473M
  4338. 16:55:23.00   0.176M  0.195M  0.199M    0.379M  0.449M  0.473M
  4339. 16:55:28.00   0.176M  0.184M  0.199M    0.379M  0.379M  0.473M
  4340. 16:55:33.03   0.176M  0.176M  0.199M    0.379M  0.379M  0.473M
  4341. 16:55:38.00   0.176M  0.176M  0.199M    0.375M  0.379M  0.473M
  4342.  
  4343. 10 samples collected.
  4344.                                  Process      DLL    Total
  4345. Absolute minimum amount of memory: 0.188M   0.449M   0.637M
  4346. Recommended amount of memory:      0.195M   0.449M   0.645M
  4347. Total amount of accessed memory:   0.199M   0.473M   0.672M
  4348.  
  4349.  
  4350. ΓòÉΓòÉΓòÉ <hidden> Contents of the Working Set Display ΓòÉΓòÉΓòÉ
  4351.  
  4352. Three values are computed for each of two areas during each data collection 
  4353. cycle. The data can be presented in real-time. 
  4354.  
  4355. The values are: 
  4356.  
  4357.  Column         Meaning 
  4358.  
  4359.  current time   The time of the sample, presented in 
  4360.                 hours:minutes:seconds.hundredths. 
  4361.  
  4362.  now            The amount of memory referenced in the current interval. 
  4363.  
  4364.  ws             The working set. This is the amount of memory referenced in the 
  4365.                 past n intervals. 
  4366.  
  4367.  acc'd          The total amount of memory accessed since the start of the 
  4368.                 collection run. 
  4369.  
  4370.  The areas are: 
  4371.  
  4372.  Process        The memory that is: in the private arena, DLL instance data 
  4373.                 memory, non-system DLLs, and system memory used by this 
  4374.                 process. 
  4375.  
  4376.  System DLL     The memory that is in system DLLs. 
  4377.  
  4378.  The totals are computed on each data collection cycle, but not displayed due 
  4379.  to lack of space in the window. 
  4380.  
  4381.  When the Stop option is selected, the following is presented: 
  4382.  
  4383.  ii samples collected. 
  4384.            The number of samples collected is reported (in decimal). 
  4385.  
  4386.  The following are reported for Private, System DLL, and Total: 
  4387.  
  4388.  Absolute minimum amount of memory 
  4389.            The maximum value from the now column. This is the amount of memory 
  4390.            absolutely required to run the application without "thrashing" 
  4391.            memory. 
  4392.  Recommended amount of memory 
  4393.            The maximum value from the ws column. This is the recommended amount 
  4394.            of memory for the application to run with minimum impact on paging. 
  4395.  Total amount of accessed memory 
  4396.            The maximum value from the accessed column. This is the amount of 
  4397.            memroy required to run the application with no paging activity. 
  4398.  
  4399.  
  4400. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4401.  
  4402.      Memory addressing 
  4403.  
  4404.      Memory Management Control Blocks 
  4405.  
  4406.      Memory Analysis Techniques 
  4407.  
  4408.      Detail of Working Set (by Page) 
  4409.  
  4410.      Detail of Working Set (by Object) 
  4411.  
  4412.      Usage Type Display 
  4413.  
  4414.      Last Referenced Graphic 
  4415.  
  4416.  
  4417. ΓòÉΓòÉΓòÉ <hidden> Memory Working Set Algorithm ΓòÉΓòÉΓòÉ
  4418.  
  4419. To compute the working set for a particular OS/2 process, you need to know: 
  4420.  
  4421.      Which pages have been referenced 
  4422.      Whether or not a particular page "belongs" to the specified process 
  4423.      When the pages were touched. 
  4424.  
  4425.  The algorithm is: 
  4426.  
  4427.    1. The accessed flags are cleared from the Page Tables of the selected 
  4428.       process. 
  4429.  
  4430.    2. A timer is started, and on each timer tick: 
  4431.  
  4432.         a) The pages which have been accessed are noted. 
  4433.         b) The accessed flags are cleared. 
  4434.         c) For each newly accessed page, determine its owning memory object. 
  4435.         d) Classify the object (and, therefore, the page) by type: 
  4436.                Private 
  4437.                System DLL 
  4438.                System. 
  4439.  
  4440.            Starting with OS/2 Warp, the way the Page Directory is managed has 
  4441.            changed. (See Linear/Physical Relationship for the changes.) The 
  4442.            above part of the algorithm had to be modified to first check to see 
  4443.            if the DLL page was "accessible" from the specified process. If not, 
  4444.            the page is marked Ignore in the "page usage table". 
  4445.         e) The number of pages which have been accessed anytime within the 
  4446.            specified number of intervals is counted. 
  4447.         f) Generate summary information for this interval. 
  4448.         g) Display the interval information, if requested. 
  4449.  
  4450.    3. When the Stop option is selected: 
  4451.  
  4452.         a) A final data collection cycle is performed. 
  4453.         b) Summary numbers for the entire run are generated. They are: 
  4454.            Absolute minimum number of pages 
  4455.                           The maximum of all the now entries. 
  4456.            Recommended number of pages 
  4457.                           The maximum of all the ws entries. 
  4458.            Total number of accessed pages 
  4459.                           The maximum of all the accessed entries. 
  4460.         c) The results are displayed. 
  4461.  
  4462.  Note:   Even though the "infosegs" are in the shared arena, they are counted 
  4463.  as system pages. They are, in fact, shared pages. 
  4464.  
  4465.  
  4466. ΓòÉΓòÉΓòÉ 9.4.2. Memory Utilization ΓòÉΓòÉΓòÉ
  4467.  
  4468. Select one: 
  4469.  
  4470.       Selecting 
  4471.  
  4472.       Example Output 
  4473.  
  4474.       Contents of Display 
  4475.  
  4476.       Algorithm 
  4477.  
  4478.       Related Topics 
  4479.  
  4480.  
  4481. ΓòÉΓòÉΓòÉ <hidden> Selecting the Memory Utilization Display ΓòÉΓòÉΓòÉ
  4482.  
  4483. When you select the Memory Utilization option of the Process pull-down on the 
  4484. Process Hierarchy window, information about the memory used by the selected 
  4485. process is computed and displayed. 
  4486.  
  4487. The display generation takes about 3 seconds on an 8MB 20Mhz P70. 
  4488.  
  4489.  
  4490. ΓòÉΓòÉΓòÉ <hidden> Example of the Memory Utilization Display ΓòÉΓòÉΓòÉ
  4491.  
  4492. Memory Utilization for Process with PID = 004D, name = 'THESEUSn':
  4493.     bytes      bytes    number  bytes      bytes    bytes
  4494. allocated  committed   present   each    present  swapped  description
  4495.  00000604   00000604         1   0604   00000604 00000000  PTDA
  4496.  0000027C   0000027C         1   027C   0000027C 00000000  TCB
  4497.  00001000   00001000         1   1000   00001000 00000000  TSD
  4498.  00010000   00009000         9   1000   00009000 00000000  LDT
  4499.  00000180   00000180       384   0180   00000180 00000000  Process Page Directory
  4500.  00060000   00014000        20   1000   00014000 00000000  Page Tables
  4501.  040F0000   010FE000      1939   1000   00793000 002AD000  Accessible Shared memory
  4502.  00FE0000   0005E000        44   1000   0002C000 00000000  Originated Shared memory
  4503.  00A30000   001AC000       140   1000   0008C000 00000000  Private memory
  4504.  
  4505.  00071A00   0001EA00                    0001EA00 00000000  Total System
  4506.  00FE0000   0005E000                    0002C000 00000000  Total Shared originated
  4507.  00A30000   001AC000                    0008C000 00000000  Total Private
  4508.  --------   --------                    -------- --------
  4509.  01A81A00   00228A00                    000D6A00 00000000  Total RAM/SWAPPER for this Process
  4510.     27143       2211                         859        0  (in Kbytes)
  4511.    26.507      2.159                       0.839    0.000  (in Mbytes)
  4512. < End of THESEUSn (v n.000.00) output @ 15:20:34 on 9-13-1999 >
  4513.  
  4514.  
  4515. ΓòÉΓòÉΓòÉ <hidden> Contents of the Memory Utilization Display ΓòÉΓòÉΓòÉ
  4516.  
  4517. One line is displayed for each type of memory associated with a process: 
  4518.  
  4519.  Column              Meaning 
  4520.  bytes allocated     The amount of linear address space allocated for the 
  4521.                      memory type on this line. 
  4522.  bytes committed     The amount of committed memory for the memory type on this 
  4523.                      line. 
  4524.  number present      The number of instances of the memory type on this line 
  4525.                      present in RAM for this process.  (This column is in 
  4526.                      decimal notation; all others are hexadecimal.) 
  4527.  bytes each          The size of one of the memory types on this line. 
  4528.  bytes present       The actual amount of real RAM used by the memory type on 
  4529.                      this line. 
  4530.  bytes swapped       The actual number of bytes swapped out for this memory 
  4531.                      type on this line. 
  4532.  description         The name of the memory type reported on this line. 
  4533.  
  4534.  The "Accessible Shared memory" is not added into the summaries. It is the 
  4535.  total amount of shared memory which is accessible by the process. It includes: 
  4536.  originated shared memory, DLLs used by the process, memory given to it by 
  4537.  another process (using DosGiveSharedMem), and memory gotten by it (using 
  4538.  DosGetSharedMem). 
  4539.  
  4540.  Summaries are provided and shown as hex bytes: 
  4541.  
  4542.  Total System 
  4543.            The system RAM consists of the lines for PTDA, TCB, TSD, LDT, 
  4544.            Process Page Directory, and Page Tables. The swapped number of bytes 
  4545.            for this process contained in the previously stated control blocks 
  4546.            that belongs to this process. 
  4547.  Total Shared originated 
  4548.            The shared memory that was not originated by this process is 
  4549.            ignored.  It also specifies the total bytes occupied in swapper.dat 
  4550.            that were originated by this process. 
  4551.  Total Private 
  4552.            This entry includes the .EXE file and all privately allocated 
  4553.            memory. This memory is computed as if there were no other processes 
  4554.            in the system. So, if there are multiple copies of a particular 
  4555.            program running, each of them would show the .EXE file as being 
  4556.            consumed by that process.  The swapper total is the number of bytes 
  4557.            that occupy swapper.dat. 
  4558.  Total RAM for the Process 
  4559.            The total of the above three values, presented in bytes, kilobytes 
  4560.            and megabytes. 
  4561.  
  4562.  
  4563. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4564.  
  4565.      Memory addressing 
  4566.  
  4567.      Memory Management Control Blocks 
  4568.  
  4569.      Memory Analysis Using THESEUSn 
  4570.  
  4571.      Object Summary 
  4572.  
  4573.  
  4574. ΓòÉΓòÉΓòÉ <hidden> Memory Utilization Algorithm ΓòÉΓòÉΓòÉ
  4575.  
  4576.    1. There is one PTDA for the process. Its size is determined during THESEUS 
  4577.       initialization. 
  4578.  
  4579.    2. There is one TCB for each thread being used by the process. Its size is 
  4580.       determined by a mapping structure. 
  4581.  
  4582.    3. There is one TSD for each thread being used by the process. Its allocated 
  4583.       size is 4KB. The number of pages actually in use and swapped  are 
  4584.       counted. 
  4585.  
  4586.    4. There is one LDT for the process. Its allocated size is 64KB. The number 
  4587.       of pages actually in use and swapped  are counted. 
  4588.  
  4589.    5. There is one Process Page Directory for the process. Its size is 512 
  4590.       bytes. 
  4591.  
  4592.    6. There is a group of Page Tables for the process. The number of Page 
  4593.       Tables in use is determined by looking at the Process Page Directory and 
  4594.       then determining what pages are present.  The number of pages tables that 
  4595.       have been swapped  out are also counted. 
  4596.  
  4597.    7. For each arena record in the private arena: 
  4598.  
  4599.         a) Determine the number of allocated pages. 
  4600.         b) Count the number of pages actually in use. 
  4601.         c) Count the number of pages swapped. 
  4602.  
  4603.    8. For each arena record in the shared arena for which the process has 
  4604.       access to the memory object (by looking at the context records): 
  4605.  
  4606.         a) Determine the number of allocated pages. 
  4607.         b) Count the number of pages actually in use. 
  4608.         c) Count the number of pages swapped. 
  4609.  
  4610.    9. For each arena record in the shared arena for which the process was the 
  4611.       originator, (by looking at the context records): 
  4612.  
  4613.         a) Determine the number of allocated pages. 
  4614.         b) Count the number of pages actually in use. 
  4615.         c) Count the number of pages swapped. 
  4616.  
  4617.  
  4618. ΓòÉΓòÉΓòÉ 9.4.3. Memory Leak Detection ΓòÉΓòÉΓòÉ
  4619.  
  4620. Select one: 
  4621.  
  4622.       Selecting 
  4623.  
  4624.       Example Output 
  4625.  
  4626.       Contents of Display 
  4627.  
  4628.       Related Topics 
  4629.  
  4630.  
  4631. ΓòÉΓòÉΓòÉ <hidden> Selecting the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  4632.  
  4633. When you select the Memory Leak Detection option of the Process pull-down on 
  4634. the Process Hierarchy window, information about memory accumulation for each 
  4635. object in the process is computed and shown. 
  4636.  
  4637. This can be done either on a periodic basis or under user control. See Related 
  4638. Topics for the references for specifying control. 
  4639.  
  4640.  
  4641. ΓòÉΓòÉΓòÉ <hidden> Example of the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  4642.  
  4643. Memory leak detection for Process with PID = 0039, name = THESEUSn:
  4644. < End of THESEUSn (v 3.00.000) output @ 10:42:49 on 8/5/1993 >
  4645. Use the 'Function' pull-down to start and stop the data collection.
  4646. Leak data captured.
  4647. Periodic update started with interval of 10 seconds.
  4648. Previous sample will be used as the base.
  4649. < End of THESEUSn (v 3.00.000) output @ 10:43:06 on 8/5/1993 >
  4650. Allocated   Committed   Actual    har     Address   P/S   Description
  4651.        +0          +1       +1   0342    01100000   Pvt   THESEUSn allocated it
  4652.        +0          +0       +1   0343    01130000   Pvt   THESEUSn allocated it
  4653. < End of THESEUSn (v 3.00.000) output @ 10:43:16 on 8/5/1993 >
  4654. Allocated   Committed   Actual    har     Address   P/S   Description
  4655.        +0          +1       +1   0343    01130000   Pvt   THESEUSn allocated it
  4656.       +96          +1       +1   034B   +019B0000   Pvt   THESEUSn allocated it
  4657.      +688          +1       +1   034C   +01A10000   Pvt   THESEUSn allocated it
  4658.       +16          +2       +2   034D   +01CC0000   Pvt   PMWIN    allocated it
  4659.       +16          +1       +1   034E   +01CD0000   Pvt   PMGPI    allocated it
  4660.       +16          +1       +0   034F   +01CE0000   Pvt   PMGPI    allocated it
  4661.     +1024          +1       +1   0350   +01CF0000   Pvt   PMGPI    allocated it
  4662.     +1024          +1       +1   0351   +020F0000   Pvt   PMGPI    allocated it
  4663.        +0          +2       +2   0185    16070000   Shr   PMGRE    allocated it
  4664. < End of THESEUSn (v 3.00.000) output @ 10:43:26 on 8/5/1993 >
  4665. Allocated   Committed   Actual    har     Address   P/S   Description
  4666.       -96          -1       -1   034B   -019B0000   Pvt
  4667.      -688          -1       -1   034C   -01A10000   Pvt
  4668.       -16          -2       -2   034D   -01CC0000   Pvt
  4669.       -16          -1       -1   034E   -01CD0000   Pvt
  4670.       -16          -1       +0   034F   -01CE0000   Pvt
  4671.     -1024          -1       -1   0350   -01CF0000   Pvt
  4672.     -1024          -1       -1   0351   -020F0000   Pvt
  4673. < End of THESEUSn (v 3.00.000) output @ 10:43:36 on 8/5/1993 >
  4674. Periodic updated stopped.
  4675. < End of THESEUSn (v 3.00.000) output @ 10:43:38 on 8/5/1993 >
  4676.  
  4677.  
  4678. ΓòÉΓòÉΓòÉ <hidden> Contents of the Memory Leak Detection Display ΓòÉΓòÉΓòÉ
  4679.  
  4680. One line is displayed for each memory object whose committed or actual (present 
  4681. + swapped) memory values have changed: 
  4682.  
  4683.  Column      Meaning 
  4684.  Allocated   The change in the number of pages of allocated (virtual) memory in 
  4685.              this object. This will be non-zero only when the memory object is 
  4686.              allocated or freed. 
  4687.  Committed   The change in the number of pages of committed memory in this 
  4688.              object. 
  4689.  Actual      The change in the number of pages of actual memory in this object. 
  4690.  har         The har of this object. 
  4691.  Address     The linear address of this object. 
  4692.  P/S         An indicator as to the type of memory object: 
  4693.              Pvt       The memory object is in the private arena. 
  4694.              Shr       The memory object is in the shared arena. 
  4695.  Description A description in English of the object. 
  4696.  
  4697.  
  4698. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4699.  
  4700.      Memory addressing 
  4701.  
  4702.      Memory states 
  4703.  
  4704.      Leak detection control 
  4705.  
  4706.      Manual data capture 
  4707.  
  4708.      Manual data compare 
  4709.  
  4710.  
  4711. ΓòÉΓòÉΓòÉ 9.4.4. General Process Information ΓòÉΓòÉΓòÉ
  4712.  
  4713. Select one: 
  4714.  
  4715.       Selecting 
  4716.  
  4717.       Example Output 
  4718.  
  4719.       Contents of Display 
  4720.  
  4721.       Related Topics 
  4722.  
  4723.  
  4724. ΓòÉΓòÉΓòÉ <hidden> Selecting the General Process Information Display ΓòÉΓòÉΓòÉ
  4725.  
  4726. When you select the General Process Information option of the Process pull-down 
  4727. on the Process Hierarchy window, general information about the process is 
  4728. shown: 
  4729.  
  4730.    1. Linear address of the PTDA. 
  4731.    2. Number of threads, if THESEUS found a number different from what the PTDA 
  4732.       indicates. 
  4733.    3. General information about each thread, including: 
  4734.         a) Thread number; 
  4735.         b) Addresses of the TCB and TSD; 
  4736.         c) Scheduling priority and state. 
  4737.    4. The Exit List. 
  4738.    5. The open files. 
  4739.    6. The environment strings. 
  4740.  
  4741.  
  4742. ΓòÉΓòÉΓòÉ <hidden> Example of the General Process Information Display ΓòÉΓòÉΓòÉ
  4743.  
  4744. General Information about the Process with PID = 010A, name = 'THESEUSn':
  4745. PTDA address = 7D3E821C
  4746.  
  4747. Threads for this Process:
  4748.                                     ---- priority ----
  4749.  TID   Th_#        TCB        TSD  class  level actual  state
  4750. 0001   002F   7D3CEB5C   7D2F8000     02     00   0500   0005  Running
  4751.  
  4752. Exit List:
  4753.   Class   RtnAddress  Description
  4754.    0010   BF6F:015E   DISPLAY  #0007 (shared)
  4755.    0010   D44F:02C4   PMGRE    #0006 (shared)
  4756.    0010   D0FF:0A54   PMWIN    #0005 (shared)
  4757.    0010   D18F:A1E6   PMSHAPI  #0001 (shared)
  4758.    00C0   D067:27A8   OS2CHAR  #0001 (shared)
  4759.    0100   1A393454    HELPMGR  #0001 (shared)
  4760.    0100   0003A7DB    THESEUSn #0001 (shared)
  4761.    0100   1A4B6188    PMCTLS   #0002 (shared)
  4762.    0100   D2B7:9D1C   PMSPL    #0004 (shared)
  4763.    01A5   D0FF:04A6   PMWIN    #0005 (shared)
  4764.    01AB   D44F:02CE   PMGRE    #0006 (shared)
  4765.    01C0   D067:27B5   OS2CHAR  #0001 (shared)
  4766.    01FF   1A4B61E4    PMCTLS   #0002 (shared)
  4767.    01FF   D44F:0308   PMGRE    #0006 (shared)
  4768.  
  4769. Open Files (MaxFH=20):
  4770.   ---- handles ---
  4771.   Process   System   File name
  4772.      0000     0027   \DEV\CON
  4773.      0001     0027   \DEV\CON
  4774.      0002     0027   \DEV\CON
  4775.      0003     0080   \DEV\THESEU2$
  4776.      0004     002C   \DEV\KBD$
  4777.      0005     0059   C:\THESEUSn\THESEUSn.HLP
  4778.      0006     0081   C:\OS2\HELP\HMHELP.HLP
  4779.      000C     0050   \DEV\KBD$
  4780.  
  4781. Environment:
  4782.   "WP_OBJHANDLE=113848"
  4783.   "USER_INI=C:\OS2\OS2.INI"
  4784.   "SYSTEM_INI=C:\OS2\OS2SYS.INI"
  4785.   "OS2_SHELL=C:\OS2\CMD.EXE"
  4786.   "AUTOSTART=PROGRAMS,TASKLIST,FOLDERS"
  4787.   "RUNWORKPLACE=C:\OS2\PMSHELL.EXE"
  4788.   "COMSPEC=C:\OS2\CMD.EXE"
  4789.   "PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\MDOS;C:\OS2\APPS;E:\TOOLKT20\OS2BIN"
  4790.   "DPATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\BITMAP;C:\OS2\MDOS;C:\OS2\APPS"
  4791.   "PROMPT=$i[$p]"
  4792.   "HELP=C:\OS2\HELP;C:\OS2\HELP\TUTORIAL;E:\TOOLKT20\OS2HELP"
  4793.   "GLOSSARY=C:\OS2\HELP\GLOSS;"
  4794.   "KEYS=ON"
  4795.   "DELDIR=C:\DELETE,512;D:\DELETE,512;E:\DELETE,512;"
  4796.   "BOOKSHELF=C:\OS2\BOOK;E:\TOOLKT20\BOOK"
  4797.   "EPATH=C:\OS2\APPS"
  4798.   "VIDEO_DEVICES=VIO_VGA"
  4799.   "VIO_VGA=DEVICE(BVHVGA)"
  4800.   "TMP=E:\"
  4801.   "PROGREF20=GUIREF20.INF"
  4802.   "PMREF=PMFUN.INF+PMGPI.INF+PMMSG.INF+PMWIN.INF"
  4803.   "WORKPLACE__PROCESS=NO"
  4804.   Program (actual)    = "E:\THESEUSn\THESEUSn.EXE"
  4805.   Program (specified) = "E:\THESEUSn\THESEUSn.EXE"
  4806.   Parameters = ""
  4807.  
  4808.  
  4809. ΓòÉΓòÉΓòÉ <hidden> Contents of the General Process Information Display ΓòÉΓòÉΓòÉ
  4810.  
  4811. The information presented on the General Process Information display is as 
  4812. follows: 
  4813.  
  4814.  General Information about the Process with PID = hhhh 
  4815.            The PID of the specified process. 
  4816.  name = 'aaaaaaaa' 
  4817.            The name of the .EXE file that is the module for the process. 
  4818.  PTDA address = llllllll 
  4819.            The linear address of the PTDA being shown. 
  4820.  Thread count (as discovered by THESEUS) = i, 
  4821.            The number of threads that THESEUS found for this process when it 
  4822.            scanned the thread table. This number is shown only if this and the 
  4823.            following value are not the same. 
  4824.  as claimed by PTDA = i. 
  4825.            The number that is in the PTDA. 
  4826.  
  4827.  One line is displayed for each thread: 
  4828.  
  4829.  Column           Meaning 
  4830.  TID              Thread ID of the thread. 
  4831.  Th_#             Thread number of the thread. 
  4832.  TCB              Linear address of the Thread Control Block of the thread. 
  4833.  TSD              Linear address of the Thread Swappable Data of the thread. 
  4834.  Priority class   Declared priority class of the thread. 
  4835.  Priority level   Declared priority level of the thread. 
  4836.  Priority actual  Actual priority being used by the scheduler, after all the 
  4837.                   dynamic calculations have been applied. 
  4838.  state            Dispatch state of the thread. The following decoded states 
  4839.                   are shown: 
  4840.                   Ready           The thread is ready to run, but is not the 
  4841.                                   highest priority that is ready. 
  4842.                   Blocked         The thread is blocked, waiting on some event. 
  4843.                   Suspended       The thread has been suspended by the system. 
  4844.                   Critical section The thread has done a DosEnterCritSec and 
  4845.                                   not completed. 
  4846.                   Running         The thread is running. 
  4847.                   Ready, but apply an IO boost The thread is ready to run, but 
  4848.                                   needs to be "boosted" because it has just 
  4849.                                   completed some I/O. 
  4850.                   Thread waiting for TSD The thread is waiting for a TSD to 
  4851.                                   become available. 
  4852.                   Delayed TKWakeup (Almost Ready) The thread has been delayed 
  4853.                                   by the system. 
  4854.                   Frozen Thread   The thread has been "frozen" by the system, 
  4855.                                   waiting on its parent. 
  4856.                   Incoming TSD    ??? 
  4857.                   TSD failed to swap in A disk error occurred trying to swap 
  4858.                                   the TSD in. 
  4859.  
  4860.  One line is displayed for each entry in the Exit List: 
  4861.  
  4862.  Column         Meaning 
  4863.  Class          The class/priority of the Exit Routine. See the description of 
  4864.                 the DosExitList function for the meaning of this. 
  4865.  RtnAddress     The address of the Exit Routine. This is either a 16:16 virtual 
  4866.                 address or a 0:32 flat address. 
  4867.  Description    The name of the module and the segment/object number this 
  4868.                 routine is in. 
  4869.  
  4870.  The Open Files are displayed. The maximum number of process file handles 
  4871.  (MaxFH) is shown. Then, the open files are shown, with 1 line for each open 
  4872.  file: 
  4873.  
  4874.  Column             Meaning 
  4875.  Process handle     The value of the process file handle. These are unique to 
  4876.                     the process.  That is, process file handle 5 in the process 
  4877.                     with PID = 5 is not the same as process file handle 5 in 
  4878.                     the process with PID = 6. 
  4879.  System handle      The corresponding system file handle. These are common 
  4880.                     across the entire system. That is, system file handle 5 in 
  4881.                     the process with PID = 5 is the same as system file handle 
  4882.                     5 in the process with PID = 6. 
  4883.  Flags              The file state flags. They are decoded into English at the 
  4884.                     end of the line. 
  4885.  File name          This can be: 
  4886.                         Fully qualified file name. 
  4887.                         "anonymous pipe" = an anonymous pipe is opened on this 
  4888.                          handle. 
  4889.                         "named pipe" = a named pipe is opened on this handle. 
  4890.  
  4891.  The process environment is displayed. Each string is displayed on a line, 
  4892.  surrounded by quote marks. The fully qualified program file name is displayed, 
  4893.  surrounded by quote marks. The program name as input is displayed, surrounded 
  4894.  by quote marks. The parameters passed to the program are displayed, surrounded 
  4895.  by quote marks. 
  4896.  
  4897.  
  4898. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  4899.  
  4900.      Memory addressing 
  4901.  
  4902.      PTDA 
  4903.  
  4904.      Open Files 
  4905.  
  4906.  
  4907. ΓòÉΓòÉΓòÉ 9.4.5. Per Task Data Area (PTDA) ΓòÉΓòÉΓòÉ
  4908.  
  4909. Select one: 
  4910.  
  4911.       Selecting 
  4912.  
  4913.       Example Output 
  4914.  
  4915.       Contents of Display 
  4916.  
  4917.       Related Topics 
  4918.  
  4919.  
  4920. ΓòÉΓòÉΓòÉ <hidden> Selecting the Per Task Data Area (PTDA) Display ΓòÉΓòÉΓòÉ
  4921.  
  4922. When you select the Per Task Data Area (PTDA) option of the Process pull-down 
  4923. on the Process Hierarchy window, the Per Task Data Area (PTDA) for the selected 
  4924. process is displayed. 
  4925.  
  4926.  
  4927. ΓòÉΓòÉΓòÉ <hidden> Example of the Per Task Data Area (PTDA) Display ΓòÉΓòÉΓòÉ
  4928.  
  4929. Per Task Data Area (PTDA) for Process with PID = 0088, name = 'THESEUSn':
  4930. parent PTDA     @ 7D31E020, this PTDA          @ 7D320A80
  4931. first child     @ 00000000, exec child         @ 00000000
  4932. next sibling    @ 7D31FC60, previous sibling   @ 00000000
  4933. EXE pointer     @ FE5A2934, name = D:\THESEUSn\THESEUSn.EXE
  4934. last TCB        @ FD422E10, first TCB          @ FD422E10
  4935. # of threads    = 0001,     tib count          = 0055
  4936. TIB 0           = 00050000, TIB 1              = FFFFFFFF
  4937. TIB 2           = FFFFFFFF, TIB 3              = FFFFFFFF
  4938. debug data      @ 00000000, debug flag         = 00000000
  4939.  
  4940. Virtual Memory Manager information:
  4941. Next Arena      @ 7D31FCA0, Previous Arena     @ FFF408FC
  4942. Arena sentinel  @ FEF31ECA, Hint of first free @ FEF3244A
  4943. bitmap dir (?)  @ FEF2D650, hash table         @ FEF2D8CC
  4944. per-type info   @ FFF3C23C, VM flags           = 00000002
  4945. min address     = 00010000, max address        = 00810000
  4946. arena count     = 00000000, need bitmap        = 00000000
  4947. max bitmap      = 00000003, max bitmap entry   = 00000000
  4948. max hash index  = 00000081, arena header hob   = 0275
  4949.  
  4950. Physical Memory Manager information:
  4951. page tables                       @ 7D680000
  4952. Process Page Directory (1st 512M) @ FF215A00
  4953. allocated page counts             @ 7D320B28
  4954. present page counts               @ 7D320C28
  4955. locked/resident page counts       @ 7D320D28
  4956. base virtual page number          = 00000000
  4957. base vdm alias region             = 00000000
  4958. max potential pdes for this arena = 0080
  4959. count of low  in-use pdes         = 0003
  4960. count of high in-use pdes         = 0015
  4961. page table context                = 0006
  4962. per-process page manager flags    = 0000
  4963.    process was aged in this sweep.
  4964.  
  4965. Environment hob = 0352 (linear = 00060000, selector = 0037)
  4966.  
  4967. PerfView data @ 00000000
  4968.  
  4969. Exit List @ FE5B55C0
  4970.  
  4971. hob of PTDA = 026C, hob of MTE = 024C
  4972. hob of LDT  = 0278, LDT        @ 7C705000
  4973. PID         = 0088, parent PID = 0002
  4974. selector    = 0E48, signature  = TD
  4975.  
  4976.  
  4977. ΓòÉΓòÉΓòÉ <hidden> Contents of the Per Task Data Area (PTDA) Display ΓòÉΓòÉΓòÉ
  4978.  
  4979. The information presented on the Per Task Data Area (PTDA) display is as 
  4980. follows: 
  4981.  
  4982.  Per Task Data Area (PTDA) for Process with PID = hhhh 
  4983.            The PID of the specified process. 
  4984.  name = 'aaaaaaaa' 
  4985.            The name of the .EXE file that is the module for the process. 
  4986.  
  4987.  The following items concern the process lineage and its threads: 
  4988.  parent PTDA @ llllllll 
  4989.            The processes have a parent/child relationship. This entry is the 
  4990.            linear address of the parent process' PTDA. 
  4991.  this PTDA @ llllllll 
  4992.            The linear address of this PTDA. 
  4993.  first child @ llllllll 
  4994.            The linear address of the PTDA of the youngest child of this 
  4995.            process. 
  4996.  exec child @ llllllll 
  4997.            The linear address of the PTDA of the child process, while the child 
  4998.            is being created. 
  4999.  next sibling @ llllllll 
  5000.            The linear address of the next oldest sibling in the structure. 
  5001.  previous sibling @ llllllll 
  5002.            The linear address of the next youngest sibling in the structure. 
  5003.  EXE pointer @ llllllll 
  5004.            The linear address of the fully qualified .EXE file name. 
  5005.  name = aaaaaaaa 
  5006.            The fully qualified file name of the .EXE file for this process. 
  5007.  last TCB @ llllllll 
  5008.            The linear address of the last TCB in the TCB chain for this 
  5009.            process. 
  5010.  first TCB @ llllllll 
  5011.            The linear address of the first TCB in the TCB chain for this 
  5012.            process. 
  5013.  # of threads = hhhh 
  5014.            The number of threads that the PTDA claims to own. 
  5015.  tib count = hhhh 
  5016.            The number of TIBs that have been allocated. 
  5017.  TIB 0 = llllllll 
  5018.            Linear address of the first group of TIBs. 
  5019.  TIB 1 = llllllll 
  5020.            Linear address of the second group of TIBs. 
  5021.  TIB 2 = llllllll 
  5022.            Linear address of the third group of TIBs. 
  5023.  TIB 3 = llllllll 
  5024.            Linear address of the fourth group of TIBs. 
  5025.  debug data @ hhhhhhhh 
  5026.            Unknown 
  5027.  debug flag = hhhhhhhh 
  5028.            Unknown 
  5029.  
  5030.  The following items concern the Virtual Memory Manager: 
  5031.  Next Arena @ llllllll 
  5032.            The linear address of the next arena header. 
  5033.  Previous Arena @ llllllll 
  5034.            The linear address of the previous arena header. 
  5035.  Arena sentinel @ llllllll 
  5036.            The linear address of the sentinel arena record that starts the 
  5037.            process' arena. 
  5038.  Hint of first free @ llllllll 
  5039.            The linear address of the arena record which may be followed by an 
  5040.            area of linear space that is not allocated. 
  5041.  bitmap dir (?) @ llllllll 
  5042.            Unknown 
  5043.  hash table @ llllllll 
  5044.            Unknown 
  5045.  per-type info @ llllllll 
  5046.            Unknown 
  5047.  VM flags = hhhhhhhh 
  5048.            Unknown 
  5049.  min address = hhhhhhhh 
  5050.            The minimum linear address used by this process. 
  5051.  max address = hhhhhhhh 
  5052.            The maximum linear address used by this process. 
  5053.  arena count = hhhhhhhh 
  5054.            Unknown 
  5055.  need bitmap = hhhhhhhh 
  5056.            Unknown 
  5057.  max bitmap = hhhhhhhh 
  5058.            Unknown 
  5059.  max bitmap entry = hhhhhhhh 
  5060.            Unknown 
  5061.  max hash index = hhhhhhhh 
  5062.            Unknown 
  5063.  arena header hob = oooo 
  5064.            The hob of the pseudo-object for this arena header. 
  5065.  
  5066.  The following items concern the Physical Memory Manager: 
  5067.  page tables @ llllllll 
  5068.            The linear address of the start of the Page Tables for this process. 
  5069.  Process Page Directory (1st 512M) @ llllllll 
  5070.            The linear address of the Process Page Directory for this process. 
  5071.  allocated page counts @ llllllll 
  5072.            The linear address of a table having one entry for each potential 
  5073.            Page Table. Each entry states the number of pages that are allocated 
  5074.            within that Page Table. 
  5075.  present page counts @ llllllll 
  5076.            The linear address of a table having one entry for each potential 
  5077.            Page Table. Each entry states the number of pages that are present 
  5078.            within that Page Table. 
  5079.  locked/resident page counts @ llllllll 
  5080.            The linear address of a table having one entry for each potential 
  5081.            Page Table. Each entry states the number of pages that are 
  5082.            locked/resident within that Page Table. 
  5083.  base virtual page number = hhhhhhhh 
  5084.            Unknown 
  5085.  base vdm alias region = hhhhhhhh 
  5086.            Unknown 
  5087.  max potential pdes for this arena = hhhh 
  5088.            The size of the process' Process Page Directory. 
  5089.  count of low  in-use pdes = hhhh 
  5090.            Unknown 
  5091.  count of high in-use pdes = hhhh 
  5092.            Unknown 
  5093.  page table context = hhhh 
  5094.            Unknown 
  5095.  per-process page manager flags = hhhh 
  5096.            Unknown 
  5097.    process was aged in this sweep. 
  5098.  
  5099.  Environment hob = oooo (linear = llllllll, selector = ssss) 
  5100.            The hob, linear address and selector of the environment object. 
  5101.  
  5102.  PerfView data @ llllllll 
  5103.            The linear address of the PerfView data for this process. 
  5104.  
  5105.  Exit List @ llllllll 
  5106.            The linear address of the Exit List for this process. 
  5107.  
  5108.  hob of PTDA = oooo 
  5109.            The hob of the PTDA pseudo-object. 
  5110.  hob of MTE = oooo 
  5111.            The hob of the MTE for the .EXE file for the process. 
  5112.  hob of LDT = oooo 
  5113.            The hob of the process' LDT. 
  5114.  LDT @ llllllll 
  5115.            The linear address of the process' LDT. 
  5116.  MaxFileHandles = iii 
  5117.            The maximum number of files that can be opened at one time by this 
  5118.            process. 
  5119.  Open File table @ ssss:oooo 
  5120.            The virtual address of the Open File table. There is one entry for 
  5121.            each process file handle. 
  5122.  PID = hhhh 
  5123.            The PID of this process. 
  5124.  parent PID = hhhh 
  5125.            The PID of the parent process. 
  5126.  selector = ssss 
  5127.            The GDT selector that points to this PTDA. 
  5128.  signature = TD 
  5129.            Several of the OS/2 kernel control blocks have signature characters 
  5130.            at the beginning (the PTDA was inverted in OS/2 1.2). The signature 
  5131.            of the PTDA is 'TD'. 
  5132.  
  5133.  
  5134. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  5135.  
  5136.      Memory addressing 
  5137.  
  5138.      Linear addresses 
  5139.  
  5140.      Memory Management Control Blocks 
  5141.  
  5142.      General Process Information 
  5143.  
  5144.  
  5145. ΓòÉΓòÉΓòÉ 9.4.6. LDT ΓòÉΓòÉΓòÉ
  5146.  
  5147. Select one: 
  5148.  
  5149.       Selecting 
  5150.  
  5151.       Example Output 
  5152.  
  5153.       Contents of Display 
  5154.  
  5155.       Descriptor Table Entry Description 
  5156.  
  5157.       Related Topics 
  5158.  
  5159.  
  5160. ΓòÉΓòÉΓòÉ <hidden> Selecting the LDT Display ΓòÉΓòÉΓòÉ
  5161.  
  5162. When you select the LDT option of the Process pull-down on the Process 
  5163. Hierarchy window, the contents of the LDT for the selected process is 
  5164. displayed. 
  5165.  
  5166.  
  5167. ΓòÉΓòÉΓòÉ <hidden> Example of the LDT Display ΓòÉΓòÉΓòÉ
  5168.  
  5169. Local Descriptor Table for process 'THESEUSn', PID = 0033:
  5170. LDT(0004) Data    Base=7C705000 Limit=0FFFF DPL=3 ED=0  W=0 A=0 P=1 G=0 B=0
  5171. LDT(000C) Code    Base=00010000 Limit=0FFFF DPL=3 CF=0  R=1 A=0 P=1 G=0 D=0
  5172. LDT(0014) Code    Base=00020000 Limit=0E2B5 DPL=3 CF=0  R=1 A=0 P=1 G=0 D=0
  5173. LDT(001C) Data    Base=00030000 Limit=0EADF DPL=3 ED=0  W=1 A=1 P=1 G=0 B=0
  5174. LDT(0024) Data    Base=00040000 Limit=002A8 DPL=3 ED=0  W=1 A=1 P=1 G=0 B=0
  5175. ┬╖┬╖┬╖
  5176.  
  5177.  
  5178. ΓòÉΓòÉΓòÉ <hidden> Contents of the LDT Display ΓòÉΓòÉΓòÉ
  5179.  
  5180. One line is displayed for each valid entry in the LDT. 
  5181.  
  5182. Please see the Descriptor Table Entry for the format of an entry. 
  5183.  
  5184.  
  5185. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  5186.  
  5187.      Memory addressing 
  5188.  
  5189.      Virtual addresses 
  5190.  
  5191.      General Process Information 
  5192.  
  5193.      PTDA 
  5194.  
  5195.  
  5196. ΓòÉΓòÉΓòÉ 9.4.7. Page Table ΓòÉΓòÉΓòÉ
  5197.  
  5198. Select one: 
  5199.  
  5200.       Selecting 
  5201.  
  5202.       Example Output 
  5203.  
  5204.       Contents of Display 
  5205.  
  5206.       Page Table Entry Description 
  5207.  
  5208.       Related Topics 
  5209.  
  5210.  
  5211. ΓòÉΓòÉΓòÉ <hidden> Selecting the Process Page Table Display ΓòÉΓòÉΓòÉ
  5212.  
  5213. When you select the Page Table option of the Process pull-down on the Process 
  5214. Hierarchy window, the contents of the Process Page Table is displayed. 
  5215.  
  5216. The display generation takes about 3 seconds on an 8MB 20Mhz P70. 
  5217.  
  5218.  
  5219. ΓòÉΓòÉΓòÉ <hidden> Example of the Process Page Table Display ΓòÉΓòÉΓòÉ
  5220.  
  5221. Page Table for 'THESEUSn':
  5222. *Linear=00000000 Physical=002D2000 D=1 A=1 User  R/W P=1 Resident
  5223.  Linear=00010000 FrameId=0083D     D=0 A=0 User  R/O P=0
  5224.  Linear=00011000 Physical=001AE000 D=0 A=1 User  R/O P=1
  5225.  Linear=00012000 Physical=002DA000 D=0 A=1 User  R/O P=1
  5226.  Linear=00013000 FrameId=00840     D=0 A=0 User  R/O P=0
  5227. ┬╖┬╖┬╖
  5228.  
  5229.  
  5230. ΓòÉΓòÉΓòÉ <hidden> Contents of the Process Page Table Display ΓòÉΓòÉΓòÉ
  5231.  
  5232. One line is displayed for each valid entry in the Process Page Table. 
  5233.  
  5234. Please see the Page Table Entry for the format of an entry. 
  5235.  
  5236.  
  5237. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  5238.  
  5239.      Memory addressing 
  5240.  
  5241.      Linear addresses 
  5242.  
  5243.      Physical addresses 
  5244.  
  5245.  
  5246. ΓòÉΓòÉΓòÉ 9.4.8. Private Object Summary ΓòÉΓòÉΓòÉ
  5247.  
  5248. Select one: 
  5249.  
  5250.       Selecting 
  5251.  
  5252.       Example Output 
  5253.  
  5254.       Contents of Display 
  5255.  
  5256.       Related Topics 
  5257.  
  5258.  
  5259. ΓòÉΓòÉΓòÉ <hidden> Selecting the Private Object Summary Display ΓòÉΓòÉΓòÉ
  5260.  
  5261. When you select the Private Object Summary option of the Process pull-down on 
  5262. the Process Hierarchy window, a summary of all the memory objects defined in 
  5263. the private arena for the selected process is displayed. 
  5264.  
  5265.  
  5266. ΓòÉΓòÉΓòÉ 9.4.9. Shared Object Summary ΓòÉΓòÉΓòÉ
  5267.  
  5268. Select one: 
  5269.  
  5270.       Selecting 
  5271.  
  5272.       Example Output 
  5273.  
  5274.       Contents of Display 
  5275.  
  5276.       Related Topics 
  5277.  
  5278.  
  5279. ΓòÉΓòÉΓòÉ <hidden> Selecting the Shared Object Summary Display ΓòÉΓòÉΓòÉ
  5280.  
  5281. When you select the Shared Object Summary option of the Process pull-down on 
  5282. the Process Hierarchy window, a summary of all the memory objects defined in 
  5283. the shared arena for the selected process is displayed. 
  5284.  
  5285.  
  5286. ΓòÉΓòÉΓòÉ 9.4.10. Private Arena Table ΓòÉΓòÉΓòÉ
  5287.  
  5288. Select one: 
  5289.  
  5290.       Selecting 
  5291.  
  5292.       Example Output 
  5293.  
  5294.       Contents of Display 
  5295.  
  5296.       Arena Record Description 
  5297.  
  5298.       Related Topics 
  5299.  
  5300.  
  5301. ΓòÉΓòÉΓòÉ <hidden> Selecting the Private Arena Table Display ΓòÉΓòÉΓòÉ
  5302.  
  5303. When you select the Private Arena Table option of the Process pull-down on the 
  5304. Process Hierarchy window, the contents of the process' private arena is 
  5305. displayed. 
  5306.  
  5307.  
  5308. ΓòÉΓòÉΓòÉ <hidden> Example of the Private Arena Table Display ΓòÉΓòÉΓòÉ
  5309.  
  5310. Private Arena Table for 'THESEUS':
  5311.  har    pages   linear flg next prev link hash hob  hal  ptda / Decoded flags
  5312. 020E 00000000 00010000 003 020A 0229 0005 0000 Sentinel, max pages=00004000
  5313. 020A 00000020 00010000 1D9 020B 020E 0000 0000 0238 0000 0235 / Mapped Reload User Exec Read
  5314. 020B 00000010 00030000 179 0211 020A 0000 0000 0263 0000 0235 / Mapped Reload Write User Read
  5315. ┬╖┬╖┬╖
  5316. 024A 00000010 006E0000 169 020D 0219 0000 0000 0243 0000 0235 / Mapped Write User Read
  5317. 020D 00000010 006F0000 169 0229 024A 0000 0000 023A 0000 0235 / Mapped Write User Read
  5318. 0229 000000D0 00700000 169 020E 020D 0000 0000 0278 0000 0235 / Mapped Write User Read
  5319.  
  5320.  
  5321. ΓòÉΓòÉΓòÉ <hidden> Contents of the Private Arena Table Display ΓòÉΓòÉΓòÉ
  5322.  
  5323. One line is displayed for each entry in the private arena. 
  5324.  
  5325. Please see the arena record for the format of an entry. 
  5326.  
  5327.  
  5328. ΓòÉΓòÉΓòÉ 9.4.11. Shared Arena Table ΓòÉΓòÉΓòÉ
  5329.  
  5330. Select one: 
  5331.  
  5332.       Selecting 
  5333.  
  5334.       Example Output 
  5335.  
  5336.       Contents of Display 
  5337.  
  5338.       Arena Record Description 
  5339.  
  5340.       Related Topics 
  5341.  
  5342.  
  5343. ΓòÉΓòÉΓòÉ <hidden> Selecting the Shared Arena Table Display ΓòÉΓòÉΓòÉ
  5344.  
  5345. When you select the Shared Arena Table option of the Process pull-down on the 
  5346. Process Hierarchy window, the contents of the shared arena is displayed. 
  5347.  
  5348.  
  5349. ΓòÉΓòÉΓòÉ <hidden> Example of the Shared Arena Table Display ΓòÉΓòÉΓòÉ
  5350.  
  5351. Shared Arena Table for 'THESEUS':
  5352.  har    pages   linear flg next prev link hash hob  hal  hco  / Decoded flags
  5353. 0005 00016F10 04000000 007 023D 0021 0000 0000 Boundary Sentinel
  5354. 023D 00000010 1AF10000 349 0247 0005 0000 0000 0248 0000 03AA / Mapped User Read Hco
  5355. 0247 00000010 1AF20000 369 0236 023D 0000 0000 0251 0000 032C / Mapped Write User Read Hco
  5356. ┬╖┬╖┬╖
  5357. 006D 00000010 1BFE0000 349 006B 0095 0000 0000 006E 0000 030B / Mapped User Read Hco
  5358. 006B 00000010 1BFF0000 349 0021 006D 0000 0000 006C 0000 02BB / Mapped User Read Hco
  5359. 0021 00000010 1C000000 001 0005 006B 0000 0000 0000 0000 0000 /
  5360.  
  5361.  
  5362. ΓòÉΓòÉΓòÉ <hidden> Contents of the Shared Arena Table Display ΓòÉΓòÉΓòÉ
  5363.  
  5364. One line is displayed for each entry in the shared arena. 
  5365.  
  5366. Please see the arena record for the format of an entry. 
  5367.  
  5368.  
  5369. ΓòÉΓòÉΓòÉ 9.5. Registers ΓòÉΓòÉΓòÉ
  5370.  
  5371. The Registers pull-down contains displays of certain of the hardware related 
  5372. tables. 
  5373.  
  5374. Functions available are: 
  5375.  
  5376.  Current IDT 
  5377.            Displays the current Interrupt Descriptor Table. 
  5378.  
  5379.  
  5380. ΓòÉΓòÉΓòÉ 9.5.1. IDT ΓòÉΓòÉΓòÉ
  5381.  
  5382. Select one: 
  5383.  
  5384.       Selecting 
  5385.  
  5386.       Example Output 
  5387.  
  5388.       Contents of Display 
  5389.  
  5390.       Descriptor Table Entry Description 
  5391.  
  5392.       Related Topics 
  5393.  
  5394.  
  5395. ΓòÉΓòÉΓòÉ <hidden> Selecting the IDT Display ΓòÉΓòÉΓòÉ
  5396.  
  5397. When you select the IDT option of the Registers pull-down on the Process 
  5398. Hierarchy window, the contents of the IDT is displayed. 
  5399.  
  5400.  
  5401. ΓòÉΓòÉΓòÉ <hidden> Example of the IDT Display ΓòÉΓòÉΓòÉ
  5402.  
  5403. Interrupt Descriptor Table:
  5404. Trap(00) TrapG32 Selector=0160 Offset=FFF6BF58 DPL=0               P=1
  5405. Trap(01) IntG32  Selector=0160 Offset=FFF6C004 DPL=3               P=1
  5406. Trap(02) TaskG   Selector=1D18                 DPL=0               P=1
  5407. Trap(03) IntG32  Selector=0160 Offset=FFF6C1A8 DPL=3               P=1
  5408. Trap(04) TrapG32 Selector=0160 Offset=FFF6C1F0 DPL=3               P=1
  5409. Trap(05) TrapG32 Selector=0160 Offset=FFF6C1FC DPL=0               P=1
  5410. Trap(06) TrapG32 Selector=0160 Offset=FFF6C208 DPL=0               P=1
  5411. Trap(07) TrapG32 Selector=005A Offset=1BF60AD0 DPL=0               P=1
  5412. Trap(08) TaskG   Selector=0088                 DPL=0               P=1
  5413. Trap(09) TrapG32 Selector=0160 Offset=FFF6C2E0 DPL=0               P=1
  5414. ┬╖┬╖┬╖
  5415. Int (00) IntG32  Selector=0160 Offset=FFF37214 DPL=0               P=1
  5416. Int (01) IntG32  Selector=0160 Offset=FFF37228 DPL=0               P=1
  5417. ┬╖┬╖┬╖
  5418. Int (0E) IntG32  Selector=0160 Offset=FFF37354 DPL=0               P=1
  5419. Int (0F) IntG32  Selector=0160 Offset=FFF37368 DPL=0               P=1
  5420. ┬╖┬╖┬╖
  5421.  
  5422.  
  5423. ΓòÉΓòÉΓòÉ <hidden> Contents of the IDT Display ΓòÉΓòÉΓòÉ
  5424.  
  5425. One line is displayed for each valid entry in the IDT. 
  5426.  
  5427. Please see the Descriptor Table Entry for the format of an entry. 
  5428.  
  5429.  
  5430. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  5431.  
  5432.      Memory addressing 
  5433.  
  5434.      Virtual addresses 
  5435.  
  5436.  
  5437. ΓòÉΓòÉΓòÉ 9.6. Misc ΓòÉΓòÉΓòÉ
  5438.  
  5439. The Misc pull-down contains options applicable to the system as a whole. 
  5440.  
  5441. Functions available are: 
  5442.  
  5443.  Refresh Diagram 
  5444.            Refreshes the process hierarchy diagram. 
  5445.  Unselect Process 
  5446.            Unselects the currently selected process. 
  5447.  'Link' Color 
  5448.            Changes the color of the hyperblock links. 
  5449.  Font for this window... 
  5450.            Specifies an alternate font for this window. 
  5451.  Default font for Detail Windows... 
  5452.            Specifies an alternate default font for the Detail windows. 
  5453.  Contents Update 
  5454.            Specifies control, start and stop of periodic updates. 
  5455.  
  5456.  
  5457. ΓòÉΓòÉΓòÉ 9.6.1. Refresh Diagram ΓòÉΓòÉΓòÉ
  5458.  
  5459. When you select the Refresh Diagram option of the Misc pull-down on the Process 
  5460. Hierarchy window, the process hierarchy diagram on the Process Hierarchy window 
  5461. is redetermined and redisplayed. This also happens each time any part of the 
  5462. window is painted. 
  5463.  
  5464.  
  5465. ΓòÉΓòÉΓòÉ 9.6.2. Unselect Process ΓòÉΓòÉΓòÉ
  5466.  
  5467. When you select the Unselect Process option of the Misc pull-down on the 
  5468. Process Hierarchy window, the currently selected process is unselected. No 
  5469. process will be selected. 
  5470.  
  5471.  
  5472. ΓòÉΓòÉΓòÉ 9.6.3. 'Link' Color ΓòÉΓòÉΓòÉ
  5473.  
  5474. When you select the 'Link' Color option of the Misc pull-down on the Process 
  5475. Hierarchy window, you can change the color of the hyperblock links displayed on 
  5476. the Detail window. 
  5477.  
  5478. The Dark Blue and Dark Red offer the best contrast for both normal and reverse 
  5479. video information displayed on both a color and monochrome display. However, 
  5480. the color defaults to Dark Cyan so the hyperblock links will be the same color 
  5481. as the hypertext links in the help panels. 
  5482.  
  5483. The pop-out menu lists all available colors. 
  5484.  
  5485. Window Text is a color chosen by the system to be neutral on both color and 
  5486. monochrome displays. It is normally black. 
  5487.  
  5488. The current setting is checked in the list. 
  5489.  
  5490.  
  5491. ΓòÉΓòÉΓòÉ 9.6.4. Font for this Window... ΓòÉΓòÉΓòÉ
  5492.  
  5493. When you select the Font for this Window... option of the Misc pull-down on the 
  5494. Process Hierarchy window, you can specify a different monospace font  for the 
  5495. Process Hierarchy window. 
  5496.  
  5497.  
  5498. ΓòÉΓòÉΓòÉ 9.6.5. Default font for Detail Windows... ΓòÉΓòÉΓòÉ
  5499.  
  5500. When you select the Default font for Detail Windows... option of the Misc 
  5501. pull-down on the Process Hierarchy window, you can specify a different default 
  5502. monospace font for Detail windows which are created. 
  5503.  
  5504.  
  5505. ΓòÉΓòÉΓòÉ <hidden> List of Selectable Fonts ΓòÉΓòÉΓòÉ
  5506.  
  5507. Select a font from this list. Only monospaced fonts are displayed. 
  5508.  
  5509.  
  5510. ΓòÉΓòÉΓòÉ 9.7. Window ΓòÉΓòÉΓòÉ
  5511.  
  5512. The Window pull-down contains the list of existing THESEUS Detail windows. When 
  5513. you select one, it is brought to the foreground. If it has been minimized, it 
  5514. is also restored to the size and position it had before being minimized. 
  5515.  
  5516. The list is updated as Detail windows are created and destroyed. The order of 
  5517. the windows listed reflects the order of creation, with the newest being on the 
  5518. bottom of the list. 
  5519.  
  5520. The last window viewed is indicated by a check mark. 
  5521.  
  5522.  
  5523. ΓòÉΓòÉΓòÉ 9.8. Help ΓòÉΓòÉΓòÉ
  5524.  
  5525. The Help pull-down contains the list of the help functions available for the 
  5526. Process Hierarchy window. 
  5527.  
  5528.  
  5529. ΓòÉΓòÉΓòÉ 9.8.1. Help Index ΓòÉΓòÉΓòÉ
  5530.  
  5531. The Help Index option of the Help pull-down displays the index of the help 
  5532. document. 
  5533.  
  5534.  
  5535. ΓòÉΓòÉΓòÉ 9.8.2. Keys help ΓòÉΓòÉΓòÉ
  5536.  
  5537. The Keys help option of the Help pull-down displays the key definitions for 
  5538. this window. 
  5539.  
  5540.  
  5541. ΓòÉΓòÉΓòÉ 9.8.3. Mouse ΓòÉΓòÉΓòÉ
  5542.  
  5543. The Mouse option of the Help pull-down displays information about using the 
  5544. mouse. 
  5545.  
  5546.  
  5547. ΓòÉΓòÉΓòÉ 9.8.4. General Help ΓòÉΓòÉΓòÉ
  5548.  
  5549. The General Help option of the Help pull-down displays information about the 
  5550. contents of this window. 
  5551.  
  5552.  
  5553. ΓòÉΓòÉΓòÉ 9.8.5. Product Information ΓòÉΓòÉΓòÉ
  5554.  
  5555. The Product Information option of the Help pull-down displays a dialog box 
  5556. which tells the version of the program. 
  5557.  
  5558.  
  5559. ΓòÉΓòÉΓòÉ 10. Detail Window ΓòÉΓòÉΓòÉ
  5560.  
  5561. The Detail window shows information about specific areas in either OS/2 system 
  5562. or application memory. There are a number of different window contents, all 
  5563. displayed in this same generic window class. The initial window size computed 
  5564. by the program is: 
  5565.  
  5566.      The width of the longest line (not to exceed the screen width) 
  5567.      The height of the data (not more than 3/4 of the screen height). 
  5568.  
  5569.  THESEUS knows how to format many control blocks. These are pointed to by 
  5570.  hyperblock links. The section Selecting a Hyperblock Link tells how to use the 
  5571.  hyperblock links. The section Keys tells how to use the keyboard. 
  5572.  
  5573.  Options available on the Detail window are: 
  5574.  
  5575.  Functions     Viewing memory in various hex formats or control working set 
  5576.                computations. 
  5577.  Secondary     View the working set from different view points. 
  5578.  Output        Sending output to a file or printer. 
  5579.  Mark/Find     Doing the clipboard and general string finding functions. 
  5580.  Misc          Changing window processing controls and font specification. 
  5581.  Help          Lists the help functions. 
  5582.  
  5583.  
  5584. ΓòÉΓòÉΓòÉ 10.1. Selecting a Hyperblock Link ΓòÉΓòÉΓòÉ
  5585.  
  5586. You may select a hyperblock link address in either of two ways: 
  5587.  
  5588.      Place the mouse pointer over a hyperblock link address and press 
  5589.       button 1. 
  5590.  
  5591.      Use the arrow keys: 
  5592.  
  5593.       Left Arrow            Moves to the previous hyperblock link address. 
  5594.       Right Arrow           Moves to the next hyperblock link address. 
  5595.       Up Arrow              Moves to the hyperblock link address in the 
  5596.                             previous line. This attempts to stay in the same 
  5597.                             data column. If not possible, then the last 
  5598.                             hyperblock link address on the line is selected. 
  5599.       Down Arrow            Moves to the hyperblock link address in the next 
  5600.                             line. This attempts to stay in the same data 
  5601.                             column. If not possible, then the last hyperblock 
  5602.                             link address on the line is selected. 
  5603.  
  5604.  If no hyperblock link address is selected, pressing any arrow key will select 
  5605.  the first one. 
  5606.  
  5607.  
  5608. ΓòÉΓòÉΓòÉ 10.2. Keys ΓòÉΓòÉΓòÉ
  5609.  
  5610. The key assignments in a Detail window are: 
  5611.  
  5612.  Left Arrow       Moves to the previous hyperblock link address. 
  5613.  Right Arrow      Moves to the next hyperblock link address. 
  5614.  Up Arrow         Moves to the hyperblock link address in the previous line. 
  5615.                   This attempts to stay in the same data column. If not 
  5616.                   possible, then the last hyperblock link address on the line 
  5617.                   is selected. 
  5618.  Down Arrow       Moves to the hyperblock link address in the next line. This 
  5619.                   attempts to stay in the same data column. If not possible, 
  5620.                   then the last hyperblock link address on the line is 
  5621.                   selected. 
  5622.  Alt+Left         Scrolls the window information left. 
  5623.  Alt+Right        Scrolls the window information right. 
  5624.  Alt+Up           Scrolls the window information up. 
  5625.  Alt+Down         Scrolls the window information down. 
  5626.  Page Up          Scrolls the window information up 1/2 the screen height. 
  5627.  Page Down        Scrolls the window information down 1/2 the screen height. 
  5628.  Home             Moves the window so that the top left corner is displayed. 
  5629.  End              Moves the window so that the bottom right corner is 
  5630.                   displayed. 
  5631.  Print Screen     Prints the contents of the window. 
  5632.  Ctrl-A           Performs the "Find again" function. 
  5633.  Ctrl-F           Displays the "Find..." dialog. 
  5634.  Ctrl-S           Displays the "Save As..." dialog. 
  5635.  F1               Requests contextual help. 
  5636.  F3               Closes the Detail window. 
  5637.  Shift-F10        Displays a popup menu. 
  5638.  Enter            Formats the data at the selected address. (This is the same 
  5639.                   as double-clicking mouse button 1.) 
  5640.  
  5641.  
  5642. ΓòÉΓòÉΓòÉ 10.3. Functions ΓòÉΓòÉΓòÉ
  5643.  
  5644. The Functions pull-down has options that allow displaying more information 
  5645. about items in the current display. 
  5646.  
  5647. Functions available are: 
  5648.  
  5649.  Show memory at linear address... 
  5650.            Presents a dialog to allow display of memory at a specified linear 
  5651.            address. 
  5652.  Show memory at virtual address... 
  5653.            Presents a dialog to allow display of memory at a specified virtual 
  5654.            address. 
  5655.  Show memory at physical address... 
  5656.            Presents a dialog to allow display of memory at a specified physical 
  5657.            address. 
  5658.  Show selected address formatted 
  5659.            Shows the selected address as a formatted control block. 
  5660.  Show description... 
  5661.            Displays a "description" of the memory object. 
  5662.  Show process contexts 
  5663.            Displays context information for each process which access to the 
  5664.            specified linear address. 
  5665.  Memory Object Leak Detection 
  5666.            Performs memory leak detection on a single memory object. 
  5667.  Hot Spot Detection... 
  5668.            Performs byte change detection on a page of memory. 
  5669.  Working Set Parameters... 
  5670.            Presents a dialog to specify data collection parameters. 
  5671.  Working Set Start 
  5672.            Starts collecting the working set information. 
  5673.  Working Set Stop 
  5674.            Stops collecting the working set information and provide a summary. 
  5675.  Show detail by Page 
  5676.            Shows which pages made up the summary data in the window. 
  5677.  Show detail by Object 
  5678.            Shows which objects made up the summary data in the window. 
  5679.  Show summary by Process 
  5680.            Show a summary of the working set information, summarized by 
  5681.            process. 
  5682.  Leak Detection Control... 
  5683.            Presents a dialog to specify leak detection parameters. 
  5684.  Start Periodic Leak Detection 
  5685.            Starts performing leak detection on a periodic basis. 
  5686.  Stop Periodic Leak Detection 
  5687.            Stops the periodic leak detection. 
  5688.  Capture Leak Reference Data 
  5689.            Manually captures leak detection data. 
  5690.  Compare Present Leak Data 
  5691.            Compares current leak detection data with last captured data. 
  5692.  
  5693.  
  5694. ΓòÉΓòÉΓòÉ 10.3.1. Show memory at linear address... ΓòÉΓòÉΓòÉ
  5695.  
  5696. The Show memory at linear address dialog of the Functions pull-down on the 
  5697. Detail window allows you to display memory at a specified linear address for a 
  5698. specified number of bytes. Various formatting options are available: 
  5699.  
  5700.      bytes 
  5701.      words 
  5702.      doublewords 
  5703.      disassembled instructions. 
  5704.  
  5705.  
  5706. ΓòÉΓòÉΓòÉ <hidden> Address (in hex) of the area to display. ΓòÉΓòÉΓòÉ
  5707.  
  5708. This option specifies the linear address (in hexadecimal) of the memory to be 
  5709. displayed. 
  5710.  
  5711. The default value is the selected hyperblock link, if one is selected. 
  5712.  
  5713.  
  5714. ΓòÉΓòÉΓòÉ <hidden> Number of bytes (in hex) to display. ΓòÉΓòÉΓòÉ
  5715.  
  5716. This option specifies the number of bytes (in hexadecimal) you wish displayed. 
  5717.  
  5718.  
  5719. ΓòÉΓòÉΓòÉ <hidden> Show the memory as "bytes". ΓòÉΓòÉΓòÉ
  5720.  
  5721. This option displays the memory as bytes. Each byte is formatted in 
  5722. hexadecimal. 
  5723.  
  5724. Additionally, the memory is formatted in ASCII. Unprintable characters are 
  5725. printed as a period (.). 
  5726.  
  5727. The width specification controls the number of bytes presented on each line. 
  5728.  
  5729.  
  5730. ΓòÉΓòÉΓòÉ <hidden> Show the memory as "words". ΓòÉΓòÉΓòÉ
  5731.  
  5732. This option displays the memory as words (2 bytes). Each word is "byte 
  5733. reversed" and then formatted in hexadecimal. 
  5734.  
  5735. Additionally, the memory is formatted in ASCII, without "byte reversal." 
  5736. Unprintable characters are printed as a period (.). 
  5737.  
  5738.  
  5739. ΓòÉΓòÉΓòÉ <hidden> Show the memory as "doublewords". ΓòÉΓòÉΓòÉ
  5740.  
  5741. This option displays the memory as doublewords (4 bytes). Each doubleword is 
  5742. "byte reversed" and then formatted in hexadecimal. 
  5743.  
  5744. Additionally, the memory is formatted in ASCII, without "byte reversal." 
  5745. Unprintable characters are printed as a period (.). 
  5746.  
  5747.  
  5748. ΓòÉΓòÉΓòÉ <hidden> Show the memory as disassembled instructions. ΓòÉΓòÉΓòÉ
  5749.  
  5750. This option displays the memory as disassembled instructions. 
  5751.  
  5752. The memory is presented: 
  5753.  
  5754.    1. in bytes 
  5755.    2. in ASCII 
  5756.    3. as disassembled instructions. 
  5757.  
  5758.  The default instruction type may be specified with the Code is 32-bit option. 
  5759.  
  5760.  
  5761. ΓòÉΓòÉΓòÉ <hidden> Code is 32-bit. ΓòÉΓòÉΓòÉ
  5762.  
  5763. This option specifies that the instructions being disassembled are 32-bit 
  5764. instructions. If this option is not selected, the instructions are assumed to 
  5765. be 16-bit. 
  5766.  
  5767.  
  5768. ΓòÉΓòÉΓòÉ <hidden> Number of bytes (in hex) per line. ΓòÉΓòÉΓòÉ
  5769.  
  5770. If you choose to "format in bytes," you can additionally select the number of 
  5771. bytes to be displayed on each line. This makes it easier to look at arrays, 
  5772. since each entry can be placed on a separate line. 
  5773.  
  5774. The default is 10 (hexadecimal) bytes per line. 
  5775.  
  5776.  
  5777. ΓòÉΓòÉΓòÉ 10.3.2. Show memory at virtual address... ΓòÉΓòÉΓòÉ
  5778.  
  5779. The Show memory at virtual address dialog of the Functions pull-down on the 
  5780. Detail window allows you to display memory at a specified selector:offset for a 
  5781. specified number of bytes. Various formatting options are available: 
  5782.  
  5783.      bytes 
  5784.      words 
  5785.      doublewords 
  5786.      disassembled instructions 
  5787.  
  5788.  
  5789. ΓòÉΓòÉΓòÉ <hidden> Selector (in hex) of Segment. ΓòÉΓòÉΓòÉ
  5790.  
  5791. This option specifies the selector portion (in hexadecimal) of the virtual 
  5792. address of the memory to be displayed. 
  5793.  
  5794. The default value is the selector portion of the selected hyperblock link, if 
  5795. one is selected. 
  5796.  
  5797.  
  5798. ΓòÉΓòÉΓòÉ <hidden> Offset (in hex) of Segment. ΓòÉΓòÉΓòÉ
  5799.  
  5800. This option specifies the offset portion (in hexadecimal) of the virtual 
  5801. address of the memory to be displayed. 
  5802.  
  5803. The default value is the offset portion of the selected hyperblock link, if one 
  5804. is selected. 
  5805.  
  5806.  
  5807. ΓòÉΓòÉΓòÉ <hidden> Number of bytes (in hex) to display. ΓòÉΓòÉΓòÉ
  5808.  
  5809. This option specifies the number of bytes (in hex) you wish displayed. 
  5810.  
  5811. If a hyperblock link has been selected and the selector is valid, the length 
  5812. will default to the length of the segment. 
  5813.  
  5814. If a hyperblock link has not been selected, the length will default to the 
  5815. "double-click length" for the window. 
  5816.  
  5817.  
  5818. ΓòÉΓòÉΓòÉ <hidden> Show the memory as "bytes". ΓòÉΓòÉΓòÉ
  5819.  
  5820. This option displays the memory as bytes. Each byte is formatted in 
  5821. hexadecimal. 
  5822.  
  5823. Additionally, the memory is formatted in ASCII. Unprintable characters are 
  5824. printed as a period (.). 
  5825.  
  5826.  
  5827. ΓòÉΓòÉΓòÉ <hidden> Show the memory as disassembled instructions. ΓòÉΓòÉΓòÉ
  5828.  
  5829. This option displays the memory as disassembled instructions. 
  5830.  
  5831. The memory is presented: 
  5832.  
  5833.    1. in bytes 
  5834.    2. in ASCII 
  5835.    3. as disassembled instructions. 
  5836.  
  5837.  The default instruction type may be specified with the Code is 32-bit option. 
  5838.  
  5839.  
  5840. ΓòÉΓòÉΓòÉ <hidden> Code is 32-bit. ΓòÉΓòÉΓòÉ
  5841.  
  5842. Select this option if the instructions being disassembled are 32-bit 
  5843. instructions. If this option is not selected, the instructions are assumed to 
  5844. be 16-bit. 
  5845.  
  5846. If a hyperblock link has been selected and the selector is valid, the type will 
  5847. default to the type of the segment. 
  5848.  
  5849.  
  5850. ΓòÉΓòÉΓòÉ 10.3.3. Show memory at physical address... ΓòÉΓòÉΓòÉ
  5851.  
  5852. The Show memory at physical address dialog of the Functions pull-down on the 
  5853. Detail window allows you to display memory at a specified physical address for 
  5854. a specified number of bytes. Various formatting options are available: 
  5855.  
  5856.      bytes 
  5857.      words 
  5858.      doublewords 
  5859.      disassembled instructions 
  5860.  
  5861.  
  5862. ΓòÉΓòÉΓòÉ <hidden> Address (in hex) of the area to display. ΓòÉΓòÉΓòÉ
  5863.  
  5864. This option specifies the physical address (in hexadecimal) of the memory to be 
  5865. displayed. 
  5866.  
  5867. The default value is the selected hyperblock link, if one is selected. 
  5868.  
  5869.  
  5870. ΓòÉΓòÉΓòÉ 10.3.4. Show selected address formatted ΓòÉΓòÉΓòÉ
  5871.  
  5872. When a hyperblock link address is selected, the memory may be displayed either 
  5873. by double-clicking mouse button 1 or by selecting this option on the menu. The 
  5874. memory is displayed formatted by its control block type, if THESEUS knows the 
  5875. format. 
  5876.  
  5877.  
  5878. ΓòÉΓòÉΓòÉ <hidden> Show selected address in hex ΓòÉΓòÉΓòÉ
  5879.  
  5880. When a hyperblock link address is selected, this option displays the memory in 
  5881. hexadecimal. 
  5882.  
  5883.  
  5884. ΓòÉΓòÉΓòÉ <hidden> Describe the selected address ΓòÉΓòÉΓòÉ
  5885.  
  5886. When a hyperblock link address has been selected, this option displays the 
  5887. "description" of the memory represented by the address. 
  5888.  
  5889.  
  5890. ΓòÉΓòÉΓòÉ 10.3.5. Show description... ΓòÉΓòÉΓòÉ
  5891.  
  5892. The Show description of an object option of the Functions pull-down on the 
  5893. Detail window allows you to display the "description" of a memory object. 
  5894.  
  5895. The object address can be specified as being referenced by: 
  5896.  
  5897.      linear address 
  5898.      virtual address 
  5899.      physical address 
  5900.      hob. 
  5901.      har 
  5902.      hal. 
  5903.  
  5904.  
  5905. ΓòÉΓòÉΓòÉ <hidden> Address of object to be described ΓòÉΓòÉΓòÉ
  5906.  
  5907. Specify the address of the object to be "described." It can be: 
  5908.  
  5909.      linear address 
  5910.      virtual address 
  5911.      physical address 
  5912.      hob. 
  5913.      har 
  5914.      hal 
  5915.  
  5916.  
  5917. ΓòÉΓòÉΓòÉ <hidden> Describe a linear object ΓòÉΓòÉΓòÉ
  5918.  
  5919. The address specified is a linear address. 
  5920.  
  5921.  
  5922. ΓòÉΓòÉΓòÉ <hidden> Describe a virtual object ΓòÉΓòÉΓòÉ
  5923.  
  5924. The address specified is a virtual address. Specify the selector of the 
  5925. segment. 
  5926.  
  5927.  
  5928. ΓòÉΓòÉΓòÉ <hidden> Describe a physical object ΓòÉΓòÉΓòÉ
  5929.  
  5930. The address specified is a physical address. 
  5931.  
  5932.  
  5933. ΓòÉΓòÉΓòÉ <hidden> Describe an object, given the HOB ΓòÉΓòÉΓòÉ
  5934.  
  5935. The address specified is a hob. 
  5936.  
  5937.  
  5938. ΓòÉΓòÉΓòÉ <hidden> Describe an object, given the HAR ΓòÉΓòÉΓòÉ
  5939.  
  5940. The address specified is a har. 
  5941.  
  5942.  
  5943. ΓòÉΓòÉΓòÉ <hidden> Describe an object, given the HAL ΓòÉΓòÉΓòÉ
  5944.  
  5945. The address specified is a hal. 
  5946.  
  5947.  
  5948. ΓòÉΓòÉΓòÉ 10.3.6. Show Process Contexts ΓòÉΓòÉΓòÉ
  5949.  
  5950. Select one: 
  5951.  
  5952.       Selecting 
  5953.  
  5954.       Example Output 
  5955.  
  5956.       Contents of Display 
  5957.  
  5958.       Related Topics 
  5959.  
  5960.  
  5961. ΓòÉΓòÉΓòÉ <hidden> Selecting the Show Process Contexts Display ΓòÉΓòÉΓòÉ
  5962.  
  5963. When you select the Show Process Contexts option of the Functions pull-down on 
  5964. a Detail window, information about the state of the memory object in all the 
  5965. processes is shown. 
  5966.  
  5967. This option is available only if you have selected a Hyperblock link linear 
  5968. address. 
  5969.  
  5970.  
  5971. ΓòÉΓòÉΓòÉ <hidden> Example of the Show Process Contexts Display ΓòÉΓòÉΓòÉ
  5972.  
  5973. Process contexts for 0001FCC0:
  5974. This address is in the 'Private Arena'.
  5975.                   VP linear/
  5976.  PID   Process    Physical   State   Description
  5977. 0030   PMX2       00D59000   pur     PMX2     #0001 (shared code)
  5978. 0034   REMMAIN    FF4114FC   vur     REMMAIN  #0001 (shared code)
  5979. 003A   VDM        0148F000   puw     aliased by process VDM
  5980. 0179   THESEUSn   01668000   pur     THESEUSn #0001 (shared code)
  5981.  
  5982.  
  5983. ΓòÉΓòÉΓòÉ <hidden> Contents of the Show Process Contexts Display ΓòÉΓòÉΓòÉ
  5984.  
  5985. The information presented on the Show Process Contexts display is as follows: 
  5986. (For "System Arena" linear addresses, only the "system" process is shown.) 
  5987.  
  5988.  Column       Meaning 
  5989.  PID          The PID of the process for this line. 
  5990.  Process      The name of the process on this line. 
  5991.  VP linear/Physical Either the Virtual Page Table Entry linear address or the 
  5992.               physical address of the page. Which one is indicated by the 
  5993.               content of the first of the State flags. 
  5994.  State        The state of the page within the context of this process: 
  5995.  
  5996.               Column 1 shows the type of address shown in the previous data: 
  5997.               p       The page is present. The address shown in the physical 
  5998.                       page address. 
  5999.               v       The page is not present. The address shown in the Virtual 
  6000.                       Page Table entry address. 
  6001.               ?       The page is not present and the address is not of a 
  6002.                       Virtual Page Table entry. 
  6003.  
  6004.               Column 2 shows the user/system state: 
  6005.               u       The page is a "user" page. 
  6006.               s       The page is a "system" page. 
  6007.  
  6008.               Column 3 shows the read/write state: 
  6009.               r       The page is a "read-only" page. 
  6010.               w       The page is a "read/write" page. 
  6011.  
  6012.                       Column 4 shows the detail page state: 
  6013.                       uncommitted         The page was uncommitted. 
  6014.                       special             The page was a special system page. 
  6015.                       allocate on demand  The page was an "allocate on demand" 
  6016.                                           page. 
  6017.                       claimable           The page was claimable. 
  6018.                       idle                The page was idle. 
  6019.                       to be loaded        The page was a "to be loaded" page. 
  6020.                       present             The page was present. 
  6021.                       resident            The page was resident. 
  6022.                       swapped             The page was swapped. 
  6023.                       UVirt               The page was a UVirt page. 
  6024.  Description  A description in English of the object that the page is a part 
  6025.               of. 
  6026.  
  6027.  
  6028. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6029.  
  6030.      Memory addressing 
  6031.  
  6032.      Memory states 
  6033.  
  6034.  
  6035. ΓòÉΓòÉΓòÉ 10.3.7. Memory Object Leak Detection ΓòÉΓòÉΓòÉ
  6036.  
  6037. Select one: 
  6038.  
  6039.       Selecting 
  6040.  
  6041.       Example Output 
  6042.  
  6043.       Contents of Display 
  6044.  
  6045.       Related Topics 
  6046.  
  6047.  
  6048. ΓòÉΓòÉΓòÉ <hidden> Selecting the Memory Object Leak Detection Display ΓòÉΓòÉΓòÉ
  6049.  
  6050. When you select the Memory Object Leak Detection option of the Functions 
  6051. pull-down on a Detail window, information about the changes of state of 
  6052. individual pages of the specified memory object are shown. 
  6053.  
  6054. This option is available only if you have selected a Hyperblock link linear 
  6055. address. 
  6056.  
  6057.  
  6058. ΓòÉΓòÉΓòÉ <hidden> Example of the Memory Object Leak Detection Display ΓòÉΓòÉΓòÉ
  6059.  
  6060. Leak detection for Process with PID = 067C, name = THESEUS3,
  6061.   memory object linear = 00010000, object has 48 pages:
  6062. < End of THESEUSn (v 3.00.000) output @ 15:57:38 on 5-16-1993 >
  6063. Use the 'Function' pull-down to start and stop the data collection.
  6064. Leak data captured.
  6065. Periodic update started with interval of 10 seconds.
  6066. < End of THESEUSn (v 3.00.000) output @ 15:57:41 on 5-16-1993 >
  6067. address    old state     new state
  6068. 00026000   not-present   present
  6069. < End of THESEUSn (v 3.00.000) output @ 15:57:51 on 5-16-1993 >
  6070.  
  6071. If the Show all page states option is chosen, then the following is produced: 
  6072.  
  6073. old pppppppppppppllllpplpppllllllplllplpplpppppppp
  6074. new pppppppppppppllllpplpppppllllplllplpplpppppppp
  6075. dif .......................AB.....................
  6076. dif address    old state     new state
  6077. A:  00027000   to be loaded  present
  6078. B:  00028000   to be loaded  present
  6079. < End of THESEUSn (v 3.00.000) output @ 15:58:01 on 5-16-1993 >
  6080.  
  6081.  
  6082. ΓòÉΓòÉΓòÉ <hidden> Contents of the Memory Object Leak Detection Display ΓòÉΓòÉΓòÉ
  6083.  
  6084. The information presented on the Memory Object Leak Detection display is as 
  6085. follows: 
  6086.  
  6087. If the Show all page states option is chosen, then the following information is 
  6088. produced: 
  6089.  
  6090.  old  The states of each page in the memory object in the reference data: 
  6091.       .       The page was uncommitted. 
  6092.       ?       The page was a special system page. 
  6093.       a       The page was an "allocate on demand" page. 
  6094.       c       The page was claimable. 
  6095.       i       The page was idle. 
  6096.       l       The page was a "to be loaded" page. 
  6097.       p       The page was present. 
  6098.       r       The page was resident. 
  6099.       s       The page was swapped. 
  6100.       u       The page was a UVirt page. 
  6101.  new  The states of each page in the memory object in the current data. The 
  6102.       state codes are the same as the old line. 
  6103.  dif  The pages which have different states are marked with a letter: 
  6104.       .       The page state did not change. 
  6105.       A       The page changed state. The letter shown is different for each 
  6106.               page which changed state. The letter is repeated on the 
  6107.               appropriate line of the summary information. 
  6108.  
  6109.  Uncommitted pages at the end of the memory object are not shown, in order to 
  6110.  reduce clutter on the screen. 
  6111.  
  6112.  Summary information is always presented: 
  6113.  
  6114.  Column       Meaning 
  6115.  address      The linear address of the page which has changed state. 
  6116.  old state    The state the page had in the reference data. 
  6117.               uncommitted         The page was uncommitted. 
  6118.               special             The page was a special system page. 
  6119.               allocate on demand  The page was an "allocate on demand" page. 
  6120.               claimable           The page was claimable. 
  6121.               idle                The page was idle. 
  6122.               to be loaded        The page was a "to be loaded" page. 
  6123.               present             The page was present. 
  6124.               resident            The page was resident. 
  6125.               swapped             The page was swapped. 
  6126.               UVirt               The page was a UVirt page. 
  6127.  new state    The state the page has in the current data. The states are the 
  6128.               same as the old state column. 
  6129.  
  6130.  
  6131. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6132.  
  6133.      Memory addressing 
  6134.  
  6135.      Memory states 
  6136.  
  6137.      Leak detection control 
  6138.  
  6139.      Manual data capture 
  6140.  
  6141.      Manual data compare 
  6142.  
  6143.  
  6144. ΓòÉΓòÉΓòÉ 10.3.8. Hot Spot Detection... ΓòÉΓòÉΓòÉ
  6145.  
  6146. Select one: 
  6147.  
  6148.       Selecting 
  6149.  
  6150.       Example Output 
  6151.  
  6152.       Contents of Display 
  6153.  
  6154.       Related Topics 
  6155.  
  6156.  
  6157. ΓòÉΓòÉΓòÉ <hidden> Cooling rate ΓòÉΓòÉΓòÉ
  6158.  
  6159. This option specifies the number of data collection intervals between color 
  6160. changes on the display. 
  6161.  
  6162. The default value 2.  The maximum is 9. 
  6163.  
  6164.  
  6165. ΓòÉΓòÉΓòÉ <hidden> Selecting the Hot Spot Detection display ΓòÉΓòÉΓòÉ
  6166.  
  6167. When you select the Hot Spot Detection option of the Functions pull-down on a 
  6168. Detail window, information about which bytes of data within a page are changing 
  6169. is displayed. The parameters on the display are: 
  6170.  
  6171.       Linear address 
  6172.       Cooling rate 
  6173.  
  6174.  The update rate can be changed by using the Options... dialog on the Contents 
  6175.  Update sub-menu of the Misc pull-down. 
  6176.  
  6177.  
  6178. ΓòÉΓòÉΓòÉ <hidden> Example of the Hot Spot Detection display ΓòÉΓòÉΓòÉ
  6179.  
  6180.      ||                 |||
  6181. 000                                    FFF
  6182. Hot Spot detection, linear = 7C7E5000, for process 'system':
  6183. 7C7E5000 (000) 00 00 00 00 00 00 00 00  00 00 00 00 00 00 10 00 *................*
  6184. 7C7E5010 (010) 67 00 00 CC E2 8B 00 FF  FF 03 40 71 E2 93 10 FF *g.........@q....*
  6185. 7C7E5020 (020) FF 03 00 30 E7 93 10 FF  FF FF 00 70 EA 82 00 77 *...0.......p...w*
  6186. ┬╖┬╖┬╖
  6187. 7C7E5FE0 (FE0) FF 0F 00 30 77 92 11 79  FF 0F 00 30 75 92 11 79 *...0w..y...0u..y*
  6188. 7C7E5FF0 (FF0) FF 0F 00 30 73 92 11 79  FF 0F 00 30 71 92 11 79 *...0s..y...0q..y*
  6189.  
  6190.  
  6191. ΓòÉΓòÉΓòÉ <hidden> Contents of the Hot Spot Detection Display ΓòÉΓòÉΓòÉ
  6192.  
  6193. The information presented on the Hot Spot Detection display is as follows: 
  6194.  
  6195.  line 1         The first line contains a graphic representation of which lines 
  6196.                 of data are changing. Each 16 byte line of data is represented 
  6197.                 by a vertical bar which is two pixels wide. The color is 
  6198.                 determined by how long it has been since the value of the byte 
  6199.                 of data changed. The colors are (from "hotest" to "coolest") 
  6200.                 red, orange, yellow, green, and blue. 
  6201.  line2          This line just gives an indication of where bytes 000 and FFF 
  6202.                 are on the graphic line. 
  6203.  remainder      The remainder of the display is just like the Show memory at a 
  6204.                 linear address... display. The bytes which have changed are 
  6205.                 colored in both the hex and character portions of the display. 
  6206.  
  6207.  When you place the mouse pointer on a vertical bar on line 1 and press mouse 
  6208.  button 1, the line of hex for that bar is scrolled to the top of the hex 
  6209.  portion of the display. 
  6210.  
  6211.  
  6212. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6213.  
  6214.      Memory addressing 
  6215.  
  6216.  
  6217. ΓòÉΓòÉΓòÉ 10.3.9. Working Set Parameters... ΓòÉΓòÉΓòÉ
  6218.  
  6219. The Working Set Parameters dialog of the Functions pull-down on the Working Set 
  6220. Detail window allows you to specify the data-collection parameters used during 
  6221. working set calculations. The parameters that can be specified are: 
  6222.  
  6223.      Data collection interval 
  6224.      Number of intervals in Working Set 
  6225.      Include 'System' pages 
  6226.      Show data at each interval 
  6227.      Save as defaults 
  6228.      Results presented in. 
  6229.  
  6230.  
  6231. ΓòÉΓòÉΓòÉ <hidden> Number of seconds per sample interval ΓòÉΓòÉΓòÉ
  6232.  
  6233. This option specifies the number of seconds for each working set data 
  6234. collection interval. 
  6235.  
  6236. The default is 5 seconds. The maximum value is 99 seconds. 
  6237.  
  6238. This value is specified in decimal. 
  6239.  
  6240.  
  6241. ΓòÉΓòÉΓòÉ <hidden> Specify the number of intervals for Working Set ΓòÉΓòÉΓòÉ
  6242.  
  6243. This option specifies the number of intervals (n) that constitute the working 
  6244. set. If a page has been accessed within the last n intervals, then it is 
  6245. considered to be within the working set. 
  6246.  
  6247. The default is 12 intervals (times the default interval of 5 seconds = 60 
  6248. seconds). 
  6249.  
  6250. This value is specified in decimal. 
  6251.  
  6252. This value can be changed while the data collection is running. 
  6253.  
  6254.  
  6255. ΓòÉΓòÉΓòÉ <hidden> Include 'System' pages ΓòÉΓòÉΓòÉ
  6256.  
  6257. If this option is selected, the system arena is included in the calculations. 
  6258.  
  6259. CAUTION:
  6260. This option is not recommended. Many system pages are referenced by THESEUS 
  6261. while it is doing the data collection and reduction, and it is impossible to 
  6262. differentiate between them and the ones referenced by the application of 
  6263. interest, so this tends to confuse the actual answers. 
  6264.  
  6265.  
  6266. ΓòÉΓòÉΓòÉ <hidden> Show data at each interval ΓòÉΓòÉΓòÉ
  6267.  
  6268. This option displays the results each interval. 
  6269.  
  6270. The changes in the working set during the running of a scenario are usually 
  6271. more interesting than the summary results. 
  6272.  
  6273. This option can be changed while the data collection is occurring. 
  6274.  
  6275.  
  6276. ΓòÉΓòÉΓòÉ <hidden> Save as defaults ΓòÉΓòÉΓòÉ
  6277.  
  6278. When this option is selected, the input values become the defaults for the 
  6279. working set parameters on subsequent creations of the working set window. 
  6280.  
  6281.  
  6282. ΓòÉΓòÉΓòÉ <hidden> Results presented in: ΓòÉΓòÉΓòÉ
  6283.  
  6284. The results can be presented in either: 
  6285.  
  6286.      Pages 
  6287.      Kilobytes 
  6288.      Megabytes 
  6289.  
  6290.  
  6291. ΓòÉΓòÉΓòÉ <hidden> Pages ΓòÉΓòÉΓòÉ
  6292.  
  6293. This option presents the results as the number of pages of memory used. 
  6294.  
  6295.  
  6296. ΓòÉΓòÉΓòÉ <hidden> Kilobytes ΓòÉΓòÉΓòÉ
  6297.  
  6298. This option presents the results as the number of kilobytes of memory used. 
  6299.  
  6300.  
  6301. ΓòÉΓòÉΓòÉ <hidden> Megabytes ΓòÉΓòÉΓòÉ
  6302.  
  6303. This option presents the results as the number of megabytes of memory used. 
  6304.  
  6305.  
  6306. ΓòÉΓòÉΓòÉ 10.3.10. Working Set Start ΓòÉΓòÉΓòÉ
  6307.  
  6308. This option starts collecting the information required to determine memory 
  6309. working set. 
  6310.  
  6311.  
  6312. ΓòÉΓòÉΓòÉ 10.3.11. Working Set Stop ΓòÉΓòÉΓòÉ
  6313.  
  6314. This option stops collecting the information required to determine memory 
  6315. working set. A final data-collection cycle occurs before the results are 
  6316. analyzed and displayed. 
  6317.  
  6318.  
  6319. ΓòÉΓòÉΓòÉ <hidden> Detail of Working Set (by Page) ΓòÉΓòÉΓòÉ
  6320.  
  6321. Select one: 
  6322.  
  6323.       Selecting 
  6324.  
  6325.       Example Output 
  6326.  
  6327.       Contents of Display 
  6328.  
  6329.       Related Topics 
  6330.  
  6331.  
  6332. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail of Working Set (by Page) display ΓòÉΓòÉΓòÉ
  6333.  
  6334. When you select the Show detail by Page option of the Functions pull-down on 
  6335. the Working Set Detail window, detail information about the working set is 
  6336. shown. Specifically, the pages referenced since the working set sampling began 
  6337. are shown. 
  6338.  
  6339.  
  6340. ΓòÉΓòÉΓòÉ <hidden> Example of the Detail of Working Set (by Page) Display ΓòÉΓòÉΓòÉ
  6341.  
  6342. Working Set detail for the Process with PID = 000E, name = 'THESEUSn':
  6343. Physical   hob  Time  State   Type     Description
  6344. 00060000  0382     1  A       DLL      SYSMONO  #0004 (shared)
  6345. 00068000  0383     1  A       Private  THESEUSn allocated it
  6346. 0006C000  0362     1  A       Private  THESEUSn #0001 (shared)
  6347. ┬╖┬╖┬╖
  6348. 00DCA000  00B3     1  A       DLL      DOSCALL1 #0005 (shared)
  6349. 00DE4000  031E     1  A       DLL      PMGRE    allocated it
  6350.  
  6351.   142 pages were marked 'A' (Accessed).
  6352.    17 pages were marked 'L' (Locked).
  6353.     0 pages were marked 'R' (Resident).
  6354. There were a total of 145 pages reported.
  6355.  
  6356.  
  6357. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detail of Working Set (by Page) display ΓòÉΓòÉΓòÉ
  6358.  
  6359. One line is displayed for each page in the working set: 
  6360.  
  6361.  Column        Meaning 
  6362.  Physical      The physical address of the page. 
  6363.  hob           The hob of the memory object that this page is a part of. 
  6364.  Time          Number of time intervals (in decimal) since the page was 
  6365.                referenced. A value of 1 indicates that the page was touched in 
  6366.                the last interval before data capturing was stopped. A value of 
  6367.                2 indicates that the page was touched in the next-to-last 
  6368.                interval before data capturing was stopped. 
  6369.  State         The state of this page: 
  6370.                A       The page has been accessed during the run. 
  6371.                L       The page is locked. 
  6372.                R       The page is resident. 
  6373.                F       The page is now free. 
  6374.                I       The page is idle 
  6375.                B       The page has a "bad hob" The hob value is too large to 
  6376.                        be able to access the Object Record in the Object Table. 
  6377.  Type          (This is only on the display if it was generated from a Working 
  6378.                Set for a Process display.) The type of object that this page is 
  6379.                a part of. The values are: 
  6380.                System              The page is from the system arena. 
  6381.                Private             The page is from the private arena, is an 
  6382.                                    instance object from a system DLL, or is an 
  6383.                                    object from a DLL which is not a system DLL. 
  6384.                DLL                 The page is from the shared arena and is for 
  6385.                                    a system DLL. The system DLLs are those that 
  6386.                                    are part of the system and are not 
  6387.                                    considered to be part of the application. 
  6388.                Ignore              The page is not accessible from the 
  6389.                                    specified process and is ignored. (This is a 
  6390.                                    DLL page which is mapped from the system 
  6391.                                    wide section of the Page Directory.) 
  6392.                Error               An error has occurred while processing the 
  6393.                                    page. The hob may be out of range. The page 
  6394.                                    was assigned to the system. 
  6395.  Description   A description in English of the object that the page is a part 
  6396.                of. 
  6397.  
  6398.  A summary of the number of pages in each page State is given. Then the total 
  6399.  number of pages reported is given. (Since a page may be in multiple states, 
  6400.  the total of the pages in each state is probably not the same as the total 
  6401.  reported.) 
  6402.  
  6403.  
  6404. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6405.  
  6406.      Memory analysis 
  6407.  
  6408.      Memory addressing 
  6409.  
  6410.      System Working Set 
  6411.  
  6412.  
  6413. ΓòÉΓòÉΓòÉ <hidden> Detail of Working Set (by Object) ΓòÉΓòÉΓòÉ
  6414.  
  6415. Select one: 
  6416.  
  6417.       Selecting 
  6418.  
  6419.       Example Output 
  6420.  
  6421.       Contents of Display 
  6422.  
  6423.       Related Topics 
  6424.  
  6425.  
  6426. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail of Working Set (by Object) display ΓòÉΓòÉΓòÉ
  6427.  
  6428. When you select the Show detail by Object option of the Functions pull-down on 
  6429. the Working Set Detail window, detail information about the working set is 
  6430. shown. Specifically, all the memory objects from the private arena are shown, 
  6431. along with ones from the shared and system arenas that have had pages 
  6432. referenced since the run began. 
  6433.  
  6434.  
  6435. ΓòÉΓòÉΓòÉ <hidden> Example of the Detail of Working Set (by Object) Display ΓòÉΓòÉΓòÉ
  6436.  
  6437. Working Set detail for the Process with PID = 0060, name = 'THESEUSn':
  6438. Objects from the 'private' arena:
  6439.                  ---accessed---     pages in   avg.
  6440.   linear   hob      no      yes  working set   time  Description
  6441. 00010000  04CF      32       18           18    1.1  THESEUSn #0001 (shared code)
  6442. 00050000  047C      21        8            8    1    THESEUSn #0002 (private)
  6443. 00070000  0475       1        0            0          User Environment (hmte)
  6444. ┬╖┬╖┬╖
  6445. 01C80000  048F       1        0            0          THESEUSn allocated it
  6446.                     92       44           44    1.0  Total
  6447.  
  6448. Objects from the 'shared' arena:
  6449.                  ---accessed---     pages in   avg.
  6450.   linear   hob      no      yes  working set   time  Description
  6451. 16350000  04DF       0        1            1    1    THESEUSn allocated it
  6452. 163E0000  04BB       1        1            1    1    SYSMONO  #0004 (shared data)
  6453. 16420000  04AE       0        1            1    1    PMGRE    allocated it
  6454. ┬╖┬╖┬╖
  6455. 1BFF0000  0074       0        1            1    1    infoseg (local or global) (owner)
  6456.                   1052      254          254    1.0  Total
  6457.  
  6458. Objects from the 'system' arena:
  6459.                  ---accessed---     pages in   avg.
  6460.   linear   hob      no      yes  working set   time  Description
  6461. 7DC00000  002A       5       13           13    1    PG Compat. region page table (owner)
  6462.                      5       13           13    1.0  Total
  6463.  
  6464.  
  6465. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detail of Working Set (by Object) Display ΓòÉΓòÉΓòÉ
  6466.  
  6467. One line is displayed for each object: 
  6468.  
  6469.  Column            Meaning 
  6470.  linear            The linear address of the memory object. 
  6471.  hob               The hob of the memory object. 
  6472.  accessed - no     The number of pages that are committed in the object that 
  6473.                    were not accessed since the start of the run. 
  6474.  accessed - yes    The number of pages that are committed in the object that 
  6475.                    were accessed since the start of the run. 
  6476.  pages in working set The number of pages that were in the working set. 
  6477.  avg. time         The average number of intervals since the pages were 
  6478.                    accessed. If all the pages were accessed at the same time, 
  6479.                    the time is output without a decimal point. 
  6480.  Description       A description in English of the object. 
  6481.  
  6482.  The totals for each arena is shown at the end of the arena's output. 
  6483.  
  6484.  
  6485. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6486.  
  6487.      Memory analysis 
  6488.  
  6489.      Memory addressing 
  6490.  
  6491.      System Working Set 
  6492.  
  6493.      Summary by Process 
  6494.  
  6495.  
  6496. ΓòÉΓòÉΓòÉ 10.3.12. Show detail by Page ΓòÉΓòÉΓòÉ
  6497.  
  6498. Which display is presented depends on the Detail window from which this option 
  6499. is selected: 
  6500.  
  6501.       Working Set window 
  6502.       Swapper window 
  6503.  
  6504.  
  6505. ΓòÉΓòÉΓòÉ 10.3.13. Show detail by Object ΓòÉΓòÉΓòÉ
  6506.  
  6507. Which display is presented depends on the Detail window from which this option 
  6508. is selected: 
  6509.  
  6510.       Working Set window 
  6511.  
  6512.  
  6513. ΓòÉΓòÉΓòÉ 10.3.14. Summary by Process ΓòÉΓòÉΓòÉ
  6514.  
  6515. Select one: 
  6516.  
  6517.       Selecting 
  6518.  
  6519.       Example Output 
  6520.  
  6521.       Contents of Display 
  6522.  
  6523.       Related Topics 
  6524.  
  6525.  
  6526. ΓòÉΓòÉΓòÉ <hidden> Selecting the Summary by Process display ΓòÉΓòÉΓòÉ
  6527.  
  6528. When you select the Show summary by process option of the Functions pull-down 
  6529. on the System Working Set Detail window, summary information about the working 
  6530. set is shown. Specifically, the amount of memory, both private and shared, used 
  6531. by each process is shown, along with the amount used from the system and shared 
  6532. arenas. 
  6533.  
  6534.  
  6535. ΓòÉΓòÉΓòÉ <hidden> Example of the Summary by Process Display ΓòÉΓòÉΓòÉ
  6536.  
  6537. Working Set summary for the System (by Process):
  6538. -------- Private --------- ---------- Shared ---------
  6539. - Accessed - Working  Avg. - Accessed - Working  Avg.
  6540.     No    Yes    set  time     No    Yes    set  time  PID Process name
  6541.      0      2      2   1.0      0      0      0       0002 LOGDAEM
  6542.     21      8      8   1.3      0      4      4   1.5 0004 PMSHL32
  6543.      4      2      2   2.0      0      0      0       0006 WHATEVER
  6544.     41     37     37   1.5      0      0      0       0009 VDM
  6545.     50     10     10   1.0      0      0      0       000A AAA
  6546.     32     43     43   1.9      1      6      6   2.0 000C TESTING
  6547.    103     19     19   1.6      0      0      0       000D TESTING
  6548.     81     20     20   2.0      0      0      0       000E WHAT
  6549.      9     23     23   1.2      0      3      3   2.0 001F IPFCPREP
  6550.     57     41     41   1.3      0      3      3   1.0 0020 THESEUSn
  6551.    268   1370   1370   1.0   1071    292    292   1.7      System
  6552. ------ ------ ------       ------ ------ ------
  6553.    666   1575   1575         1072    308    308            Totals
  6554.             2      2   Free RAM
  6555. ------ ------ ------
  6556.   1738   1885   1885   Pvt + Shr + Free
  6557.  
  6558.  
  6559. ΓòÉΓòÉΓòÉ <hidden> Contents of the Summary by Process Display ΓòÉΓòÉΓòÉ
  6560.  
  6561. One line is displayed for each process: 
  6562.  
  6563.  Column            Meaning 
  6564.  Private           Memory from the private arena. For the System line, this is 
  6565.                    memory from the system arena. 
  6566.  Shared            Instance data from the shared arena. For the System line, 
  6567.                    this is shared memory from the shared arena. 
  6568.  Accessed - No     The number of pages that are committed in the objects for 
  6569.                    this process that were not accessed since the start of the 
  6570.                    run. 
  6571.  Accessed - Yes    The number of pages that are committed in the objects for 
  6572.                    this process that were accessed since the start of the run. 
  6573.  Working set       The number of pages that were in the working set. 
  6574.  Avg. time         The average number of intervals since the pages were 
  6575.                    accessed. 
  6576.  PID               The PID of the process for this line. 
  6577.  Process name      The name of the process on this line. 
  6578.  
  6579.  Totals for each column are generated and shown. 
  6580.  
  6581.  The line labeled Free RAM is memory that has been accessed during the run, but 
  6582.  is currently marked Free. 
  6583.  
  6584.  The line labeled Pvt + Shr + Free is a total of all the data. 
  6585.  
  6586.  
  6587. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6588.  
  6589.      Memory analysis 
  6590.  
  6591.      Memory addressing 
  6592.  
  6593.      System Working Set 
  6594.  
  6595.      Detail by Object 
  6596.  
  6597.  
  6598. ΓòÉΓòÉΓòÉ <hidden> Detail of SWAPPER.DAT (by Page) ΓòÉΓòÉΓòÉ
  6599.  
  6600. Select one: 
  6601.  
  6602.       Selecting 
  6603.  
  6604.       Example Output 
  6605.  
  6606.       Contents of Display 
  6607.  
  6608.       Related Topics 
  6609.  
  6610.  
  6611. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail of SWAPPER.DAT (by Page) display ΓòÉΓòÉΓòÉ
  6612.  
  6613. When you select the Show detail by Page option of the Functions pull-down on 
  6614. the SWAPPER.DAT Analysis Detail window, detail information about the make up of 
  6615. the SWAPPER.DAT file will be shown. Specifically, the pages that have been 
  6616. paged out are shown. 
  6617.  
  6618.  
  6619. ΓòÉΓòÉΓòÉ <hidden> Example of the SWAPPER.DAT contents (by page) Display ΓòÉΓòÉΓòÉ
  6620.  
  6621. SWAPPER.DAT contents by page:
  6622. frame        vp   hob    linear  Process  Description
  6623.  0000  FF4132EE  01C1  00030000     01BB  HARDERR  #0003 (private)
  6624.  0001  FF417966  039F  000C1000     0379  PMD      #000C (private)
  6625. ┬╖┬╖┬╖
  6626.  0020  FF41916C  03DE  00047000     03D4  THESEUSn #0002 (private)
  6627.  0021 free
  6628.  0022  FF419194  03DE  0004B000     03D4  THESEUSn #0002 (private)
  6629. ┬╖┬╖┬╖
  6630.  003B  FF419720  0421  18523000   shared  THESEUSR #0003 (shared)
  6631.  003C to 003F (4 frames) are free
  6632.  0040  FF40E7EE  0016  FFFB0000   system  os2krnl load image (owner)
  6633. ┬╖┬╖┬╖
  6634.  0229  FF412146  017C  19F40000 inst0114  OS2CHAR  #0000 (private)
  6635.  
  6636.  
  6637. ΓòÉΓòÉΓòÉ <hidden> Contents of the SWAPPER.DAT contents (by page) display ΓòÉΓòÉΓòÉ
  6638.  
  6639. One line is displayed for each frame in the SWAPPER.DAT file: 
  6640.  
  6641.  Column         Meaning 
  6642.  frame          Disk frame number.  Each frame is 4KB. 
  6643.  vp             The linear address of the Virtual Page Table entry for this 
  6644.                 page. 
  6645.  hob            The hob of the page. 
  6646.  linear         The linear address of the page. 
  6647.  Process        The content of this column is dependent on the type of page: 
  6648.                 hob                 This is a page from a private arena. The 
  6649.                                     value is the hob of the PTDA of the process 
  6650.                                     that owns the page. 
  6651.                 shared              This is a shared page from the shared 
  6652.                                     arena. 
  6653.                 insthob             This is an instance data page from the 
  6654.                                     shared arena. The hob is for the PTDA of 
  6655.                                     the process. 
  6656.                 system              This is a page from the system arena. 
  6657.  Description    A description in English of the object. 
  6658.  
  6659.  Frames that are not in use have "free" after the frame number. If there are 
  6660.  multiple free frames together, only one line is shown with the starting and 
  6661.  ending frame numbers. The number of frames is also shown. 
  6662.  
  6663.  
  6664. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6665.  
  6666.      Memory analysis 
  6667.  
  6668.      Memory addressing 
  6669.  
  6670.  
  6671. ΓòÉΓòÉΓòÉ 10.3.15. Leak Detection Control... ΓòÉΓòÉΓòÉ
  6672.  
  6673. The Leak Detection Control dialog of the Functions pull-down on the Memory Leak 
  6674. Detection Detail window allows you to control the characteristics of the leak 
  6675. detection that is taking place. The parameters that can be specified are: 
  6676.  
  6677.      Use previous sample as base. 
  6678.      Show data from next collection cycle. 
  6679.      Show all pages states. 
  6680.  
  6681.  
  6682. ΓòÉΓòÉΓòÉ <hidden> Use previous sample as base ΓòÉΓòÉΓòÉ
  6683.  
  6684. When this option is selected, each periodic update will use the data collected 
  6685. on the previous cycle as the base data against which the comparison is done. 
  6686.  
  6687. When this option is not selected, the reference data comes from: 
  6688.  
  6689.      The data collected when Start Periodic Leak Detection was selected. 
  6690.      The data collected when Capture Leak Reference Data was selected. 
  6691.  
  6692.  
  6693. ΓòÉΓòÉΓòÉ <hidden> Show data from next collection cycle ΓòÉΓòÉΓòÉ
  6694.  
  6695. When this option is selected, all the data collected is displayed, as well as 
  6696. any differences. 
  6697.  
  6698. When this option is not selected, only the differences are shown. 
  6699.  
  6700.  
  6701. ΓòÉΓòÉΓòÉ <hidden> Show all pages states ΓòÉΓòÉΓòÉ
  6702.  
  6703. When this option is selected, the state of every page in the object is shown. 
  6704. The previous state, the new state and differences are shown on three separate 
  6705. lines.  There 128 page states shown on each group of three lines. 
  6706.  
  6707. When this option is not selected, only the page differences are shown. 
  6708.  
  6709.  
  6710. ΓòÉΓòÉΓòÉ 10.3.16. Start Periodic Leak Detection ΓòÉΓòÉΓòÉ
  6711.  
  6712. This option starts a periodic update of the Memory Leak Detection window. The 
  6713. Options dialog of the Contents Update sub-menu of the Misc pull-down can be 
  6714. used to select the update interval and window update characteristics. 
  6715.  
  6716.  
  6717. ΓòÉΓòÉΓòÉ 10.3.17. Stop Periodic Leak Detection ΓòÉΓòÉΓòÉ
  6718.  
  6719. This option stops the periodic update of the Memory Leak Detection window. 
  6720.  
  6721.  
  6722. ΓòÉΓòÉΓòÉ 10.3.18. Capture Leak Reference Data ΓòÉΓòÉΓòÉ
  6723.  
  6724. This option causes memory leak detection data to be captured. It can be used 
  6725. for a later Compare Present Leak Data to generate memory leak detection data. 
  6726.  
  6727. This option can be used at any time, even when periodic updates are being done. 
  6728. This data then becomes the reference data for the next update cycle. 
  6729.  
  6730.  
  6731. ΓòÉΓòÉΓòÉ 10.3.19. Compare Present Leak Data ΓòÉΓòÉΓòÉ
  6732.  
  6733. This option causes memory leak detection data to be generated. 
  6734.  
  6735. This option can be used at any time, even when periodic updates are being done. 
  6736.  
  6737.  
  6738. ΓòÉΓòÉΓòÉ 10.4. Secondary ΓòÉΓòÉΓòÉ
  6739.  
  6740. The Secondary pull-down includes options that show the working set of the 
  6741. linear pages, as opposed to the physical pages. 
  6742.  
  6743. Functions available are: 
  6744.  
  6745.  Usage Type Display 
  6746.            Shows the working set of the linear pages, broken down by "usage 
  6747.            type". 
  6748.  Last Referenced Graphic 
  6749.            Shows the working set of the linear pages as a "color strip" 
  6750.            display, graphically showing the time since last refernce of a page. 
  6751.  
  6752.  
  6753. ΓòÉΓòÉΓòÉ 10.4.1. Usage Type Display ΓòÉΓòÉΓòÉ
  6754.  
  6755. Select one: 
  6756.  
  6757.       Selecting 
  6758.  
  6759.       Example Output 
  6760.  
  6761.       Contents of Display 
  6762.  
  6763.       Related Topics 
  6764.  
  6765.  
  6766. ΓòÉΓòÉΓòÉ <hidden> Selecting the Usage Type Display ΓòÉΓòÉΓòÉ
  6767.  
  6768. When you select the Usage Type Display from the Secondary column of the Process 
  6769. Working Set display, information about the working set is shown, broken down by 
  6770. "usage type". 
  6771.  
  6772. The different "usage types" are: code, data, stack and allocated. 
  6773.  
  6774. The results are presented in the same units as the parent display. 
  6775.  
  6776.  
  6777. ΓòÉΓòÉΓòÉ <hidden> Example of the Usage Type Display ΓòÉΓòÉΓòÉ
  6778.  
  6779. Working Set by Usage Type for the Process with PID = 00AA, name = 'THESEUSn':
  6780.     time  -- code --  -- data --  - stack --   allocated  - total --
  6781. hh:mm:ss   now    ws   now    ws   now    ws   now    ws   now    ws
  6782. 10:37:47   105   105    47    47     1     1    97    97   250   250
  6783. 10:37:52    98   117    47    49     1     1   132   142   278   309
  6784. 10:37:57    99   117    47    49     1     1   136   142   283   309
  6785. 10:38:02    89   117    43    49     1     1   129   142   262   309
  6786.  
  6787.  
  6788. ΓòÉΓòÉΓòÉ <hidden> Contents of the Usage Type Display ΓòÉΓòÉΓòÉ
  6789.  
  6790. The information presented on the Usage Type display is as follows: 
  6791.  One line is displayed for each time interval: 
  6792.  
  6793.  Column          Meaning 
  6794.  time            Time of the sample in hours:minutes:seconds. 
  6795.  code            Memory objects which are the executable portions of modules. 
  6796.  data            Memory objects which are the data portions of modules. 
  6797.  stack           Memory objects which are marked as "stack" in their memory 
  6798.                  control blocks. 
  6799.  allocated       Memory objects which are marked as "api allocated" in their 
  6800.                  memory control blocks. 
  6801.  total           Total for the previous columns 
  6802.  now             The amount of memory referenced in the previous time interval 
  6803.                  for the applicable memory type. 
  6804.  ws              The amount of memory in the working set for the applicable 
  6805.                  memory type. 
  6806.  
  6807.  Note:   The total from this display will be different that the total of the 
  6808.  parent display because the Page Table pages are not included on this display 
  6809.  and they are on the parent. 
  6810.  
  6811.  
  6812. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6813.  
  6814.      Memory addressing 
  6815.  
  6816.      Process Working Set 
  6817.  
  6818.      Last Referenced Graphic 
  6819.  
  6820.  
  6821. ΓòÉΓòÉΓòÉ 10.4.2. Last Referenced Graphic ΓòÉΓòÉΓòÉ
  6822.  
  6823. Select one: 
  6824.  
  6825.       Selecting 
  6826.  
  6827.       Using the Display 
  6828.  
  6829.       Example Output 
  6830.  
  6831.       Contents of Display 
  6832.  
  6833.       Related Topics 
  6834.  
  6835.  
  6836. ΓòÉΓòÉΓòÉ <hidden> Selecting the Last Referenced Graphic Display ΓòÉΓòÉΓòÉ
  6837.  
  6838. When you select the Last Referenced Graphic from the Secondary column of the 
  6839. Process Working Set display, information about the working set of the process 
  6840. is displayed in a graphic representation. The linear address space is shown as 
  6841. two strips of color bars. The time since last reference is shown as a color (or 
  6842. bar height on monochrome display). 
  6843.  
  6844.  
  6845. ΓòÉΓòÉΓòÉ <hidden> Using the Last Referenced Graphic Display ΓòÉΓòÉΓòÉ
  6846.  
  6847. The pointer assumes different shapes as it is moved through the different zones 
  6848. of the display: 
  6849.  
  6850.      When in one of the color strips, it will be an x, with the "hot spot" 
  6851.       being at the center of the x. (The x has a vertical line through it which 
  6852.       will "disappear" when you have aligned the "hot spot" exactly with a 
  6853.       bar.) 
  6854.      When in the zoom control area, it will be a +. When you press mouse 
  6855.       button 1, small arrows will be added to the + to indicate which end of 
  6856.       which zoom control line is being moved. 
  6857.  
  6858.  If you press mouse button 1 while the pointer is over one of the color strips, 
  6859.  the address associated with that bar (horizontal position in the strip) will 
  6860.  be show. If you are in the summary strip (line C in the example), the address 
  6861.  will be shown above the strip (line B of the example). If you are in the 
  6862.  zoomed strip (line E in the example), the address will be shown below the 
  6863.  strip (line F of the example) and an English description of the memory object 
  6864.  will be shown on line G. 
  6865.  
  6866.  If you double click mouse button 1, a list of memory objects around the bar 
  6867.  selected will be shown. 
  6868.  
  6869.  If you double click mouse button 2, a description of the memory object will be 
  6870.  shown. 
  6871.  
  6872.  
  6873. ΓòÉΓòÉΓòÉ <hidden> Example of the Last Referenced Graphic Display ΓòÉΓòÉΓòÉ
  6874.  
  6875.  
  6876. ΓòÉΓòÉΓòÉ <hidden> Contents of the Last Referenced Graphic Display ΓòÉΓòÉΓòÉ
  6877.  
  6878. The information presented on the Last Referenced Graphic display is as follows: 
  6879.  
  6880.  Line  Meaning 
  6881.  A     The high and low values of the linear address space available to user 
  6882.        processes is shown. 
  6883.  
  6884.        For color displays, a set of boxes showing the "color temeratures" is 
  6885.        also shown. The "hottest" color (red) is on the left and the "coolest" 
  6886.        color (blue) is on the right. 
  6887.  
  6888.        If a bar from line C has been selected by mouse button one, its address 
  6889.        will be shown in the center of this line. 
  6890.  B     A set of "tick marks" showing the 64M points of the address space. For 
  6891.        OS/2 Warp and later, the part of the address space that has common page 
  6892.        tables (the area between 320M and 512M) has a line through the ticks, to 
  6893.        remind you that there is something different about it. (Remember that it 
  6894.        cannot be determined which process referenced a page in this area.) 
  6895.  C     A summary of the working set across the entire 512M address space. Each 
  6896.        bar represents the "average temperature" of the active pages within each 
  6897.        1M region. 
  6898.  D     The zoom control lines. You can control the zoomed area (line E) by 
  6899.        grabbing an end of either of the zoom control lines and moving it to the 
  6900.        desired place and then dropping it. 
  6901.  E     The zoomed area. This is a variable sized and positioned area which 
  6902.        shows more detail about the portion of the address space which is 
  6903.        selected. If a bar has been selected by mouse button 1, the extent of 
  6904.        the memory object is shown by a gray rectangle. 
  6905.  F     The low and high address (in hexadecimal) of the portion of the address 
  6906.        space shown on line E. If a bar from line E has been selected by mouse 
  6907.        button one, its address will be shown in the center of this line. 
  6908.  G     A description in English of the object selected from line E. 
  6909.  
  6910.  The "temperature" of a page is computed by how long it has been since the page 
  6911.  was last referenced. The page is lowered by one temperature color for each two 
  6912.  intervals since it was referenced. 
  6913.  
  6914.  On systems with monochrome displays, the bars are different lengths instead of 
  6915.  different colors. They will start off long and as the page "cools", they get 
  6916.  shorter. 
  6917.  
  6918.  
  6919. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  6920.  
  6921.      Memory addressing 
  6922.  
  6923.      Process Working Set 
  6924.  
  6925.      Usage Type Display 
  6926.  
  6927.  
  6928. ΓòÉΓòÉΓòÉ 10.5. Output ΓòÉΓòÉΓòÉ
  6929.  
  6930. The Output pull-down includes options that allow saving or printing the current 
  6931. display. 
  6932.  
  6933. Functions available are: 
  6934.  
  6935.  Save as... 
  6936.            Allows saving the display to a file. 
  6937.  Print all 
  6938.            Allows printing the display. 
  6939.  
  6940.  
  6941. ΓòÉΓòÉΓòÉ 10.5.1. Save as... ΓòÉΓòÉΓòÉ
  6942.  
  6943. The Save as dialog of the Output pull-down on the Detail window allows you to 
  6944. save the contents of the window to a file. 
  6945.  
  6946. To make your selections, either: 
  6947.  
  6948.      Use the mouse to point to the disk, directory, or file name 
  6949.      Use the tab key to move between the lists and the up/down arrow keys to 
  6950.       move within the list. 
  6951.  
  6952.  
  6953. ΓòÉΓòÉΓòÉ <hidden> Filename: ΓòÉΓòÉΓòÉ
  6954.  
  6955. Use this option to specify a file name. If you do not specify a fully qualified 
  6956. file name, it is qualified with the "Current Directory" displayed above it. 
  6957.  
  6958. Note:   The name is converted to upper case before using. 
  6959.  
  6960.  
  6961. ΓòÉΓòÉΓòÉ <hidden> Directories ΓòÉΓòÉΓòÉ
  6962.  
  6963. This field displays the list of disks and directories available for selection. 
  6964. Select one by either: 
  6965.  
  6966.      Double-clicking mouse button 1 
  6967.      Moving the cursor (using the up/down arrow keys) and then pressing the 
  6968.       Enter key. 
  6969.  The file or directory names are retrieved and displayed. 
  6970.  
  6971.  
  6972. ΓòÉΓòÉΓòÉ <hidden> Files ΓòÉΓòÉΓòÉ
  6973.  
  6974. This field displays the list of files in the selected directory. Select one by 
  6975. single-clicking mouse button 1. 
  6976.  
  6977. Double-clicking mouse button 1 is equivalent to selecting the file name and 
  6978. pressing the "Save" key. 
  6979.  
  6980.  
  6981. ΓòÉΓòÉΓòÉ <hidden> Save ΓòÉΓòÉΓòÉ
  6982.  
  6983. When you press the Save button, the window is saved to the specified file. 
  6984.  
  6985.  
  6986. ΓòÉΓòÉΓòÉ 10.5.2. Print all ΓòÉΓòÉΓòÉ
  6987.  
  6988. The Print all option of the Output pull-down on the Detail window allows you to 
  6989. print the contents of the window. 
  6990.  
  6991. The output goes to the printer identified as PRN. 
  6992.  
  6993. If the longest line is more than 80 characters, then a "go to condensed mode" 
  6994. command (hex 15) is the first character output to the printer. Likewise, a "go 
  6995. to normal mode" command (hex 18) is the last character output to the printer. 
  6996.  
  6997.  
  6998. ΓòÉΓòÉΓòÉ 10.6. Mark/Find ΓòÉΓòÉΓòÉ
  6999.  
  7000. The Mark/Find pull-down includes options that allow text scans of the display 
  7001. window and clipboard operations. 
  7002.  
  7003. Functions available are: 
  7004.  
  7005.  Find... 
  7006.            Allows finding a specified ASCII string on the display. 
  7007.  Find again 
  7008.            Repeats the previous find operation, starting with the current 
  7009.            cursor location. 
  7010.  Mark an area 
  7011.            Marks an area for storing into the clipboard or printing. 
  7012.  Copy selection to clipboard 
  7013.            Copies the current marked area into the clipboard. 
  7014.  Print selection 
  7015.            Prints only the current marked area. 
  7016.  
  7017.  
  7018. ΓòÉΓòÉΓòÉ 10.6.1. Find... ΓòÉΓòÉΓòÉ
  7019.  
  7020. The Find dialog of the Mark/Find pull-down on the Detail window allows you to 
  7021. find a specified ASCII text string in the information displayed in the window. 
  7022.  
  7023. There is one entry field on the dialog: 
  7024.  
  7025.  Specify the text to be found: 
  7026.            Specify the text you wish to search for. 
  7027.  
  7028.  There are two options on the dialog: 
  7029.  
  7030.  Case sensitive? 
  7031.            Specify case sensitivity of the search. 
  7032.  Move pointer onto found text? 
  7033.            Specify if the pointer is to be moved. 
  7034.  
  7035.  
  7036. ΓòÉΓòÉΓòÉ <hidden> Specify the text to be found: ΓòÉΓòÉΓòÉ
  7037.  
  7038. Specify the text which you wish to search for. The text must all be on one line 
  7039. in the window. There are no "wild card" nor "don't care" characters. 
  7040.  
  7041.  
  7042. ΓòÉΓòÉΓòÉ <hidden> Case sensitive? ΓòÉΓòÉΓòÉ
  7043.  
  7044. If this check box is selected, the text is searched using the supplied case. 
  7045.  
  7046. If this check box is not selected, the text is searched without regard to the 
  7047. case in both the supplied text and the window text. 
  7048.  
  7049.  
  7050. ΓòÉΓòÉΓòÉ <hidden> Move pointer onto found text? ΓòÉΓòÉΓòÉ
  7051.  
  7052. If this check box is selected, the pointer is moved to the center of the text 
  7053. which is found. 
  7054.  
  7055. If this check box is not selected, the pointer is not moved. 
  7056.  
  7057.  
  7058. ΓòÉΓòÉΓòÉ 10.6.2. Find again ΓòÉΓòÉΓòÉ
  7059.  
  7060. The Find again option of the Mark/Find pull-down on the Detail window allows 
  7061. you to continue the ASCII text scan previously started. 
  7062.  
  7063. The text scan continues from the current cursor location. 
  7064.  
  7065.  
  7066. ΓòÉΓòÉΓòÉ 10.6.3. Mark an area ΓòÉΓòÉΓòÉ
  7067.  
  7068. The Mark an area option of the Mark/Find pull-down on the Detail window allows 
  7069. you to mark a rectangle, which can then be copied into the clipboard or 
  7070. printed. 
  7071.  
  7072. The current status of this mode is denoted by a check mark on the pull-down. 
  7073. Selecting this option reverses the setting. 
  7074.  
  7075. When you select this option, the operation of the buttons on the mouse change. 
  7076. Position the pointer to one of the corners of the area to be marked. When you 
  7077. press the button, it marks one corner of the rectangle. As you drag the 
  7078. pointer, the rectangle is marked out, using the current pointer position as the 
  7079. "opposite" corner. When you release the button, the rectangle is frozen and the 
  7080. operation of the buttons reverts back to the default mode. 
  7081.  
  7082.  
  7083. ΓòÉΓòÉΓòÉ 10.6.4. Copy selection to clipboard ΓòÉΓòÉΓòÉ
  7084.  
  7085. The Copy selection to clipboard option of the Mark/Find pull-down on the Detail 
  7086. window allows you to copy the marked rectangle into the clipboard. The area can 
  7087. be either the one marked with the Mark an area option or a hyperblock link that 
  7088. has been selected. 
  7089.  
  7090. The "text" portion of the clipboard is the only one updated. 
  7091.  
  7092.  
  7093. ΓòÉΓòÉΓòÉ 10.6.5. Print selection ΓòÉΓòÉΓòÉ
  7094.  
  7095. The Print selection option of the Mark/Find pull-down on the Detail window 
  7096. allows you to send the marked rectangle to the printer. The area can be either 
  7097. the one marked with the Mark an area option or a hyperblock link that has been 
  7098. selected. 
  7099.  
  7100. The output goes to the printer identified as PRN. 
  7101.  
  7102. If the rectangle is more than 80 characters wide, then a "go to condensed mode" 
  7103. command (hex 15) is the first character output to the printer. Likewise, a "go 
  7104. to normal mode" command (hex 18) is the last character output to the printer. 
  7105.  
  7106.  
  7107. ΓòÉΓòÉΓòÉ 10.7. Misc ΓòÉΓòÉΓòÉ
  7108.  
  7109. The Misc pull-down includes options that allow control of double-click 
  7110. operations and font specification. 
  7111.  
  7112. Functions available are: 
  7113.  
  7114.  Unselect 'link' 
  7115.            Unselects the currently selected hyperblock link. 
  7116.  Send output to the same window 
  7117.            Controls where the output from the mouse button "double-click" is 
  7118.            sent. 
  7119.  Double-click options... 
  7120.            Allows control of the action taken when mouse button 1 or 2 is 
  7121.            double-clicked. 
  7122.  Font for this window... 
  7123.            Specifies an alternate font for this window. 
  7124.  Contents Update 
  7125.            Specifies control, start and stop of periodic updates. 
  7126.  
  7127.  
  7128. ΓòÉΓòÉΓòÉ 10.7.1. Unselect 'link' ΓòÉΓòÉΓòÉ
  7129.  
  7130. The Unselect 'link' option of the Misc pull-down on the Detail window allows 
  7131. you to unselect the currently selected hyperblock link. This also causes the 
  7132. pop-up menu to revert back to the mode it had before the link was selected. 
  7133.  
  7134.  
  7135. ΓòÉΓòÉΓòÉ 10.7.2. Send output to the same window ΓòÉΓòÉΓòÉ
  7136.  
  7137. The Send output to the same window option of the Misc pull-down on the Detail 
  7138. window allows you to control where the output from mouse button "double-click" 
  7139. will go. 
  7140.  
  7141. When this option is chosen, "double-click" output is added to the current 
  7142. window. A check mark on the pull-down indicates this mode is active. 
  7143.  
  7144. If this option is not chosen, then "double-click" output is sent to a new 
  7145. window. No check mark appears on the pull-down when this mode is active. 
  7146.  
  7147. Initially, the option is not set. 
  7148.  
  7149.  
  7150. ΓòÉΓòÉΓòÉ 10.7.3. Double-click options... ΓòÉΓòÉΓòÉ
  7151.  
  7152. The Double-click options dialog of the Misc pull-down on the Detail window 
  7153. allows you to specify the action taken when you double-click mouse button 1 
  7154. while the pointer is over the address of a control block that THESEUS cannot 
  7155. format. 
  7156.  
  7157. The display generated is referred to in the helps as a "General memory 
  7158. display." 
  7159.  
  7160. The default "description" action for mouse button 2 can also be selected. 
  7161.  
  7162.  
  7163. ΓòÉΓòÉΓòÉ <hidden> Show description ΓòÉΓòÉΓòÉ
  7164.  
  7165. When this option is selected, double clicking button 2 on the mouse will 
  7166. display a "description" of the memory object which has been selected. 
  7167.  
  7168.  
  7169. ΓòÉΓòÉΓòÉ <hidden> Show process contexts ΓòÉΓòÉΓòÉ
  7170.  
  7171. When this option is selected, double clicking button 2 on the mouse will 
  7172. display the process contexts of the memory object which has been selected. 
  7173.  
  7174.  
  7175. ΓòÉΓòÉΓòÉ <hidden> Save as defaults ΓòÉΓòÉΓòÉ
  7176.  
  7177. When this option is selected, the input values become the defaults for the 
  7178. mouse button double click parameters on subsequent creations of detail windows. 
  7179. If the dialog was selected from a detail window, its defaults are also changed. 
  7180.  
  7181.  
  7182. ΓòÉΓòÉΓòÉ 10.7.4. Font for this Window... ΓòÉΓòÉΓòÉ
  7183.  
  7184. When you select the Font for this Window option of the Misc pull-down on the 
  7185. Detail window, you can specify a different monospace font for the Detail window 
  7186. being displayed. 
  7187.  
  7188. THESEUS will automatically resize the window if you have not manually changed 
  7189. the size. 
  7190.  
  7191.  
  7192. ΓòÉΓòÉΓòÉ 10.7.5. Contents Update ΓòÉΓòÉΓòÉ
  7193.  
  7194. When you select the Contents Update option of the Misc pull-down on the Detail 
  7195. or Process Hierarchy window, you are presented with a sub-menu for 
  7196. specification of control, start and stop of periodic updates to this window. 
  7197.  
  7198. Note:   Not all detail windows allow periodic update. Only those that do have 
  7199. this option enabled. 
  7200.  
  7201. Functions available are: 
  7202.  
  7203.  Options... 
  7204.            Presents a dialog to allow control of the update rate and window 
  7205.            update characteristics. 
  7206.  Start 
  7207.            Starts the periodic update of the window contents. 
  7208.  Stop 
  7209.            Stops the periodic update of the window contents. 
  7210.  Refresh now 
  7211.            Causes an immediate update of the window contents. 
  7212.  
  7213.  
  7214. ΓòÉΓòÉΓòÉ 10.7.5.1. Options... ΓòÉΓòÉΓòÉ
  7215.  
  7216. The Options dialog of the Periodic Update option of the Misc pull-down on the 
  7217. Detail window allows you to control the update rate and window update 
  7218. characteristics. The options are: 
  7219.  
  7220.      Time between updates. 
  7221.      Replace window contents each time. 
  7222.      Change cursor shape while updating. 
  7223.      Scroll the screen when it is updated. 
  7224.      End of Output control: 
  7225.         -  Never output it. 
  7226.         -  Output it if data was generated. 
  7227.         -  Always output it. 
  7228.  
  7229.  
  7230. ΓòÉΓòÉΓòÉ 10.7.5.1.1. Time between updates ΓòÉΓòÉΓòÉ
  7231.  
  7232. This option specifies the number of minutes and seconds for the detail window 
  7233. update interval. 
  7234.  
  7235. The default is 30 seconds. The maximum value is 999 minutes. 
  7236.  
  7237. The seconds value cannot be typed, only the spin buttons work. The granularity 
  7238. of the seconds value is determined by the minutes value as follows: 
  7239.  
  7240.  Minutes     Seconds granularity 
  7241.  0           Any second, except 0. 
  7242.  1-4         5. 
  7243.  5-9         10. 
  7244.  10-999      Minutes only. 
  7245.  
  7246.  
  7247. ΓòÉΓòÉΓòÉ 10.7.5.1.2. Replace window contents each time ΓòÉΓòÉΓòÉ
  7248.  
  7249. If this option is selected, the window contents are replace at each interval. 
  7250. If this option is not selected, the update information is added to the end of 
  7251. the existing window contents. 
  7252.  
  7253.  
  7254. ΓòÉΓòÉΓòÉ 10.7.5.1.3. Change cursor shape while updating ΓòÉΓòÉΓòÉ
  7255.  
  7256. If this option is selected, the cursor is changed from the "pointer" to the 
  7257. "clock" whenever the window contents are being recomputed. 
  7258.  
  7259.  
  7260. ΓòÉΓòÉΓòÉ 10.7.5.1.4. Scroll the screen when it is updated ΓòÉΓòÉΓòÉ
  7261.  
  7262. If this option is selected, the window is scrolled so that the last line of 
  7263. data generated is displayed. 
  7264.  
  7265.  
  7266. ΓòÉΓòÉΓòÉ 10.7.5.1.5. Never output the End of Output ΓòÉΓòÉΓòÉ
  7267.  
  7268. If this option is selected, the End of Output message is never output at the 
  7269. end of the newly generated information in the window. 
  7270.  
  7271.  
  7272. ΓòÉΓòÉΓòÉ 10.7.5.1.6. Output the End of Output if data was generated ΓòÉΓòÉΓòÉ
  7273.  
  7274. If this option is selected, the End of Output message is output if there were 
  7275. other information generated in the window. 
  7276.  
  7277.  
  7278. ΓòÉΓòÉΓòÉ 10.7.5.1.7. Always output the End of Output ΓòÉΓòÉΓòÉ
  7279.  
  7280. If this option is selected, the End of Output message is always output, even if 
  7281. there were no other information generated in the window. 
  7282.  
  7283.  
  7284. ΓòÉΓòÉΓòÉ 10.7.5.2. Start ΓòÉΓòÉΓòÉ
  7285.  
  7286. This option starts a periodic update of the contents of the window. The Options 
  7287. dialog of the Periodic Update sub-menu of the Misc pull-down can be used to 
  7288. select the update interval and window update characteristics. 
  7289.  
  7290.  
  7291. ΓòÉΓòÉΓòÉ 10.7.5.3. Stop ΓòÉΓòÉΓòÉ
  7292.  
  7293. This option stops the periodic update of the contents of the window. 
  7294.  
  7295.  
  7296. ΓòÉΓòÉΓòÉ 10.7.5.4. Refresh now ΓòÉΓòÉΓòÉ
  7297.  
  7298. This option causes the window contents to be updated now. The behavior is the 
  7299. same as if a periodic update had occurred. 
  7300.  
  7301.  
  7302. ΓòÉΓòÉΓòÉ 10.8. Help ΓòÉΓòÉΓòÉ
  7303.  
  7304. The Help pull-down contains the list of the help functions available for the 
  7305. Detail window. 
  7306.  
  7307.  
  7308. ΓòÉΓòÉΓòÉ 10.8.1. Explanation of the contents of this window ΓòÉΓòÉΓòÉ
  7309.  
  7310. The Explanation of the contents of this window option of the Help pull-down 
  7311. displays information about the contents of this window. 
  7312.  
  7313.  
  7314. ΓòÉΓòÉΓòÉ 11. Detail Window Contents ΓòÉΓòÉΓòÉ
  7315.  
  7316. The following panels show the content of the various displays presented in the 
  7317. Detail window. 
  7318.  
  7319. The following displays are selectable from several sources: 
  7320.  
  7321.  System                  Lists the displays available from the System 
  7322.                          pull-down. 
  7323.  Process                 Lists the displays available from the Process 
  7324.                          pull-down. 
  7325.  Registers               Lists the displays available from the Registers 
  7326.                          pull-down. 
  7327.  Functions               Lists the displays available from the Functions 
  7328.                          pull-down. 
  7329.  Secondary               Lists the displays available from the Secondary 
  7330.                          pull-down. 
  7331.  Links                   Lists the displays available only from hyperblock 
  7332.                          links. 
  7333.  Common Elements         Lists the displays which occur in a variety of places. 
  7334.  
  7335.  
  7336. ΓòÉΓòÉΓòÉ 11.1. From the System Pull-Down ΓòÉΓòÉΓòÉ
  7337.  
  7338. The following panels show the content of the various displays selectable from 
  7339. the System pull-down on the Process Hierarchy window. 
  7340.  
  7341. These displays are: 
  7342.  
  7343.  Working Set 
  7344.            Displays the working set of memory for the entire system. 
  7345.  Memory Leak Detection 
  7346.            Displays the number of pages of memory that each process is 
  7347.            accumulating. 
  7348.  Nonswappable Memory Analysis 
  7349.            Displays information about the contents of nonswappable memory. 
  7350.  Linear Usage by Process 
  7351.            Displays a map of the linear address usage for all processes. This 
  7352.            includes the private and shared arenas. 
  7353.  Page Contents 
  7354.            Displays the contents of each page of physical memory. 
  7355.  RAM Usage by Process 
  7356.            Determines and displays the amount of RAM consumed my each process. 
  7357.  Free, Idle, and Locked Memory 
  7358.            Generates the summary information about free, idle and locked pages. 
  7359.  Swapper 
  7360.            Displays information about the contents of the SWAPPER.DAT file. 
  7361.  General System 
  7362.            A set of displays containing general system information. 
  7363.  Kernel Information 
  7364.            A set of displays containing kernel information. 
  7365.  
  7366.  
  7367. ΓòÉΓòÉΓòÉ 11.1.1. Working Set ΓòÉΓòÉΓòÉ
  7368.  
  7369. Select one: 
  7370.  
  7371.       Contents of Display 
  7372.  
  7373.       Selecting 
  7374.  
  7375.       Example Output 
  7376.  
  7377.       Algorithm 
  7378.  
  7379.       Illustration 
  7380.  
  7381.       Related Topics 
  7382.  
  7383.  
  7384. ΓòÉΓòÉΓòÉ 11.1.2. Memory Leak Detection ΓòÉΓòÉΓòÉ
  7385.  
  7386. Select one: 
  7387.  
  7388.       Contents of Display 
  7389.  
  7390.       Selecting 
  7391.  
  7392.       Example Output 
  7393.  
  7394.       Related Topics 
  7395.  
  7396.  
  7397. ΓòÉΓòÉΓòÉ 11.1.3. Nonswappable Memory Analysis ΓòÉΓòÉΓòÉ
  7398.  
  7399. Select one: 
  7400.  
  7401.       Contents of Display 
  7402.  
  7403.       Selecting 
  7404.  
  7405.       Example Output 
  7406.  
  7407.       Related Topics 
  7408.  
  7409.  
  7410. ΓòÉΓòÉΓòÉ 11.1.4. Linear Usage by Process ΓòÉΓòÉΓòÉ
  7411.  
  7412. Select one: 
  7413.  
  7414.       Contents of Display 
  7415.  
  7416.       Selecting 
  7417.  
  7418.       Example Output 
  7419.  
  7420.       Related Topics 
  7421.  
  7422.  
  7423. ΓòÉΓòÉΓòÉ 11.1.5. Page Contents ΓòÉΓòÉΓòÉ
  7424.  
  7425. Select one: 
  7426.  
  7427.       Contents of Display 
  7428.  
  7429.       Selecting 
  7430.  
  7431.       Example Output 
  7432.  
  7433.       Related Topics 
  7434.  
  7435.  
  7436. ΓòÉΓòÉΓòÉ 11.1.6. RAM Usage by Process ΓòÉΓòÉΓòÉ
  7437.  
  7438. Select one: 
  7439.  
  7440.       Contents of Display 
  7441.  
  7442.       Selecting 
  7443.  
  7444.       Example Output 
  7445.  
  7446.       Algorithm 
  7447.  
  7448.       Related Topics 
  7449.  
  7450.  
  7451. ΓòÉΓòÉΓòÉ 11.1.7. Free, Idle, and Locked Memory ΓòÉΓòÉΓòÉ
  7452.  
  7453. Select one: 
  7454.  
  7455.       Contents of Display 
  7456.  
  7457.       Selecting 
  7458.  
  7459.       Example Output 
  7460.  
  7461.       Related Topics 
  7462.  
  7463.  
  7464. ΓòÉΓòÉΓòÉ 11.1.8. Swapper ΓòÉΓòÉΓòÉ
  7465.  
  7466. Select one: 
  7467.  
  7468.       Contents of Display 
  7469.  
  7470.       Selecting 
  7471.  
  7472.       Example Output 
  7473.  
  7474.       Related Topics 
  7475.  
  7476.  
  7477. ΓòÉΓòÉΓòÉ 11.1.9. General System ΓòÉΓòÉΓòÉ
  7478.  
  7479. The General System option contains: 
  7480.  
  7481.  General System Information 
  7482.            Displays selected general system information. 
  7483.  Device Drivers 
  7484.            Contains information about all Device Drivers currently loaded. 
  7485.  GDT 
  7486.            Displays the Global Descriptor Table. 
  7487.  Modules 
  7488.            Contains information about all modules currently loaded. 
  7489.  System Anchor Segment 
  7490.            Displays the System Anchor Segment. 
  7491.  Global Info Seg 
  7492.            Displays the Global Information Segment. 
  7493.  Open Files 
  7494.            Displays information about the files that are open. 
  7495.  Process List 
  7496.            Displays a list of all processes that are running. 
  7497.  
  7498.  
  7499. ΓòÉΓòÉΓòÉ 11.1.9.1. General System Information ΓòÉΓòÉΓòÉ
  7500.  
  7501. Select one: 
  7502.  
  7503.       Contents of Display 
  7504.  
  7505.       Selecting 
  7506.  
  7507.       Example Output 
  7508.  
  7509.       Related Topics 
  7510.  
  7511.  
  7512. ΓòÉΓòÉΓòÉ 11.1.9.2. Device Drivers ΓòÉΓòÉΓòÉ
  7513.  
  7514. Select one: 
  7515.  
  7516.       Contents of Display 
  7517.  
  7518.       Selecting 
  7519.  
  7520.       Example output 
  7521.  
  7522.       Related Topics 
  7523.  
  7524.  
  7525. ΓòÉΓòÉΓòÉ 11.1.9.3. GDT ΓòÉΓòÉΓòÉ
  7526.  
  7527. Select one: 
  7528.  
  7529.       Contents of Display 
  7530.  
  7531.       Descriptor Table Entry Description 
  7532.  
  7533.       Selecting 
  7534.  
  7535.       Example Output 
  7536.  
  7537.       Related Topics 
  7538.  
  7539.  
  7540. ΓòÉΓòÉΓòÉ 11.1.9.4. Modules ΓòÉΓòÉΓòÉ
  7541.  
  7542. Select one: 
  7543.  
  7544.       Contents of Display 
  7545.  
  7546.       Selecting 
  7547.  
  7548.       Example Output 
  7549.  
  7550.       Related Topics 
  7551.  
  7552.  
  7553. ΓòÉΓòÉΓòÉ 11.1.9.5. System Anchor Segment ΓòÉΓòÉΓòÉ
  7554.  
  7555. Select one: 
  7556.  
  7557.       Contents of Display 
  7558.  
  7559.       Selecting 
  7560.  
  7561.       Example Output 
  7562.  
  7563.       Related Topics 
  7564.  
  7565.  
  7566. ΓòÉΓòÉΓòÉ 11.1.9.6. Global Info Seg ΓòÉΓòÉΓòÉ
  7567.  
  7568. Select one: 
  7569.  
  7570.       Contents of Display 
  7571.  
  7572.       Selecting 
  7573.  
  7574.       Example Output 
  7575.  
  7576.       Related Topics 
  7577.  
  7578.  
  7579. ΓòÉΓòÉΓòÉ 11.1.9.7. Open Files ΓòÉΓòÉΓòÉ
  7580.  
  7581. Select one: 
  7582.  
  7583.       Contents of Display 
  7584.  
  7585.       Selecting 
  7586.  
  7587.       Example Output 
  7588.  
  7589.       Related Topics 
  7590.  
  7591.  
  7592. ΓòÉΓòÉΓòÉ 11.1.9.8. Process List ΓòÉΓòÉΓòÉ
  7593.  
  7594. Select one: 
  7595.  
  7596.       Contents of Display 
  7597.  
  7598.       Selecting 
  7599.  
  7600.       Example Output 
  7601.  
  7602.       Related Topics 
  7603.  
  7604.  
  7605. ΓòÉΓòÉΓòÉ 11.1.10. Kernel Information ΓòÉΓòÉΓòÉ
  7606.  
  7607. The Kernel Information option contains: 
  7608.  
  7609.  Kernel Memory Usage 
  7610.            Determines and displays the amount of memory consumed by the 
  7611.            Operating System. 
  7612.  System Object Summary 
  7613.            Displays the System Object Summary. 
  7614.  System Arena Table 
  7615.            Displays the System Arena Table. 
  7616.  System Page Table 
  7617.            Displays the System Page Table. 
  7618.  Page Frame Table 
  7619.            Displays the Page Frame Table. 
  7620.  
  7621.  
  7622. ΓòÉΓòÉΓòÉ 11.1.10.1. Kernel Memory Usage ΓòÉΓòÉΓòÉ
  7623.  
  7624. Select one: 
  7625.  
  7626.       Contents of Display 
  7627.  
  7628.       Selecting 
  7629.  
  7630.       Example Output 
  7631.  
  7632.       Algorithm 
  7633.  
  7634.       Related Topics 
  7635.  
  7636.  
  7637. ΓòÉΓòÉΓòÉ 11.1.10.2. Object Summary ΓòÉΓòÉΓòÉ
  7638.  
  7639. Select one: 
  7640.  
  7641.       Contents of Display 
  7642.  
  7643.       Selecting 
  7644.  
  7645.       Example Output 
  7646.  
  7647.       Related Topics 
  7648.  
  7649.  
  7650. ΓòÉΓòÉΓòÉ 11.1.10.3. System Arena Table ΓòÉΓòÉΓòÉ
  7651.  
  7652. Select one: 
  7653.  
  7654.       Contents of Display 
  7655.  
  7656.       Arena Record Description 
  7657.  
  7658.       Selecting 
  7659.  
  7660.       Example Output 
  7661.  
  7662.       Related Topics 
  7663.  
  7664.  
  7665. ΓòÉΓòÉΓòÉ 11.1.10.4. System Page Table ΓòÉΓòÉΓòÉ
  7666.  
  7667. Select one: 
  7668.  
  7669.       Contents of Display 
  7670.  
  7671.       Page Table Entry Description 
  7672.  
  7673.       Selecting 
  7674.  
  7675.       Example Output 
  7676.  
  7677.       Related Topics 
  7678.  
  7679.  
  7680. ΓòÉΓòÉΓòÉ 11.1.10.5. Page Frame Table ΓòÉΓòÉΓòÉ
  7681.  
  7682. Select one: 
  7683.  
  7684.       Contents of Display 
  7685.  
  7686.       Selecting 
  7687.  
  7688.       Example Output 
  7689.  
  7690.       Related Topics 
  7691.  
  7692.  
  7693. ΓòÉΓòÉΓòÉ 11.2. From the Process Pull-Down ΓòÉΓòÉΓòÉ
  7694.  
  7695. The following panels show the content of the various displays selectable from 
  7696. the Process pull-down on the Process Hierarchy window. 
  7697.  
  7698. These displays are: 
  7699.  
  7700.  Working Set 
  7701.            Displays the working set of memory for the process. 
  7702.  Memory Utilization 
  7703.            Displays details of memory usage for the process. 
  7704.  Memory Leak Detection 
  7705.            Displays the number of pages of memory that each object is 
  7706.            accumulating. 
  7707.  General Process Information 
  7708.            Displays general information about the process. 
  7709.  Per Task Data Area (PTDA) 
  7710.            Displays the PTDA. 
  7711.  LDT 
  7712.            Displays the LDT. 
  7713.  Page Table 
  7714.            Displays the process unique Page Table. 
  7715.  Private Object Summary 
  7716.            Displays a summary of the private arena memory objects. 
  7717.  Shared Object Summary 
  7718.            Displays a summary of the shared arena memory objects. 
  7719.  Private Arena Table 
  7720.            Displays the process unique arena table. 
  7721.  Shared Arena Table 
  7722.            Displays the shared arena, in the process' context. 
  7723.  
  7724.  
  7725. ΓòÉΓòÉΓòÉ 11.2.1. Working Set ΓòÉΓòÉΓòÉ
  7726.  
  7727. Select one: 
  7728.  
  7729.       Contents of Display 
  7730.  
  7731.       Selecting 
  7732.  
  7733.       Example Output 
  7734.  
  7735.       Algorithm 
  7736.  
  7737.       Illustration 
  7738.  
  7739.       Related Topics 
  7740.  
  7741.  
  7742. ΓòÉΓòÉΓòÉ 11.2.2. Memory Utilization ΓòÉΓòÉΓòÉ
  7743.  
  7744. Select one: 
  7745.  
  7746.       Contents of Display 
  7747.  
  7748.       Selecting 
  7749.  
  7750.       Example Output 
  7751.  
  7752.       Algorithm 
  7753.  
  7754.       Related Topics 
  7755.  
  7756.  
  7757. ΓòÉΓòÉΓòÉ 11.2.3. Memory Leak Detection ΓòÉΓòÉΓòÉ
  7758.  
  7759. Select one: 
  7760.  
  7761.       Contents of Display 
  7762.  
  7763.       Selecting 
  7764.  
  7765.       Example Output 
  7766.  
  7767.       Related Topics 
  7768.  
  7769.  
  7770. ΓòÉΓòÉΓòÉ 11.2.4. General Process Information ΓòÉΓòÉΓòÉ
  7771.  
  7772. Select one: 
  7773.  
  7774.       Contents of Display 
  7775.  
  7776.       Selecting 
  7777.  
  7778.       Example Output 
  7779.  
  7780.       Related Topics 
  7781.  
  7782.  
  7783. ΓòÉΓòÉΓòÉ 11.2.5. Per Task Data Area (PTDA) ΓòÉΓòÉΓòÉ
  7784.  
  7785. Select one: 
  7786.  
  7787.       Contents of Display 
  7788.  
  7789.       Selecting 
  7790.  
  7791.       Example Output 
  7792.  
  7793.       Related Topics 
  7794.  
  7795.  
  7796. ΓòÉΓòÉΓòÉ 11.2.6. LDT ΓòÉΓòÉΓòÉ
  7797.  
  7798. Select one: 
  7799.  
  7800.       Contents of Display 
  7801.  
  7802.       Descriptor Table Entry Description 
  7803.  
  7804.       Selecting 
  7805.  
  7806.       Example Output 
  7807.  
  7808.       Related Topics 
  7809.  
  7810.  
  7811. ΓòÉΓòÉΓòÉ 11.2.7. Page Table ΓòÉΓòÉΓòÉ
  7812.  
  7813. Select one: 
  7814.  
  7815.       Contents of Display 
  7816.  
  7817.       Page Table Entry Description 
  7818.  
  7819.       Selecting 
  7820.  
  7821.       Example Output 
  7822.  
  7823.       Related Topics 
  7824.  
  7825.  
  7826. ΓòÉΓòÉΓòÉ 11.2.8. Private Object Summary ΓòÉΓòÉΓòÉ
  7827.  
  7828. Select one: 
  7829.  
  7830.       Contents of Display 
  7831.  
  7832.       Selecting 
  7833.  
  7834.       Example Output 
  7835.  
  7836.       Related Topics 
  7837.  
  7838.  
  7839. ΓòÉΓòÉΓòÉ 11.2.9. Shared Object Summary ΓòÉΓòÉΓòÉ
  7840.  
  7841. Select one: 
  7842.  
  7843.       Contents of Display 
  7844.  
  7845.       Selecting 
  7846.  
  7847.       Example Output 
  7848.  
  7849.       Related Topics 
  7850.  
  7851.  
  7852. ΓòÉΓòÉΓòÉ 11.2.10. Private Arena Table ΓòÉΓòÉΓòÉ
  7853.  
  7854. Select one: 
  7855.  
  7856.       Contents of Display 
  7857.  
  7858.       Arena Record Description 
  7859.  
  7860.       Selecting 
  7861.  
  7862.       Example Output 
  7863.  
  7864.       Related Topics 
  7865.  
  7866.  
  7867. ΓòÉΓòÉΓòÉ 11.2.11. Shared Arena Table ΓòÉΓòÉΓòÉ
  7868.  
  7869. Select one: 
  7870.  
  7871.       Contents of Display 
  7872.  
  7873.       Arena Record Description 
  7874.  
  7875.       Selecting 
  7876.  
  7877.       Example Output 
  7878.  
  7879.       Related Topics 
  7880.  
  7881.  
  7882. ΓòÉΓòÉΓòÉ 11.3. From the Registers Pull-Down ΓòÉΓòÉΓòÉ
  7883.  
  7884. The following panel shows the content of the display selectable from the 
  7885. Registers pull-down on the Process Hierarchy window. 
  7886.  
  7887. The display is: 
  7888.  
  7889.  Current IDT 
  7890.            Displays the current Interrupt Descriptor Table. 
  7891.  
  7892.  
  7893. ΓòÉΓòÉΓòÉ 11.3.1. IDT ΓòÉΓòÉΓòÉ
  7894.  
  7895. Select one: 
  7896.  
  7897.       Contents of Display 
  7898.  
  7899.       Descriptor Table Entry Description 
  7900.  
  7901.       Selecting 
  7902.  
  7903.       Example Output 
  7904.  
  7905.       Related Topics 
  7906.  
  7907.  
  7908. ΓòÉΓòÉΓòÉ 11.4. From Functions Pull-Down ΓòÉΓòÉΓòÉ
  7909.  
  7910. The following panels show the content of the various displays selectable from 
  7911. the Functions pull-down on the Detail window. 
  7912.  
  7913. Displays are: 
  7914.  
  7915.  General Linear Memory 
  7916.            Displays memory at a specified linear address. 
  7917.  General Virtual Memory 
  7918.            Displays memory at a specified virtual address. 
  7919.  General Physical Memory 
  7920.            Displays memory at a specified physical address. 
  7921.  Show Working Set detail (by Page) 
  7922.            Shows which pages made up the working set. 
  7923.  Show Working Set detail (by Object) 
  7924.            Shows which objects made up the working set. 
  7925.  Show summary by Process 
  7926.            Show a summary of the working set information, summarized by 
  7927.            process. 
  7928.  Show SWAPPER.DAT detail (by Page) 
  7929.            Shows which pages make up the SWAPPER.DAT file. 
  7930.  Show process contexts 
  7931.            Displays context information for each process which access to the 
  7932.            specified linear address. 
  7933.  Memory Object Leak Detection 
  7934.            Performs memory leak detection on a single memory object. 
  7935.  Hot Spot Detection... 
  7936.            Performs byte change detection on a page of memory. 
  7937.  
  7938.  
  7939. ΓòÉΓòÉΓòÉ 11.4.1. General Linear Memory Display ΓòÉΓòÉΓòÉ
  7940.  
  7941. Select one: 
  7942.  
  7943.       Contents of Display 
  7944.  
  7945.       Selecting 
  7946.  
  7947.       Example Output 
  7948.  
  7949.       Related Topics 
  7950.  
  7951.  
  7952. ΓòÉΓòÉΓòÉ <hidden> Selecting the General Linear Memory Display ΓòÉΓòÉΓòÉ
  7953.  
  7954. You may either select the Show memory at linear address option on the Functions 
  7955. pull-down on the Detail window to get a dialog so that you may enter a specific 
  7956. linear address or select a linear address hyperblock link from another window 
  7957. that THESEUS cannot explicitly format. 
  7958.  
  7959.  
  7960. ΓòÉΓòÉΓòÉ <hidden> Example of the General Linear memory display ΓòÉΓòÉΓòÉ
  7961.  
  7962. Memory from Linear address FEB5F498 for 40 bytes for process 'system':
  7963. FEB5F498 (0000)  00 00 50 07 80 80 00 00  00 00 54 48 45 53 45 55 *..P.......THESEU*
  7964. FEB5F4A8 (0010)  32 24 98 07 78 07 00 00  00 00 54 00 C8 0F 92 03 *2$..x.....T.....*
  7965. FEB5F4B8 (0020)  B8 04 82 00 EA 9D 1F 00  00 00 17 04 00 14 A0 07 *................*
  7966. FEB5F4C8 (0030)  A8 07 B0 07 B8 07 C0 07  40 00 FF 1F 00 60 EC FF *........@....`..*
  7967.  
  7968. The above is the same memory as the Device Driver Header example. 
  7969.  
  7970. Memory from Linear address FE984D84 for E bytes for process 'system':
  7971. FE984D84 (0000) 89 1E 1E 00       *....*   mov      [1E],bx
  7972. FE984D88 (0004) 8C 06 20 00       *.. .*   mov      [20],es
  7973. FE984D8C (0008) 26 8A 47 02       *&.G.*   mov      al,es:[bx+2]
  7974. FE984D90 (000C) 3C 00             *<.*     cmp      al,0
  7975.  
  7976.  
  7977. ΓòÉΓòÉΓòÉ <hidden> Contents of the General Linear memory display ΓòÉΓòÉΓòÉ
  7978.  
  7979. For hex mode, the memory is presented as follows: 
  7980.  
  7981.  address    The linear address of the byte that begins the line. 
  7982.  hex        There are three formats for this data: 
  7983.             byte                Each byte is formatted individually. 
  7984.             word                Each word (2 bytes) is formatted individually. 
  7985.                                 "Byte reversal" is done. 
  7986.             doubleword          Each doubleword (4 bytes) is formatted 
  7987.                                 individually. "Byte reversal" is done. 
  7988.  ASCII      The character representation of the memory area. "Byte reversal" is 
  7989.             not done. 
  7990.  
  7991.  For disassemble mode, the memory is presented as follows: 
  7992.  
  7993.  address      The linear address of the byte that begins the line. 
  7994.  hex          Each byte is formatted individually. 
  7995.  ASCII        The character representation of the memory area. 
  7996.  instruction  The disassembled instruction, using MASM mnemonics. 
  7997.  
  7998.  
  7999. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8000.  
  8001.      Memory addressing 
  8002.  
  8003.      Linear addresses 
  8004.  
  8005.      Description of Linear Object 
  8006.  
  8007.  
  8008. ΓòÉΓòÉΓòÉ 11.4.2. General Virtual Memory Display ΓòÉΓòÉΓòÉ
  8009.  
  8010. Select one: 
  8011.  
  8012.       Contents of Display 
  8013.  
  8014.       Selecting 
  8015.  
  8016.       Example Output 
  8017.  
  8018.       Related Topics 
  8019.  
  8020.  
  8021. ΓòÉΓòÉΓòÉ <hidden> Selecting the General Virtual Memory Display ΓòÉΓòÉΓòÉ
  8022.  
  8023. You may either select the Show memory at virtual address option on the 
  8024. Functions pull-down on the Detail window to get a dialog so that you may enter 
  8025. a specific virtual address or select a virtual address hyperblock link from 
  8026. another window that THESEUS cannot explicitly format. 
  8027.  
  8028.  
  8029. ΓòÉΓòÉΓòÉ <hidden> Example of the General Virtual Memory Display ΓòÉΓòÉΓòÉ
  8030.  
  8031. Memory from Virtual address 0778:00000000 for 1A bytes for process 'system':
  8032. 0778:0000  00 00 50 07 80 80 00 00  00 00 54 48 45 53 45 55 *..P.......THESEU*
  8033. 0778:0010  32 24 98 07 78 07 00 00  00 00                   *2$..x.....*
  8034.  
  8035. The above is the same memory as the Device Driver Header example. 
  8036.  
  8037. Memory from Virtual address 0798:00000000 for 22B bytes for process 'system':
  8038. 0798:0000 89 1E 1E 00       *....*   mov      [1E],bx
  8039. 0798:0004 8C 06 20 00       *.. .*   mov      [20],es
  8040. 0798:0008 26 8A 47 02       *&.G.*   mov      al,es:[bx+2]
  8041. 0798:000C 3C 00             *<.*     cmp      al,0
  8042.  
  8043.  
  8044. ΓòÉΓòÉΓòÉ <hidden> Contents of the General Virtual Memory Display ΓòÉΓòÉΓòÉ
  8045.  
  8046. For hex mode, the memory is presented as follows: 
  8047.  
  8048.  address    The virtual address of the byte that begins the line. 
  8049.  hex        There are three formats for this data: 
  8050.             byte                Each byte is formatted individually. 
  8051.             word                Each word (2 bytes) is formatted individually. 
  8052.                                 "Byte reversal" is done. 
  8053.             doubleword          Each doubleword (4 bytes) is formatted 
  8054.                                 individually. "Byte reversal" is done. 
  8055.  ASCII      The character representation of the memory area. "Byte reversal" is 
  8056.             not done. 
  8057.  
  8058.  For disassemble mode, the memory is presented as follows: 
  8059.  
  8060.  address      The virtual address of the byte that begins the line. 
  8061.  hex          Each byte is formatted individually. 
  8062.  ASCII        The character representation of the memory area. 
  8063.  instruction  The disassembled instruction, using MASM mnemonics. 
  8064.  
  8065.  
  8066. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8067.  
  8068.      Memory addressing 
  8069.  
  8070.      Virtual addresses 
  8071.  
  8072.  
  8073. ΓòÉΓòÉΓòÉ 11.4.3. General Physical Memory Display ΓòÉΓòÉΓòÉ
  8074.  
  8075. Select one: 
  8076.  
  8077.       Contents of Display 
  8078.  
  8079.       Selecting 
  8080.  
  8081.       Example Output 
  8082.  
  8083.       Related Topics 
  8084.  
  8085.  
  8086. ΓòÉΓòÉΓòÉ <hidden> Selecting the General Physical Memory Display ΓòÉΓòÉΓòÉ
  8087.  
  8088. You may either select the Show memory at physical address option on the 
  8089. Functions pull-down on the Detail window to get a dialog so that you may enter 
  8090. a specific physical address or select a physical address hyperblock link from 
  8091. another window that THESEUS cannot explicitly format. 
  8092.  
  8093.  
  8094. ΓòÉΓòÉΓòÉ <hidden> Example of the General Physical Memory Display ΓòÉΓòÉΓòÉ
  8095.  
  8096. Memory from Physical address 006A7498 for 40 bytes for process 'system':
  8097. 006A7498 (0000)  00 00 50 07 80 80 00 00  00 00 54 48 45 53 45 55 *..P.......THESEU*
  8098. 006A74A8 (0010)  32 24 98 07 78 07 00 00  00 00 54 00 C8 0F 72 03 *2$..x.....T...r.*
  8099. 006A74B8 (0020)  B8 04 82 00 36 A1 1F 00  00 00 0F 04 00 14 A0 07 *....6...........*
  8100. 006A74C8 (0030)  A8 07 B0 07 B8 07 C0 07  40 00 FF 1F 00 60 EC FF *........@....`..*
  8101.  
  8102. The above is the same memory as the Device Driver Header example. 
  8103.  
  8104. Memory from Physical address 0068FD84 for E bytes for process 'system':
  8105. 0068FD84 (0000) 89 1E 1E 00       *....*   mov      [1E],bx
  8106. 0068FD88 (0004) 8C 06 20 00       *.. .*   mov      [20],es
  8107. 0068FD8C (0008) 26 8A 47 02       *&.G.*   mov      al,es:[bx+2]
  8108. 0068FD90 (000C) 3C 00             *<.*     cmp      al,0
  8109.  
  8110.  
  8111. ΓòÉΓòÉΓòÉ <hidden> Contents of the General Physical Memory Display ΓòÉΓòÉΓòÉ
  8112.  
  8113. For hex mode, the memory is presented as follows: 
  8114.  
  8115.  address    The physical address of the byte that begins the line. 
  8116.  hex        There are three formats for this data: 
  8117.             byte                Each byte is formatted individually. 
  8118.             word                Each word (2 bytes) is formatted individually. 
  8119.                                 "Byte reversal" is done. 
  8120.             doubleword          Each doubleword (4 bytes) is formatted 
  8121.                                 individually. "Byte reversal" is done. 
  8122.  ASCII      The character representation of the memory area. "Byte reversal" is 
  8123.             not done. 
  8124.  
  8125.  For disassemble mode, the memory is presented as follows: 
  8126.  
  8127.  address      The physical address of the byte that begins the line. 
  8128.  hex          Each byte is formatted individually. 
  8129.  ASCII        The character representation of the memory area. 
  8130.  instruction  The disassembled instruction, using MASM mnemonics. 
  8131.  
  8132.  
  8133. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8134.  
  8135.      Memory addressing 
  8136.  
  8137.      Physical addresses 
  8138.  
  8139.  
  8140. ΓòÉΓòÉΓòÉ 11.4.4. Detail of Working Set (by Page) Display ΓòÉΓòÉΓòÉ
  8141.  
  8142. Select one: 
  8143.  
  8144.       Contents of Display 
  8145.  
  8146.       Selecting 
  8147.  
  8148.       Example Output 
  8149.  
  8150.       Related Topics 
  8151.  
  8152.  
  8153. ΓòÉΓòÉΓòÉ 11.4.5. Detail of Working Set (by Object) Display ΓòÉΓòÉΓòÉ
  8154.  
  8155. Select one: 
  8156.  
  8157.       Contents of Display 
  8158.  
  8159.       Selecting 
  8160.  
  8161.       Example Output 
  8162.  
  8163.       Related Topics 
  8164.  
  8165.  
  8166. ΓòÉΓòÉΓòÉ 11.4.6. Detail of Summary by Process Display ΓòÉΓòÉΓòÉ
  8167.  
  8168. Select one: 
  8169.  
  8170.       Contents of Display 
  8171.  
  8172.       Selecting 
  8173.  
  8174.       Example Output 
  8175.  
  8176.       Related Topics 
  8177.  
  8178.  
  8179. ΓòÉΓòÉΓòÉ 11.4.7. SWAPPER.DAT Contents (by Page) Display ΓòÉΓòÉΓòÉ
  8180.  
  8181. Select one: 
  8182.  
  8183.       Contents of Display 
  8184.  
  8185.       Selecting 
  8186.  
  8187.       Example Output 
  8188.  
  8189.       Related Topics 
  8190.  
  8191.  
  8192. ΓòÉΓòÉΓòÉ 11.4.8. Show Process Contexts ΓòÉΓòÉΓòÉ
  8193.  
  8194. Select one: 
  8195.  
  8196.       Contents of Display 
  8197.  
  8198.       Selecting 
  8199.  
  8200.       Example Output 
  8201.  
  8202.       Related Topics 
  8203.  
  8204.  
  8205. ΓòÉΓòÉΓòÉ 11.4.9. Memory Object Leak Detection ΓòÉΓòÉΓòÉ
  8206.  
  8207. Select one: 
  8208.  
  8209.       Contents of Display 
  8210.  
  8211.       Selecting 
  8212.  
  8213.       Example Output 
  8214.  
  8215.       Related Topics 
  8216.  
  8217.  
  8218. ΓòÉΓòÉΓòÉ 11.4.10. Hot Spot Detection... ΓòÉΓòÉΓòÉ
  8219.  
  8220. Select one: 
  8221.  
  8222.       Contents of Display 
  8223.  
  8224.       Selecting 
  8225.  
  8226.       Example Output 
  8227.  
  8228.       Related Topics 
  8229.  
  8230.  
  8231. ΓòÉΓòÉΓòÉ 11.5. From Secondary Pull-Down ΓòÉΓòÉΓòÉ
  8232.  
  8233. The following panels show the content of the various displays selectable from 
  8234. the Secondary pull-down on the Detail window. 
  8235.  
  8236. Displays are: 
  8237.  
  8238.  Usage Type Display 
  8239.            Shows the working set of the linear pages, broken down by "usage 
  8240.            type". 
  8241.  Last Referenced Graphic 
  8242.            Shows the working set of the linear pages as a "color strip" 
  8243.            display, graphically showing the time since last refernce of a page. 
  8244.  
  8245.  
  8246. ΓòÉΓòÉΓòÉ 11.5.1. Usage Type Display ΓòÉΓòÉΓòÉ
  8247.  
  8248. Select one: 
  8249.  
  8250.       Contents of Display 
  8251.  
  8252.       Selecting 
  8253.  
  8254.       Example Output 
  8255.  
  8256.       Related Topics 
  8257.  
  8258.  
  8259. ΓòÉΓòÉΓòÉ 11.5.2. Last Referenced Graphic ΓòÉΓòÉΓòÉ
  8260.  
  8261. Select one: 
  8262.  
  8263.       Contents of Display 
  8264.  
  8265.       Using the Display 
  8266.  
  8267.       Selecting 
  8268.  
  8269.       Example Output 
  8270.  
  8271.       Related Topics 
  8272.  
  8273.  
  8274. ΓòÉΓòÉΓòÉ 11.6. From Links ΓòÉΓòÉΓòÉ
  8275.  
  8276. The following panels show the content of displays that are displayed only from 
  8277. hyperblock links: 
  8278.  
  8279.  Device Driver Header 
  8280.            Displays the contents of a single Device Driver's header. 
  8281.  Virtual Address Memory 
  8282.            Displays the contents of a segment in memory. 
  8283.  Show description of an object 
  8284.            Displays the "description" of a memory object. 
  8285.  Show description of a segment 
  8286.            Displays the "description" of a segment. 
  8287.  Physical description 
  8288.            Displays the "description" of a physical page of memory. 
  8289.  Detail for System Owner 
  8290.            Displays the list of memory objects that make up a particular system 
  8291.            owner. 
  8292.  Alias Record 
  8293.            Displays a single Alias Record. 
  8294.  Arena Record 
  8295.            Displays a single Arena Record. 
  8296.  Object Record 
  8297.            Displays a single Object Record. 
  8298.  Context Record 
  8299.            Displays a single Context Record. 
  8300.  Virtual Page Table entry 
  8301.            Shows a single Virtual Page Table entry. 
  8302.  MTE display 
  8303.            Displays a single MTE. 
  8304.  TCB display 
  8305.            Displays a single TCB. 
  8306.  Detail Working Set information for an Object 
  8307.            Displays the pages that make up the object and their relation in the 
  8308.            working set. 
  8309.  SFT display 
  8310.            Displays a single System File Table entry. 
  8311.  Detailed Memory Assignment Information 
  8312.            Displays detail of several memory analysis displays. 
  8313.  Detail of Nonswappable Memory 
  8314.            Displays detail of a selected nonswappable memory group. 
  8315.  
  8316.  The following panels show the content of displays that are displayed only from 
  8317.  the Last Referenced Graphic display: 
  8318.  
  8319.  Strip List 
  8320.            Displays the list of memory objects surrounding the requested color 
  8321.            bar. 
  8322.  
  8323.  
  8324. ΓòÉΓòÉΓòÉ 11.6.1. Device Driver Header Display ΓòÉΓòÉΓòÉ
  8325.  
  8326. Select one: 
  8327.  
  8328.       Contents of Display 
  8329.  
  8330.       Selecting 
  8331.  
  8332.       Example Output 
  8333.  
  8334.       Related Topics 
  8335.  
  8336.  
  8337. ΓòÉΓòÉΓòÉ <hidden> Selecting the Device Drivers Header Display ΓòÉΓòÉΓòÉ
  8338.  
  8339. This is selected by the hyperblock link of the Header addr field on the Device 
  8340. Drivers display. 
  8341.  
  8342.  
  8343. ΓòÉΓòÉΓòÉ <hidden> Example of the Device Driver Header Display ΓòÉΓòÉΓòÉ
  8344.  
  8345. Device Driver header located at 0778:0000:
  8346. Next DD header @ 0750:0000
  8347. Device attribute = 8080 => CHR LVL=OS/2
  8348. Offset to Strategy Routine = 0000
  8349. Offset to IDC Routine      = 0000
  8350. Device name = 'THESEU2$'
  8351. Code Selector = 0798
  8352. Data Selector = 0778
  8353. Reserved_3 = 0000
  8354. Reserved_4 = 0000
  8355.  
  8356.  
  8357. ΓòÉΓòÉΓòÉ <hidden> Contents of the Device Driver Header Display ΓòÉΓòÉΓòÉ
  8358.  
  8359. The fields of the device driver header are displayed as follows: 
  8360.  
  8361.  Device Driver header located at ssss:oooo: 
  8362.            The address of this device driver header. 
  8363.  Next DD header @ ssss:oooo 
  8364.            The device drivers are linked together. This is the address of the 
  8365.            next one. 
  8366.  Device attribute = hhhh => decoded attributes 
  8367.            The attributes are printed in hex and then presented in English as 
  8368.            follows: 
  8369.            CHR        Bit 15 - The device is a character device. Otherwise, it 
  8370.                       is a block device. 
  8371.            IDC        Bit 14 - The device supports "Inter-device Driver 
  8372.                       Communication". If this is set, then the IDC Entry Point 
  8373.                       value must be valid. 
  8374.            IBM        Bit 13 - The device is non-IBM block format. 
  8375.            SHR        Bit 12 - The device supports "shared device access 
  8376.                       checking". 
  8377.            OPN        Bit 11 - The device supports removable media (block 
  8378.                       devices) or device open/close (character devices). 
  8379.            LVL        Bits 9-7 - Function level of support: 
  8380.                       PC/DOS         000 - PC/DOS device driver.  (This should 
  8381.                                      never be seen in OS/2 2.0.) 
  8382.                       OS/2           001 - OS/2 device driver, which does not 
  8383.                                      support DosDevIOCTL2 packets. 
  8384.                       IOCTL2         010 - OS/2 device driver, which supports 
  8385.                                      DosDevIOCTL2 and SHUTDOWN request packets. 
  8386.                       BitStrip       011 - OS/2 device driver, with a 
  8387.                                      Capabilities Bit Strip in the header. 
  8388.                       ??             Level was not one of the above. The level 
  8389.                                      value is printed. 
  8390.            CLK        Bit 3 - The device is the CLOCK device. 
  8391.            NUL        Bit 2 - The device is the NULL device. 
  8392.            SCR        Bit 1 - The device is the SCREEN (STDOUT). 
  8393.            KBD        Bit 0 - The device is the KEYBOARD (STDIN). 
  8394.  Offset to Strategy Routine = hhhh 
  8395.            The offset into the device driver's code segment where the Strategy 
  8396.            Routine starts. 
  8397.  Offset to IDC Routine = hhhh 
  8398.            The offset into the device driver's code segment where the IDC 
  8399.            Routine starts. 
  8400.  Device name = 'name' 
  8401.            The name of the (character) device. 
  8402.  Number of units supported = i (integer) 
  8403.            The number of units supported by the (block) device. 
  8404.  Code Selector = ssss 
  8405.            The selector of the code segment. 
  8406.  Data Selector = ssss 
  8407.            The selector of the data segment. 
  8408.  Reserved_3 = hhhh 
  8409.            The third "reserved word" in the device driver header. 
  8410.  Reserved_4 = hhhh 
  8411.            The fourth "reserved word" in the device driver header. 
  8412.  Bit Strip = hhhhhhhh 
  8413.            The hex value of the Bit Strip and then presented in English: 
  8414.            parallel             The physical device driver supports parallel 
  8415.                                 ports. 
  8416.            32-bit               For character device drivers, this bit is set 
  8417.                                 to 1 if memory addressing above 16MB is 
  8418.                                 supported; that is, support for full 32-bit 
  8419.                                 memory addressability instead of 24-bit memory 
  8420.                                 addressability. For block device drivers, this 
  8421.                                 bit is reserved and must be set to 0. 
  8422.            DosDevIOCtl2         The DosDevIOCtl2 and SHUTDOWN request packets 
  8423.                                 are supported. 
  8424.  
  8425.  
  8426. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8427.  
  8428.      Memory addressing 
  8429.  
  8430.      Device Drivers 
  8431.  
  8432.  
  8433. ΓòÉΓòÉΓòÉ 11.6.2. Description of Linear Object Display ΓòÉΓòÉΓòÉ
  8434.  
  8435. Select one: 
  8436.  
  8437.       Contents of Display 
  8438.  
  8439.       Selecting 
  8440.  
  8441.       Example Output 
  8442.  
  8443.       Related Topics 
  8444.  
  8445.  
  8446. ΓòÉΓòÉΓòÉ <hidden> Selecting the Description of Linear Object Display ΓòÉΓòÉΓòÉ
  8447.  
  8448. The Description of Linear Object display is selected by double-clicking mouse 
  8449. button 2, with the pointer over any linear address for which a hyperblock link 
  8450. is defined. 
  8451.  
  8452. If the linear address is not a system arena address, then a process context 
  8453. should be set (by selecting a particular process). 
  8454.  
  8455. If a context is not specified, or the context is sysinit, then the Page Tables 
  8456. for all processes are shown. 
  8457.  
  8458.  
  8459. ΓòÉΓòÉΓòÉ <hidden> Example of the Description of Linear Object Display ΓòÉΓòÉΓòÉ
  8460.  
  8461. Description of Linear Object 1B4A0000, process = 'THESEUSn':
  8462. It is object # 0002 from module PMDRAG.
  8463.  
  8464. Arena Record:
  8465.  har    pages   linear flg next prev link hash hob  hal  hco  / Decoded flags
  8466. 016F 00000010 1B4A0000 3D9 016E 0170 0000 0000 019D 0000 03D9 / Mapped Reload User Exec Read Hco
  8467.  
  8468. Object Record:
  8469.  hob   har next  flgs ownr hmte  sown,cnt lt ld st sd / owner / decoded_flags
  8470. 019D  016F 0000  0838 019B 019B  0000 00  00 00 00 00 / m-PMDRAG / shared exec read user
  8471.  
  8472. Context Record(s):
  8473.  hco  next ptda flgs / process / decoded_flags
  8474. 03D9  01FB 0290  1C  / THESEUSn / read exec user
  8475. 01FB  0113 01D4  1C  / PMEXEC / read exec user
  8476. 0113  0000 00EF  1D  / PMSHELL / read exec user originator
  8477.  
  8478. Page Table, from 1B4A0000 to 1B4AFFFF:
  8479. *Linear=1B400000 Physical=0019C000 D=1 A=1 User  R/W P=1 Resident
  8480.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0001 fast
  8481.   hob=0067 refCount=0001 relPage=02ED block#=0019C flag=0010 / pf
  8482.  Linear=1B4A0000 FrameId=005CB     D=0 A=0 User  R/O P=0
  8483.   hob=019D refCount=0003 relPage=0000 block#=00008 flag=0800 / discardable
  8484.  Linear=1B4A1000 FrameId=005CC     D=0 A=0 User  R/O P=0
  8485.   hob=019D refCount=0003 relPage=0001 block#=00009 flag=0800 / discardable
  8486.  Linear=1B4A2000 Invalid page      D=0 A=0 Super R/O P=0
  8487.    Linear addresses 1B4A2000 to 1B4AF000 (14 pages) as last PTE above.
  8488.  
  8489.  
  8490. ΓòÉΓòÉΓòÉ <hidden> Contents of the Description of Linear Object Display ΓòÉΓòÉΓòÉ
  8491.  
  8492. The information presented on the Description of Linear Object display follows: 
  8493.  
  8494.    1. The linear address and context (denoting a particular process) of the 
  8495.       memory object. 
  8496.    2. A high-level statement describing the memory object: 
  8497.       It is object # hhhh from module aaaaaaaa. 
  8498.                      The name of the module (either .EXE or .DLL) and the 
  8499.                      relative object number within the module. This object 
  8500.                      number will match the one produced and printed by the 
  8501.                      linker. 
  8502.       It was allocated by aaaaaaaa. 
  8503.                      This memory was allocated by the indicated module. 
  8504.       It is 'aaaaaaaa' (decoded hmte from object record). 
  8505.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8506.                      decoding the hmte. 
  8507.       It is 'aaaaaaaa' (decoded owner from object record). 
  8508.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8509.                      decoding the owner. 
  8510.    3. The decoded arena record. 
  8511.    4. The decoded alias record. 
  8512.    5. The decoded object record. 
  8513.    6. The decoded context record(s) (if this is a shared arena address). 
  8514.    7. The decoded Page Table over the linear address range of the object. For 
  8515.       each page in the object (PDEs are shown when displaying from a new Page 
  8516.       Table), the following items are shown: 
  8517.           The PTE. 
  8518.           The Page Frame Table entry for the PTE (if the page is present). 
  8519.           The Virtual Page Table entry for the PTE. 
  8520.  
  8521.       If a context has not been specified, or the context is sysinit, then the 
  8522.       Page Tables for all processes are shown. 
  8523.  
  8524.  
  8525. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8526.  
  8527.      Memory addressing 
  8528.  
  8529.      Linear addresses 
  8530.  
  8531.      Handles 
  8532.  
  8533.      Memory Management Control Blocks 
  8534.  
  8535.  
  8536. ΓòÉΓòÉΓòÉ <hidden> Page Frame Table entry ΓòÉΓòÉΓòÉ
  8537.  
  8538. The fields of the Page Frame Table entry are decoded: 
  8539.  
  8540.  Term                Meaning 
  8541.  pteCnt=hhhh         The number of PTEs that refer to this page as being 
  8542.                      present. 
  8543.  long_lock=hhhh      The number of long-term locks outstanding for this page. 
  8544.  short_lock=hhhh     The number of short-term locks outstanding for this page. 
  8545.  block=hhhhh         Pager disk frame or loader block number 
  8546.  flags=hhhh          Flags indicating the status of the page. They are shown as 
  8547.                      hex and then decoded into ASCII: 
  8548.                      fast             Page is in fast memory. 
  8549.                      busy             Page is busy. 
  8550.                      free             Page is on the free chain. 
  8551.                      reserved?        Reserved bit. 
  8552.  
  8553.  
  8554. ΓòÉΓòÉΓòÉ 11.6.3. Description of Segment Display ΓòÉΓòÉΓòÉ
  8555.  
  8556. Select one: 
  8557.  
  8558.       Contents of Display 
  8559.  
  8560.       Selecting 
  8561.  
  8562.       Example Output 
  8563.  
  8564.       Related Topics 
  8565.  
  8566.  
  8567. ΓòÉΓòÉΓòÉ <hidden> Selecting the Description of Segment Display ΓòÉΓòÉΓòÉ
  8568.  
  8569. The Description of Segment display is selected by double-clicking mouse 
  8570. button 2, with the pointer over any virtual address or selector for which a 
  8571. hyperblock link is defined. 
  8572.  
  8573. If the virtual address is not a system arena address, then a process context 
  8574. must be set (by selecting a particular process). 
  8575.  
  8576.  
  8577. ΓòÉΓòÉΓòÉ <hidden> Example of the Description of Segment Display ΓòÉΓòÉΓòÉ
  8578.  
  8579. Description of Segment w/ selector = 0010, process = 'system'
  8580.  
  8581. Descriptor Table Entry:
  8582. GDT(0010) BTSS32  Base=FFE42DC8 Limit=00067 DPL=0               P=1 G=0
  8583.  
  8584. Description of Linear Object FFE42DC8, process = 'system':
  8585. It is object # 0001 from module DOSCALLS.
  8586.  
  8587. Arena Record:
  8588.  har    pages   linear flg next prev link hash hob  hal  sel  / Decoded flags
  8589. 0007 0000000B FFE3D000 009 0008 0014 0000 0000 0008 0000 0400 / Mapped
  8590.  
  8591. Object Record:
  8592.  hob   har next  flgs ownr hmte  sown,cnt lt ld st sd / owner / decoded_flags
  8593. 0008  0007 0000  0000 FFAA 0006  0000 00  00 00 00 00 / os2krnl load image /
  8594.  
  8595. Page Table, from FFE42DC8 to FFE42E2F:
  8596. *Linear=FFC00000 Physical=00190000 D=0 A=1 User  R/W P=1 Resident
  8597.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0000
  8598.   hob=0019 refCount=0001 relPage=027F block#=00190 flag=0410 / pf resident
  8599.  Linear=FFE42000 Physical=00009000 D=1 A=1 User  R/W P=1 Resident
  8600.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0000
  8601.   hob=0008 refCount=0001 relPage=0005 block#=00009 flag=0410 / pf resident
  8602.  
  8603.  
  8604. ΓòÉΓòÉΓòÉ <hidden> Contents of the Description of Segment Display ΓòÉΓòÉΓòÉ
  8605.  
  8606. The information presented on the Description of Segment display follows: 
  8607.  
  8608.    1. The selector and context (denoting a particular process) of the segment. 
  8609.    2. The Descriptor Table Entry for the selector. 
  8610.    3. The linear address and context (denoting a particular process) of the 
  8611.       memory object. 
  8612.    4. A high-level statement describing the memory object: 
  8613.       It is object # hhhh from module aaaaaaaa. 
  8614.                      The name of the module (either .EXE or .DLL) and the 
  8615.                      relative object number within the module. This object 
  8616.                      number will match the one produced and printed by the 
  8617.                      linker. 
  8618.       It was allocated by aaaaaaaa. 
  8619.                      This memory was allocated by the indicated module. 
  8620.       It is 'aaaaaaaa' (decoded hmte from object record). 
  8621.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8622.                      decoding the hmte. 
  8623.       It is 'aaaaaaaa' (decoded owner from object record). 
  8624.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8625.                      decoding the owner. 
  8626.    5. The decoded arena record. 
  8627.    6. The decoded alias record. 
  8628.    7. The decoded object record. 
  8629.    8. The decoded context record(s) (if this is a shared arena address). 
  8630.    9. The decoded Page Table over the linear address range of the object. For 
  8631.       each page in the object (PDEs are shown when displaying from a new Page 
  8632.       Table), the following items are shown: 
  8633.           The PTE. 
  8634.           The Page Frame Table entry for the PTE (if the page is present). 
  8635.           The Virtual Page Table entry for the PTE. 
  8636.  
  8637.       If a context has not been specified, or the context is sysinit, then the 
  8638.       Page Tables for all processes are shown. 
  8639.  
  8640.  
  8641. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8642.  
  8643.      Memory addressing 
  8644.  
  8645.      Virtual addresses 
  8646.  
  8647.      Linear addresses 
  8648.  
  8649.      Handles 
  8650.  
  8651.      Memory Management Control Blocks 
  8652.  
  8653.  
  8654. ΓòÉΓòÉΓòÉ 11.6.4. Description of Physical Object Display ΓòÉΓòÉΓòÉ
  8655.  
  8656. Select one: 
  8657.  
  8658.       Contents of Display 
  8659.  
  8660.       Selecting 
  8661.  
  8662.       Example Output 
  8663.  
  8664.       Related Topics 
  8665.  
  8666.  
  8667. ΓòÉΓòÉΓòÉ <hidden> Selecting the Description of Physical Object Display ΓòÉΓòÉΓòÉ
  8668.  
  8669. The Description of Physical Object display is selected by double-clicking mouse 
  8670. button 2, with the pointer over any physical address for which a hyperblock 
  8671. link is defined. 
  8672.  
  8673.  
  8674. ΓòÉΓòÉΓòÉ <hidden> Example of the Description of Physical Object Display ΓòÉΓòÉΓòÉ
  8675.  
  8676. Description of Physical Object 0018F000:
  8677.  
  8678. Start from the bottom (Page Frame Table) and go up:
  8679.  
  8680. Page Frame Table entry:
  8681.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0000
  8682.  
  8683. Virtual Page Table entry (FrameId=00A9):
  8684.   hob=0014 refCount=0001 relPage=0000 block#=0018F flag=0410 / pf resident
  8685.  
  8686. Object Record:
  8687.  hob   har next  flgs ownr hmte  sown,cnt lt ld st sd / owner / decoded_flags
  8688. 0014  0013 0000  0000 FFB1 0000  0000 00  00 00 00 00 / PG Page directory /
  8689.  
  8690. Arena Record:
  8691.  har    pages   linear flg next prev link hash hob  hal  sel  / Decoded flags
  8692. 0013 00000001 FF420000 001 0017 0018 0000 0000 0014 0000 0000 /
  8693.  
  8694. =============================================================================
  8695. Now, go from the top (Arena's) down:
  8696.  
  8697. See if it is a page in the 'system' arena.
  8698. -----------------------------------------------------------------------------
  8699. Description of Linear Object FF420000, process = 'system':
  8700.  
  8701. Arena Record:
  8702.  har    pages   linear flg next prev link hash hob  hal  sel  / Decoded flags
  8703. 0013 00000001 FF420000 001 0017 0018 0000 0000 0014 0000 0000 /
  8704.  
  8705. Object Record:
  8706.  hob   har next  flgs ownr hmte  sown,cnt lt ld st sd / owner / decoded_flags
  8707. 0014  0013 0000  0000 FFB1 0000  0000 00  00 00 00 00 / PG Page directory /
  8708.  
  8709. Page Table, from FF420000 to FF420FFF:
  8710. *Linear=FF400000 Physical=00191000 D=0 A=1 User  R/W P=1 Resident
  8711.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0000
  8712.   hob=0019 refCount=0001 relPage=027D block#=00191 flag=0410 / pf resident
  8713.  Linear=FF420000 Physical=0018F000 D=1 A=1 User  R/W P=1 Resident
  8714.   pteCnt=0001 long_lock=0000 short_lock=0000 block=00000 flags=0000
  8715.   hob=0014 refCount=0001 relPage=0000 block#=0018F flag=0410 / pf resident
  8716. =============================================================================
  8717. The page in each Process context in which it exists.
  8718.  
  8719.  
  8720. ΓòÉΓòÉΓòÉ <hidden> Contents of the Description of Physical Object Display ΓòÉΓòÉΓòÉ
  8721.  
  8722. The page address specified is described in three ways: 
  8723.  
  8724.      From the Page Frame Table, looking up through the Virtual Page Table to 
  8725.       an object record to an arena record. 
  8726.      From the system arena, looking down through the arena record to the 
  8727.       object record and Page Table. 
  8728.      From the shared and private arenas of each process, looking down through 
  8729.       the arena record to the object record and Page Table. 
  8730.  
  8731.  The information presented on the Description of Physical Object display 
  8732.  follows: 
  8733.  
  8734.    1. The physical address of the page being "described." 
  8735.    2. The Page Frame Table entry for the page. 
  8736.    3. The Virtual Page Table entry for the page. 
  8737.    4. The decoded object record. 
  8738.    5. The decoded arena record. 
  8739.    6. The linear address and context (denoting a particular process) of the 
  8740.       memory object. 
  8741.    7. A high-level statement describing the memory object: 
  8742.       It is object # hhhh from module aaaaaaaa. 
  8743.                      The name of the module (either .EXE or .DLL) and the 
  8744.                      relative object number within the module. This object 
  8745.                      number will match the one produced and printed by the 
  8746.                      linker. 
  8747.       It was allocated by aaaaaaaa. 
  8748.                      This memory was allocated by the indicated module. 
  8749.       It is 'aaaaaaaa' (decoded hmte from object record). 
  8750.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8751.                      decoding the hmte. 
  8752.       It is 'aaaaaaaa' (decoded owner from object record). 
  8753.                      'aaaaaaaa' is the name of a system resource, obtained by 
  8754.                      decoding the owner. 
  8755.    8. The decoded arena record. 
  8756.    9. The decoded alias record. 
  8757.   10. The decoded object record. 
  8758.   11. The decoded context record(s) (if this is a shared arena address). 
  8759.   12. The decoded Page Table over the linear address range of the object. For 
  8760.       each page in the object (PDEs are shown when displaying from a new Page 
  8761.       Table), the following items are shown: 
  8762.           The PTE. 
  8763.           The Page Frame Table entry for the PTE (if the page is present). 
  8764.           The Virtual Page Table entry for the PTE. 
  8765.  
  8766.  Items 6-11 are repeated for every process that has the specified page in its 
  8767.  Page Tables. 
  8768.  
  8769.  
  8770. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8771.  
  8772.      Memory addressing 
  8773.  
  8774.      Linear addresses 
  8775.  
  8776.      Physical addresses 
  8777.  
  8778.      Handles 
  8779.  
  8780.      Memory Management Control Blocks 
  8781.  
  8782.  
  8783. ΓòÉΓòÉΓòÉ 11.6.5. Detail for System Owner Display ΓòÉΓòÉΓòÉ
  8784.  
  8785. Select one: 
  8786.  
  8787.       Contents of Display 
  8788.  
  8789.       Selecting 
  8790.  
  8791.       Example Output 
  8792.  
  8793.       Related Topics 
  8794.  
  8795.  
  8796. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail for System Owner Display ΓòÉΓòÉΓòÉ
  8797.  
  8798. This is selected by a hyperblock link from the owner column of the Kernel 
  8799. Memory Usage display. 
  8800.  
  8801.  
  8802. ΓòÉΓòÉΓòÉ <hidden> Example of the Detail for System Owner Display ΓòÉΓòÉΓòÉ
  8803.  
  8804. Detail Kernel Memory assignment information, owner = FF6B:
  8805. This owner is 'allocated via devhlp AllocPhys'.
  8806. There are 2 objects which make up this System Owner.
  8807.   1. Object at linear address 7C673000, pages present = 640.
  8808.   2. Object at linear address 7D0BD000, pages present = 16.
  8809.  
  8810.  
  8811. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detail for System Owner Display ΓòÉΓòÉΓòÉ
  8812.  
  8813. One line is displayed for each memory object that makes up the specified system 
  8814. owner: 
  8815.  
  8816.  i. Object at linear address llllllll, pages present = nnn. 
  8817.            The base linear address of the memory object. The letter i indicates 
  8818.            the line number in the list. The nnn is the number of pages that are 
  8819.            present in RAM for this object. 
  8820.  
  8821.  
  8822. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8823.  
  8824.      Memory addressing 
  8825.  
  8826.      Linear addresses 
  8827.  
  8828.      Memory Management Control Blocks 
  8829.  
  8830.      System Memory Usage 
  8831.  
  8832.  
  8833. ΓòÉΓòÉΓòÉ 11.6.6. Alias Record Display ΓòÉΓòÉΓòÉ
  8834.  
  8835. Select one: 
  8836.  
  8837.       Contents of Display 
  8838.  
  8839.       Selecting 
  8840.  
  8841.       Example Output 
  8842.  
  8843.       Related Topics 
  8844.  
  8845.  
  8846. ΓòÉΓòÉΓòÉ <hidden> Alias Record Display ΓòÉΓòÉΓòÉ
  8847.  
  8848. Select one: 
  8849.  
  8850.       Contents of Display 
  8851.  
  8852.       Selecting 
  8853.  
  8854.       Example Output 
  8855.  
  8856.       Related Topics 
  8857.  
  8858.  
  8859. ΓòÉΓòÉΓòÉ <hidden> Selecting the Alias Record Display ΓòÉΓòÉΓòÉ
  8860.  
  8861. Alias records are displayed by selecting a hyperblock link from a hal field of 
  8862. some display. 
  8863.  
  8864.  
  8865. ΓòÉΓòÉΓòÉ <hidden> Example of the Alias Record Display ΓòÉΓòÉΓòÉ
  8866.  
  8867. A "CS_alias" alias record looks like: 
  8868.  
  8869.  hal   har    CS  flags  count    DS / Decoded flags
  8870. 003E  0ACB  006E     13    001  D446 / CS_alias DS_is_valid
  8871.  
  8872. A "MemMapAlias" alias record looks like: 
  8873.  
  8874.  hal   har  ptda  flags  count    DS / Decoded flags
  8875. 003E  0ACB  006E     15    001  D446 / MemMapAlias DS_is_valid
  8876.  
  8877. A "VM" alias record looks like: 
  8878.  
  8879.  hal   har  ptda  flags  offset / Decoded flags
  8880. 0006  0638  008D    021    0000 / DevHlp
  8881.  
  8882.  
  8883. ΓòÉΓòÉΓòÉ <hidden> Contents of the Alias Record Display ΓòÉΓòÉΓòÉ
  8884.  
  8885. The alias record displayed contains the following entries: 
  8886.  
  8887.  Column           Meaning 
  8888.  hal              The hal of the displayed alias record. 
  8889.  har              The har of the arena record for the memory object that this 
  8890.                   alias is for. 
  8891.  CS               Code Selector 
  8892.  ptda             Context this alias is created from. 
  8893.  flags            Flags for the record.  They are decoded at the end of the 
  8894.                   line. 
  8895.  count            Reference count 
  8896.  DS               Data Selector 
  8897.  offset           Page offset of the alias from the start of the object. 
  8898.  Decoded flags    The flags are decoded into readable form: 
  8899.                   CS_alias         The alias is for a Code Selector (CS) alias. 
  8900.                   MemMapAlias      The alias is for a PTDA alias. 
  8901.                   (Neither of the above two) The alias is a Virtual Memory (VM) 
  8902.                                    alias. 
  8903.                   Debug            The alias is for a debugger. 
  8904.                   DS_is_valid      The data field is valid. 
  8905.                   DevHlp           The alias is for a DevHlp allocated memory. 
  8906.                   Privatized       ??? 
  8907.                   VDM              The alias is for a Virtual Dos Machine 
  8908.                                    (VDM). 
  8909.                   UVIRT_mapping_in_VDMs ??? 
  8910.  
  8911.  
  8912. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  8913.  
  8914.      Memory Management Control Blocks 
  8915.  
  8916.      Handles 
  8917.  
  8918.  
  8919. ΓòÉΓòÉΓòÉ 11.6.7. Arena Record Display ΓòÉΓòÉΓòÉ
  8920.  
  8921. Select one: 
  8922.  
  8923.       Contents of Display 
  8924.  
  8925.       Selecting 
  8926.  
  8927.       Example Output 
  8928.  
  8929.       Related Topics 
  8930.  
  8931.  
  8932. ΓòÉΓòÉΓòÉ <hidden> Arena Record Display ΓòÉΓòÉΓòÉ
  8933.  
  8934. Select one: 
  8935.  
  8936.       Contents of Display 
  8937.  
  8938.       Selecting 
  8939.  
  8940.       Example Output 
  8941.  
  8942.       Related Topics 
  8943.  
  8944.  
  8945. ΓòÉΓòÉΓòÉ <hidden> Selecting the Arena Record Display ΓòÉΓòÉΓòÉ
  8946.  
  8947. Arena records are displayed by selecting a hyperblock link from a har field of 
  8948. some display. 
  8949.  
  8950.  
  8951. ΓòÉΓòÉΓòÉ <hidden> Example of the Arena Record Display ΓòÉΓòÉΓòÉ
  8952.  
  8953. A private arena record looks like: 
  8954.  
  8955.  har    pages   linear flg next prev link hash hob  hal  ptda / Decoded flags
  8956. 0252 00000020 00010000 1D9 0243 024D 0000 0000 025F 0000 0301 / Mapped Reload User Exec Read
  8957.  
  8958. A shared arena record looks like: 
  8959.  
  8960.  har    pages   linear flg next prev link hash hob  hal  hco  / Decoded flags
  8961. 02C5 00000010 1AB60000 369 02AE 0005 0000 0000 030F 0000 04E2 / Mapped Write User Read Hco
  8962.  
  8963. A system arena record looks like: 
  8964.  
  8965.  har    pages   linear flg next prev link hash hob  hal  sel  / Decoded flags
  8966. 0210 00000400 7C000000 001 0272 0004 0000 007A 0270 0000 0000 /
  8967.  
  8968.  
  8969. ΓòÉΓòÉΓòÉ <hidden> Contents of the Arena Record Display ΓòÉΓòÉΓòÉ
  8970.  
  8971. The arena record displayed contains the following entries: 
  8972.  
  8973.  Column           Meaning 
  8974.  har              The har of the displayed arena record. 
  8975.  pages            The number of pages allocated in the memory object. The 
  8976.                   number of committed pages may be less than this. 
  8977.  linear           The linear address of the start of the memory object. 
  8978.  flg              Flags to indicate the status of the memory Object. They are 
  8979.                   decoded into English at the end of the line. 
  8980.  next             The next arena record in the doubly linked chain. The arena 
  8981.                   records are linked in ascending order of the linear address 
  8982.                   of the memory object. 
  8983.  prev             The previous arena record in the doubly linked chain. 
  8984.  link             The har of an arena record that is an alias for the memory 
  8985.                   object. 
  8986.  hash             Link to hash table. 
  8987.  hob              The hob of the object record associated with this memory 
  8988.                   object. 
  8989.  hal              Alias record handle. 
  8990.  ptda             (private arena) The hob of the PTDA of the process that owns 
  8991.                   the memory object. 
  8992.  hco              (shared arena) The first hco in a chain of context records 
  8993.                   for the memory object. 
  8994.  sel              (system arena) The GDT selector that points to the memory 
  8995.                   object. 
  8996.  Decoded flags    The flags are decoded into readable form: 
  8997.                   Mapped         A selector maps this memory object. 
  8998.                   Reload         Loader flag. 
  8999.                   Write          The object is writable. 
  9000.                   User           The object has user pages 
  9001.                   Exec           The object has executable pages. 
  9002.                   Read           The object has readable pages 
  9003.                   Hco            For a shared arena record, this indicates that 
  9004.                                  there is an entry in the hco field. 
  9005.                   Guard          The object has guard pages. 
  9006.                   SGS            The object is registered under Screen Group 
  9007.                                  Switch control. 
  9008.  
  9009.  
  9010. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9011.  
  9012.      Memory Management Control Blocks 
  9013.  
  9014.      Handles 
  9015.  
  9016.  
  9017. ΓòÉΓòÉΓòÉ 11.6.8. Object Record Display ΓòÉΓòÉΓòÉ
  9018.  
  9019. Select one: 
  9020.  
  9021.       Contents of Display 
  9022.  
  9023.       Selecting 
  9024.  
  9025.       Example Output 
  9026.  
  9027.       Related Topics 
  9028.  
  9029.  
  9030. ΓòÉΓòÉΓòÉ <hidden> Object Record Display ΓòÉΓòÉΓòÉ
  9031.  
  9032. Select one: 
  9033.  
  9034.       Contents of Display 
  9035.  
  9036.       Selecting 
  9037.  
  9038.       Example Output 
  9039.  
  9040.       Related Topics 
  9041.  
  9042.  
  9043. ΓòÉΓòÉΓòÉ <hidden> Selecting the Object Record Display ΓòÉΓòÉΓòÉ
  9044.  
  9045. Object records are displayed by selecting a link from a hob field of some 
  9046. display. 
  9047.  
  9048.  
  9049. ΓòÉΓòÉΓòÉ <hidden> Example of the Object Record Display ΓòÉΓòÉΓòÉ
  9050.  
  9051. A real memory object looks like: 
  9052.  
  9053.  hob   har next  flgs ownr hmte  sown,cnt lt st / owner / decoded_flags
  9054. 0252  0259 0000  0838 025F 025F  0000 00  00 00 / m-THESEUSn / shared exec read user
  9055.  
  9056. A pseudo-object looks like: 
  9057.  
  9058.  hob   linear    flgs ownr hmte  sown,cnt lt st / owner / decoded_flags
  9059. 0294  7D3211D0   8000 FFE1 025F  0000 00  00 00 / VM arena header / Pseudo-object
  9060.  
  9061.  
  9062. ΓòÉΓòÉΓòÉ <hidden> Contents of the Object Record Display ΓòÉΓòÉΓòÉ
  9063.  
  9064. The object record displayed contains the following entries: 
  9065.  
  9066.  Column           Meaning 
  9067.  hob              The hob of the displayed object record. 
  9068.  har              The har of the arena record associated with this object 
  9069.                   record. 
  9070.  next             The next object record in the chain for this memory object. 
  9071.  linear           The linear address of the pseudo-object. 
  9072.  flgs             Flags to indicate the status of the memory object. They are 
  9073.                   decoded into English at the end of the line. 
  9074.  ownr             Objects have owners. This is the hob of the owner. 
  9075.  hmte             The hmte that allocated the memory object. 
  9076.  sown             ID of thread owning the semaphore. 
  9077.  cnt              Counter and waiting flag associated with sown. 
  9078.  lt               Number of long-term locks that are outstanding. 
  9079.  st               Number of short-term locks that are outstanding. 
  9080.  owner            The name of the owner in ASCII. 
  9081.  decoded_flags    The flags are decoded into readable form: 
  9082.                   Pseudo-object   The object is a pseudo-object. The linear 
  9083.                                   address of the object is contained in the 
  9084.                                   object record. 
  9085.                   API_allocated_object Object was allocated by an application. 
  9086.                   lock            Some thread to wake in VMUnlock. 
  9087.                   aliases         The object has aliases. 
  9088.                   shared          The object's contents are shared. 
  9089.                   UVirt           UVirt object. 
  9090.                   zero-init       Object is zero-initialized. 
  9091.                   resident        The object is to remain resident. It is not 
  9092.                                   allowed to be paged out. 
  9093.                   low memory      The object's memory is to be allocated from 
  9094.                                   low memory. 
  9095.                   guard           The object has guard pages. 
  9096.                   exec            The object has executable pages 
  9097.                   read            The object has readable pages 
  9098.                   user            The object has user pages. 
  9099.                   write           The object has writable pages. 
  9100.  
  9101.  
  9102. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9103.  
  9104.      Memory Management Control Blocks 
  9105.  
  9106.      Handles 
  9107.  
  9108.  
  9109. ΓòÉΓòÉΓòÉ 11.6.9. Context Record Display ΓòÉΓòÉΓòÉ
  9110.  
  9111. Select one: 
  9112.  
  9113.       Contents of Display 
  9114.  
  9115.       Selecting 
  9116.  
  9117.       Example Output 
  9118.  
  9119.       Related Topics 
  9120.  
  9121.  
  9122. ΓòÉΓòÉΓòÉ <hidden> Context Record Display ΓòÉΓòÉΓòÉ
  9123.  
  9124. Select one: 
  9125.  
  9126.       Contents of Display 
  9127.  
  9128.       Selecting 
  9129.  
  9130.       Example Output 
  9131.  
  9132.       Related Topics 
  9133.  
  9134.  
  9135. ΓòÉΓòÉΓòÉ <hidden> Selecting the Context Record Display ΓòÉΓòÉΓòÉ
  9136.  
  9137. Context records are displayed by selecting a hyperblock link from an hco field 
  9138. of some display. 
  9139.  
  9140.  
  9141. ΓòÉΓòÉΓòÉ <hidden> Example of the Context Record Display ΓòÉΓòÉΓòÉ
  9142.  
  9143.  hco  next ptda flgs / process / decoded_flags
  9144. 0472  02C6 0283  16  / THESEUSn / read user write
  9145.  
  9146.  
  9147. ΓòÉΓòÉΓòÉ <hidden> Contents of the Context Record Display ΓòÉΓòÉΓòÉ
  9148.  
  9149. The context record displayed contains the following entries: 
  9150.  
  9151.  Column            Meaning 
  9152.  hco               The hco of the displayed context record. 
  9153.  next              The hco of the next context record in the chain. The last 
  9154.                    context record has a next field of 0000. 
  9155.  ptda              The hob of the PTDA which has access to the shared memory 
  9156.                    object. 
  9157.  flgs              The flag byte is presented in hex. It is decoded into 
  9158.                    English at the end of the line. 
  9159.  process           The name of the process referred to by the PTDA handle. 
  9160.  decoded_flags     The flags are decoded into readable form: 
  9161.                    privatized       The context is privatized. 
  9162.                    guard            The object has guard pages. 
  9163.                    read             Object is readable from this process. 
  9164.                    exec             Object is executable from this process. 
  9165.                    user             The object has user pages. 
  9166.                    write            Object is writable from this process. 
  9167.                    originator       This process that originally allocated the 
  9168.                                     object. 
  9169.  
  9170.  
  9171. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9172.  
  9173.      Memory Management Control Blocks 
  9174.  
  9175.      Handles 
  9176.  
  9177.  
  9178. ΓòÉΓòÉΓòÉ 11.6.10. Virtual Page Table Entry Display ΓòÉΓòÉΓòÉ
  9179.  
  9180. Select one: 
  9181.  
  9182.       Contents of Display 
  9183.  
  9184.       Selecting 
  9185.  
  9186.       Example Output 
  9187.  
  9188.       Related Topics 
  9189.  
  9190.  
  9191. ΓòÉΓòÉΓòÉ <hidden> Virtual Page Table Entry Display ΓòÉΓòÉΓòÉ
  9192.  
  9193. Select one: 
  9194.  
  9195.       Contents of Display 
  9196.  
  9197.       Selecting 
  9198.  
  9199.       Example Output 
  9200.  
  9201.       Related Topics 
  9202.  
  9203.  
  9204. ΓòÉΓòÉΓòÉ <hidden> Selecting the Virtual Page Table Entry Display ΓòÉΓòÉΓòÉ
  9205.  
  9206. Virtual Page Table entries are displayed by selecting a hyperblock link from a 
  9207. vp field of the Page Frame display. 
  9208.  
  9209. They also appear a number of other displays. 
  9210.  
  9211.  
  9212. ΓòÉΓòÉΓòÉ <hidden> Example of the Virtual Page Table Entry Display ΓòÉΓòÉΓòÉ
  9213.  
  9214. Virtual Page Table entry at FF40F064:
  9215.   hob=0007 refCount=0001 relPage=0001 block#=00002 flag=0410 / pf resident
  9216.  
  9217.  
  9218. ΓòÉΓòÉΓòÉ <hidden> Contents of the Virtual Page Table entry display ΓòÉΓòÉΓòÉ
  9219.  
  9220. The fields of the Virtual Page Table entry are decoded: 
  9221.  
  9222.  Term             Meaning 
  9223.  hob=oooo         The hob of the memory object that this page is a part of. 
  9224.  refCount=hhhh    The number of objects that refer to this page. 
  9225.  relPage=hhhh     The relative page number within the object. 
  9226.  block#=hhhhh     Pager disk frame or loader block number for pages which are 
  9227.                   not in RAM. The physical page number of pages which are in 
  9228.                   RAM. 
  9229.  flag=hhhh        Flags indicating the status of the virtual page. They are 
  9230.                   shown as hex and then decoded into ASCII: 
  9231.                   busy               Page semaphore is taken. 
  9232.                   wanted             Page semaphore has been requested. 
  9233.                   cache              Search page cache for the page. 
  9234.                   pfidle             Cross linked to an idle page frame. 
  9235.                   pf                 Cross linked to a page frame. 
  9236.                   swapped            Has a swap file disk frame. 
  9237.                   dirty              Page contents have been written to. 
  9238.                   shdirty            Shadow dirty bit (for VDMs). 
  9239.                   sow                Change to swappable on write. 
  9240.                   resident           Cannot be moved or paged. 
  9241.                   discardable        Page is discardable. 
  9242.  
  9243.  
  9244. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9245.  
  9246.      Memory addressing 
  9247.  
  9248.      Handles 
  9249.  
  9250.  
  9251. ΓòÉΓòÉΓòÉ 11.6.11. MTE Display ΓòÉΓòÉΓòÉ
  9252.  
  9253. Select one: 
  9254.  
  9255.       Contents of Display 
  9256.  
  9257.       Selecting 
  9258.  
  9259.       Example Output 
  9260.  
  9261.       Related Topics 
  9262.  
  9263.  
  9264. ΓòÉΓòÉΓòÉ <hidden> Selecting the MTE Display ΓòÉΓòÉΓòÉ
  9265.  
  9266. This is selected by a hyperblock link from the MTE @ column of the Modules 
  9267. display. 
  9268.  
  9269.  
  9270. ΓòÉΓòÉΓòÉ <hidden> Example of the MTE Display ΓòÉΓòÉΓòÉ
  9271.  
  9272. Resident portion of MTE (@ FEB717E8):
  9273. Use count = 1
  9274. Number of entries in Imp Mod Name Tbl = 5
  9275. Module name @ FEB71820 -> THESEUSn
  9276. Module pointers table @ FEB71808
  9277. Handle of the mte = 0345
  9278. File system number for open file = 0077
  9279. Link to next mte = FEB71B18
  9280. Link to swappable mte = FE5BA250
  9281. Signature = LX
  9282. Flags = 04903142
  9283.   Class = Program
  9284.   File Media permits discarding
  9285.   Program module
  9286.  
  9287. Swappable portion of MTE (@ FE5BA250):
  9288. Module # pages = 0000003C
  9289. Initial instruction pointer = 0001:00026634
  9290. Initial stack       pointer = 0002:0001B100
  9291. Fixup section size = 00009440
  9292. Object table offset = FE5BA305
  9293. Number of objects in module = 00000002
  9294. Object page map offset = FE5BA335
  9295. Object iterated data map offset = 00000000
  9296. Offset of Resource Table = 00000000
  9297. Number of resource entries = 00000000
  9298. Offset of resident name table = FE5BA515
  9299. Offset of Entry Table = FE5BA521
  9300. Offset of Fixup Page Table = FE5BA522
  9301. Offset of Fixup Record Table = FE5BA616
  9302. Offset of Import Module Name Table = FE5C393D
  9303. Offset of Imp Procedure Name Table = FE5C3962
  9304. Offset of Enumerated Data Pages = 00009800
  9305. Number of preload pages = 00000000
  9306. Offset of Non-resident Names Table = 00044400
  9307. Size of Non-resident Name Table = 00000042
  9308. Object # for automatic data object = 00000002
  9309. Offset of the debugging info = 00000000
  9310. The length of the debug info in bytes = 00000000
  9311. Number of instance pages in preload section = 00000000
  9312. Use for converted 16-bit modules = 00000000 (heapsize)
  9313. Full pathname = FE5BA2EC -> E:\THESEUSn\THESEUSn.EXE
  9314. Length of pathname = 0018
  9315. Used by dynamic trace = 0000
  9316. Count of threads waiting on MTE semaphore = 0
  9317. Slot number of the owner of the MTE semaphore = 0000
  9318. Pointer to preload pages = 00000000
  9319. Start of object with preload pages = FDD09000
  9320. Size  of object with preload pages = 00000000
  9321. Pointer to file cache for Dos32CacheModule= 00000000
  9322. Use for converted 16-bit modules = 0000 (alignshift)
  9323. Use for converted 16-bit modules = 0000 (stacksize)
  9324. Original flags from NE header = 0000
  9325. expver from NE header = 0000
  9326. exetype from NE header = 0000
  9327. Original other flags from NE header = 0000
  9328. Number of preload pages used = 00
  9329.  
  9330. Object Table:
  9331. Obj#   address      size   hob   sel  page map  map size     flags / flags...
  9332. 0001  00010000  0002A579  035D  000F  00000001  0000002B  80002025 / readable executable shared 32-bit
  9333. 0002  00040000  0001B100  0000  0027  0000002C  00000011  80002003 / readable writeable 32-bit
  9334.  
  9335.  
  9336. ΓòÉΓòÉΓòÉ <hidden> Contents of the MTE Display ΓòÉΓòÉΓòÉ
  9337.  
  9338. The MTE is in two sections: resident and swappable. They are displayed as 
  9339. follows: 
  9340.  
  9341. The resident portion of the MTE is as follows: 
  9342.  
  9343.  Resident portion of MTE (@ llllllll): 
  9344.            The linear address of the resident portion of the MTE. 
  9345.  Use count = i 
  9346.            Number of times a DosLoadModule function has been done for this 
  9347.            module. 
  9348.  Number of entries in Imp Mod Name Tbl = i 
  9349.            Number of entries in Import Module Name Table. 
  9350.  Module name @ llllllll -> 'name' 
  9351.            The linear address of the module name, followed by the name in 
  9352.            ASCII. (Only the linear address is in the MTE; THESEUS retrieves the 
  9353.            contents of the ASCII string that is pointed to.) 
  9354.  Module pointers table @ llllllll 
  9355.            Pointer to the Module Pointers Table. 
  9356.  Handle of the mte = oooo 
  9357.            The hob of this MTE. 
  9358.  File system number for open file = hhhh 
  9359.            System file number for the open .EXE or .DLL program file. 
  9360.  Link to next mte = llllllll 
  9361.            Linear address of the next MTE in the chain. 
  9362.  Link to swappable mte = llllllll 
  9363.            Linear address of the swappable portion of this MTE. 
  9364.  Signature = aa 
  9365.            The signature indicates the type of the module. 
  9366.            NE = 16-bit segmented module.  (Built by the old linker.) 
  9367.            LX = 16 or 32-bit module.  (Build by the new linker.) 
  9368.  Flags = hhhhhhhh 
  9369.            Module flags.  The relevant flags are decoded on the following 
  9370.            lines. 
  9371.  
  9372.  The swappable portion of the MTE is as follows: 
  9373.  
  9374.  Swappable portion of MTE (@ llllllll): 
  9375.            The linear address of the swappable portion of the MTE. 
  9376.  Module # pages 
  9377.            The number of pages in the module. 
  9378.  Initial instruction pointer = ssss:oooooooo 
  9379.            ssss is the module-relative segment/object number where the initial 
  9380.            entry point is located. oooooooo is the offset within the 
  9381.            segment/object of the entry point. (The module type determines 
  9382.            whether the ssss is segment or object.) This address will match the 
  9383.            address on the .MAP file produced by the linker. 
  9384.  Initial stack    pointer = ssss:oooooooo 
  9385.            ssss is the module-relative segment/object number where the initial 
  9386.            stack is located. oooooooo is the offset within the segment/object 
  9387.            of the stack. (The module type determines whether the ssss is 
  9388.            segment or object.) This address will match the address on the .MAP 
  9389.            file produced by the linker. 
  9390.  Fixup section size = hhhhhhhh 
  9391.            Number of bytes in the "fixup" section of the module. 
  9392.  Object table offset = llllllll 
  9393.            Linear address of the Object Table. 
  9394.  Number of objects in module = hhhhhhhh 
  9395.            Number of segments/objects in the module. 
  9396.  Object page map offset = llllllll 
  9397.            Linear address of the Object Page Map. 
  9398.  Object iterated data map offset = hhhhhhhh 
  9399.            ??? 
  9400.  Offset of Resource Table = llllllll 
  9401.            Linear address of the modules Resource Table. 
  9402.  Number of resource entries = hhhhhhhh 
  9403.            Number of entries in the Resource Table. 
  9404.  Offset of resident name table = llllllll 
  9405.            Linear address of the Resident Name Table. 
  9406.  Offset of Entry Table = llllllll 
  9407.            Linear address of the Entry Table. 
  9408.  Offset of Fixup Page Table = llllllll 
  9409.            Linear address of the Fixup Page Table. 
  9410.  Offset of Fixup Record Table = llllllll 
  9411.            Linear address of the Fixup Record Table. 
  9412.  Offset of Import Module Name Table = llllllll 
  9413.            Linear address of the Import Module Name Table. 
  9414.  Offset of Imp Procedure Name Table = llllllll 
  9415.            Linear address of the Import Procedure Name Table. 
  9416.  Offset of Enumerated Data Pages = hhhhhhhh 
  9417.            ??? 
  9418.  Number of preload pages = hhhhhhhh 
  9419.            Number of pages which have been marked "preload" by the linker. 
  9420.  Offset of Non-resident Names Table = hhhhhhh 
  9421.            ??? 
  9422.  Size of Non-resident Name Table = hhhhhhhh 
  9423.            ??? 
  9424.  Object # for automatic data object = ssssssss 
  9425.            Segment/object number that contains the automatic data object. 
  9426.  Offset of the debugging info = hhhhhhhh 
  9427.            ??? 
  9428.  The length of the debug info in bytes = hhhhhhhh 
  9429.            The size of the debug information in bytes. 
  9430.  Number of instance pages in preload section = hhhhhhhh 
  9431.            Number of instance pages that are to be preloaded. 
  9432.  Use for converted 16-bit modules = hhhhhhhh (heapsize) 
  9433.            Size of the heap. 
  9434.  Full pathname = llllllll -> 'file name' 
  9435.            Linear address of the fully qualified file name, followed by the 
  9436.            fully qualified file name. (Only the linear address is in the MTE; 
  9437.            THESEUS retrieves the contents of the ASCIIZ string that is pointed 
  9438.            to.) 
  9439.  Length of pathname = hhhh 
  9440.            Length (in bytes) of the path name. 
  9441.  Used by dynamic trace = hhhh 
  9442.            ??? 
  9443.  Count of threads waiting on MTE semaphore = i 
  9444.            ??? 
  9445.  Slot number of the owner of the MTE semaphore = hhhh 
  9446.            ??? 
  9447.  Pointer to preload pages = hhhhhhhh 
  9448.            ??? 
  9449.  Start of object with preload pages = hhhhhhhh 
  9450.            ??? 
  9451.  Size  of object with preload pages = hhhhhhhh 
  9452.            ??? 
  9453.  Pointer to file cache for Dos32CacheModule= hhhhhhhh 
  9454.            ??? 
  9455.  Use for converted 16-bit modules = hhhh (alignshift) 
  9456.            ??? 
  9457.  Use for converted 16-bit modules = hhhh (stacksize) 
  9458.            ??? 
  9459.  Original flags from NE header = hhhh 
  9460.            ??? 
  9461.  expver from NE header = hhhh 
  9462.            ??? 
  9463.  exetype from NE header = hhhh 
  9464.            ??? 
  9465.  Original other flags from NE header = hhhh 
  9466.            ??? 
  9467.  Number of preload pages used = hh 
  9468.            ??? 
  9469.  
  9470.  Following this is either a Segment Table or Object Table, depending on the 
  9471.  module type. 
  9472.  
  9473.  Each line of an Object Table contains the following: 
  9474.  
  9475.  Obj#        Module relative number of the object. This will match the linker's 
  9476.              output. 
  9477.  address     Linear address of the object in memory. 
  9478.  size        Size of the object in bytes. 
  9479.  hob         The hob assigned to the object. 
  9480.  sel         Selector in the LDT assigned to this object. (This is only for 
  9481.              16-bit compatibility.) 
  9482.  page map    ??? 
  9483.  map size    ??? 
  9484.  flags       Flags for this object.  They are decoded to the right. 
  9485.  
  9486.  Each line of a Segment Table contains the following: 
  9487.  
  9488.  Seg#        Module relative number of the segment. This will match the 
  9489.              linker's output. 
  9490.  file offset Location of the segment in the file on disk. The interpretation of 
  9491.              this depends on the "file granularity" specified to the linker. 
  9492.  file size   The size, in bytes, of the segment within the file. 
  9493.  flag        Flags for this segment.  They are decoded to the right. 
  9494.  ram size    The size, in bytes, of the segment after being loaded into RAM. 
  9495.  hob         The hob assigned to the segment. 
  9496.  sel         Selector in the LDT assigned to this object. 
  9497.  fixups      ??? 
  9498.  
  9499.  
  9500. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9501.  
  9502.      Memory Management Control Blocks 
  9503.  
  9504.      Memory addressing 
  9505.  
  9506.  
  9507. ΓòÉΓòÉΓòÉ 11.6.12. TCB Display ΓòÉΓòÉΓòÉ
  9508.  
  9509. Select one: 
  9510.  
  9511.       Contents of Display 
  9512.  
  9513.       Selecting 
  9514.  
  9515.       Example Output 
  9516.  
  9517.       Related Topics 
  9518.  
  9519.  
  9520. ΓòÉΓòÉΓòÉ <hidden> Selecting the TCB Display ΓòÉΓòÉΓòÉ
  9521.  
  9522. This is selected by a hyperblock link from the TCB column of a display. 
  9523.  
  9524.  
  9525. ΓòÉΓòÉΓòÉ <hidden> Example of the TCB Display ΓòÉΓòÉΓòÉ
  9526.  
  9527. Thread Control Block at FD423E78:
  9528.  
  9529. TCB Linkage Information:
  9530. TID = 0001, Thread slot number = 0028
  9531. Forced action bit vector = 00000000
  9532. PTDA @ 7D3234E0
  9533. TSD @ 7D145000, TIB @ 00060030
  9534. Forward link to next (active) TCB = 00000000
  9535.  
  9536. Dos32CreateThread stack parameters:
  9537. Virtual   size of stack object = 00000000
  9538. Committed size of stack object = 00000000
  9539. Virtual   base of stack object = FFFFFFFF
  9540. Libi load data area link head    @ 00000000
  9541. Libi load data area link current @ 00000000
  9542. Libi load data area link free    @ 00000000
  9543. Stack frame type = FFF3CCCC
  9544. Stack frame base pointer = 7D145F3C
  9545. Local context hook head = FD423EB0, 00000000
  9546.  
  9547. Information needed for context switching:
  9548. KStack page 0 of TCB  = 0065D203
  9549. KStack page 1 of TCB  = 0063C203
  9550. KStack TSD page       = 005AA203
  9551. KStack page 0 of PTDA = 00000000
  9552. KStack page 1 of PTDA = 00000000
  9553. KStack page 2 of PTDA = 00623203
  9554. SS-relative offset of Current TCB = 00009288
  9555. SS-relative offset of Current TSD = 00004410
  9556. stack-to-flat TCB conversion value = FD41ABF0
  9557. stack-to-flat TSD conversion value = 7D140BF0
  9558.  
  9559. Variables used in the file system:
  9560. User's I/O transfer address = 03F05E70
  9561. Position of first sector accessed within the file = 00000000
  9562. Pointer to SFT we're working with = 00000000
  9563. Number of valid (previously written) sectors = 0000005E
  9564. Redirector TCB (Used by LANMAN) = 05C10000
  9565. Process ID for file sharing checks = 0000
  9566. User    ID for file sharing checks = 0000
  9567. non-zero ==> no redirection = 00
  9568. see SetAttrib/file.asm = 00
  9569. JFN flag bits for current file handle = 1C
  9570. Allowed I 24 answers (see allowed_) = 00
  9571. Fields to support opportunistic locks.  These are set by the server.
  9572.     Server's per file cookie = 00120000
  9573.     Whether server wants oplock, etc. = FFFFEF4F
  9574. Variables used by the FAT file system.  These are specific for the FAT
  9575.  file system and are not used for any IFS.
  9576.     Currently assigned buffer = FFFF0000
  9577.     Handle of current VPB = 0005
  9578.     TCBNextAdd = 001D
  9579.     Position of first byte within sector = 0000
  9580.     TCBClusNum = 0000
  9581.     TCBLastPos = 0101
  9582.     Number of bytes in 1st sector = 0000
  9583.     # of bytes in last sector = 003E
  9584.     Number of whole sectors = 0000
  9585.     Position of first sector within cluster = FFFFFFF4
  9586. How to handle a HardError = 02
  9587. Action response from user on HardError = 01
  9588. NZ if TCBLockHndl is valid = 00
  9589. Lock Handle of user mem = D9 02 0C 06 D4 50 30 00 40 FF 00 00
  9590. Address of current CDS = 000051FA
  9591. Address of current FSC = 000051F4
  9592. NZ if user did FAIL on I 24 = 0000
  9593.  
  9594. 16bit addr of the ramsem blocked upon = 072306E0
  9595. Debugger display address fo ksems = FFFFFFFF
  9596.  
  9597. Per-thread NPX Information:
  9598. buffer @ 7CAD5EA0
  9599.  
  9600. TKWaitThread fields:
  9601. Next waiting TCB = 00000000
  9602. Threads waiting for me to die = 00000000
  9603.  
  9604. Scheduler fields:
  9605. Scheduler queue location (actual) = 05
  9606. Current scheduler state (desired) = 05
  9607. TKSleep/TKWakeup flags = 00
  9608. Window Boost count = 01
  9609. Priority Class (user) = 02
  9610. Priority Level (user) = 00
  9611. Priority Class modifier bits = 60
  9612. Misc. Scheduler flags = 00
  9613. Calculated Priority = 0500
  9614. Minimum Scheduling priority = 0000
  9615. Kernel Boost Lock nesting count = 00000000
  9616. Next     priority queue in chain = FD423E78
  9617. Previous priority queue in chain = FD423E78
  9618. Higher priority thread = FD423E78
  9619. Lower  priority thread = FD423E78
  9620. Next     same-priority thread = FD423E78
  9621. Previous same-priority thread = FD423E78
  9622. TKQueryWakeup TCB list = 00000000
  9623. Sleep ID this TCB is sleeping on = FFFE0064
  9624. Timeout/Starvation Timeout element = ????
  9625. Used by the loader (TCBCheckedSig) = 01
  9626.  
  9627. Per-thread Swapper Information:
  9628. Status of swapping = 00
  9629.  
  9630. Info about nesting level in FSH_DoVolIO:
  9631. Nesting level of FSH_DoVolIO = 00
  9632.  
  9633. Device I/O fields:
  9634. Flag to indicate if request pkt in use = 00
  9635. I/O request packet for thread = 01000000
  9636.  
  9637.  
  9638. ΓòÉΓòÉΓòÉ <hidden> Contents of the TCB Display ΓòÉΓòÉΓòÉ
  9639.  
  9640. No additional explanation is available. 
  9641.  
  9642.  
  9643. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9644.  
  9645.      Memory Management Control Blocks 
  9646.  
  9647.      Memory addressing 
  9648.  
  9649.  
  9650. ΓòÉΓòÉΓòÉ 11.6.13. Detail Working Set Information for an Object Display ΓòÉΓòÉΓòÉ
  9651.  
  9652. Select one: 
  9653.  
  9654.       Contents of Display 
  9655.  
  9656.       Selecting 
  9657.  
  9658.       Example Output 
  9659.  
  9660.       Related Topics 
  9661.  
  9662.  
  9663. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail Working Set Information for an Object Display ΓòÉΓòÉΓòÉ
  9664.  
  9665. This is selected by a hyperblock link from the accessed - yes column of the 
  9666. Detail of Working Set (by Object) display. 
  9667.  
  9668.  
  9669. ΓòÉΓòÉΓòÉ <hidden> Example of the Detail Working Set Information for an Object Display ΓòÉΓòÉΓòÉ
  9670.  
  9671. Details of Working Set for Object with hob = 0429, Process = 'THESEUSn':
  9672. It is (shared) object # 0001 of module THESEUSn.
  9673.   linear   physical  time   status
  9674. 00010000   00639000     1   in Working Set
  9675. 00011000   00060000         not in Working Set
  9676. 00012000   003BF000     1   in Working Set
  9677. 00013000   0047E000     1   in Working Set
  9678. 00014000   00058000     1   in Working Set
  9679. 00015000   00895000     1   in Working Set
  9680. 00016000   0070B000     3   in Working Set
  9681. 00017000   001F6000     1   in Working Set
  9682. 00018000   006B0000         not in Working Set
  9683. 00019000   00096000         not in Working Set
  9684. 0001A000   00072000         not in Working Set
  9685. 0001B000   003BC000         not in Working Set
  9686. 0001C000   0048A000         not in Working Set
  9687. 0001D000                    not in memory
  9688. 0001E000                    not in memory
  9689. 0001F000                    not in memory
  9690. 00020000                    not in memory
  9691. 00021000   005C3000     1   in Working Set
  9692. 00022000                    not in memory
  9693. 00023000                    not in memory
  9694.   linear   physical  time   status
  9695. 00024000                    not in memory
  9696. 00025000   0043D000         not in Working Set
  9697. 00026000                    not in memory
  9698. 00027000                    not in memory
  9699. 00028000   00488000     1   in Working Set
  9700. 00029000   0024E000     1   in Working Set
  9701. 0002A000   002E3000     1   in Working Set
  9702. 0002B000   002D9000         not in Working Set
  9703. 0002C000   005F0000         not in Working Set
  9704. 0002D000   00186000         not in Working Set
  9705. 0002E000   005CD000     1   in Working Set
  9706. 0002F000                    not in memory
  9707. 00030000   00444000         not in Working Set
  9708. 00031000   00363000         not in Working Set
  9709. 00032000   0004B000     1   in Working Set
  9710. 00033000   00487000     1   in Working Set
  9711. 00034000   00474000     1   in Working Set
  9712. 00035000   00340000         not in Working Set
  9713. 00036000   00190000     1   in Working Set
  9714. 00037000   0018E000     1   in Working Set
  9715.   linear   physical  time   status
  9716. 00038000   009E7000     1   in Working Set
  9717. 00039000   0034D000     1   in Working Set
  9718. 0003A000   004C3000     1   in Working Set
  9719. 0003B000   00699000         not in Working Set
  9720. 0003C000   009F2000     1   in Working Set
  9721.  
  9722.  
  9723. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detail Working Set Information for an Object Display ΓòÉΓòÉΓòÉ
  9724.  
  9725. One line is displayed for each committed page within the object: 
  9726.  
  9727.  Column     Meaning 
  9728.  linear     The linear address of the page. 
  9729.  physical   The physical address of the page. 
  9730.  time       The number of intervals since the page was last accessed. 
  9731.  status     The status of the page relative to the working set: 
  9732.             in Working Set             The page was in memory and was accessed 
  9733.                                        sometime within the working set 
  9734.                                        interval. 
  9735.             not in Working Set         The page was in memory but was last 
  9736.                                        accessed outside the working set 
  9737.                                        interval. 
  9738.             not in memory              This is a committed page that was not in 
  9739.                                        RAM during the run. 
  9740.  
  9741.  
  9742. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9743.  
  9744.      Memory analysis 
  9745.  
  9746.      Memory addressing 
  9747.  
  9748.  
  9749. ΓòÉΓòÉΓòÉ 11.6.14. SFT Entry Display ΓòÉΓòÉΓòÉ
  9750.  
  9751. Select one: 
  9752.  
  9753.       Contents of Display 
  9754.  
  9755.       Selecting 
  9756.  
  9757.       Example Output 
  9758.  
  9759.       Related Topics 
  9760.  
  9761.  
  9762. ΓòÉΓòÉΓòÉ <hidden> Selecting the SFT Entry Display ΓòÉΓòÉΓòÉ
  9763.  
  9764. This is selected by a hyperblock link of the SFT address field on the Open 
  9765. Files display. 
  9766.  
  9767.  
  9768. ΓòÉΓòÉΓòÉ <hidden> Example of the SFT Entry Display ΓòÉΓòÉΓòÉ
  9769.  
  9770. System File Table Entry located at 03F8:30A6:
  9771.  
  9772. Base portion of the SFT entry:
  9773.   Reference count = 1
  9774.   User count = 0
  9775.   Flag word 1 = 0040 / local file 40
  9776.   Flag word 2 = 0000 /
  9777.   Device pointer = 00000012
  9778.   File System Control (FSC) block @ 0000FF40
  9779.   'cookie' = 00000000
  9780.   Next in chain = 0000:0000
  9781.   Master File Table (MFT) entry @ FEB62FA0
  9782.  
  9783. File system dependent portion of the SFT:
  9784.  
  9785. File system independent portion of the SFT:
  9786.   Access mode = 00A0
  9787.   Additional openmode bits for DosOpen2 = 0000
  9788.   handle of volume = 0012
  9789.   Creation time of file = 0000
  9790.   Creation date of file = 0000
  9791.   Time of last access of file 0000
  9792.   Date of last access of file 0000
  9793.   Time of last modification of file = 5C4A
  9794.   Date of last modification of file = 1913
  9795.   Size associated with file = 0003910D
  9796.   Read/Write pointer or LRU count for FCBs = 000060A1
  9797.   User ID = 0000
  9798.   Process ID = 00FF
  9799.   Process Data Block = 0000
  9800.   SFN of this sf_entry = 0062
  9801.   update time stamp flags = 00
  9802.   file/device/named-pipe/FCB = 0000
  9803.   performance counter data block pointer = 00000000
  9804.   DOS attributes of file(sys,hid,r/o,arch = 20
  9805.  
  9806. Used for spooling:
  9807.   16 bit offset to first pending LOCK record = 0000
  9808.   SFN of named pipe for spooled files = 0000
  9809.   Current codepage (font) for data in file = 0
  9810.  
  9811.  
  9812. ΓòÉΓòÉΓòÉ <hidden> Contents of the SFT Entry Display ΓòÉΓòÉΓòÉ
  9813.  
  9814. No additional explanation is available. 
  9815.  
  9816.  
  9817. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9818.  
  9819.      Memory addressing 
  9820.  
  9821.  
  9822. ΓòÉΓòÉΓòÉ 11.6.15. Detailed Memory Assignment Information ΓòÉΓòÉΓòÉ
  9823.  
  9824. Select one: 
  9825.  
  9826.       Contents of Display 
  9827.  
  9828.       Selecting 
  9829.  
  9830.       Example Output 
  9831.  
  9832.       Related Topics 
  9833.  
  9834.  
  9835. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detailed Memory Assignment Information Display ΓòÉΓòÉΓòÉ
  9836.  
  9837. This is selected by a hyperblock link of the RAM amount field on the Free, 
  9838. Idle, and Locked Memory display or the RAM Usage by Process display. 
  9839.  
  9840.  
  9841. ΓòÉΓòÉΓòÉ <hidden> Example of the Detailed Memory Assignment Information Display ΓòÉΓòÉΓòÉ
  9842.  
  9843. There are two different formats of the information displayed, one for Locked 
  9844. memory and one for all the other types. 
  9845.  
  9846. The detail of locked memory is: 
  9847.  
  9848. Detail memory assignment information, PID = 0000, Process = system:
  9849.  giving detail about Long  Term Locked memory:
  9850. 0012F000 is Long Term Locked, count = 1.
  9851. 004EB000 is Long Term Locked, count = 1.
  9852. 00510000 is Long Term Locked, count = 5.
  9853. 00670000 is Long Term Locked, count = 1.
  9854. ┬╖┬╖┬╖
  9855.  
  9856. The detail of other type memory is: 
  9857.  
  9858. Detail memory assignment information, PID = 0000, Process = system,
  9859.  giving detail about IDLE memory:
  9860. 0009C000 is assigned as IDLE
  9861. 001D1000 is assigned as IDLE
  9862. 001E8000 is assigned as IDLE
  9863. 001ED000 is assigned as IDLE, page is dirty
  9864. ┬╖┬╖┬╖
  9865.  
  9866.  
  9867. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detailed Memory Assignment Information Display ΓòÉΓòÉΓòÉ
  9868.  
  9869. The free and idle detail lists are presented in the order they are linked into 
  9870. the chain. If an idle page is dirty, it is indicated as such. 
  9871.  
  9872. The locked detail lists are presented in physical page address order. The lock 
  9873. count from the Page Frame Table is given. This count specifies the number of 
  9874. times that Device Drivers have locked the particular page. 
  9875.  
  9876.  
  9877. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  9878.  
  9879.      Memory addressing 
  9880.  
  9881.      Physical Memory States 
  9882.  
  9883.  
  9884. ΓòÉΓòÉΓòÉ 11.6.16. Detail of Nonswappable Memory ΓòÉΓòÉΓòÉ
  9885.  
  9886. Select one: 
  9887.  
  9888.       Contents of Display 
  9889.  
  9890.       Selecting 
  9891.  
  9892.       Example Output 
  9893.  
  9894.       Related Topics 
  9895.  
  9896.  
  9897. ΓòÉΓòÉΓòÉ <hidden> Selecting the Detail of Nonswappable Memory Display ΓòÉΓòÉΓòÉ
  9898.  
  9899. When you select the link from the nonswappable memory bytes column of the 
  9900. Nonswappable Memory display, detail about the specified Nonswappable memory 
  9901. group will be displayed. 
  9902.  
  9903.  
  9904. ΓòÉΓòÉΓòÉ <hidden> Example of the Detail of Nonswappable Memory Display ΓòÉΓòÉΓòÉ
  9905.  
  9906. This is from a freshly booted ThinkPad 720C with 16M RAM and 160M hardfile, 
  9907. running OS/2 Warp, using the "Easy Installation" option. 
  9908.  
  9909. Detail of Nonswappable Memory 'Apps & DLLs':
  9910. Following entries are from 'Private Arenas':
  9911.  
  9912. Following entries are from the 'Shared Arena':
  9913.   Object        Resident    Locked         Process
  9914.  address   har    memory    memory   PID      name  Description
  9915. 13A90000  0236  00000000  00003000  0002  PMSHL32   IBMDEV32 #0001 (shared data)
  9916. 13AA0000  0235  00000000  00001000  0002  PMSHL32   IBMDEV32 #0002 (shared data)
  9917. 1B780000  0233  00000000  00001000  0002  PMSHL32   IBMDEV32 #0004 (shared code)
  9918. 1BD00000  01C3  00000000  00002000  0002  PMSHL32   PMMERGE  #0004 (shared code)
  9919. 1BDF0000  01C2  00000000  00002000  0002  PMSHL32   PMMERGE  #0005 (shared data)
  9920.  
  9921. Detail of Nonswappable Memory 'Process overhead':
  9922.   Object        Resident    Locked         Process
  9923.  address   har    memory    memory   PID      name  Description
  9924. 1BFE0000  0073  00000000  00001000  0002  PMSHL32   infoseg (local or global) (owner)
  9925. 1BFF0000  0071  00000000  00001000  0002  PMSHL32   infoseg (local or global) (owner)
  9926. A9447000  035D  00004000  00000000  0006  THESEUSn  SEL LDT (owner)
  9927. A9627000  01AE  00000000  00001000  0002  PMSHL32   SEL LDT (owner)
  9928. ABCD9000  008A  00004000  00000000  0000  system    TK TSD (owner)
  9929. ABDD8000  0089  00006000  00000000  0000  system    TK TCB (owner)
  9930. ABDF8000  0088  00002000  00000000  0000  system    TK PTDA (owner)
  9931. AC800000  0028  00030000  00000000  0000  system    PG Compat. region page table (owner)
  9932. FF150000  001E  00005000  00000000  0000  system    PG Compat. region page table (owner)
  9933.  
  9934. Now the overhead for each process:
  9935.     PTDA   Process      PTDA       TCB       LDT Page_Table
  9936.   linear      name      size      size      size       size
  9937. FFE4AA0C  sysinit   000005F4  00000B18  00000000   00009000
  9938. ABDF8020  PMSHL32   000005F4  00002A28  00005000   0000A000
  9939. ABDF8614  HARDERR   000005F4  000006A8  00000000   00006000
  9940. ABDF8C08  PMSPOOL   000005F4  000008E0  00000000   00000000
  9941. ABDF91FC  PMSHL32   000005F4  00001AA0  00000000   0000B000
  9942. ABDF97F0  THESEUSn  000005F4  00000238  00000000   0000D000
  9943.                     ========  ========  ========   ========
  9944. Totals              000023B8  000061A0  00005000   00031000
  9945.  
  9946. Detail of Nonswappable Memory 'File system':
  9947.   Object        Resident    Locked
  9948.  address   har    memory    memory  Description
  9949. AB244000  00B1  00042000  00000000  file system buffer (owner)
  9950. AB286000  0076  0018D000  00000000  file system buffer (owner)
  9951. ABED7000  0077  00002000  00000000  Named pipe NP segment (owner)
  9952. ABEE7000  0078  00001000  00000000  record lock record owner (owner)
  9953. ABEF7000  007A  00003000  00000000  system file table (owner)
  9954. ABF07000  0079  00001000  00000000  system file table (owner)
  9955. ABF20000  0339  00003000  00000000  FindNotify global segment (owner)
  9956.  
  9957.  
  9958. ΓòÉΓòÉΓòÉ <hidden> Contents of the Detail of Nonswappable Memory Display ΓòÉΓòÉΓòÉ
  9959.  
  9960. The information presented on the Detail of Nonswappable Memory display is as 
  9961. follows: 
  9962.  
  9963.    1. For the Apps & DLLs detail, the private arena memory object are 
  9964.       presented, followed by the shared arena memory objects. 
  9965.    2. For the Process overhead detail, the memory objects are presented in 
  9966.       linear address order and then each process is shown with its 
  9967.       resident/locked memory usage. 
  9968.    3. For all the other details, the memory objects are presented in linear 
  9969.       address order. 
  9970.  One line is displayed for each memory object: 
  9971.  
  9972.  Column            Meaning 
  9973.  Object address    The linear address of the start of the memory object. 
  9974.  har               The har of the arena record associated with this object 
  9975.                    record. 
  9976.  Resident memory   The number of bytes in hexadecimal of memory marked resident 
  9977.                    for this memory object. 
  9978.  Locked memory     The number of bytes in hexadecimal of memory marked locked 
  9979.                    for this memory object. 
  9980.  PID               The PID of the process which owns this memory object. 
  9981.  Process name      The name of the process which owns this memory object. 
  9982.  Description       A description in English of the memory object. 
  9983.  
  9984.  For the "Process overhead": 
  9985.  
  9986.  Column            Meaning 
  9987.  PTDA linear       The linear address of the PTDA. 
  9988.  Process name      The name of the process. 
  9989.  PTDA size         The amount of RAM consumed by the PTDA in hexadecimal bytes. 
  9990.                    PTDas are always resident. 
  9991.  TCB size          The amount of RAM consumed by the TCBs in hexadecimal bytes. 
  9992.                    TCBs are always resident. 
  9993.  LDT size          The amount of RAM consumed by the resident/locked portion of 
  9994.                    the LDT in hexadecimal bytes. 
  9995.  Page_Table size   The amount of RAM consumed by the resident/locked portion of 
  9996.                    the Page Tables in hexadecimal bytes. 
  9997.  
  9998.  
  9999. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10000.  
  10001.      Memory addressing 
  10002.  
  10003.      Nonswappable Memory display 
  10004.  
  10005.  
  10006. ΓòÉΓòÉΓòÉ 11.6.17. Strip List ΓòÉΓòÉΓòÉ
  10007.  
  10008. Select one: 
  10009.  
  10010.       Contents of Display 
  10011.  
  10012.       Selecting 
  10013.  
  10014.       Example Output 
  10015.  
  10016.       Related Topics 
  10017.  
  10018.  
  10019. ΓòÉΓòÉΓòÉ <hidden> Selecting the Strip List Display ΓòÉΓòÉΓòÉ
  10020.  
  10021. This is selected by double clicking mouse button 1 after selecting a color bar 
  10022. on the Last Referenced Graphic display. It shows the memory objects surrounding 
  10023. the selected bar. 
  10024.  
  10025.  
  10026. ΓòÉΓòÉΓòÉ <hidden> Example of the Strip List Display ΓòÉΓòÉΓòÉ
  10027.  
  10028. Memory Objects around 00500000 for process = 'THESEUSn':
  10029.   Linear    Size    Description
  10030.     This memory object includes the preceeding bar.
  10031. 000E0000    4096K   THESEUSn allocated it
  10032. 004E0000      64K   THESEUSn allocated it
  10033. 004F0000      64K   HELPMGR  allocated it
  10034.     This memory object starts at the requested bar.
  10035. 00500000      64K   HELPMGR  allocated it
  10036. 00510000     256K   HELPMGR  allocated it
  10037. 00550000     256K   HELPMGR  allocated it
  10038. 00590000      64K   PMWIN    allocated it
  10039. 005A0000      64K   PMGPI    allocated it
  10040. 005B0000      64K   PMGPI    allocated it
  10041. 005C0000     256K   PMGPI    allocated it
  10042.     This memory object starts at the following bar.
  10043. 00600000      64K   PMGPI    allocated it
  10044. 00610000     256K   PMGPI    allocated it
  10045. 00650000     256K   THESEUSn allocated it
  10046. 00690000     384K   THESEUSn allocated it
  10047. 006F0000    2752K   THESEUSn allocated it
  10048.  
  10049.  
  10050. ΓòÉΓòÉΓòÉ <hidden> Contents of the Strip List Display ΓòÉΓòÉΓòÉ
  10051.  
  10052. There is one line displayed for each memory object surrounding the requested 
  10053. bar: 
  10054.  
  10055.  Column          Meaning 
  10056.  Linear          The linear address of the memory object. 
  10057.  Size            The size in decimal kilobytes of the memory object. 
  10058.  Description     A description in English of the memory object. 
  10059.  
  10060.  
  10061. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10062.  
  10063.      Memory addressing 
  10064.  
  10065.      Last Referenced Graphic 
  10066.  
  10067.  
  10068. ΓòÉΓòÉΓòÉ 11.7. Common Elements ΓòÉΓòÉΓòÉ
  10069.  
  10070. This section describes items common to several of the displays. 
  10071.  
  10072. Displays are: 
  10073.  
  10074.  Descriptor Table Entry 
  10075.            Displays fields of the entries in the GDT, LDT, and IDT displays. 
  10076.  Page Table Entry/Page Directory Entry 
  10077.            Displays fields of the entries in the Page Table Entry/Page 
  10078.            Directory Entry displays. 
  10079.  
  10080.  
  10081. ΓòÉΓòÉΓòÉ 11.7.1. Descriptor Table Entry ΓòÉΓòÉΓòÉ
  10082.  
  10083. The fields of the Descriptor Table Entry are decoded. (See the Intel 80386 
  10084. Programmer's Reference Manual for details about each field.) 
  10085.  
  10086.  Term           Meaning 
  10087.  Table          This is either GDT, LDT, Trap, or Int. 
  10088.  (number)       For GDT and LDT, this is the selector referring to this entry. 
  10089.                 For Trap, this is the trap number referring to this entry. 
  10090.                 For Int, this is the interrupt number referring to this entry. 
  10091.  Type           Type of selector: 
  10092.                 Code                Code segment 
  10093.                 Data                Data segment 
  10094.                 ATSS16              Available Task State Segment - 286 mode 
  10095.                 ATSS32              Available Task State Segment - 386 mode 
  10096.                 BTSS16              Busy Task State Segment - 286 mode 
  10097.                 BTSS32              Busy Task State Segment - 386 mode 
  10098.                 LDT                 Selector that points to an LDT 
  10099.                 CallG               Call Gate - 286 mode 
  10100.                 CallG32             Call Gate - 386 mode 
  10101.                 TaskG               Task Gate 
  10102.                 IntG                Interrupt Gate - 286 mode 
  10103.                 IntG32              Interrupt Gate - 386 mode 
  10104.                 TrapG               Trap Gate - 286 mode 
  10105.                 TrapG32             Trap Gate - 386 mode. 
  10106.  Base           Base address (linear) of the segment. 
  10107.  Limit          Length (-1) of the segment. (For "expand up" segments, this is 
  10108.                 the largest offset that may be used. For "expand down" 
  10109.                 segments, this is the smallest offset that may be used.) 
  10110.  DPL            Descriptor Privilege Level (2 bits). 
  10111.  CF             Code segment is "Conforming" (0=not conforming, 1=conforming). 
  10112.  R              Code segment is "Readable" (0=not readable, 1=readable). 
  10113.  ED             Data segment is "Expand Down" (0=expand up, 1=expand down). 
  10114.  W              Data segment is "Writable" (0=not writable, 1=writable). 
  10115.  A              Segment has been Accessed (0=not accessed, 1=accessed) 
  10116.  P              Segment is Present (0=not present, 1=present). 
  10117.  G              Granularity of limit value (0=byte (64K segment), 1=page (4G 
  10118.                 segment)). 
  10119.  D              Code segment default operand size (0=16-bit, 1=32-bit). 
  10120.  B              Data segment default size (0=16-bit, 1=32-bit). 
  10121.  Selector       Selector of gate's target segment. 
  10122.  Offset         Offset within selector of target code. 
  10123.  Word Count     Number of words on stack to be copied. 
  10124.  Alias          The selector is an "alias". 
  10125.  
  10126.  
  10127. ΓòÉΓòÉΓòÉ 11.7.2. Page Table Entry/Page Directory Entry ΓòÉΓòÉΓòÉ
  10128.  
  10129. The fields of the Page Table Entry or Page Directory Entry are decoded. (See 
  10130. the Intel 80386 Programmer's Reference Manual for details about each field.) 
  10131.  
  10132.  Term           Meaning 
  10133.  *              The asterisk (*) in the first column indicates a PDE. 
  10134.  Linear         The linear address associated with the entry. 
  10135.  Physical       The physical address of the page in memory. (The page is 
  10136.                 present.) 
  10137.  Invalid page   The entry indicates that there is no committed page for this 
  10138.                 address. 
  10139.  Guard          The page is a "guard page". 
  10140.  FrameId        The index into the Virtual Page Table for the page. (The page 
  10141.                 is not present.) 
  10142.  D              The page is "Dirty" (0=clean, 1=dirty). 
  10143.  A              The page has been "Accessed" (0=not accessed, 1=accessed). 
  10144.  User           The page is a "User page". The page can be accessed from any 
  10145.                 protection ring. 
  10146.  Super          The page is a "Supervisor page". The page can only be accessed 
  10147.                 from ring 0. 
  10148.  R/W            The page can be written. 
  10149.  R/O            The page can only be read. 
  10150.  P              The page is "Present" (0=not present, 1=present). 
  10151.  Resident       The page is not to be paged out nor discarded. 
  10152.  UVirt          The page is a UVirt page. 
  10153.  Cache_disabled ??? 
  10154.  Cache_write-through ??? 
  10155.  
  10156.  
  10157. ΓòÉΓòÉΓòÉ 12. Application Programming Interface ΓòÉΓòÉΓòÉ
  10158.  
  10159. THESEUS provides an Application Programming Interface (API) for certain of its 
  10160. functions. These are provided with the THESEUS0.DLL file. 
  10161.  
  10162. CAUTION:
  10163. These functions should only be used by a single thread of an application. They 
  10164. use the Microsoft** compiler's DLL library and it is probably not compatible 
  10165. with CSet/2*'s multi-thread environment. 
  10166.  
  10167. The functions provided by THESEUS0.DLL can be accessed from either a 'C' 
  10168. program or REXX. 
  10169.  
  10170.  
  10171. ΓòÉΓòÉΓòÉ 12.1. Restriction ΓòÉΓòÉΓòÉ
  10172.  
  10173. You may not distribute the THESEUS0.DLL program with any product you develop 
  10174. unless you have a Software Technology License Agreement with IBM for the 
  10175. THESEUS0.DLL program. 
  10176.  
  10177.  
  10178. ΓòÉΓòÉΓòÉ 12.2. 'C' Application Programming Interface ΓòÉΓòÉΓòÉ
  10179.  
  10180. The functions provided by THESEUS0.DLL are divided into the following 
  10181. categories: 
  10182.  
  10183.  Error Handling, Initialization/Termination, and Handle Management 
  10184.            Functions to handle errors, cause THESEUS0.DLL to initialize and 
  10185.            terminate and THESEUS0 handle management. 
  10186.  Free Memory, Swapper, and Process Functions 
  10187.            Functions to determine information about the system as a whole. 
  10188.  Working Set Functions 
  10189.            Functions to perform working set analysis. 
  10190.  
  10191.  Note:   THESEUS0.DLL has 32-bit interfaces ONLY. If you want to interface to 
  10192.  it from a 16-bit compiler, then you must provide the THUNKS yourself. 
  10193.  
  10194.  
  10195. ΓòÉΓòÉΓòÉ 12.2.1. Error Handling, Initialization/Termination, and Handle Management ΓòÉΓòÉΓòÉ
  10196.  
  10197. These functions apply to all the APIs. 
  10198.  
  10199. Error handling function: 
  10200.  
  10201.  error handler        Specify the error handler provided by the user. 
  10202.  
  10203.  Initialization/termination functions: 
  10204.  
  10205.  T2Initialize         Initialize THESEUS0.DLL for use. 
  10206.  T2Terminate          Terminate the use of THESEUS0.DLL. 
  10207.  
  10208.  Handle management functions: 
  10209.  
  10210.  T2GetHandle0         Get an instance handle. 
  10211.  T2ReleaseHandle0     Release an instance handle. 
  10212.  
  10213.  
  10214. ΓòÉΓòÉΓòÉ 12.2.1.1. error handler ΓòÉΓòÉΓòÉ
  10215.  
  10216. Select an item: 
  10217.  
  10218.       Function Syntax 
  10219.  
  10220.       Parameters 
  10221.  
  10222.       Example 
  10223.  
  10224.       Related Functions 
  10225.  
  10226.  
  10227. ΓòÉΓòÉΓòÉ <hidden> Syntax - error handler ΓòÉΓòÉΓòÉ
  10228.  
  10229. The error handler is provided by the user to format and display errors 
  10230. generated by the routines in THESEUS0.DLL. It must be provided by the user 
  10231. program because the lower level routines do not know what the output 
  10232. environment is. 
  10233.  
  10234. #include "THESEUS0.h"
  10235.  
  10236. VOID EXPENTRY error_handler0( T2HANDLE0 t2handle0,
  10237.                               ULONG     error_code,
  10238.                               ULONG     p1,
  10239.                               ULONG     p2)
  10240. {
  10241.   /* error handler code */
  10242. }
  10243.  
  10244.  
  10245. ΓòÉΓòÉΓòÉ <hidden> Parameters - error handler ΓòÉΓòÉΓòÉ
  10246.  
  10247.  t2handle0 (T2HANDLE0) - input 
  10248.            The instance handle that was being used by the lower level routine 
  10249.            when the error was detected. This is given to the error routine in 
  10250.            case the output is handle specific. 
  10251.  
  10252.  error_code (ULONG) - input 
  10253.            The values of the error_code and meanings of the other two 
  10254.            parameters are: 
  10255.  
  10256.                       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10257.                       Γöéerror_codeΓöép1    Γöép2    Γöéexplanation                      Γöé
  10258.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10259.                       Γöé1         ΓöélinearΓöén/a   ΓöéThe starting address (linear) hasΓöé
  10260.                       Γöé          Γöé      Γöé      Γöéno page table.                   Γöé
  10261.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10262.                       Γöé2         ΓöélinearΓöélengthΓöéThe ending address               Γöé
  10263.                       Γöé          Γöé      Γöé      Γöé(linear+length-1) has no page    Γöé
  10264.                       Γöé          Γöé      Γöé      Γöétable.                           Γöé
  10265.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10266.                       Γöé3         ΓöélinearΓöén/a   ΓöéThe page at the starting address Γöé
  10267.                       Γöé          Γöé      Γöé      Γöéis not present.                  Γöé
  10268.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10269.                       Γöé4         ΓöélinearΓöélengthΓöéThe page at the ending address   Γöé
  10270.                       Γöé          Γöé      Γöé      Γöé(linear+length-1) is not present.Γöé
  10271.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10272.                       Γöé5         ΓöélinearΓöélengthΓöéThe address+length is greater    Γöé
  10273.                       Γöé          Γöé      Γöé      Γöéthan 32 bits.                    Γöé
  10274.                       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10275.                       Γöé6         ΓöélinearΓöén/a   ΓöéThe header for the System Arena  Γöé
  10276.                       Γöé          Γöé      Γöé      Γöéwas not located. The value found Γöé
  10277.                       Γöé          Γöé      Γöé      Γöéis returned, but is not valid.   Γöé
  10278.                       Γöé          Γöé      Γöé      ΓöéSystem Working Set cannot be     Γöé
  10279.                       Γöé          Γöé      Γöé      Γöémeasured.                        Γöé
  10280.                       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10281.  
  10282.  p1 (ULONG) - input 
  10283.            see above 
  10284.  
  10285.  p2 (ULONG) - input 
  10286.            see above 
  10287.  
  10288.  
  10289. ΓòÉΓòÉΓòÉ <hidden> Example - error handler ΓòÉΓòÉΓòÉ
  10290.  
  10291. This example will print error messages to the STDOUT device. 
  10292.  
  10293. #include <os2.h>
  10294. #include <stdio.h>
  10295. #include "THESEUS0.h"
  10296.  
  10297. VOID EXPENTRY error_handler0( T2HANDLE0 t2handle0,
  10298.                               ULONG     error_code,
  10299.                               ULONG     p1,
  10300.                               ULONG     p2)
  10301. {
  10302.  switch (error_code)
  10303.  {
  10304.   case 1:
  10305.    printf( "Linear address: no Page Table, linear=%0.8X.\n", p1);
  10306.    break;
  10307.   case 2:
  10308.    printf( "Linear address+length: no Page Table, linear=%0.8X, length=%0.8X.\n",
  10309.            p1, p2);
  10310.    break;
  10311.   case 3:
  10312.    printf( "Linear address: page not present, linear=%0.8X.\n", p1);
  10313.    break;
  10314.   case 4:
  10315.    printf( "Linear address+Length: page not present, linear=%0.8X, length=%0.8X.\n",
  10316.            p1, p2);
  10317.    break;
  10318.   case 5:
  10319.    printf( "Linear address+Length: > 32 bits, linear=%0.8X, length=%0.8X.\n",
  10320.            p1, p2);
  10321.    break;
  10322.   case 6:
  10323.    printf( "SystemArenaHeaderLinear = %0.8X.\n", p1);
  10324.    printf( "SystemArenaHeaderLinear was not properly located.\n");
  10325.    printf( "System Working Set cannot be measured.\n");
  10326.    break;
  10327.   default:
  10328.    printf( "unknown error to error_handler0: t2handle0=%0.8X, error_code=%i, p1=%i, p2=%i.\n",
  10329.            t2handle0, error_code, p1, p2);
  10330.    break;
  10331.  }
  10332. }
  10333.  
  10334.  
  10335. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10336.  
  10337.      T2Initialize 
  10338.  
  10339.      T2GetHandle0 
  10340.  
  10341.  
  10342. ΓòÉΓòÉΓòÉ 12.2.1.2. T2Initialize ΓòÉΓòÉΓòÉ
  10343.  
  10344. Select an item: 
  10345.  
  10346.       Function Syntax 
  10347.  
  10348.       Parameters 
  10349.  
  10350.       Return Values 
  10351.  
  10352.       Example 
  10353.  
  10354.       Related Functions 
  10355.  
  10356.  
  10357. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2Initialize ΓòÉΓòÉΓòÉ
  10358.  
  10359. T2Initialize is used to cause THESEUS0 to initialize all its internal 
  10360. information that is required for later use. 
  10361.  
  10362. #include "THESEUS0.h"
  10363.  
  10364. PULONG ulDDVersion;
  10365. ULONG  ulrc;
  10366.  
  10367. ulrc = T2Initialize0( error_handler0);
  10368.  
  10369.  
  10370. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2Initialize ΓòÉΓòÉΓòÉ
  10371.  
  10372.  error_handler0 (function) - input 
  10373.            The address (name) of the error handler provided by the user 
  10374.            program. 
  10375.  
  10376.  
  10377. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2Initialize ΓòÉΓòÉΓòÉ
  10378.  
  10379.  ulrc (ULONG) 
  10380.            return code 
  10381.  
  10382.            Theseus2OK 
  10383.                           Initialization completed successfully. 
  10384.  
  10385.            Theseus2BadPTDA 
  10386.                           The initialization code could not determine the size 
  10387.                           of the PTDA. The program cannot continue. 
  10388.  
  10389.            Theseus2NoMte 
  10390.                           The initialization code could not determine the 
  10391.                           format for the resident portion of the MTE. The 
  10392.                           program cannot continue. 
  10393.  
  10394.  
  10395. ΓòÉΓòÉΓòÉ <hidden> Example - T2Initialize ΓòÉΓòÉΓòÉ
  10396.  
  10397. This example will cause T2Initialize to perform the initialization of the 
  10398. internal functions. 
  10399.  
  10400. VOID EXPENTRY error_handler0( ULONG error_code, ULONG p1, ULONG p2)
  10401. {
  10402. ┬╖┬╖┬╖
  10403. }
  10404.  
  10405. rc = T2Initialize0( error_handler0);
  10406. switch ( rc )
  10407. {
  10408.  case Theseus2BadPTDA:
  10409.   printf( "PTDA_findSize did not determine the size of a PTDA.\n");
  10410.   break;
  10411.  case Theseus2OK:
  10412.   printf( "Initialization completed normally.\n");
  10413.  
  10414.   /* Execute program functions. */
  10415.  
  10416.   T2Terminate0();
  10417.   break;
  10418. }
  10419.  
  10420.  
  10421. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10422.  
  10423.      error handler 
  10424.  
  10425.      T2Terminate 
  10426.  
  10427.  
  10428. ΓòÉΓòÉΓòÉ 12.2.1.3. T2Terminate ΓòÉΓòÉΓòÉ
  10429.  
  10430. Select an item: 
  10431.  
  10432.       Function Syntax 
  10433.  
  10434.       Example 
  10435.  
  10436.       Related Functions 
  10437.  
  10438.  
  10439. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2Terminate ΓòÉΓòÉΓòÉ
  10440.  
  10441. T2Terminate is used to cause THESEUS0 to close the device driver. 
  10442.  
  10443. #include "THESEUS0.h"
  10444.  
  10445. T2Terminate0( VOID );
  10446.  
  10447.  
  10448. ΓòÉΓòÉΓòÉ <hidden> Example - T2Terminate ΓòÉΓòÉΓòÉ
  10449.  
  10450. This example will cause T2Terminate to close out all the processing of 
  10451. THESEUS0.DLL. 
  10452.  
  10453.  
  10454. rc = T2Initialize0( error_handler0);
  10455. switch ( rc )
  10456. {
  10457. ┬╖┬╖┬╖
  10458.  case Theseus2OK:
  10459.   printf( "Initialization completed normally.\n");
  10460.  
  10461.   /* Execute program functions. */
  10462.  
  10463.   T2Terminate0();
  10464.   break;
  10465. }
  10466.  
  10467.  
  10468. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10469.  
  10470.      T2Initialize 
  10471.  
  10472.  
  10473. ΓòÉΓòÉΓòÉ 12.2.1.4. T2GetHandle0 ΓòÉΓòÉΓòÉ
  10474.  
  10475. Select an item: 
  10476.  
  10477.       Function Syntax 
  10478.  
  10479.       Parameters 
  10480.  
  10481.       Return Values 
  10482.  
  10483.       Example 
  10484.  
  10485.       Related Functions 
  10486.  
  10487.  
  10488. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2GetHandle0 ΓòÉΓòÉΓòÉ
  10489.  
  10490. T2GetHandle0 is used to cause THESEUS0 to allocate an instance handle. 
  10491.  
  10492. #include "THESEUS0.h"
  10493. VOID EXPENTRY error_handler0( ULONG error_code, ULONG p1, ULONG p2)
  10494. {
  10495. ┬╖┬╖┬╖
  10496. }
  10497.  
  10498. T2HANDLE0 t2handle0;
  10499.  
  10500. t2handle0 = T2GetHandle0( error_handler0);
  10501.  
  10502.  
  10503. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2GetHandle0 ΓòÉΓòÉΓòÉ
  10504.  
  10505.  error_handler0 (function) - input 
  10506.            The address (name) of the error handler provided by the user 
  10507.            program. 
  10508.  
  10509.  
  10510. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2GetHandle0 ΓòÉΓòÉΓòÉ
  10511.  
  10512.  t2handle0 (T2HANDLE0) 
  10513.            The new instance handle. This handle must be passed to other 
  10514.            functions. 
  10515.  
  10516.  
  10517. ΓòÉΓòÉΓòÉ <hidden> Example - T2GetHandle0 ΓòÉΓòÉΓòÉ
  10518.  
  10519. This example will allocate an instance handle. 
  10520.  
  10521. #include "THESEUS0.h"
  10522. T2HANDLE0 t2handle0;
  10523.  
  10524. t2handle0 = T2GetHandle0( error_handler0);
  10525.  
  10526.  
  10527. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10528.  
  10529.      error handler 
  10530.  
  10531.      T2ReleaseHandle0 
  10532.  
  10533.  
  10534. ΓòÉΓòÉΓòÉ 12.2.1.5. T2ReleaseHandle0 ΓòÉΓòÉΓòÉ
  10535.  
  10536. Select an item: 
  10537.  
  10538.       Function Syntax 
  10539.  
  10540.       Parameters 
  10541.  
  10542.       Example 
  10543.  
  10544.       Related Functions 
  10545.  
  10546.  
  10547. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2ReleaseHandle0 ΓòÉΓòÉΓòÉ
  10548.  
  10549. T2ReleaseHandle0 is used to cause THESEUS0 to release an instance handle and 
  10550. free the resources associated with it. 
  10551.  
  10552. #include "THESEUS0.h"
  10553. T2HANDLE0 *pT2Handle0;
  10554.  
  10555. T2ReleaseHandle0( pT2Handle0);
  10556.  
  10557.  
  10558. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2ReleaseHandle0 ΓòÉΓòÉΓòÉ
  10559.  
  10560.  t2handle0 (T2HANDLE0) - input/output 
  10561.            An instance handle acquired from T2GetHandle0. It is zeroed by the 
  10562.            function. 
  10563.  
  10564.  
  10565. ΓòÉΓòÉΓòÉ <hidden> Example - T2ReleaseHandle0 ΓòÉΓòÉΓòÉ
  10566.  
  10567. This example will release the instance handle previously acquired. 
  10568.  
  10569. #include "THESEUS0.h"
  10570. T2HANDLE0 t2handle0;
  10571.  
  10572. T2ReleaseHandle0( &t2handle0);
  10573.  
  10574.  
  10575. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10576.  
  10577.      T2GetHandle0 
  10578.  
  10579.  
  10580. ΓòÉΓòÉΓòÉ 12.2.2. Free Memory, Swapper, and Process Functions ΓòÉΓòÉΓòÉ
  10581.  
  10582. These functions are used to acquire specific information about the system as a 
  10583. whole. 
  10584.  
  10585. Free memory function: 
  10586.  
  10587.  T2FreeMemory            Determine the amount of free, idle, and locked memory. 
  10588.  
  10589.  SWAPPER.DAT analysis function: 
  10590.  
  10591.  T2AnalyzeSwapper        Determine the amount of free and used space in the 
  10592.                          SWAPPER.DAT file. 
  10593.  
  10594.  Process functions: 
  10595.  
  10596.  T2FindProcesses         Returns an array with the current processes. 
  10597.  T2RamUseByProcess       Returns an array with the current RAM usage by each 
  10598.                          process. 
  10599.  
  10600.  
  10601. ΓòÉΓòÉΓòÉ 12.2.2.1. T2FreeMemory ΓòÉΓòÉΓòÉ
  10602.  
  10603. Select an item: 
  10604.  
  10605.       Function Syntax 
  10606.  
  10607.       Parameters 
  10608.  
  10609.       Example 
  10610.  
  10611.       Related Functions 
  10612.  
  10613.  
  10614. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2FreeMemory ΓòÉΓòÉΓòÉ
  10615.  
  10616. T2FreeMemory is used to cause THESEUS0 to calculate the amount of free, idle, 
  10617. and locked memory. 
  10618.  
  10619. #include "THESEUS0.h"
  10620. T2HANDLE0 t2handle0;
  10621. PULONG pFreeRam,
  10622.        pIdleRam,
  10623.        pDirtyRam,
  10624.        pLLockRam,
  10625.        pSLockRam,
  10626.        pBLockRam;
  10627.  
  10628. T2FreeMemory( t2handle0,
  10629.               pFreeRam, pIdleRam, pDirtyRam,
  10630.               pLLockRam, pSLockRam, pBLockRam);
  10631.  
  10632.  
  10633. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2FreeMemory ΓòÉΓòÉΓòÉ
  10634.  
  10635.  t2handle0 (T2HANDLE0) - input 
  10636.            An instance handle previously allocated by T2GetHandle0. 
  10637.  
  10638.  pFreeRam (PULONG) - output 
  10639.            Address of the ULONG where the amount of free memory is returned. 
  10640.  
  10641.  pIdleRam (PULONG) - output 
  10642.            Address of the ULONG where the amount of idle memory is returned. 
  10643.  
  10644.  pDirtyRam (PULONG) - output 
  10645.            Address of the ULONG where the amount of dirty memory is returned. 
  10646.            This memory is included in the idle memory. 
  10647.  
  10648.  pLLockRam (PULONG) - output 
  10649.            Address of the ULONG where the amount of long-term locked memory is 
  10650.            returned. 
  10651.  
  10652.  pSLockRam (PULONG) - output 
  10653.            Address of the ULONG where the amount of short-term locked memory is 
  10654.            returned. 
  10655.  
  10656.  pBLockRam (PULONG) - output 
  10657.            Address of the ULONG where the amount of memory which is locked both 
  10658.            long-term and short-term is returned. 
  10659.  
  10660.  
  10661. ΓòÉΓòÉΓòÉ <hidden> Example - T2FreeMemory ΓòÉΓòÉΓòÉ
  10662.  
  10663. This example will cause T2FreeMemory to calculate the free, idle, and locked 
  10664. memory. 
  10665.  
  10666. #include "THESEUS0.h"
  10667. T2HANDLE0 t2handle0;
  10668. ULONG freeRam,
  10669.       idleRam,
  10670.       dirtyRam,
  10671.       LLockRam,
  10672.       SLockRam,
  10673.       BLockRam;
  10674.  
  10675. T2FreeMemory(  t2handle0,
  10676.               &freeRam,
  10677.               &idleRam,
  10678.               &dirtyRam,
  10679.               &LLockRam,
  10680.               &SLockRam,
  10681.               &BLockRam);
  10682.  
  10683.  
  10684. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10685.  
  10686.      T2GetHandle0 
  10687.  
  10688.      Contents of the Free, Idle, and Locked Memory Display 
  10689.  
  10690.  
  10691. ΓòÉΓòÉΓòÉ 12.2.2.2. T2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  10692.  
  10693. Select an item: 
  10694.  
  10695.       Function Syntax 
  10696.  
  10697.       Parameters 
  10698.  
  10699.       Example 
  10700.  
  10701.       Related Functions 
  10702.  
  10703.  
  10704. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  10705.  
  10706. T2AnalyzeSwapper is used to cause THESEUS0 to calculate the amount of free and 
  10707. used space in the SWAPPER.DAT file. 
  10708.  
  10709. #include "THESEUS0.h"
  10710. T2HANDLE0 t2handle0;
  10711. PULONG SwapUsed,
  10712.        SwapFree;
  10713.  
  10714. T2AnalyzeSwapper( t2handle0, SwapUsed, SwapFree);
  10715.  
  10716.  
  10717. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  10718.  
  10719.  t2handle0 (T2HANDLE0) - input 
  10720.            An instance handle previously allocated by T2GetHandle0. 
  10721.  
  10722.  SwapUsed (PULONG) - output 
  10723.            The address of a ULONG where the number of used disk frames is 
  10724.            returned. 
  10725.  
  10726.  SwapFree (PULONG) - output 
  10727.            The address of a ULONG where the number of free disk frames is 
  10728.            returned. 
  10729.  
  10730.  Each disk frame is 4K bytes. 
  10731.  
  10732.  
  10733. ΓòÉΓòÉΓòÉ <hidden> Example - T2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  10734.  
  10735. This example will cause T2AnalyzeSwapper to calculate the free and used space 
  10736. in the SWAPPER.DAT file. 
  10737.  
  10738. #include "THESEUS0.h"
  10739. T2HANDLE0 t2handle0;
  10740. ULONG SwapUsed,
  10741.       SwapFree;
  10742.  
  10743. T2AnalyzeSwapper( t2handle0, &SwapUsed, &SwapFree);
  10744.  
  10745.  
  10746. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10747.  
  10748.      T2GetHandle0 
  10749.  
  10750.      Contents of the Swapper Display 
  10751.  
  10752.  
  10753. ΓòÉΓòÉΓòÉ 12.2.2.3. T2FindProcesses ΓòÉΓòÉΓòÉ
  10754.  
  10755. Select an item: 
  10756.  
  10757.       Function Syntax 
  10758.  
  10759.       Parameters 
  10760.  
  10761.       Return Values 
  10762.  
  10763.       Example 
  10764.  
  10765.       Related Functions 
  10766.  
  10767.  
  10768. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2FindProcesses ΓòÉΓòÉΓòÉ
  10769.  
  10770. T2FindProcesses is used to cause THESEUS0 to count the number of processes in 
  10771. the system. It also returns an array which contains some information about each 
  10772. process. 
  10773.  
  10774. #include "THESEUS0.h"
  10775. T2HANDLE0 t2handle0;
  10776. ULONG     ulProcessCount;
  10777. T2PROCESS_TABLE *pProcessTable;
  10778.  
  10779. ulProcessCount = T2FindProcesses( t2handle0,
  10780.                                   pProcessTable);
  10781.  
  10782.  
  10783. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2FindProcesses ΓòÉΓòÉΓòÉ
  10784.  
  10785.  t2handle0 (T2HANDLE0) - input 
  10786.            An instance handle previously allocated by T2GetHandle0. 
  10787.  
  10788.  pProcessTable (T2PROCESS_TABLE *) - output 
  10789.            Address of a pointer which will point to the Process Table which is 
  10790.            returned. 
  10791.  
  10792.            The array contains an entry for each process currently running: 
  10793.  
  10794.            ptdaPID               The PID of this process. 
  10795.            pidParent             The pid of this process's parent process. 
  10796.            cThreads              The number of threads in this process. 
  10797.            processName           The name of this process. 
  10798.  
  10799.            Note:   It is the users responsibility to issue a DosFreeMem on this 
  10800.            array when it is no longer needed. 
  10801.  
  10802.  
  10803. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2FindProcesses ΓòÉΓòÉΓòÉ
  10804.  
  10805.  ulProcessCount (ULONG) 
  10806.            The number of processes currently running in the system. This will 
  10807.            also be the number of entries in pProcessTable. 
  10808.  
  10809.  
  10810. ΓòÉΓòÉΓòÉ <hidden> Example - T2FindProcesses ΓòÉΓòÉΓòÉ
  10811.  
  10812. This example will cause T2FindProcesses to return an array with process names 
  10813. and PIDs. 
  10814.  
  10815. #include "THESEUS0.h"
  10816. T2HANDLE0 t2handle0;
  10817. ULONG     cProcess;
  10818. T2PROCESS_TABLE *tProcessTable;
  10819.  
  10820. cProcess = T2FindProcesses( t2handle0,
  10821.                             &tProcessTable);
  10822.  
  10823.  
  10824. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10825.  
  10826.      T2GetHandle0 
  10827.  
  10828.      Contents of the Process List Display 
  10829.  
  10830.  
  10831. ΓòÉΓòÉΓòÉ 12.2.2.4. T2RamUseByProcess ΓòÉΓòÉΓòÉ
  10832.  
  10833. Select an item: 
  10834.  
  10835.       Function Syntax 
  10836.  
  10837.       Parameters 
  10838.  
  10839.       Return Values 
  10840.  
  10841.       Example 
  10842.  
  10843.       Related Functions 
  10844.  
  10845.  
  10846. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2RamUseByProcess ΓòÉΓòÉΓòÉ
  10847.  
  10848. T2RamUseByProcess is used to cause THESEUS0 to determine the RAM used by each 
  10849. process in the system. It returns an array which contains the usage of each 
  10850. process. 
  10851.  
  10852. #include "THESEUS0.h"
  10853. T2HANDLE0 t2handle0;
  10854. ULONG     ulProcessCount;
  10855. T2RAM_TABLE *pRamTable;
  10856. PULONG    ulFreeRam;
  10857.  
  10858. ulProcessCount = T2RamUseByProcess( t2handle0,
  10859.                                     pProcessTable,
  10860.                                     ulFreeRam);
  10861.  
  10862.  
  10863. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2RamUseByProcess ΓòÉΓòÉΓòÉ
  10864.  
  10865.  t2handle0 (T2HANDLE0) - input 
  10866.            An instance handle previously allocated by T2GetHandle0. 
  10867.  
  10868.  pRamTable (T2RAM_TABLE *) - output 
  10869.            Address of a pointer which will point to the RAM Table which is 
  10870.            returned. 
  10871.  
  10872.            The array contains an entry for each process currently running: 
  10873.  
  10874.            ptdaPID               The PID of this process. The entry with PID = 
  10875.                                  0000 contains the memory used by the "system". 
  10876.            ulPrivate             The amount of memory in the private arena of 
  10877.                                  this process. If multiple processes have the 
  10878.                                  same page in their private arenas, the process 
  10879.                                  with the lowest PID value is charged with the 
  10880.                                  memory. 
  10881.            ulShared              The amount of memory from the shared arena 
  10882.                                  that is owned by this process. 
  10883.  
  10884.            Note:   It is the users responsibility to issue a DosFreeMem on this 
  10885.            array when it is no longer needed. 
  10886.  
  10887.  ulFreeRam (ULONG) - output 
  10888.            The address of a ULONG where the amount of free memory is returned. 
  10889.  
  10890.  
  10891. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2RamUseByProcess ΓòÉΓòÉΓòÉ
  10892.  
  10893.  ulProcessCount (ULONG) 
  10894.            The number of processes currently running in the system. This will 
  10895.            also be the number of entries in pRamTable. 
  10896.  
  10897.  
  10898. ΓòÉΓòÉΓòÉ <hidden> Example - T2RamUseByProcess ΓòÉΓòÉΓòÉ
  10899.  
  10900. This example will cause T2RamUseByProcess to return an array with PIDs and RAM 
  10901. usage for each process. 
  10902.  
  10903. #include "THESEUS0.h"
  10904. T2HANDLE0 t2handle0;
  10905. ULONG     cProcess;
  10906. T2RAM_TABLE *tRamTable;
  10907. ULONG     ulFreeRam;
  10908.  
  10909. cProcess = T2RamUseByProcess( t2handle0,
  10910.                               &tRamTable,
  10911.                               &ulFreeRam);
  10912.  
  10913.  
  10914. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  10915.  
  10916.      T2GetHandle0 
  10917.  
  10918.      Contents of the RAM Usage by Process Display 
  10919.  
  10920.  
  10921. ΓòÉΓòÉΓòÉ 12.2.3. Working Set Functions ΓòÉΓòÉΓòÉ
  10922.  
  10923. These functions are used to acquire working set information. 
  10924.  
  10925. Working Set functions: 
  10926.  
  10927.  T2WSStart            Sets up to do working set analysis for a particular 
  10928.                       process or the entire system. 
  10929.  T2WSSystemTick       Collects data when doing working set for the entire 
  10930.                       system. 
  10931.  T2WSProcessTick      Collects data when doing working set for a particular 
  10932.                       process. 
  10933.  T2WSProcessTick2     Collects data when doing working set for a particular 
  10934.                       process. (This is the same as T2WSProcessTick, with the 
  10935.                       addition of the System DLL information.) 
  10936.  T2WSStop             Stops the collection of working set data and returns 
  10937.                       summary information. 
  10938.  T2WSStop2            Stops the collection of working set data and returns 
  10939.                       summary information. (This is the same as T2WSStop, with 
  10940.                       the addition of the System DLL information.) 
  10941.  T2WSCheck            See if it is valid to collect working set data for a 
  10942.                       particular process or the entire system. 
  10943.  
  10944.  The general way that these functions are used is: 
  10945.  
  10946.   T2WSStart.
  10947.   do {
  10948.     Wait for the desired interval to elapse.
  10949.     T2WSSystemTick or T2WSProcessTick or T2WSProcessTick2.
  10950.   } while (data is desired).
  10951.   T2WSStop or T2WSStop2.
  10952.  
  10953.  
  10954. ΓòÉΓòÉΓòÉ 12.2.3.1. T2WSStart ΓòÉΓòÉΓòÉ
  10955.  
  10956. Select an item: 
  10957.  
  10958.       Function Syntax 
  10959.  
  10960.       Parameters 
  10961.  
  10962.       Return Values 
  10963.  
  10964.       System Example 
  10965.  
  10966.       Process Example 
  10967.  
  10968.       Related Functions 
  10969.  
  10970.  
  10971. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSStart ΓòÉΓòÉΓòÉ
  10972.  
  10973. T2WSStart is used to cause THESEUS0 to set up for working set data collection 
  10974. for a particular process or the entire system. 
  10975.  
  10976. #include "THESEUS0.h"
  10977.  
  10978. T2HANDLE0  t2handle0;
  10979. WS_HANDLE0 ws_handle0;
  10980. ULONG      pid;
  10981.  
  10982. ulrc = T2WSStart( t2handle0, ws_handle0, pid);
  10983.  
  10984.  
  10985. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSStart ΓòÉΓòÉΓòÉ
  10986.  
  10987.  t2handle0 (T2HANDLE0) - input 
  10988.            An instance handle previously allocated by T2GetHandle0. 
  10989.  
  10990.  ws_handle0 (WS_HANDLE0) - output 
  10991.            The address of a WS_HANDLE0 where the working set handle is 
  10992.            returned. This handle must be used in the 
  10993.            T2WSSystemTick/T2WSProcessTick/T2WSProcessTick2 and 
  10994.            T2WSStop/T2WSStop2 calls. 
  10995.  
  10996.  pid (ULONG) - input 
  10997.            The pid of the process that you want to measure. If 0 is specified, 
  10998.            then the working set of the entire system is measured. The process 
  10999.            with pid of 0001 is not valid for measurement. 
  11000.  
  11001.  
  11002. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSStart ΓòÉΓòÉΓòÉ
  11003.  
  11004.  ulrc (ULONG) 
  11005.            return code 
  11006.  
  11007.            T2WS_OK 
  11008.                           The T2WSStart call completed properly. The ws_handle0 
  11009.                           value is returned. 
  11010.  
  11011.            T2WS_InUse 
  11012.                           The process requested is already having working set 
  11013.                           data collected for it. A process can have working set 
  11014.                           data collected for it from only one place. 
  11015.  
  11016.            T2WS_SystemBeingDone 
  11017.                           Working set collection is being done for the system. 
  11018.                           If system is being done, no process can have data 
  11019.                           collected for it. 
  11020.  
  11021.            T2WS_PidNotFound 
  11022.                           The requested process was not found as an active 
  11023.                           process. 
  11024.  
  11025.            T2WS_BadArena 
  11026.                           An error occurred during initialization. Working set 
  11027.                           data cannot be collected. 
  11028.  
  11029.  
  11030. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSStart System Working Set ΓòÉΓòÉΓòÉ
  11031.  
  11032. This example will cause THESEUS0 to collect working set data for the entire 
  11033. system. It will sample every 2 seconds and will take 5 samples. The working set 
  11034. interval is set as 3 intervals. The results are printed to the window. 
  11035.  
  11036. #include "THESEUS0.h"
  11037.  
  11038. T2HANDLE0  t2handle0;
  11039. ULONG      rc;
  11040. int        i;
  11041. WS_HANDLE0 ws_handle0;
  11042. ULONG      ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11043.            ulProcessesUsed, ulProcessCount, ulResident, ulTotalRam;
  11044. ULONG      iIntervals, ulMinimum, ulRecommended;
  11045.  
  11046. rc = T2WSStart( t2handle0, &ws_handle0, 0);
  11047. if (rc == T2WS_OK)
  11048. {
  11049.   for (i=0; i<5; i++)
  11050.   {
  11051.     printf( " waiting 2 seconds.");
  11052.     DosSleep( 2000);
  11053.     rc = T2WSSystemTick( ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11054.                          &ulFree, &ulIdle,
  11055.                          &ulProcessesUsed, &ulProcessCount,
  11056.                          &ulResident, &ulTotalRam);
  11057.     printf( "\n  tick (rc=%i), %i %i %i %i %i %i %i %i %i\n",
  11058.             rc, ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11059.             ulProcessesUsed, ulProcessCount,
  11060.             ulResident, ulTotalRam);
  11061.   }
  11062.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11063.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11064.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11065.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11066. }
  11067.  
  11068.  
  11069. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSStart Process Working Set ΓòÉΓòÉΓòÉ
  11070.  
  11071. This example will cause THESEUS0 to collect working set data for process with 
  11072. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  11073. set interval is set as 3 intervals. The results are printed to the window. 
  11074.  
  11075. #include "THESEUS0.h"
  11076.  
  11077. T2HANDLE0  t2handle0;
  11078. ULONG      rc;
  11079. int        i;
  11080. WS_HANDLE0 ws_handle0;
  11081. ULONG     ulNow, ulWS, ulAccessed;
  11082. ULONG     iIntervals, ulMinimum, ulRecommended, ulTotalRam;
  11083.  
  11084. rc = T2WSStart( t2handle0, &ws_handle0, 2);
  11085. if (rc == T2WS_OK)
  11086. {
  11087.   for (i=0; i<5; i++)
  11088.   {
  11089.     printf( " waiting 2 seconds.");
  11090.     DosSleep( 2000);
  11091.     rc = T2WSProcessTick(  ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11092.                           &ulTotalRam);
  11093.     printf( "  tick (rc=%i) pid=%i, %i %i %i %i\n",
  11094.             rc, i, ulNow, ulWS, ulAccessed, ulTotalRam);
  11095.   }
  11096.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11097.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11098.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11099.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11100. }
  11101.  
  11102.  
  11103. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11104.  
  11105.      T2GetHandle0 
  11106.  
  11107.      T2WSSystemTick 
  11108.  
  11109.      T2WSProcessTick 
  11110.  
  11111.      T2WSProcessTick2 
  11112.  
  11113.      T2WSStop 
  11114.  
  11115.      T2WSStop2 
  11116.  
  11117.      Working Set of the Entire System? 
  11118.  
  11119.      Working Set of a Single Process? 
  11120.  
  11121.  
  11122. ΓòÉΓòÉΓòÉ 12.2.3.2. T2WSSystemTick ΓòÉΓòÉΓòÉ
  11123.  
  11124. Select an item: 
  11125.  
  11126.       Function Syntax 
  11127.  
  11128.       Parameters 
  11129.  
  11130.       Return Values 
  11131.  
  11132.       Notes 
  11133.  
  11134.       Example 
  11135.  
  11136.       Related Functions 
  11137.  
  11138.  
  11139. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSSystemTick ΓòÉΓòÉΓòÉ
  11140.  
  11141. T2WSSystemTick is used to cause THESEUS0 to determine the amount of memory 
  11142. accessed since the last T2WSSystemTick call or from the T2WSStart call. 
  11143.  
  11144. #include "THESEUS0.h"
  11145.  
  11146. ULONG      rc;
  11147. WS_HANDLE0 ws_handle0;
  11148. ULONG      ulIntervals;
  11149. PULONG     ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11150.            ulProcessesUsed, ulProcessCount, ulResident, ulTotalRam;
  11151.  
  11152. rc = T2WSSystemTick( ws_handle0, ulIntervals,
  11153.                      ulNow, ulWS, ulAccessed,
  11154.                      ulFree, ulIdle,
  11155.                      ulProcessesUsed, ulProcessCount,
  11156.                      ulResident, ulTotalRam);
  11157.  
  11158.  
  11159. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSSystemTick ΓòÉΓòÉΓòÉ
  11160.  
  11161.  ws_handle0 (WS_HANDLE0) - input 
  11162.            An instance handle previously allocated by T2WSStart. 
  11163.  
  11164.  ulIntervals (ULONG) - input 
  11165.            The number of intervals that constitute the working set. This value 
  11166.            must be less than 254 for the computations to work properly. 
  11167.  
  11168.  ulNow (PULONG) - output 
  11169.            The address of a ULONG where the number of pages of memory that was 
  11170.            accessed during the last interval is returned. 
  11171.  
  11172.  ulWS (PULONG) - output 
  11173.            The address of a ULONG where the number of pages of memory in the 
  11174.            working set is returned. 
  11175.  
  11176.  ulAccessed (PULONG) - output 
  11177.            The address of a ULONG where the number of pages of memory accessed 
  11178.            since the T2WSStart was issued is returned. 
  11179.  
  11180.  ulFree (PULONG) - output 
  11181.            The address of a ULONG where the number of pages of free memory is 
  11182.            returned. 
  11183.  
  11184.  ulIdle (PULONG) - output 
  11185.            The address of a ULONG where the number of pages of idle memory is 
  11186.            returned. 
  11187.  
  11188.  ulProcessesUsed (PULONG) - output 
  11189.            The address of a ULONG where the number of processes that had memory 
  11190.            accessed during the interval is returned. This value indicates the 
  11191.            number of processes which are both running and touching non-system 
  11192.            memory. 
  11193.  
  11194.  ulProcessCount (PULONG) - output 
  11195.            The address of a ULONG where the total number of processes found 
  11196.            during the interval is returned. This number changes as processes 
  11197.            are created or destroyed. 
  11198.  
  11199.  ulResident (PULONG) - output 
  11200.            The address of a ULONG where the number of pages of resident memory 
  11201.            is returned. 
  11202.  
  11203.  ulTotalRam (PULONG) - output 
  11204.            The address of a ULONG where the total number of pages of RAM being 
  11205.            used by OS/2* is returned. 
  11206.  
  11207.  
  11208. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSSystemTick ΓòÉΓòÉΓòÉ
  11209.  
  11210.  ulrc (ULONG) 
  11211.            return code 
  11212.  
  11213.            T2WS_OK 
  11214.                           The T2WSSystemTick call completed properly. 
  11215.  
  11216.            T2WS_InvalidHandle 
  11217.                           The ws_handle0 passed was not valid. 
  11218.  
  11219.  
  11220. ΓòÉΓòÉΓòÉ <hidden> Notes - T2WSSystemTick ΓòÉΓòÉΓòÉ
  11221.  
  11222. The interval between calls to T2WSSystemTick should be chosen carefully. If the 
  11223. interval is too short, the processing could cause the rest of the system to 
  11224. have problems. However, if the interval is too long, dynamic memory allocated 
  11225. and freed will be missed. The overhead is dependent on the number of processes, 
  11226. more so than the amount of RAM in the machine. The interval should never be 
  11227. less than 1 second nor longer than 1 minute. 
  11228.  
  11229.  
  11230. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSSystemTick ΓòÉΓòÉΓòÉ
  11231.  
  11232. This example will cause THESEUS0 to collect working set data for the entire 
  11233. system. It will sample every 2 seconds and will take 5 samples. The working set 
  11234. interval is set as 3 intervals. The results are printed to the window. 
  11235.  
  11236. #include "THESEUS0.h"
  11237.  
  11238. T2HANDLE0  t2handle0;
  11239. ULONG      rc;
  11240. int        i;
  11241. WS_HANDLE0 ws_handle0;
  11242. ULONG      ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11243.            ulProcessesUsed, ulProcessCount, ulResident, ulTotalRam;
  11244. ULONG      iIntervals, ulMinimum, ulRecommended;
  11245.  
  11246. rc = T2WSStart( t2handle0, &ws_handle0, 0);
  11247. if (rc == T2WS_OK)
  11248. {
  11249.   for (i=0; i<5; i++)
  11250.   {
  11251.     printf( " waiting 2 seconds.");
  11252.     DosSleep( 2000);
  11253.     rc = T2WSSystemTick( ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11254.                          &ulFree, &ulIdle,
  11255.                          &ulProcessesUsed, &ulProcessCount,
  11256.                          &ulResident, &ulTotalRam);
  11257.     printf( "\n  tick (rc=%i), %i %i %i %i %i %i %i %i %i\n",
  11258.             rc, ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11259.             ulProcessesUsed, ulProcessCount,
  11260.             ulResident, ulTotalRam);
  11261.   }
  11262.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11263.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11264.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11265.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11266. }
  11267.  
  11268.  
  11269. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11270.  
  11271.      T2WSStart 
  11272.  
  11273.      T2WSStop 
  11274.  
  11275.      Working Set of the Entire System? 
  11276.  
  11277.      System Working Set 
  11278.  
  11279.  
  11280. ΓòÉΓòÉΓòÉ 12.2.3.3. T2WSProcessTick ΓòÉΓòÉΓòÉ
  11281.  
  11282. Select an item: 
  11283.  
  11284.       Function Syntax 
  11285.  
  11286.       Parameters 
  11287.  
  11288.       Return Values 
  11289.  
  11290.       Notes 
  11291.  
  11292.       Example 
  11293.  
  11294.       Related Functions 
  11295.  
  11296.  
  11297. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSProcessTick ΓòÉΓòÉΓòÉ
  11298.  
  11299. T2WSProcessTick is used to cause THESEUS0 to determine the amount of memory 
  11300. accessed since the last T2WSProcessTick call or from the T2WSStart call. 
  11301.  
  11302. #include "THESEUS0.h"
  11303.  
  11304. ULONG      rc;
  11305. WS_HANDLE0 ws_handle0;
  11306. ULONG      ulIntervals;
  11307. PULONG     ulNow, ulWS, ulAccessed, ulTotalRam;
  11308.  
  11309. rc = T2WSProcessTick( ws_handle0, ulIntervals,
  11310.                      ulNow, ulWS, ulAccessed, ulTotalRam);
  11311.  
  11312.  
  11313. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSProcessTick ΓòÉΓòÉΓòÉ
  11314.  
  11315.  ws_handle0 (WS_HANDLE0) - input 
  11316.            An instance handle previously allocated by T2WSStart. 
  11317.  
  11318.  ulIntervals (ULONG) - input 
  11319.            The number of intervals that constitute the working set. This value 
  11320.            must be less than 254 for the computations to work properly. 
  11321.  
  11322.  ulNow (PULONG) - output 
  11323.            The address of a ULONG where the number of pages of memory that was 
  11324.            accessed during the last interval is returned. 
  11325.  
  11326.  ulWS (PULONG) - output 
  11327.            The address of a ULONG where the number of pages of memory in the 
  11328.            working set is returned. 
  11329.  
  11330.  ulAccessed (PULONG) - output 
  11331.            The address of a ULONG where the number of pages of memory accessed 
  11332.            since the T2WSStart was issued is returned. 
  11333.  
  11334.  ulTotalRam (PULONG) - output 
  11335.            The address of a ULONG where the total number of pages of RAM being 
  11336.            used by OS/2* is returned. 
  11337.  
  11338.  
  11339. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSProcessTick ΓòÉΓòÉΓòÉ
  11340.  
  11341.  ulrc (ULONG) 
  11342.            return code 
  11343.  
  11344.            T2WS_OK 
  11345.                           The T2WSProcessTick call completed properly. 
  11346.  
  11347.            T2WS_InvalidHandle 
  11348.                           The ws_handle0 passed was not valid. 
  11349.  
  11350.            T2WS_PidNotFound 
  11351.                           The requested process was not found as an active 
  11352.                           process. It was found when the T2WSStart was done, 
  11353.                           but has since terminated. 
  11354.  
  11355.  
  11356. ΓòÉΓòÉΓòÉ <hidden> Notes - T2WSProcessTick ΓòÉΓòÉΓòÉ
  11357.  
  11358. The interval between calls to T2WSProcessTick should be chosen carefully. If 
  11359. the interval is too short, the processing could cause the rest of the system to 
  11360. have problems. However, if the interval is too long, dynamic memory allocated 
  11361. and freed will be missed. The overhead is dependent on the number of processes 
  11362. being monitored, more so than the amount of RAM in the machine. The interval 
  11363. should never be less than 1 second nor longer than 1 minute. 
  11364.  
  11365.  
  11366. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSProcessTick ΓòÉΓòÉΓòÉ
  11367.  
  11368. This example will cause THESEUS0 to collect working set data for process with 
  11369. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  11370. set interval is set as 3 intervals. The results are printed to the window. 
  11371.  
  11372. #include "THESEUS0.h"
  11373.  
  11374. T2HANDLE0  t2handle0;
  11375. ULONG      rc;
  11376. int        i;
  11377. WS_HANDLE0 ws_handle0;
  11378. ULONG     ulNow, ulWS, ulAccessed;
  11379. ULONG     iIntervals, ulMinimum, ulRecommended, ulTotalRam;
  11380.  
  11381. rc = T2WSStart( t2handle0, &ws_handle0, 2);
  11382. if (rc == T2WS_OK)
  11383. {
  11384.   for (i=0; i<5; i++)
  11385.   {
  11386.     printf( " waiting 2 seconds.");
  11387.     DosSleep( 2000);
  11388.     rc = T2WSProcessTick(  ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11389.                           &ulTotalRam);
  11390.     printf( "  tick (rc=%i) pid=%i, %i %i %i %i\n",
  11391.             rc, i, ulNow, ulWS, ulAccessed, ulTotalRam);
  11392.   }
  11393.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11394.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11395.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11396.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11397. }
  11398.  
  11399.  
  11400. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11401.  
  11402.      T2WSStart 
  11403.  
  11404.      T2WSProcessTick2 
  11405.  
  11406.      T2WSStop 
  11407.  
  11408.      T2WSStop2 
  11409.  
  11410.      Working Set of a Single Process? 
  11411.  
  11412.      Process Working Set 
  11413.  
  11414.  
  11415. ΓòÉΓòÉΓòÉ 12.2.3.4. T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11416.  
  11417. Select an item: 
  11418.  
  11419.       Function Syntax 
  11420.  
  11421.       Parameters 
  11422.  
  11423.       Return Values 
  11424.  
  11425.       Notes 
  11426.  
  11427.       Example 
  11428.  
  11429.       Related Functions 
  11430.  
  11431.  
  11432. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11433.  
  11434. T2WSProcessTick2 is used to cause THESEUS0 to determine the amount of memory 
  11435. accessed since the last T2WSProcessTick2 call or from the T2WSStart call. 
  11436.  
  11437. #include "THESEUS0.h"
  11438.  
  11439. ULONG      rc;
  11440. WS_HANDLE0 ws_handle0;
  11441. ULONG      ulIntervals;
  11442. PULONG     ulNow, ulWS, ulAccessed,
  11443.            ulDllNow, ulDllWS, ulDllAccessed,
  11444.            ulTotalRam;
  11445.  
  11446. rc = T2WSProcessTick2( ws_handle0, ulIntervals,
  11447.                        ulNow, ulWS, ulAccessed,
  11448.                        ulDllNow, ulDllWS, ulDllAccessed,
  11449.                        ulTotalRam);
  11450.  
  11451.  
  11452. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11453.  
  11454.  ws_handle0 (WS_HANDLE0) - input 
  11455.            An instance handle previously allocated by T2WSStart. 
  11456.  
  11457.  ulIntervals (ULONG) - input 
  11458.            The number of intervals that constitute the working set. This value 
  11459.            must be less than 254 for the computations to work properly. 
  11460.  
  11461.  ulNow (PULONG) - output 
  11462.            The address of a ULONG where the number of pages of memory that was 
  11463.            accessed during the last interval is returned. 
  11464.  
  11465.  ulWS (PULONG) - output 
  11466.            The address of a ULONG where the number of pages of memory in the 
  11467.            working set is returned. 
  11468.  
  11469.  ulAccessed (PULONG) - output 
  11470.            The address of a ULONG where the number of pages of memory accessed 
  11471.            since the T2WSStart was issued is returned. 
  11472.  
  11473.  ulDllNow (PULONG) - output 
  11474.            The address of a ULONG where the number of pages of memory that was 
  11475.            accessed by System DLLs during the last interval is returned. 
  11476.  
  11477.  ulDllWS (PULONG) - output 
  11478.            The address of a ULONG where the number of pages of memory in the 
  11479.            working set of the System DLLs is returned. 
  11480.  
  11481.  ulDllAccessed (PULONG) - output 
  11482.            The address of a ULONG where the number of pages of memory accessed 
  11483.            by System DLLs since the T2WSStart was issued is returned. 
  11484.  
  11485.  ulTotalRam (PULONG) - output 
  11486.            The address of a ULONG where the total number of pages of RAM being 
  11487.            used by OS/2* is returned. 
  11488.  
  11489.  
  11490. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11491.  
  11492.  ulrc (ULONG) 
  11493.            return code 
  11494.  
  11495.            T2WS_OK 
  11496.                           The T2WSProcessTick2 call completed properly. 
  11497.  
  11498.            T2WS_InvalidHandle 
  11499.                           The ws_handle0 passed was not valid. 
  11500.  
  11501.            T2WS_PidNotFound 
  11502.                           The requested process was not found as an active 
  11503.                           process. It was found when the T2WSStart was done, 
  11504.                           but has since terminated. 
  11505.  
  11506.  
  11507. ΓòÉΓòÉΓòÉ <hidden> Notes - T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11508.  
  11509. The interval between calls to T2WSProcessTick2 should be chosen carefully. If 
  11510. the interval is too short, the processing could cause the rest of the system to 
  11511. have problems. However, if the interval is too long, dynamic memory allocated 
  11512. and freed will be missed. The overhead is dependent on the number of processes 
  11513. being monitored, more so than the amount of RAM in the machine. The interval 
  11514. should never be less than 1 second nor longer than 1 minute. 
  11515.  
  11516.  
  11517. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSProcessTick2 ΓòÉΓòÉΓòÉ
  11518.  
  11519. This example will cause THESEUS0 to collect working set data for process with 
  11520. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  11521. set interval is set as 3 intervals. The results are printed to the window. 
  11522.  
  11523. #include "THESEUS0.h"
  11524.  
  11525. T2HANDLE0  t2handle0;
  11526. ULONG      rc;
  11527. int        i;
  11528. WS_HANDLE0 ws_handle0;
  11529. ULONG     ulNow, ulWS, ulAccessed,
  11530.           ulDllNow, ulDllWS, ulDllAccessed;
  11531. ULONG     iIntervals,
  11532.           ulMinimum, ulRecommended,
  11533.           ulDllMinimum, ulDllRecommended,
  11534.           ulTotalRam;
  11535.  
  11536. rc = T2WSStart( t2handle0, &ws_handle0, 2);
  11537. if (rc == T2WS_OK)
  11538. {
  11539.   for (i=0; i<5; i++)
  11540.   {
  11541.     printf( " waiting 2 seconds.");
  11542.     DosSleep( 2000);
  11543.     rc = T2WSProcessTick2( ws_handle0, 3,
  11544.                            &ulNow, &ulWS, &ulAccessed,
  11545.                            &ulDllNow, &ulDllWS, &ulDllAccessed,
  11546.                            &ulTotalRam);
  11547.     printf( "  tick (rc=%i) pid=%i, %i %i %i %i %i %i %i\n",
  11548.             rc, i,
  11549.             ulNow, ulWS, ulAccessed,
  11550.             ulDllNow, ulDllWS, ulDllAccessed,
  11551.             ulTotalRam);
  11552.   }
  11553.   rc = T2WSStop2( &ws_handle0, TRUE, &iIntervals,
  11554.                   &ulMinimum, &ulRecommended, &ulAccessed,
  11555.                   &ulDllMinimum, &ulDllRecommended, &ulDllAccessed);
  11556.   printf( " count = %i, min = %i, rec = %i, acc = %i, dllMin = %i, dllRec = %i, dllAcc = %i\n",
  11557.           iIntervals,
  11558.           ulMinimum, ulRecommended, ulAccessed,
  11559.           ulDllMinimum, ulDllRecommended, ulDllAccessed);
  11560. }
  11561.  
  11562.  
  11563. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11564.  
  11565.      T2WSStart 
  11566.  
  11567.      T2WSProcessTick 
  11568.  
  11569.      T2WSStop 
  11570.  
  11571.      T2WSStop2 
  11572.  
  11573.      Working Set of a Single Process? 
  11574.  
  11575.      Process Working Set 
  11576.  
  11577.  
  11578. ΓòÉΓòÉΓòÉ 12.2.3.5. T2WSStop ΓòÉΓòÉΓòÉ
  11579.  
  11580. Select an item: 
  11581.  
  11582.       Function Syntax 
  11583.  
  11584.       Parameters 
  11585.  
  11586.       Return Values 
  11587.  
  11588.       System Example 
  11589.  
  11590.       Process Example 
  11591.  
  11592.       Related Functions 
  11593.  
  11594.  
  11595. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSStop ΓòÉΓòÉΓòÉ
  11596.  
  11597. T2WSStop is used to cause THESEUS0 to terminate the Working Set computations 
  11598. and return summary information. 
  11599.  
  11600. #include "THESEUS0.h"
  11601.  
  11602. WS_HANDLE0 ws_handle0;
  11603. BOOL       fCollectOne;
  11604. PULONG     iIntervals, ulMinimum, ulRecommended, ulAccessed;
  11605.  
  11606. rc = T2WSStop( ws_handle0, fCollectOne, iIntervals,
  11607.                ulMinimum, ulRecommended, ulAccessed);
  11608.  
  11609.  
  11610. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSStop ΓòÉΓòÉΓòÉ
  11611.  
  11612.  ws_handle0 (WS_HANDLE0) - input 
  11613.            An instance handle previously allocated by T2WSStart. 
  11614.  
  11615.  fCollectOne (BOOL) - input 
  11616.            Indicate if at least one collection cycle must be accomplished. 
  11617.  
  11618.            TRUE         Perform a collection cycle (tick), if one has not 
  11619.                         already been done. 
  11620.            FALSE        Do not force a collection cycle. 
  11621.  
  11622.  iIntervals (PULONG) - output 
  11623.            Address of a ULONG where the number of data collections cycles 
  11624.            completed is returned. 
  11625.  
  11626.  ulMinimum (PULONG) - output 
  11627.            The address of a ULONG where the maximum value from the now column 
  11628.            is returned. This is the amount of memory absolutely required to run 
  11629.            the application without "thrashing" memory. 
  11630.  
  11631.  ulRecommended (PULONG) - output 
  11632.            The address of a ULONG where the maximum value from the ws column is 
  11633.            returned. This is the recommended amount of memory for the 
  11634.            application to run with minimum impact on paging. 
  11635.  
  11636.  ulAccessed (PULONG) - output 
  11637.            The address of a ULONG where the maximum value from the accessed 
  11638.            column is returned. This is the amount of memory required to run the 
  11639.            application with no paging activity. 
  11640.  
  11641.  
  11642. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSStop ΓòÉΓòÉΓòÉ
  11643.  
  11644.  ulrc (ULONG) 
  11645.            return code 
  11646.  
  11647.            T2WS_OK 
  11648.                           The T2WSStop call completed properly. 
  11649.  
  11650.            T2WS_InvalidHandle 
  11651.                           The ws_handle0 passed was not valid. 
  11652.  
  11653.  
  11654. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSStop System Working Set ΓòÉΓòÉΓòÉ
  11655.  
  11656. This example will cause THESEUS0 to collect working set data for the entire 
  11657. system. It will sample every 2 seconds and will take 5 samples. The working set 
  11658. interval is set as 3 intervals. The results are printed to the window. 
  11659.  
  11660. #include "THESEUS0.h"
  11661.  
  11662. T2HANDLE0  t2handle0;
  11663. ULONG      rc;
  11664. int        i;
  11665. WS_HANDLE0 ws_handle0;
  11666. ULONG      ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11667.            ulProcessesUsed, ulProcessCount, ulResident, ulTotalRam;
  11668. ULONG      iIntervals, ulMinimum, ulRecommended;
  11669.  
  11670. rc = T2WSStart( t2handle0, &ws_handle0, 0);
  11671. if (rc == T2WS_OK)
  11672. {
  11673.   for (i=0; i<5; i++)
  11674.   {
  11675.     printf( " waiting 2 seconds.");
  11676.     DosSleep( 2000);
  11677.     rc = T2WSSystemTick( ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11678.                          &ulFree, &ulIdle,
  11679.                          &ulProcessesUsed, &ulProcessCount,
  11680.                          &ulResident, &ulTotalRam);
  11681.     printf( "\n  tick (rc=%i), %i %i %i %i %i %i %i %i %i\n",
  11682.             rc, ulNow, ulWS, ulAccessed, ulFree, ulIdle,
  11683.             ulProcessesUsed, ulProcessCount,
  11684.             ulResident, ulTotalRam);
  11685.   }
  11686.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11687.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11688.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11689.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11690. }
  11691.  
  11692.  
  11693. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSStop Process Working Set ΓòÉΓòÉΓòÉ
  11694.  
  11695. This example will cause THESEUS0 to collect working set data for process with 
  11696. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  11697. set interval is set as 3 intervals. The results are printed to the window. 
  11698.  
  11699. #include "THESEUS0.h"
  11700.  
  11701. T2HANDLE0  t2handle0;
  11702. ULONG      rc;
  11703. int        i;
  11704. WS_HANDLE0 ws_handle0;
  11705. ULONG     ulNow, ulWS, ulAccessed;
  11706. ULONG     iIntervals, ulMinimum, ulRecommended, ulTotalRam;
  11707.  
  11708. rc = T2WSStart( t2handle0, &ws_handle0, 2);
  11709. if (rc == T2WS_OK)
  11710. {
  11711.   for (i=0; i<5; i++)
  11712.   {
  11713.     printf( " waiting 2 seconds.");
  11714.     DosSleep( 2000);
  11715.     rc = T2WSProcessTick(  ws_handle0, 3, &ulNow, &ulWS, &ulAccessed,
  11716.                           &ulTotalRam);
  11717.     printf( "  tick (rc=%i) pid=%i, %i %i %i %i\n",
  11718.             rc, i, ulNow, ulWS, ulAccessed, ulTotalRam);
  11719.   }
  11720.   rc = T2WSStop( &ws_handle0, TRUE, &iIntervals,
  11721.                  &ulMinimum, &ulRecommended, &ulAccessed);
  11722.   printf( " count = %i, minimum = %i, recommended = %i, accessed = %i\n",
  11723.           iIntervals, ulMinimum, ulRecommended, ulAccessed);
  11724. }
  11725.  
  11726.  
  11727. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11728.  
  11729.      T2GetHandle0 
  11730.  
  11731.      T2WSStart 
  11732.  
  11733.  
  11734. ΓòÉΓòÉΓòÉ 12.2.3.6. T2WSStop2 ΓòÉΓòÉΓòÉ
  11735.  
  11736. Select an item: 
  11737.  
  11738.       Function Syntax 
  11739.  
  11740.       Parameters 
  11741.  
  11742.       Return Values 
  11743.  
  11744.       Process Example 
  11745.  
  11746.       Related Functions 
  11747.  
  11748.  
  11749. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSStop2 ΓòÉΓòÉΓòÉ
  11750.  
  11751. T2WSStop2 is used to cause THESEUS0 to terminate the Working Set computations 
  11752. and return summary information. 
  11753.  
  11754. #include "THESEUS0.h"
  11755.  
  11756. WS_HANDLE0 ws_handle0;
  11757. BOOL       fCollectOne;
  11758. PULONG     iIntervals,
  11759.            ulMinimum, ulRecommended, ulAccessed,
  11760.            ulDllMinimum, ulDllRecommended, ulDllAccessed;
  11761.  
  11762. rc = T2WSStop2( ws_handle0, fCollectOne, iIntervals,
  11763.                 ulMinimum, ulRecommended, ulAccessed,
  11764.                 ulDllMinimum, ulDllRecommended, ulDllAccessed);
  11765.  
  11766.  
  11767. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSStop2 ΓòÉΓòÉΓòÉ
  11768.  
  11769.  ws_handle0 (WS_HANDLE0) - input 
  11770.            An instance handle previously allocated by T2WSStart. 
  11771.  
  11772.  fCollectOne (BOOL) - input 
  11773.            Indicate if at least one collection cycle must be accomplished. 
  11774.  
  11775.            TRUE         Perform a collection cycle (tick), if one has not 
  11776.                         already been done. 
  11777.            FALSE        Do not force a collection cycle. 
  11778.  
  11779.  iIntervals (PULONG) - output 
  11780.            Address of a ULONG where the number of data collections cycles 
  11781.            completed is returned. 
  11782.  
  11783.  ulMinimum (PULONG) - output 
  11784.            The address of a ULONG where the maximum value from the now column 
  11785.            is returned. This is the amount of memory absolutely required to run 
  11786.            the application without "thrashing" memory. 
  11787.  
  11788.  ulRecommended (PULONG) - output 
  11789.            The address of a ULONG where the maximum value from the ws column is 
  11790.            returned. This is the recommended amount of memory for the 
  11791.            application to run with minimum impact on paging. 
  11792.  
  11793.  ulAccessed (PULONG) - output 
  11794.            The address of a ULONG where the maximum value from the accessed 
  11795.            column is returned. This is the amount of memory required to run the 
  11796.            application with no paging activity. 
  11797.  
  11798.  ulDllMinimum (PULONG) - output 
  11799.            The address of a ULONG where the maximum value from the now column 
  11800.            for System DLLs is returned. This is the amount of memory absolutely 
  11801.            required to run the application without "thrashing" memory. 
  11802.  
  11803.  ulDllRecommended (PULONG) - output 
  11804.            The address of a ULONG where the maximum value from the ws column 
  11805.            for System DLLs is returned. This is the recommended amount of 
  11806.            memory for the application to run with minimum impact on paging. 
  11807.  
  11808.  ulDllAccessed (PULONG) - output 
  11809.            The address of a ULONG where the maximum value from the accessed 
  11810.            column for System DLLs is returned. This is the amount of memory 
  11811.            required to run the application with no paging activity. 
  11812.  
  11813.  
  11814. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSStop2 ΓòÉΓòÉΓòÉ
  11815.  
  11816.  ulrc (ULONG) 
  11817.            return code 
  11818.  
  11819.            T2WS_OK 
  11820.                           The T2WSStop2 call completed properly. 
  11821.  
  11822.            T2WS_InvalidHandle 
  11823.                           The ws_handle0 passed was not valid. 
  11824.  
  11825.  
  11826. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSStop2 Process Working Set ΓòÉΓòÉΓòÉ
  11827.  
  11828. This example will cause THESEUS0 to collect working set data for process with 
  11829. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  11830. set interval is set as 3 intervals. The results are printed to the window. 
  11831.  
  11832. #include "THESEUS0.h"
  11833.  
  11834. T2HANDLE0  t2handle0;
  11835. ULONG      rc;
  11836. int        i;
  11837. WS_HANDLE0 ws_handle0;
  11838. ULONG     ulNow, ulWS, ulAccessed,
  11839.           ulDllNow, ulDllWS, ulDllAccessed;
  11840. ULONG     iIntervals,
  11841.           ulMinimum, ulRecommended,
  11842.           ulDllMinimum, ulDllRecommended,
  11843.           ulTotalRam;
  11844.  
  11845. rc = T2WSStart( t2handle0, &ws_handle0, 2);
  11846. if (rc == T2WS_OK)
  11847. {
  11848.   for (i=0; i<5; i++)
  11849.   {
  11850.     printf( " waiting 2 seconds.");
  11851.     DosSleep( 2000);
  11852.     rc = T2WSProcessTick2( ws_handle0, 3,
  11853.                            &ulNow, &ulWS, &ulAccessed,
  11854.                            &ulDllNow, &ulDllWS, &ulDllAccessed,
  11855.                            &ulTotalRam);
  11856.     printf( "  tick (rc=%i) pid=%i, %i %i %i %i %i %i %i\n",
  11857.             rc, i,
  11858.             ulNow, ulWS, ulAccessed,
  11859.             ulDllNow, ulDllWS, ulDllAccessed,
  11860.             ulTotalRam);
  11861.   }
  11862.   rc = T2WSStop2( &ws_handle0, TRUE, &iIntervals,
  11863.                   &ulMinimum, &ulRecommended, &ulAccessed,
  11864.                   &ulDllMinimum, &ulDllRecommended, &ulDllAccessed);
  11865.   printf( " count = %i, min = %i, rec = %i, acc = %i, dllMin = %i, dllRec = %i, dllAcc = %i\n",
  11866.           iIntervals,
  11867.           ulMinimum, ulRecommended, ulAccessed,
  11868.           ulDllMinimum, ulDllRecommended, ulDllAccessed);
  11869. }
  11870.  
  11871.  
  11872. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11873.  
  11874.      T2GetHandle0 
  11875.  
  11876.      T2WSStart 
  11877.  
  11878.  
  11879. ΓòÉΓòÉΓòÉ 12.2.3.7. T2WSCheck ΓòÉΓòÉΓòÉ
  11880.  
  11881. Select an item: 
  11882.  
  11883.       Function Syntax 
  11884.  
  11885.       Parameters 
  11886.  
  11887.       Return Values 
  11888.  
  11889.       Example 
  11890.  
  11891.       Related Functions 
  11892.  
  11893.  
  11894. ΓòÉΓòÉΓòÉ <hidden> Syntax - T2WSCheck ΓòÉΓòÉΓòÉ
  11895.  
  11896. T2WSCheck is used to cause THESEUS0 to determine if a particular process or the 
  11897. entire system can have working set data collected. 
  11898.  
  11899. #include "THESEUS0.h"
  11900.  
  11901. ULONG ulPidToCheck;
  11902. BOOL  fStatus;
  11903.  
  11904. fStatus = T2WSCheck( ulPidToCheck);
  11905.  
  11906.  
  11907. ΓòÉΓòÉΓòÉ <hidden> Parameters - T2WSCheck ΓòÉΓòÉΓòÉ
  11908.  
  11909.  ulPidToCheck (ULONG) - input 
  11910.            The pid of the process to be queried. If ulPidToCheck is 0, then 
  11911.            check for the system as a whole. 
  11912.  
  11913.  
  11914. ΓòÉΓòÉΓòÉ <hidden> Return Values - T2WSCheck ΓòÉΓòÉΓòÉ
  11915.  
  11916.  fStatus (BOOL) 
  11917.            requestable status 
  11918.  
  11919.            TRUE         A T2WSStart request for this process would probably 
  11920.                         succeed. 
  11921.            FALSE        A T2WSStart request for this process will fail. See 
  11922.                         return values of T2WS_InUse and T2WS_SystemBemingDone 
  11923.                         in T2WSStart Return Values. 
  11924.  
  11925.  
  11926. ΓòÉΓòÉΓòÉ <hidden> Example - T2WSCheck ΓòÉΓòÉΓòÉ
  11927.  
  11928. To determine if it is possible to collect system working set data: 
  11929.  
  11930. if (T2WSCheck( 0))
  11931.   /* I can collect system working set data */
  11932. else
  11933.   /* not valid, someone else is already doing it or someone is
  11934.      collecting process data */
  11935.  
  11936. To determine if it is possible to collect working set data for the process with 
  11937. pid 0002: 
  11938.  
  11939. if (T2WSCheck( 2))
  11940.   /* I can collect process working set data */
  11941. else
  11942.   /* not valid, someone else is already doing it or someone is
  11943.      collecting system data */
  11944.  
  11945.  
  11946. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  11947.  
  11948.      T2WSStart 
  11949.  
  11950.  
  11951. ΓòÉΓòÉΓòÉ 12.3. REXX Application Programming Interface ΓòÉΓòÉΓòÉ
  11952.  
  11953. The functions provided by THESEUS0.DLL are divided into the following 
  11954. categories: 
  11955.  
  11956.  Initialization 
  11957.            Function to cause THESEUS0.DLL to initialize for use by REXX. 
  11958.  Free Memory, Swapper, and Process Functions 
  11959.            Functions to determine information about the system as a whole. 
  11960.  Working Set Functions 
  11961.            Functions to perform working set analysis. 
  11962.  
  11963.  Errors are output to the stderr device. 
  11964.  
  11965.  
  11966. ΓòÉΓòÉΓòÉ 12.3.1. RT2LoadFuncs ΓòÉΓòÉΓòÉ
  11967.  
  11968. Select an item: 
  11969.  
  11970.       Function Syntax 
  11971.  
  11972.       Return Values 
  11973.  
  11974.       Example 
  11975.  
  11976.       Related Functions 
  11977.  
  11978.  
  11979. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2LoadFuncs ΓòÉΓòÉΓòÉ
  11980.  
  11981. RT2LoadFuncs is used to cause THESEUS0 to initialize all its internal 
  11982. information that is required for later use and make the other functions 
  11983. available to REXX. 
  11984.  
  11985. rc = RT2LoadFuncs()
  11986.  
  11987.  
  11988. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2LoadFuncs ΓòÉΓòÉΓòÉ
  11989.  
  11990.  rc (number) return code 
  11991.            0       Initialization completed successfully. 
  11992.  
  11993.            1       The initialization code could not determine the size of the 
  11994.                    PTDA. The program cannot continue. 
  11995.  
  11996.            2       The initialization code could not determine the format for 
  11997.                    the resident portion of the MTE. The program cannot 
  11998.                    continue. 
  11999.  
  12000.            3       The global initialization failed. Look in the file called 
  12001.                    t3errlog.log for further return codes. 
  12002.  
  12003.            4       The initialization of the page frame physical arena failed. 
  12004.                    See t3errlog.log for further return codes. 
  12005.  
  12006.            5       This is an invalid OS/2 version for this version of 
  12007.                    theseus4. 
  12008.  
  12009.            6       The t3errlog.log failed to open. 
  12010.  
  12011.  
  12012. ΓòÉΓòÉΓòÉ <hidden> Example - RT2LoadFuncs ΓòÉΓòÉΓòÉ
  12013.  
  12014. This example will cause RT2LoadFuncs to perform the initialization of the 
  12015. internal functions. 
  12016.  
  12017. call RxFuncAdd "RT2LoadFuncs", "THESEUS0", "RT2LoadFuncs"
  12018. rc = RT2LoadFuncs()
  12019. if rc \= 0 then
  12020.   do
  12021.     say "THESEUS0 did not initialize properly.  It's return code = "rc
  12022.     exit
  12023.   end
  12024.  
  12025.  
  12026. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12027.  
  12028. Although the following routines are not directly related, the discussion of 
  12029. errors is applicable. 
  12030.  
  12031.      error handler 
  12032.  
  12033.      T2Initialize 
  12034.  
  12035.  
  12036. ΓòÉΓòÉΓòÉ 12.3.2. Free Memory, Swapper, and Process Functions ΓòÉΓòÉΓòÉ
  12037.  
  12038. These functions are used to acquire specific information about the system as a 
  12039. whole. 
  12040.  
  12041. Free memory function: 
  12042.  
  12043.  RT2FreeMemory            Determine the amount of free, idle, and locked 
  12044.                           memory. 
  12045.  
  12046.  SWAPPER.DAT analysis function: 
  12047.  
  12048.  RT2AnalyzeSwapper        Determine the amount of free and used space in the 
  12049.                           SWAPPER.DAT file. 
  12050.  
  12051.  Process functions: 
  12052.  
  12053.  RT2FindProcesses         Returns an array with the current processes. 
  12054.  RT2RamUseByProcess       Returns an array with the current RAM usage by each 
  12055.                           process. 
  12056.  
  12057.  
  12058. ΓòÉΓòÉΓòÉ 12.3.2.1. RT2FreeMemory ΓòÉΓòÉΓòÉ
  12059.  
  12060. Select an item: 
  12061.  
  12062.       Function Syntax 
  12063.  
  12064.       Return Values 
  12065.  
  12066.       Example 
  12067.  
  12068.       Related Functions 
  12069.  
  12070.  
  12071. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2FreeMemory ΓòÉΓòÉΓòÉ
  12072.  
  12073. RT2FreeMemory is used to cause THESEUS0 to calculate the amount of free, idle, 
  12074. and locked memory. 
  12075.  
  12076. FreeReturn = RT2FreeMemory()
  12077.  
  12078. FreeReturn contains: 
  12079.  
  12080. FreeRam IdleRam DirtyRam LLockRam SLockRam BLockRam
  12081.  
  12082.  
  12083. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2FreeMemory ΓòÉΓòÉΓòÉ
  12084.  
  12085.  FreeRam (number) 
  12086.            The number of bytes of free memory. 
  12087.  
  12088.  IdleRam (number) 
  12089.            The number of bytes of idle memory. 
  12090.  
  12091.  DirtyRam (number) 
  12092.            The number of bytes of dirty memory. This memory is included in the 
  12093.            idle memory. 
  12094.  
  12095.  LLockRam (number) 
  12096.            The number of bytes of long-term locked memory. 
  12097.  
  12098.  SLockRam (number) 
  12099.            The number of bytes of short-term locked memory. 
  12100.  
  12101.  BLockRam (number) 
  12102.            The number of bytes of memory which is locked both long-term and 
  12103.            short-term. 
  12104.  
  12105.  
  12106. ΓòÉΓòÉΓòÉ <hidden> Example - RT2FreeMemory ΓòÉΓòÉΓòÉ
  12107.  
  12108. This example will cause RT2FreeMemory to calculate the free, idle, and locked 
  12109. memory. 
  12110.  
  12111. parse value RT2FreeMemory() with freeRam idleRam dirtyRam LLockRam SLockRam BLockRam
  12112. say "freeRam  = "freeRam
  12113. say "idleRam  = "idleRam
  12114. say "dirtyRam = "dirtyRam
  12115. say "LLockRam = "LLockRam
  12116. say "SLockRam = "SLockRam
  12117. say "BLockRam = "BLockRam
  12118. say "cleanRam = "idleRam-dirtyRam" (computed value = idleRam - dirtyRam)"
  12119.  
  12120.  
  12121. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12122.  
  12123.      RT2LoadFuncs 
  12124.  
  12125.      Contents of the Free, Idle, and Locked Memory Display 
  12126.  
  12127.  
  12128. ΓòÉΓòÉΓòÉ 12.3.2.2. RT2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  12129.  
  12130. Select an item: 
  12131.  
  12132.       Function Syntax 
  12133.  
  12134.       Return Values 
  12135.  
  12136.       Example 
  12137.  
  12138.       Related Functions 
  12139.  
  12140.  
  12141. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  12142.  
  12143. RT2AnalyzeSwapper is used to cause THESEUS0 to calculate the amount of free and 
  12144. used space in the SWAPPER.DAT file. 
  12145.  
  12146. SwapReturn = RT2AnalyzeSwapper()
  12147.  
  12148. SwapReturn contains: 
  12149.  
  12150. SwapUsed SwapFree
  12151.  
  12152.  
  12153. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  12154.  
  12155.  SwapUsed (number) 
  12156.            The number of used disk frames. 
  12157.  
  12158.  SwapFree (number) 
  12159.            The number of free disk frames. 
  12160.  
  12161.  Each disk frame is 4K bytes. 
  12162.  
  12163.  
  12164. ΓòÉΓòÉΓòÉ <hidden> Example - RT2AnalyzeSwapper ΓòÉΓòÉΓòÉ
  12165.  
  12166. This example will cause RT2AnalyzeSwapper to calculate the free and used space 
  12167. in the SWAPPER.DAT file. 
  12168.  
  12169. parse value RT2AnalyzeSwapper() with SwapUsed SwapFree
  12170. say "SwapUsed = "SwapUsed
  12171. say "SwapFree = "SwapFree
  12172.  
  12173.  
  12174. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12175.  
  12176.      RT2LoadFuncs 
  12177.  
  12178.      Contents of the Swapper Display 
  12179.  
  12180.  
  12181. ΓòÉΓòÉΓòÉ 12.3.2.3. RT2FindProcesses ΓòÉΓòÉΓòÉ
  12182.  
  12183. Select an item: 
  12184.  
  12185.       Function Syntax 
  12186.  
  12187.       Parameters 
  12188.  
  12189.       Return Values 
  12190.  
  12191.       Example 
  12192.  
  12193.       Related Functions 
  12194.  
  12195.  
  12196. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2FindProcesses ΓòÉΓòÉΓòÉ
  12197.  
  12198. RT2FindProcesses is used to cause THESEUS0 to count the number of processes in 
  12199. the system. It also returns an array which contains some information about each 
  12200. process. 
  12201.  
  12202. RT2FindProcesses "stem"
  12203.  
  12204.  
  12205. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2FindProcesses ΓòÉΓòÉΓòÉ
  12206.  
  12207.  stem (string) 
  12208.            The name of the stem variable used to contain the return list of 
  12209.            processes. 
  12210.  
  12211.  
  12212. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2FindProcesses ΓòÉΓòÉΓòÉ
  12213.  
  12214. stem.0 contains the number of processes found. 
  12215.  
  12216. The list contains an entry for each process currently running. Each entry 
  12217. contains: 
  12218.  
  12219. ptdaPID pidParent cThreads processName
  12220. where: 
  12221.  
  12222.  ptdaPID          The PID of this process. 
  12223.  pidParent        The pid of this process's parent process. 
  12224.  cThreads         The number of threads in this process. 
  12225.  processName      The name of this process. 
  12226.  
  12227.  
  12228. ΓòÉΓòÉΓòÉ <hidden> Example - RT2FindProcesses ΓòÉΓòÉΓòÉ
  12229.  
  12230. This example will cause RT2FindProcesses to return an array with process names 
  12231. and PIDs. 
  12232.  
  12233. call RT2FindProcesses "pTable"
  12234. say "pTable count = "pTable.0
  12235. do i = 1 to pTable.0
  12236.   say i": '"pTable.i"'"
  12237. end
  12238. parse value pTable.1 with Pid Parent Threads Name
  12239. say "pid = "Pid", parent = "Parent", threads = "Threads", name = '"Name"'"
  12240.  
  12241.  
  12242. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12243.  
  12244.      RT2LoadFuncs 
  12245.  
  12246.      Contents of the Process List Display 
  12247.  
  12248.  
  12249. ΓòÉΓòÉΓòÉ 12.3.2.4. RT2RamUseByProcess ΓòÉΓòÉΓòÉ
  12250.  
  12251. Select an item: 
  12252.  
  12253.       Function Syntax 
  12254.  
  12255.       Parameters 
  12256.  
  12257.       Return Values 
  12258.  
  12259.       Example 
  12260.  
  12261.       Related Functions 
  12262.  
  12263.  
  12264. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2RamUseByProcess ΓòÉΓòÉΓòÉ
  12265.  
  12266. RT2RamUseByProcess is used to cause THESEUS0 to determine the RAM used by each 
  12267. process in the system. It returns an array which contains the usage of each 
  12268. process. 
  12269.  
  12270. T2RamUseByProcess "stem"
  12271.  
  12272.  
  12273. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2RamUseByProcess ΓòÉΓòÉΓòÉ
  12274.  
  12275.  stem (string) 
  12276.            The name of the stem variable used to contain the return list of 
  12277.            processes. 
  12278.  
  12279.  
  12280. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2RamUseByProcess ΓòÉΓòÉΓòÉ
  12281.  
  12282. stem.0 contains the number of processes found. 
  12283.  
  12284. The list contains an entry for each process currently running. Each entry 
  12285. contains: 
  12286.  
  12287. ptdaPID Private Shared
  12288. where: 
  12289.  
  12290.  ptdaPID          The PID of this process. The entry with PID = 0000 contains 
  12291.                   the memory used by the "system". 
  12292.  Private          The number of bytes of memory in the private arena of this 
  12293.                   process. If multiple processes have the same page in their 
  12294.                   private arenas, the process with the lowest PID value is 
  12295.                   charged with the memory. 
  12296.  Shared           The number of bytes of memory from the shared arena that is 
  12297.                   owned by this process. 
  12298.  
  12299.  
  12300. ΓòÉΓòÉΓòÉ <hidden> Example - RT2RamUseByProcess ΓòÉΓòÉΓòÉ
  12301.  
  12302. This example will cause RT2RamUseByProcess to return an array with PIDs and RAM 
  12303. usage for each process. 
  12304.  
  12305. call RT2RamUseByProcess "rTable"
  12306. say "rTable count = "rTable.0
  12307. do i = 1 to rTable.0
  12308.   say i": '"rTable.i"'"
  12309. end
  12310. parse value rTable.1 with Pid Private Shared
  12311. say "pid = "Pid", private = "Private", shared = "Shared
  12312.  
  12313.  
  12314. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12315.  
  12316.      RT2LoadFuncs 
  12317.  
  12318.      Contents of the RAM Usage by Process Display 
  12319.  
  12320.  
  12321. ΓòÉΓòÉΓòÉ 12.3.3. Working Set Functions ΓòÉΓòÉΓòÉ
  12322.  
  12323. These functions are used to acquire working set information. 
  12324.  
  12325. Working Set functions: 
  12326.  
  12327.  RT2WSStart            Sets up to do working set analysis for a particular 
  12328.                        process or the entire system. 
  12329.  RT2WSSystemTick       Collects data when doing working set for the entire 
  12330.                        system. 
  12331.  RT2WSProcessTick      Collects data when doing working set for a particular 
  12332.                        process. 
  12333.  RT2WSProcessTick2     Collects data when doing working set for a particular 
  12334.                        process. (This is the same as RT2WSProcessTick, with the 
  12335.                        addition of the System DLL information.) 
  12336.  RT2WSStop             Stops the collection of working set data and returns 
  12337.                        summary information. 
  12338.  RT2WSStop2            Stops the collection of working set data and returns 
  12339.                        summary information. (This is the same as RT2WSStop, 
  12340.                        with the addition of the System DLL information.) 
  12341.  
  12342.  The general way that these functions are used is: 
  12343.  
  12344.   RT2WSStart.
  12345.   do while data is desired
  12346.     Wait for the desired interval to elapse.
  12347.     RT2WSSystemTick or RT2WSProcessTick or RT2WSProcessTick2.
  12348.   end
  12349.   RT2WSStop or RT2WSStop.
  12350.  
  12351.  
  12352. ΓòÉΓòÉΓòÉ 12.3.3.1. RT2WSStart ΓòÉΓòÉΓòÉ
  12353.  
  12354. Select an item: 
  12355.  
  12356.       Function Syntax 
  12357.  
  12358.       Parameters 
  12359.  
  12360.       Return Values 
  12361.  
  12362.       System Example 
  12363.  
  12364.       Process Example 
  12365.  
  12366.       Related Functions 
  12367.  
  12368.  
  12369. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSStart ΓòÉΓòÉΓòÉ
  12370.  
  12371. RT2WSStart is used to cause THESEUS0 to set up for working set data collection 
  12372. for a particular process or the entire system. 
  12373.  
  12374. rc = RT2WSStart("ws_handle"ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)
  12375.                             ΓööΓöÇ,pidΓöÇΓöÿ
  12376.  
  12377.  
  12378. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSStart ΓòÉΓòÉΓòÉ
  12379.  
  12380.  ws_handle0 (string) 
  12381.            The name of a variable that will be the working set handle. This 
  12382.            handle must be used in the RT2WSSystemTick/RT2WSProcessTick and 
  12383.            RT2WSStop calls. 
  12384.  
  12385.            Note:   The value returned in this variable must not be changed. 
  12386.  
  12387.  pid (number) 
  12388.            The pid of the process that you want to measure. If none is 
  12389.            specified, then the working set of the entire system is measured. 
  12390.            The process with pid of 1 is not valid for measurement. 
  12391.  
  12392.  
  12393. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSStart ΓòÉΓòÉΓòÉ
  12394.  
  12395.  rc (number) return code 
  12396.            0       The RT2WSStart call completed properly. The ws_handle0 value 
  12397.                    is returned. 
  12398.  
  12399.            1       The process requested is already having working set data 
  12400.                    collected for it. A process can have working set data 
  12401.                    collected for it from only one place. 
  12402.  
  12403.            2       Working set collection is being done for the system. If 
  12404.                    system is being done, no process can have data collected for 
  12405.                    it. 
  12406.  
  12407.            4       An error occurred during initialization. Working set data 
  12408.                    cannot be collected. 
  12409.  
  12410.            5       The requested process was not found as an active process. 
  12411.  
  12412.  
  12413. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSStart System Working Set ΓòÉΓòÉΓòÉ
  12414.  
  12415. This example will cause THESEUS0 to collect working set data for the entire 
  12416. system. It will sample every 2 seconds and will take 5 samples. The working set 
  12417. interval is set as 3 intervals. The results are printed to the window. 
  12418.  
  12419. rc = RT2WSStart("ws_handle")
  12420. if rc = 0 then
  12421.   do
  12422.     do i = 1 to 5
  12423.       say "sleep for 2 seconds."
  12424.       call SysSleep 2
  12425.       parse value RT2WSSystemTick("ws_handle",3) with Rc,
  12426.                   Now WS Accessed Free Idle ProcUsed,
  12427.                   ProcCount Resident TotalRam
  12428.       say Rc Now WS Accessed Free Idle,
  12429.           ProcUsed ProcCount Resident TotalRam
  12430.     end
  12431.     StopReturn = RT2WSStop("ws_handle")
  12432.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12433.     say Rc Intervals Minimum Recommended Accessed
  12434.   end
  12435.  
  12436.  
  12437. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSStart Process Working Set ΓòÉΓòÉΓòÉ
  12438.  
  12439. This example will cause THESEUS0 to collect working set data for process with 
  12440. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  12441. set interval is set as 3 intervals. The results are printed to the window. 
  12442.  
  12443. rc = RT2WSStart("ws_handle",2)
  12444. if rc = 0 then
  12445.   do
  12446.     do i = 1 to 5
  12447.       say "sleep for 2 seconds."
  12448.       call SysSleep 2
  12449.       parse value RT2WSProcessTick("ws_handle",3) with Rc,
  12450.                   Now WS Accessed TotalRam
  12451.       say Rc Now WS Accessed TotalRam
  12452.     end
  12453.     StopReturn = RT2WSStop("ws_handle")
  12454.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12455.     say Rc Intervals Minimum Recommended Accessed
  12456.   end
  12457.  
  12458.  
  12459. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12460.  
  12461.      RT2LoadFuncs 
  12462.  
  12463.      RT2WSSystemTick 
  12464.  
  12465.      RT2WSProcessTick 
  12466.  
  12467.      RT2WSProcessTick2 
  12468.  
  12469.      RT2WSStop 
  12470.  
  12471.      RT2WSStop2 
  12472.  
  12473.      Working Set of the Entire System? 
  12474.  
  12475.      Working Set of a Single Process? 
  12476.  
  12477.  
  12478. ΓòÉΓòÉΓòÉ 12.3.3.2. RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12479.  
  12480. Select an item: 
  12481.  
  12482.       Function Syntax 
  12483.  
  12484.       Parameters 
  12485.  
  12486.       Return Values 
  12487.  
  12488.       Notes 
  12489.  
  12490.       Example 
  12491.  
  12492.       Related Functions 
  12493.  
  12494.  
  12495. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12496.  
  12497. RT2WSSystemTick is used to cause THESEUS0 to determine the amount of memory 
  12498. accessed since the last RT2WSSystemTick call or from the RT2WSStart call. 
  12499.  
  12500. TickReturn = RT2WSSystemTick("ws_handle", Intervals)
  12501.  
  12502. TickReturn contains: 
  12503.  
  12504. rc Now WS Accessed Free Idle ProcUsed ProcCount Resident TotalRam
  12505.  
  12506.  
  12507. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12508.  
  12509.  ws_handle0 (string) 
  12510.            The name of the variable that was used in the RT2WSStart. 
  12511.  
  12512.  Intervals (number) 
  12513.            The number of intervals that constitute the working set. This value 
  12514.            must be less than 254 for the computations to work properly. 
  12515.  
  12516.  
  12517. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12518.  
  12519.  rc (number) 
  12520.            return code 
  12521.  
  12522.            0       The RT2WSSystemTick call completed properly. 
  12523.  
  12524.            3       The ws_handle0 passed was not valid. 
  12525.  
  12526.  Now (number) 
  12527.            The number of pages of memory that was accessed during the last 
  12528.            interval. 
  12529.  
  12530.  WS (number) 
  12531.            The number of pages of memory in the working set. 
  12532.  
  12533.  Accessed (number) 
  12534.            The number of pages of memory accessed since the RT2WSStart was 
  12535.            issued. 
  12536.  
  12537.  Free (number) 
  12538.            The number of pages of free memory. 
  12539.  
  12540.  Idle (number) 
  12541.            The number of pages of idle memory. 
  12542.  
  12543.  ProcUsed (number) 
  12544.            The number of processes that had memory accessed during the 
  12545.            interval. This value indicates the number of processes which are 
  12546.            both running and touching non-system memory. 
  12547.  
  12548.  ProcCount (number) 
  12549.            The total number of processes found during the interval. This number 
  12550.            changes as processes are created or destroyed. 
  12551.  
  12552.  Resident (number) 
  12553.            The number of pages of resident memory. 
  12554.  
  12555.  TotalRam (number) 
  12556.            The total number of pages of RAM being used by OS/2*. 
  12557.  
  12558.  
  12559. ΓòÉΓòÉΓòÉ <hidden> Notes - RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12560.  
  12561. The interval between calls to RT2WSSystemTick should be chosen carefully. If 
  12562. the interval is too short, the processing could cause the rest of the system to 
  12563. have problems. However, if the interval is too long, dynamic memory allocated 
  12564. and freed will be missed. The overhead is dependent on the number of processes, 
  12565. more so than the amount of RAM in the machine. The interval should never be 
  12566. less than 1 second nor longer than 1 minute. 
  12567.  
  12568.  
  12569. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSSystemTick ΓòÉΓòÉΓòÉ
  12570.  
  12571. This example will cause THESEUS0 to collect working set data for the entire 
  12572. system. It will sample every 2 seconds and will take 5 samples. The working set 
  12573. interval is set as 3 intervals. The results are printed to the window. 
  12574.  
  12575. rc = RT2WSStart("ws_handle")
  12576. if rc = 0 then
  12577.   do
  12578.     do i = 1 to 5
  12579.       say "sleep for 2 seconds."
  12580.       call SysSleep 2
  12581.       parse value RT2WSSystemTick("ws_handle",3) with Rc,
  12582.                   Now WS Accessed Free Idle ProcUsed,
  12583.                   ProcCount Resident TotalRam
  12584.       say Rc Now WS Accessed Free Idle,
  12585.           ProcUsed ProcCount Resident TotalRam
  12586.     end
  12587.     StopReturn = RT2WSStop("ws_handle")
  12588.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12589.     say Rc Intervals Minimum Recommended Accessed
  12590.   end
  12591.  
  12592.  
  12593. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12594.  
  12595.      RT2LoadFuncs 
  12596.  
  12597.      RT2WSStart 
  12598.  
  12599.      RT2WSStop 
  12600.  
  12601.      Working Set of the Entire System? 
  12602.  
  12603.      System Working Set 
  12604.  
  12605.  
  12606. ΓòÉΓòÉΓòÉ 12.3.3.3. RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12607.  
  12608. Select an item: 
  12609.  
  12610.       Function Syntax 
  12611.  
  12612.       Parameters 
  12613.  
  12614.       Return Values 
  12615.  
  12616.       Notes 
  12617.  
  12618.       Example 
  12619.  
  12620.       Related Functions 
  12621.  
  12622.  
  12623. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12624.  
  12625. RT2WSProcessTick is used to cause THESEUS0 to determine the amount of memory 
  12626. accessed since the last RT2WSProcessTick call or from the RT2WSStart call. 
  12627.  
  12628. TickReturn = RT2WSProcessTick("ws_handle", Intervals)
  12629.  
  12630. TickReturn contains: 
  12631.  
  12632. rc Now WS Accessed TotalRam
  12633.  
  12634.  
  12635. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12636.  
  12637.  ws_handle0 (string) 
  12638.            The name of the variable that was used in the RT2WSStart. 
  12639.  
  12640.  Intervals (number) 
  12641.            The number of intervals that constitute the working set. This value 
  12642.            must be less than 254 for the computations to work properly. 
  12643.  
  12644.  
  12645. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12646.  
  12647.  rc (number) 
  12648.            return code 
  12649.  
  12650.            0       The T2WSProcessTick call completed properly. 
  12651.  
  12652.            3       The ws_handle0 passed was not valid. 
  12653.  
  12654.            5       The requested process was not found as an active process. It 
  12655.                    was found when the RT2WSStart was done, but has since 
  12656.                    terminated. 
  12657.  
  12658.  Now (number) 
  12659.            The number of pages of memory that was accessed during the last 
  12660.            interval. 
  12661.  
  12662.  WS (number) 
  12663.            The number of pages of memory in the working set. 
  12664.  
  12665.  Accessed (number) 
  12666.            The number of pages of memory accessed since the RT2WSStart was 
  12667.            issued. 
  12668.  
  12669.  TotalRam (number) 
  12670.            The total number of pages of RAM being used by OS/2*. 
  12671.  
  12672.  
  12673. ΓòÉΓòÉΓòÉ <hidden> Notes - RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12674.  
  12675. The interval between calls to RT2WSProcessTick should be chosen carefully. If 
  12676. the interval is too short, the processing could cause the rest of the system to 
  12677. have problems. However, if the interval is too long, dynamic memory allocated 
  12678. and freed will be missed. The overhead is dependent on the number of processes 
  12679. being monitored, more so than the amount of RAM in the machine. The interval 
  12680. should never be less than 1 second nor longer than 1 minute. 
  12681.  
  12682.  
  12683. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSProcessTick ΓòÉΓòÉΓòÉ
  12684.  
  12685. This example will cause THESEUS0 to collect working set data for process with 
  12686. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  12687. set interval is set as 3 intervals. The results are printed to the window. 
  12688.  
  12689. rc = RT2WSStart("ws_handle",2)
  12690. if rc = 0 then
  12691.   do
  12692.     do i = 1 to 5
  12693.       say "sleep for 2 seconds."
  12694.       call SysSleep 2
  12695.       parse value RT2WSProcessTick("ws_handle",3) with Rc,
  12696.                   Now WS Accessed TotalRam
  12697.       say Rc Now WS Accessed TotalRam
  12698.     end
  12699.     StopReturn = RT2WSStop("ws_handle")
  12700.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12701.     say Rc Intervals Minimum Recommended Accessed
  12702.   end
  12703.  
  12704.  
  12705. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12706.  
  12707.      RT2LoadFuncs 
  12708.  
  12709.      RT2WSStart 
  12710.  
  12711.      RT2WSStop 
  12712.  
  12713.      Working Set of a Single Process? 
  12714.  
  12715.      Process Working Set 
  12716.  
  12717.  
  12718. ΓòÉΓòÉΓòÉ 12.3.3.4. RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12719.  
  12720. Select an item: 
  12721.  
  12722.       Function Syntax 
  12723.  
  12724.       Parameters 
  12725.  
  12726.       Return Values 
  12727.  
  12728.       Notes 
  12729.  
  12730.       Example 
  12731.  
  12732.       Related Functions 
  12733.  
  12734.  
  12735. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12736.  
  12737. RT2WSProcessTick2 is used to cause THESEUS0 to determine the amount of memory 
  12738. accessed since the last RT2WSProcessTick2 call or from the RT2WSStart call. 
  12739.  
  12740. TickReturn = RT2WSProcessTick2("ws_handle", Intervals)
  12741.  
  12742. TickReturn contains: 
  12743.  
  12744. rc Now WS Accessed DllNow DllWS DllAccessed TotalRam
  12745.  
  12746.  
  12747. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12748.  
  12749.  ws_handle0 (string) 
  12750.            The name of the variable that was used in the RT2WSStart. 
  12751.  
  12752.  Intervals (number) 
  12753.            The number of intervals that constitute the working set. This value 
  12754.            must be less than 254 for the computations to work properly. 
  12755.  
  12756.  
  12757. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12758.  
  12759.  rc (number) 
  12760.            return code 
  12761.  
  12762.            0       The T2WSProcessTick2 call completed properly. 
  12763.  
  12764.            3       The ws_handle0 passed was not valid. 
  12765.  
  12766.            5       The requested process was not found as an active process. It 
  12767.                    was found when the RT2WSStart was done, but has since 
  12768.                    terminated. 
  12769.  
  12770.  Now (number) 
  12771.            The number of pages of memory that was accessed during the last 
  12772.            interval. 
  12773.  
  12774.  WS (number) 
  12775.            The number of pages of memory in the working set. 
  12776.  
  12777.  Accessed (number) 
  12778.            The number of pages of memory accessed since the RT2WSStart was 
  12779.            issued. 
  12780.  
  12781.  DllNow (number) 
  12782.            The number of pages of memory that was accessed by System DLLs 
  12783.            during the last interval. 
  12784.  
  12785.  DllWS (number) 
  12786.            The number of pages of memory in the working set of the System DLLs 
  12787.            is returned. 
  12788.  
  12789.  DllAccessed (number) 
  12790.            The number of pages of memory accessed by System DLLs since the 
  12791.            T2WSStart was issued is returned. 
  12792.  
  12793.  TotalRam (number) 
  12794.            The total number of pages of RAM being used by OS/2*. 
  12795.  
  12796.  
  12797. ΓòÉΓòÉΓòÉ <hidden> Notes - RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12798.  
  12799. The interval between calls to RT2WSProcessTick2 should be chosen carefully. If 
  12800. the interval is too short, the processing could cause the rest of the system to 
  12801. have problems. However, if the interval is too long, dynamic memory allocated 
  12802. and freed will be missed. The overhead is dependent on the number of processes 
  12803. being monitored, more so than the amount of RAM in the machine. The interval 
  12804. should never be less than 1 second nor longer than 1 minute. 
  12805.  
  12806.  
  12807. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSProcessTick2 ΓòÉΓòÉΓòÉ
  12808.  
  12809. This example will cause THESEUS0 to collect working set data for process with 
  12810. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  12811. set interval is set as 3 intervals. The results are printed to the window. 
  12812.  
  12813. rc = RT2WSStart("ws_handle",2)
  12814. if rc = 0 then
  12815.   do
  12816.     do i = 1 to 5
  12817.       say "sleep for 2 seconds."
  12818.       call SysSleep 2
  12819.       parse value RT2WSProcessTick2("ws_handle",3) with Rc,
  12820.                   Now WS Accessed DllNow DllWS DllAccessed TotalRam
  12821.       say Rc Now WS Accessed DllNow DllWS DllAccessed TotalRam
  12822.     end
  12823.     StopReturn = RT2WSStop2("ws_handle")
  12824.     parse value StopReturn with Rc Intervals,
  12825.                 Minimum Recommended Accessed,
  12826.                 DllMinimum DllRecommended DllAccessed
  12827.     say Rc Intervals,
  12828.         Minimum Recommended Accessed,
  12829.         DllMinimum DllRecommended DllAccessed
  12830.   end
  12831.  
  12832.  
  12833. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12834.  
  12835.      RT2LoadFuncs 
  12836.  
  12837.      RT2WSStart 
  12838.  
  12839.      RT2WSStop2 
  12840.  
  12841.      Working Set of a Single Process? 
  12842.  
  12843.      Process Working Set 
  12844.  
  12845.  
  12846. ΓòÉΓòÉΓòÉ 12.3.3.5. RT2WSStop ΓòÉΓòÉΓòÉ
  12847.  
  12848. Select an item: 
  12849.  
  12850.       Function Syntax 
  12851.  
  12852.       Parameters 
  12853.  
  12854.       Return Values 
  12855.  
  12856.       System Example 
  12857.  
  12858.       Process Example 
  12859.  
  12860.       Related Functions 
  12861.  
  12862.  
  12863. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSStop ΓòÉΓòÉΓòÉ
  12864.  
  12865. RT2WSStop is used to cause THESEUS0 to terminate the Working Set computations 
  12866. and return summary information. 
  12867.  
  12868. StopReturn = RT2WSStop("ws_handle")
  12869.  
  12870. StopReturn contains: 
  12871.  
  12872. rc Intervals Minimum Recommended Accessed
  12873.  
  12874.  
  12875. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSStop ΓòÉΓòÉΓòÉ
  12876.  
  12877.  ws_handle0 (string) 
  12878.            The name of the variable that was used in the RT2WSStart. 
  12879.  
  12880.            Note:   The value of this variable is destroyed. (A DROP is done on 
  12881.            the variable by RT2WSStop.) 
  12882.  
  12883.  
  12884. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSStop ΓòÉΓòÉΓòÉ
  12885.  
  12886.  rc (number) 
  12887.            return code 
  12888.  
  12889.            0       The T2WSStop call completed properly. 
  12890.  
  12891.            3       The ws_handle0 passed was not valid. 
  12892.  
  12893.  Intervals (number) 
  12894.            The number of data collections cycles completed. 
  12895.  
  12896.  Minimum (number) 
  12897.            The maximum value from the now column. This is the amount of memory 
  12898.            absolutely required to run the application without "thrashing" 
  12899.            memory. 
  12900.  
  12901.  Recommended (number) 
  12902.            The maximum value from the ws column. This is the recommended amount 
  12903.            of memory for the application to run with minimum impact on paging. 
  12904.  
  12905.  Accessed (number) 
  12906.            The maximum value from the accessed column. This is the amount of 
  12907.            memory required to run the application with no paging activity. 
  12908.  
  12909.  
  12910. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSStop System Working Set ΓòÉΓòÉΓòÉ
  12911.  
  12912. This example will cause THESEUS0 to collect working set data for the entire 
  12913. system. It will sample every 2 seconds and will take 5 samples. The working set 
  12914. interval is set as 3 intervals. The results are printed to the window. 
  12915.  
  12916. rc = RT2WSStart("ws_handle")
  12917. if rc = 0 then
  12918.   do
  12919.     do i = 1 to 5
  12920.       say "sleep for 2 seconds."
  12921.       call SysSleep 2
  12922.       parse value RT2WSSystemTick("ws_handle",3) with Rc,
  12923.                   Now WS Accessed Free Idle ProcUsed,
  12924.                   ProcCount Resident TotalRam
  12925.       say Rc Now WS Accessed Free Idle,
  12926.           ProcUsed ProcCount Resident TotalRam
  12927.     end
  12928.     StopReturn = RT2WSStop("ws_handle")
  12929.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12930.     say Rc Intervals Minimum Recommended Accessed
  12931.   end
  12932.  
  12933.  
  12934. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSStop Process Working Set ΓòÉΓòÉΓòÉ
  12935.  
  12936. This example will cause THESEUS0 to collect working set data for process with 
  12937. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  12938. set interval is set as 3 intervals. The results are printed to the window. 
  12939.  
  12940. rc = RT2WSStart("ws_handle",2)
  12941. if rc = 0 then
  12942.   do
  12943.     do i = 1 to 5
  12944.       say "sleep for 2 seconds."
  12945.       call SysSleep 2
  12946.       parse value RT2WSProcessTick("ws_handle",3) with Rc,
  12947.                   Now WS Accessed TotalRam
  12948.       say Rc Now WS Accessed TotalRam
  12949.     end
  12950.     StopReturn = RT2WSStop("ws_handle")
  12951.     parse value StopReturn with Rc Intervals Minimum Recommended Accessed
  12952.     say Rc Intervals Minimum Recommended Accessed
  12953.   end
  12954.  
  12955.  
  12956. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  12957.  
  12958.      RT2LoadFuncs 
  12959.  
  12960.      RT2WSStart 
  12961.  
  12962.  
  12963. ΓòÉΓòÉΓòÉ 12.3.3.6. RT2WSStop2 ΓòÉΓòÉΓòÉ
  12964.  
  12965. Select an item: 
  12966.  
  12967.       Function Syntax 
  12968.  
  12969.       Parameters 
  12970.  
  12971.       Return Values 
  12972.  
  12973.       Process Example 
  12974.  
  12975.       Related Functions 
  12976.  
  12977.  
  12978. ΓòÉΓòÉΓòÉ <hidden> Syntax - RT2WSStop2 ΓòÉΓòÉΓòÉ
  12979.  
  12980. RT2WSStop2 is used to cause THESEUS0 to terminate the Working Set computations 
  12981. and return summary information. 
  12982.  
  12983. StopReturn = RT2WSStop2("ws_handle")
  12984.  
  12985. StopReturn contains: 
  12986.  
  12987. rc Intervals Minimum Recommended Accessed DllMinimum DllRecommended DllAccessed
  12988.  
  12989.  
  12990. ΓòÉΓòÉΓòÉ <hidden> Parameters - RT2WSStop2 ΓòÉΓòÉΓòÉ
  12991.  
  12992.  ws_handle0 (string) 
  12993.            The name of the variable that was used in the RT2WSStart. 
  12994.  
  12995.            Note:   The value of this variable is destroyed. (A DROP is done on 
  12996.            the variable by RT2WSStop2.) 
  12997.  
  12998.  
  12999. ΓòÉΓòÉΓòÉ <hidden> Return Values - RT2WSStop2 ΓòÉΓòÉΓòÉ
  13000.  
  13001.  rc (number) 
  13002.            return code 
  13003.  
  13004.            0       The T2WSStop2 call completed properly. 
  13005.  
  13006.            3       The ws_handle0 passed was not valid. 
  13007.  
  13008.  Intervals (number) 
  13009.            The number of data collections cycles completed. 
  13010.  
  13011.  Minimum (number) 
  13012.            The maximum value from the now column. This is the amount of memory 
  13013.            absolutely required to run the application without "thrashing" 
  13014.            memory. 
  13015.  
  13016.  Recommended (number) 
  13017.            The maximum value from the ws column. This is the recommended amount 
  13018.            of memory for the application to run with minimum impact on paging. 
  13019.  
  13020.  Accessed (number) 
  13021.            The maximum value from the accessed column. This is the amount of 
  13022.            memory required to run the application with no paging activity. 
  13023.  
  13024.  DllMinimum (number) 
  13025.            The maximum value from the now column for System DLLs is returned. 
  13026.            This is the amount of memory absolutely required to run the 
  13027.            application without "thrashing" memory. 
  13028.  
  13029.  DllRecommended (number) 
  13030.            The maximum value from the ws column for System DLLs is returned. 
  13031.            This is the recommended amount of memory for the application to run 
  13032.            with minimum impact on paging. 
  13033.  
  13034.  DllAccessed (number) 
  13035.            The maximum value from the accessed column for System DLLs is 
  13036.            returned. This is the amount of memory required to run the 
  13037.            application with no paging activity. 
  13038.  
  13039.  
  13040. ΓòÉΓòÉΓòÉ <hidden> Example - RT2WSStop2 Process Working Set ΓòÉΓòÉΓòÉ
  13041.  
  13042. This example will cause THESEUS0 to collect working set data for process with 
  13043. pid of 2. It will sample every 2 seconds and will take 5 samples. The working 
  13044. set interval is set as 3 intervals. The results are printed to the window. 
  13045.  
  13046. rc = RT2WSStart("ws_handle",2)
  13047. if rc = 0 then
  13048.   do
  13049.     do i = 1 to 5
  13050.       say "sleep for 2 seconds."
  13051.       call SysSleep 2
  13052.       parse value RT2WSProcessTick2("ws_handle",3) with Rc,
  13053.                   Now WS Accessed DllNow DllWS DllAccessed TotalRam
  13054.       say Rc Now WS Accessed DllNow DllWS DllAccessed TotalRam
  13055.     end
  13056.     StopReturn = RT2WSStop2("ws_handle")
  13057.     parse value StopReturn with Rc Intervals,
  13058.                 Minimum Recommended Accessed,
  13059.                 DllMinimum DllRecommended DllAccessed
  13060.     say Rc Intervals,
  13061.         Minimum Recommended Accessed,
  13062.         DllMinimum DllRecommended DllAccessed
  13063.   end
  13064.  
  13065.  
  13066. ΓòÉΓòÉΓòÉ <hidden> Related Topics ΓòÉΓòÉΓòÉ
  13067.  
  13068.      RT2LoadFuncs 
  13069.  
  13070.      RT2WSStart 
  13071.  
  13072.      RT2WSProcessTick2 
  13073.  
  13074.  
  13075. ΓòÉΓòÉΓòÉ 13. Errors ΓòÉΓòÉΓòÉ
  13076.  
  13077. THESEUS4 displays errors in two different ways: 
  13078.  
  13079.      in popup windows 
  13080.      imbedded within output. 
  13081.  
  13082.  
  13083. ΓòÉΓòÉΓòÉ 13.1. Popup Window Errors ΓòÉΓòÉΓòÉ
  13084.  
  13085. THESEUS4 generates several popup windows: 
  13086.  
  13087.      Cannot describe an HCO 
  13088.      Clipboard error 
  13089.      Dependent window error 
  13090.      Error in decimal input 
  13091.      Error in hex input 
  13092.      Find text not entered 
  13093.      No monospaced font 
  13094.      Out of windows error 
  13095.      Process ended 
  13096.      PTDA size not determined 
  13097.      MTE format not recognized 
  13098.      File name not valid 
  13099.  
  13100.  
  13101. ΓòÉΓòÉΓòÉ 13.1.1. Cannot describe an HCO ΓòÉΓòÉΓòÉ
  13102.  
  13103.  Message text: 
  13104.       An HCO cannot be described. 
  13105.  
  13106.  Explanation: 
  13107.       The hco is the only one of the address/handle type of hypertext links 
  13108.       that THESEUS4 is not programmed to describe. 
  13109.  
  13110.  Corrective action: 
  13111.       Do not request a description of an hco. 
  13112.  
  13113.  
  13114. ΓòÉΓòÉΓòÉ 13.1.2. Clipboard error ΓòÉΓòÉΓòÉ
  13115.  
  13116.  Message text: 
  13117.       Could not allocate memory for Clipboard data.  Copy request cannot be 
  13118.       done. 
  13119.  
  13120.  Explanation: 
  13121.       An error was received while trying allocate shared memory. This memory is 
  13122.       required in order to copy the marked area into the clipboard. 
  13123.  
  13124.  Corrective action: 
  13125.       Free some memory and try the request again. 
  13126.  
  13127.  
  13128. ΓòÉΓòÉΓòÉ 13.1.3. Dependent Window Error ΓòÉΓòÉΓòÉ
  13129.  
  13130.  Message text: 
  13131.       This window cannot be closed before its dependent window is closed. 
  13132.  
  13133.  Explanation: 
  13134.       Several explanation detail windows are dependent on other windows for 
  13135.       their data. As long as the explanation detail window is present, the data 
  13136.       source window cannot be closed. 
  13137.  
  13138.  Corrective action: 
  13139.       The dependent window will have the focus when you close the pop-up. Close 
  13140.       the explanation detail window, then you can close the data source window. 
  13141.  
  13142.  
  13143. ΓòÉΓòÉΓòÉ 13.1.4. Error in decimal input ΓòÉΓòÉΓòÉ
  13144.  
  13145.  Message text: 
  13146.       Enter a valid decimal number in the 's' field. 
  13147.       s can be 'Interval' or 'Intervals per Working Set'. 
  13148.  
  13149.  Explanation: 
  13150.       An error was made when typing the desired decimal value into the dialog 
  13151.       field. 
  13152.  
  13153.  Corrective action: 
  13154.       When you press OK, the cursor is placed in the erroneous field in the 
  13155.       dialog. Type the correct decimal character and press Enter. 
  13156.  
  13157.  
  13158. ΓòÉΓòÉΓòÉ 13.1.5. Error in hex input ΓòÉΓòÉΓòÉ
  13159.  
  13160.  Message text: 
  13161.       Enter a valid hex number in the 's' field. 
  13162.       s can be 'Address', 'Length', 'Width', 'Selector', 'or Offset'. 
  13163.  
  13164.  Explanation: 
  13165.       An error was made when typing the desired hexadecimal value into the 
  13166.       dialog field. 
  13167.  
  13168.  Corrective action: 
  13169.       When you press OK, the cursor is placed in the erroneous field in the 
  13170.       dialog. Type the correct hexadecimal character and press Enter. 
  13171.  
  13172.  
  13173. ΓòÉΓòÉΓòÉ 13.1.6. Find text not entered ΓòÉΓòÉΓòÉ
  13174.  
  13175.  Message text: 
  13176.       Text must be typed in the field. 
  13177.  
  13178.  Explanation: 
  13179.       You did not type a string to find. 
  13180.  
  13181.  Corrective action: 
  13182.       When you press OK, the cursor is placed in the erroneous field in the 
  13183.       dialog. Type the string you want to find and press Enter. 
  13184.  
  13185.  
  13186. ΓòÉΓòÉΓòÉ 13.1.7. No Monospaced Font ΓòÉΓòÉΓòÉ
  13187.  
  13188.  Message text: 
  13189.       A monospaced font was not found.  Please install one. 
  13190.  
  13191.  Explanation: 
  13192.       THESEUS4 uses only monospaced Single Byte Character Set (SBCS) fonts. The 
  13193.       "System Monospaced - 8x12" font is used, if it is present. If it is not 
  13194.       present and another monospaced font is present, then the first monospaced 
  13195.       font found will be used. If a monospaced font is not found, THESEUS4 
  13196.       cannot continue to run. 
  13197.  
  13198.  Corrective action: 
  13199.       Install a monospaced font, then try THESEUS4 again. 
  13200.  
  13201.  
  13202. ΓòÉΓòÉΓòÉ 13.1.8. Out of Windows Error ΓòÉΓòÉΓòÉ
  13203.  
  13204.  Message text: 
  13205.       All THESEUS4 windows are in use. You must close one before another can be 
  13206.       created. 
  13207.  
  13208.  Explanation: 
  13209.       THESEUS4 can generate only 16 Detail windows. 
  13210.  
  13211.  Corrective action: 
  13212.       Close one or more of the open THESEUS4 Detail windows. The Windows 
  13213.       pull-down on the Process Hierarchy window contains a list of the Detail 
  13214.       windows currently open. 
  13215.  
  13216.  
  13217. ΓòÉΓòÉΓòÉ 13.1.9. Process Ended ΓòÉΓòÉΓòÉ
  13218.  
  13219.  Message text: 
  13220.       The selected process has ended.  The request cannot be performed. 
  13221.  
  13222.  Explanation: 
  13223.       You had previously selected a process on the Process Hierarchy window. 
  13224.       The process you had selected has ended and you have requested that a 
  13225.       display be generated from that process. 
  13226.  
  13227.  Corrective action: 
  13228.       Only active processes can be used for display generation. 
  13229.  
  13230.  
  13231. ΓòÉΓòÉΓòÉ 13.1.10. PTDA Size not Determined ΓòÉΓòÉΓòÉ
  13232.  
  13233.  Message text: 
  13234.       This version of OS/2 is not supported by THESEUS4. The size of the PTDA 
  13235.       cannot be determined. 
  13236.  
  13237.  Explanation: 
  13238.       Different levels of OS/2 have different sizes of PTDAs. THESEUS4 must 
  13239.       "discover" the size of the PTDA during its initialization. The version of 
  13240.       OS/2that you have is so different from those THESEUS4 expects that it 
  13241.       could not determine the PTDA size. 
  13242.  
  13243.  Corrective action: 
  13244.       Either: 
  13245.  
  13246.           Acquire a version of THESEUS4 that supports the installed version of 
  13247.            OS/2 or 
  13248.           Install a version of OS/2 that THESEUS4 supports. 
  13249.  
  13250.  
  13251. ΓòÉΓòÉΓòÉ 13.1.11. MTE Format not Recognized ΓòÉΓòÉΓòÉ
  13252.  
  13253.  Message text: 
  13254.       This version of OS/2 is not supported by THESEUS4. The Module Table Entry 
  13255.       (MTE) format is unknown. 
  13256.  
  13257.  Explanation: 
  13258.       Different levels of OS/2 have different formats of the MTEs. THESEUS4 
  13259.       must "discover" the format of the MTE during its initialization. The 
  13260.       version of OS/2 that you have is so different from those THESEUS4 expects 
  13261.       that it could not determine the MTE format. 
  13262.  
  13263.  Corrective action: 
  13264.       Either: 
  13265.  
  13266.           Acquire a version of THESEUS4 that supports the installed version of 
  13267.            OS/2 or 
  13268.           Install a version of OS/2 that THESEUS4 supports. 
  13269.  
  13270.  
  13271. ΓòÉΓòÉΓòÉ 13.1.12. File Name not Valid ΓòÉΓòÉΓòÉ
  13272.  
  13273.  Message text: 
  13274.       The file name is not valid for the file system on the specified disk. 
  13275.  
  13276.  Explanation: 
  13277.       The file name supplied in the SaveAs dialog was not accepted by the 
  13278.       operating system. You may have specified: 
  13279.  
  13280.           An invalid path, or 
  13281.           A long file name for a FAT disk. 
  13282.  
  13283.  Corrective action: 
  13284.       Specify a correct path and file name. 
  13285.  
  13286.  
  13287. ΓòÉΓòÉΓòÉ 13.2. Imbedded Errors ΓòÉΓòÉΓòÉ
  13288.  
  13289. THESEUS4 generates some errors imbedded within the output: 
  13290.  
  13291.      Linear address: no Page Table 
  13292.      Linear address+length: no Page Table 
  13293.      Linear address: page not present 
  13294.      Linear address+Length: page not present 
  13295.      Linear address+Length: > 32 bits 
  13296.      SystemArenaHeaderLinear was not properly located 
  13297.      Unknown error to error_handler0 
  13298.  
  13299.  (When the low-level error routine cannot determine what window is generating 
  13300.  data, these messages may appear in a popup window. However, they will normally 
  13301.  appear in the output window text at the point that the error was detected.) 
  13302.  
  13303.  
  13304. ΓòÉΓòÉΓòÉ 13.2.1. Linear address: no Page Table ΓòÉΓòÉΓòÉ
  13305.  
  13306.  Message text: 
  13307.       >>> Linear address: no Page Table, linear=llllllll. 
  13308.  
  13309.  Explanation: 
  13310.       A "read linear" request was done in the program. The requested linear 
  13311.       address is not valid because there is no page table defined for that 
  13312.       linear address. 
  13313.  
  13314.       This is an internal error in the program. It is not caused by user input. 
  13315.       It is normally caused by the program improperly interpreting a value in 
  13316.       one of the OS/2 control blocks. It is presented for the program support 
  13317.       personnel's use. 
  13318.  
  13319.  
  13320. ΓòÉΓòÉΓòÉ 13.2.2. Linear address+length: no Page Table ΓòÉΓòÉΓòÉ
  13321.  
  13322.  Message text: 
  13323.       >>> Linear address+length: no Page Table, linear=llllllll, 
  13324.       length=hhhhhhhh. 
  13325.  
  13326.  Explanation: 
  13327.       A "read linear" request was done in the program. The linear address at 
  13328.       the end of the requested area is not valid because there is no page table 
  13329.       defined for that linear address. 
  13330.  
  13331.       This is an internal error in the program. It is not caused by user input. 
  13332.       It is normally caused by the program improperly interpreting a value in 
  13333.       one of the OS/2 control blocks. It is presented for the program support 
  13334.       personnel's use. 
  13335.  
  13336.  
  13337. ΓòÉΓòÉΓòÉ 13.2.3. Linear address: page not present ΓòÉΓòÉΓòÉ
  13338.  
  13339.  Message text: 
  13340.       >>> Linear address: page not present, linear=llllllll. 
  13341.  
  13342.  Explanation: 
  13343.       A "read linear" request was done in the program. The requested linear 
  13344.       address is not valid because the page at that linear address is not 
  13345.       present. 
  13346.  
  13347.       This is an internal error in the program. It is not caused by user input. 
  13348.       It is normally caused by the program improperly interpreting a value in 
  13349.       one of the OS/2 control blocks. It is presented for the program support 
  13350.       personnel's use. 
  13351.  
  13352.  
  13353. ΓòÉΓòÉΓòÉ 13.2.4. Linear address+Length: page not present ΓòÉΓòÉΓòÉ
  13354.  
  13355.  Message text: 
  13356.       >>> Linear address+Length: page not present, linear=llllllll, 
  13357.       length=hhhhhhhh. 
  13358.  
  13359.  Explanation: 
  13360.       A "read linear" request was done in the program. The linear address at 
  13361.       the end of the requested area is not valid because the page at that 
  13362.       linear address is not present. 
  13363.  
  13364.       This is an internal error in the program. It is not caused by user input. 
  13365.       It is normally caused by the program improperly interpreting a value in 
  13366.       one of the OS/2 control blocks. It is presented for the program support 
  13367.       personnel's use. 
  13368.  
  13369.  
  13370. ΓòÉΓòÉΓòÉ 13.2.5. Linear address+Length: > 32 bits ΓòÉΓòÉΓòÉ
  13371.  
  13372.  Message text: 
  13373.       >>> Linear address+Length: > 32 bits, linear=llllllll, length=hhhhhhhh. 
  13374.  
  13375.  Explanation: 
  13376.       A "read linear" request was done in the program. The requested linear 
  13377.       address is not valid because the address of the end of the area is 
  13378.       greater than 32 bits. 
  13379.  
  13380.       This is an internal error in the program. It is not caused by user input. 
  13381.       It is normally caused by the program improperly interpreting a value in 
  13382.       one of the OS/2 control blocks. It is presented for the program support 
  13383.       personnel's use. 
  13384.  
  13385.  
  13386. ΓòÉΓòÉΓòÉ 13.2.6. SystemArenaHeaderLinear was not properly located ΓòÉΓòÉΓòÉ
  13387.  
  13388.  Message text: 
  13389.       >>> SystemArenaHeaderLinear was not properly located at llllllll. 
  13390.  
  13391.  Explanation: 
  13392.       The "System Arena Header" was not found. 
  13393.  
  13394.       This is an internal error in the program. It is not caused by user input. 
  13395.       It is normally caused by the program improperly interpreting a value in 
  13396.       one of the OS/2 control blocks. It is presented for the program support 
  13397.       personnel's use. 
  13398.  
  13399.  
  13400. ΓòÉΓòÉΓòÉ 13.2.7. Unknown error to error_handler0 ΓòÉΓòÉΓòÉ
  13401.  
  13402.  Message text: 
  13403.       >>> Unknown error to error_handler0: error_code=i1, p1=i2, p2=i3. 
  13404.  
  13405.  Explanation: 
  13406.       An error was sent to the error handler which had an unknown error code. 
  13407.       The values printed (i1, i2, i3) are the inputs to the routine. 
  13408.  
  13409.       This is an internal error in the program. It is not caused by user input. 
  13410.       It is normally caused by the program improperly interpreting a value in 
  13411.       one of the OS/2 control blocks. It is presented for the program support 
  13412.       personnel's use. 
  13413.  
  13414.  
  13415. ΓòÉΓòÉΓòÉ <hidden> Enter Button ΓòÉΓòÉΓòÉ
  13416.  
  13417. When you press the Enter button, the action is performed. 
  13418.  
  13419.  
  13420. ΓòÉΓòÉΓòÉ <hidden> Find Button ΓòÉΓòÉΓòÉ
  13421.  
  13422. When you press the Find button, the search begins from the start of the window. 
  13423.  
  13424.  
  13425. ΓòÉΓòÉΓòÉ <hidden> OK Button ΓòÉΓòÉΓòÉ
  13426.  
  13427. When you press the OK button, the function is performed. 
  13428.  
  13429.  
  13430. ΓòÉΓòÉΓòÉ <hidden> Start Button ΓòÉΓòÉΓòÉ
  13431.  
  13432. When you press the Start button, the function is performed. Periodic updates 
  13433. are automatically started. 
  13434.  
  13435.  
  13436. ΓòÉΓòÉΓòÉ <hidden> Cancel Button ΓòÉΓòÉΓòÉ
  13437.  
  13438. When you press the Cancel button, the dialog is canceled and you are returned 
  13439. to the window.