An information processing apparatus comprising: a flash controller including: a command accepting block configured to accept an access request from a host processor to a flash memory; a management command generating block configured to issue a management processing request necessary for management of the flash memory; a command processing block configured to sequentially process the management processing requests and the access requests from any one of a plurality of queues in which the requests are stored in a sorted manner; a switching rules storage block configured to store one or more rules of switching between queues subject to processing, wherein the command processing block switches a target queue among the plurality of queues to a next queue within the same group of queues resulted by sorting the plurality of queues with a timing in accordance with a rule set for each of the queues and switches between groups subject to processing in accordance with rules set for each of these groups, wherein a target queue is a queue that is subject to processing; and a command adjusting block configured to adjust, in response to the number of management processing requests necessary for management of the memory in the plurality of queues exceeding a predetermined threshold value, one or more of the rules to increase the frequency of execution of the management processing requests necessary for management of the memory, and wherein the one or more rules that are adjusted are returned to their original state when the threshold is no longer exceeded, wherein the plurality of queues storing the access requests are sorted by contents and priority of an access and sorted into the groups by contents of the access, wherein the plurality of queues further include a queue for storing a management processing request issued by the management command generating block, and the command processing block switches the target queue to a next group at the point at which a processing upper limit number or limit time set independently for each of the groups is reached; and the command processing block reads and further executes the management processing request from the queue, wherein the command processing block switches between target queues within the groups with a timing in accordance with a rule set by the priority of this access. a command accepting block configured to accept an access request from a host processor to a flash memory; a management command generating block configured to issue a management processing request necessary for management of the flash memory; a command processing block configured to sequentially process the management processing requests and the access requests from any one of a plurality of queues in which the requests are stored in a sorted manner; a switching rules storage block configured to store one or more rules of switching between queues subject to processing, wherein the command processing block switches a target queue among the plurality of queues to a next queue within the same group of queues resulted by sorting the plurality of queues with a timing in accordance with a rule set for each of the queues and switches between groups subject to processing in accordance with rules set for each of these groups, wherein a target queue is a queue that is subject to processing; and a command adjusting block configured to adjust, in response to the number of management processing requests necessary for management of the memory in the plurality of queues exceeding a predetermined threshold value, one or more of the rules to increase the frequency of execution of the management processing requests necessary for management of the memory, and wherein the one or more rules that are adjusted are returned to their original state when the threshold is no longer exceeded, wherein the plurality of queues storing the access requests are sorted by contents and priority of an access and sorted into the groups by contents of the access, wherein the plurality of queues further include a queue for storing a management processing request issued by the management command generating block, and the command processing block switches the target queue to a next group at the point at which a processing upper limit number or limit time set independently for each of the groups is reached; and the command processing block reads and further executes the management processing request from the queue, wherein the command processing block switches between target queues within the groups with a timing in accordance with a rule set by the priority of this access.