Archive for October 13th, 2010

Software Chorography and Chorology: A Definition

Wednesday, October 13th, 2010

In addition to software narratology we would like to introduce another 2 branches of memoretics (borrowed from “geographical” chorography and chorology), the science of memory snapshots:

Software Chorography

The study and visualization of small memory regions compared to the full memory dumps.

Software Chorology

The spacial equivalent of software narratology where the latter is considered in chronological terms. Studies spatial distribution and causal relations between software behavioral and structural phenomena inside particular memory regions.

To give a perspective where usual software traces and memory dumps reside in terms narrativity and non-narrativity (spatiality) we created this diagram:

Memory dumps have some extension in the dimension of narrativity because it is possible to get stack traces and other execution residue from them that provide partial fragments of a software narrative.

- Dmitry Vostokov @ + -

Structural Memory Patterns (Part 6)

Wednesday, October 13th, 2010

Another important pattern category is Memory Hierarchy. Typical examples include a complete memory dump with a physical to virtual mapping and paged out memory. Please note that page file is optional and paging can be implemented without a page file. There can be several layers of hierarchy, for example:

  1. physical memory
  2. virtualized physical memory
  3. virtual memory

Another example is from the protected mode x86 architecture:

  1. physical memory
  2. linear memory (paging, virtual)
  3. logical memory (segments)

- Dmitry Vostokov @ + -

Trace Analysis Patterns (Part 30)

Wednesday, October 13th, 2010

Sometimes, when we find an Anchor Message related to our problem description (for example, a COM port error) we are interested in its evolution throughout a software narrative:

#       PID     TID     Message
126303  5768    1272    OpenComPort returns Status = 0x0
231610  3464    1576    OpenComPort returns Status = 0x0
336535  5768    4292    OpenComPort returns Status = 0×0
423508  5252    2544    OpenComPort returns Status = 0xc000000f
531247  5768    5492    OpenComPort returns Status = 0xc000000f
639039  772     3404    OpenComPort returns Status = 0xc000000f

Then we can check activity between changes. We call this pattern Message Change.

- Dmitry Vostokov @ + -

Software Generalist View of Religion (Part 1)

Wednesday, October 13th, 2010

In seeking spiritual faith a software generalist views various religious worldviews as packages providing interfaces (IReligion). The methods of such interface will be discussed in the next part but for now, I show a UML diagram.

Icons for Memory Dump Analysis Patterns (Part 80)

Wednesday, October 13th, 2010

Today we introduce an icon for Special Process pattern:



- Dmitry Vostokov @ + -

7 years at Citrix!

Wednesday, October 13th, 2010

I now transition to 8 similar to 7-to-8 transition from user to kernel space (new dialectical quality):

  case 5:
  write_blog_post(”I’ve just passed 5 year mark … “);
  write_blog_post(”Shortly after celebrating 5 years … “);
  case 6:
  write_blog_post(”Threads in my process run very fast. Not long ago … “);
  case 7:
  write_blog_post(”Transition to kernel mode and space … “);
  case 8:
  // … TBD

I also abandoned monthly counting started earlier because in kernel space time is counted in clock cycles per quantum unit where the latter is 1/3 of a clock tick (Windows Internals, 5th edition, pp. 406 - 408) :-)

- Dmitry Vostokov @ + -