Adaptive Server runs as an application on top of an operating system and depends solely on the services exported by the operating system to function. Adaptive Server uses operating system services for process creation and manipulation, device and file processing, and inter-process communication. The hardware that the operating system runs on is completely transparent to Adaptive Server which sees only the operating system’s user interfaces.
Adaptive Server has a virtual server architecture and has one or more operating system processes (engines) that service client requests. You can configure multiple processes to enhance performance on multiprocessor systems. A process is divided into two components, a DBMS component and a kernel component. The kernel component manages multiple tasks, while the DBMS component performs the database functions on behalf of the current task. Each client is associated with a task, and there are several tasks that perform specific services; for example, writing buffers or audit data to disk, and communicating with the network. The DBMS component of Adaptive Server manages the processing of SQL statements, accesses data in a database, and manages different types of server resources.
All server processes share two distinct areas of shared memory: a kernel area and a DBMS area. The kernel area contains data structures that relate to task management and operating system services, while the DBMS component contains caches of database buffers, object descriptors, and other resources used by the DBMS component of the server process.
The kernel layer of the server abstracts the operating system-specific functions so that the rest of the server has a consistent view of those functions regardless of the underlying operating system. Essentially, the kernel provides low-level functions, such as task and engine management, network and disk I/O, and low-level memory management to the rest of the server. The part of the server that processes a TDS request (the TDS engine) is part of the kernel layer.
The heart of Adaptive Server is the SQL/DBMS engine. The SQL/DBMS engine processes data manipulation statements (DML), utility commands, which are generally data definition statements (DDL) and administrative functions, and performs stored procedure executions. The DBMS engine uses the services provided by the resource manager routines and the access methods routines.
A resource manager is a set of subroutines that manage a particular system resource, such as pages, buffers, or a particular data structure. The DBMS engine uses these subroutines to manipulate various system resources. There are also a number of tasks within the server that perform specialized tasks. The resource managers, as well as these specialized tasks, rely on the kernel layer for low-level functions.
Access methods has two primary functions: the management of data on disk and manipulation of database constructs, such as tables and rows. Actual disk I/O routines are provided to the access methods routines by the kernel disk I/O routines.