A method managing access of different users to a shared memory (10), said shared memory being subdivided into a plurality of buffers and being part of a storage system which further comprises a buffer-control memory (11), subdivided into as many sections for buffer-control records (BCRs) as buffers exist, and a buffer manager (12), said method comprising the steps of:
- a. organizing all free buffers of said shared memory as at least one chained queue of free buffers by keeping the corresponding BCRs in at least one free-buffer linked list (23.1);
- b. organizing all allocated buffers of said shared memory (10) as chained queues of allocated buffers, one queue for each of said users, by keeping the corresponding BCRs in as many allocated-buffer linked lists (23.2-23.n) as queues exist;
- c. allocating a free buffer to a user by removing the newly allocated buffer from said chained queue of free buffers and linking it to the queue of said user if still existing;
- otherwise, linking said newly allocated-buffer to a new queue by taking its BCR from said free-buffer linked list (23.1) and adding it to the allocated-buffer linked list (23.2-23.n) of said queue;
- d. releasing a buffer from the queue of a user by adding said released buffer to said chained queue of free buffers by taking its BCR from the allocated-buffer linked list (23.2-23.n) of said user and adding it to said free-buffer linked list (23.1);
- e. granting or not granting a request by said buffer manager for allocating a buffer to a user depending on (e.1) a plurality of rules implemented in said buffer manager (12), (e.2) a plurality of user-defined variables, and (e.3) system status variables, wherein all said variables are stored in a storage (41) linked to a work register (42) such that the stored plurality of user-defined and system status variables are made accessible, said user-defined variables being used for granting buffer allocation requests and said system status variables being controlled and updated by said buffer manager;
- wherein said queues are controlled and organized by said buffer manager (12) such that requests for allocation of buffers from different users are dealt with in a parallel manner.