Thread data

When a client connects to the database server, in addition to starting a session, the database server starts a primary session thread and creates a thread-control block for it in shared memory.

The database server also starts internal threads on its own behalf and creates thread-control blocks for them. When the database server switches from running one thread to running another one (a context switch), it saves information about the thread— such as the register contents, program counter (address of the next instruction), and global pointers—in the thread-control block. For more information about the thread-control block and how it is used, see Context switching.

The database server allocates memory for thread-control blocks as necessary.