2-22 IBM Informix OnLine Database Server Administrator’s Guide
OnLine User Processes
OnLine User Processes
An OnLine user process is any process that eventually needs to attach to
OnLine shared memory. User processes include three types:
■ OnLine database server processes named
$INFORMIXDIR/lib/sqlturbo
■ OnLine daemon processes, such as tbinit, tbundo, and tbpgcl
■ OnLine utility processes, such as tbmode, tbmonitor, and tbtape
An application development tool, such as an IBM Informix 4GL program, is
not a user process by this definition. All OnLine user processes, regardless of
type, communicate with each other through OnLine shared memory.
Shared memory is implemented by giving all OnLine user processes access
to the same shared-memory segment (or group of segments) associated with
an OnLine database server. Processes communicate with each other as they
request, lock, and release various shared-memory resources. Each process
manages its work by maintaining its own set of pointers to shared-memory
addresses for resources such as buffers, locks, and latches.
When a user process requires access to OnLine shared-memory resources, it
attaches shared-memory segments to its virtual address space.
Every OnLine user process manages a portion of memory that is not within
shared memory. This memory space is referred to as the user process’s virtual
address space. Within this address space, the user process maintains shared,
executable OnLine code (C program text) and private data. If the user process
requires additional memory, it can be dynamically allocated from UNIX.
Dynamic allocation of additional memory is accomplished with C library
calls, such as malloc(). This dynamic allocation is in contrast to OnLine
shared memory, which does not grow.