Patent ID: 7539991

Claim:
A method for decomposing a data access request from a file system into a plurality of lower-level I/O tasks in a RAID system, said method comprising: representing logical combination and configuration of physical storage components of said RAID system as a hierarchical set of objects; generating a parent I/O task from a first object in said hierarchical set of objects in response to said data access request from the file system; dynamically allocating a resource for a child I/O task; generating said child I/O task from a second object in said hierarchical set of objects to implement at least a portion of said parent I/O task, said child I/O task using the resources; suspending the parent I/O task until said child I/O task is completed; scheduling for execution said child I/O task by an I/O thread; suspending the child I/O task by the I/O thread if the resource is not available; executing said child I/O task in response to an occurrence of an event that the resource is available such that scheduling of said child I/O task is not conditional on execution of said parent I/O task; and deallocating said resources allocated to said child I/O task when the child I/O task is completed; resuming the parent I/O task upon an event indicating the completion of said child I/O task, said event indicating the completion occurred when a function vector is invoked by said child I/O task.