Patent ID: 7228322

Claim:
A data management apparatus for managing data used when executing an application program stored on a computer readable recording medium, said data management apparatus included in a switching system for providing services related to communication, comprising: a data field for storing the data, wherein the data field is composed of a plurality of data setting areas, and the data is stored in a single or plural data setting areas according to a size of the data; an address acquirer for acquiring an address in said data field of the data for which an access is requested by the application program when receiving a pointer lending request from the application program; a lending pointer table for storing at least one of the pointer records, each of which has the acquired address and a pointer corresponding to the acquired address, the pointer indicating an address of the pointer record; a lender for informing the application program of the pointer corresponding to the acquired address when the acquired address is registered in the lending pointer to lend the read pointer to the application program; an allocation controller for determining, when the application program requests to add data to the field, if the data field has a first empty area that exists between the data setting areas each having a state of in-use and is composed of a single or plural continuous data setting areas, each of which has a state of unused, having a size equal to or larger than a size of the data to be added, to store the data to be added in the first empty area; an adder for storing the data to be added in the data field according to a determining result of the allocation controller; and a data setting area management table to register use-condition of each of the data setting areas, an address of the first empty area and an address of a second empty area, each corresponding to the size of the respective empty area, the data setting area management table being referred to the allocation controller to determine a storing position for the data to be added.