An information processing apparatus that allocates information to respective elements included in a first set, the information processing apparatus comprising: an allocator (123, 124, and 125) arranged for performing a first calculation for calculating candidate information to be allocated to respective elements included in a first subset for each of a plurality of rules, the first subset being constituted by elements which are included in the first set and are allocation objects to be allocated information at a present time, performing a second calculation for calculating candidate information to be allocated to respective elements included in a second subset with respect to each of a plurality of results of the first calculation, the second subset is constituted by elements which are included in the first set and are not the allocation objects at the present time, and calculating scores on the basis of review results each including one of the plurality of results of the first calculation and one of a plurality of results of the second calculation corresponding to the one of the plurality of results of the first calculation, deciding information to be allocated to at least one of the elements included in the first subset based on a review result selected from the review results based on the scores and allocating the decided information to the at least one of the elements in the first subset; an updater arranged for updating the first subset by deleting the at least one of the elements which is allocated the decided information from the first subset; and an acquirer arranged for acquiring update information for updating the elements in the first subset and the second subset, the update information corresponding to a generation or disappearance of an element; wherein the updater is arranged for transferring an element indicated by the update information in the second subset to the first subset and adding an element indicated by the update information to the second subset to update on the first subset and the second subset, wherein each time an element is added to the first subset by the updater, the allocator decides information to be allocated to at least one element included in the updated first subset and allocates the information to at least one element included in the updated first subset using the updated first subset and the updated second subset, and wherein the elements included in the first set are processes and the information allocated to the at least one of the elements in the first subset is an area in a cache, wherein in a case where the update information related to disappearance of a process is acquired by the acquirer, the updater changes the area of the process in an actual situation data to a free area, and the process is added to the second subset. an allocator (123, 124, and 125) arranged for performing a first calculation for calculating candidate information to be allocated to respective elements included in a first subset for each of a plurality of rules, the first subset being constituted by elements which are included in the first set and are allocation objects to be allocated information at a present time, performing a second calculation for calculating candidate information to be allocated to respective elements included in a second subset with respect to each of a plurality of results of the first calculation, the second subset is constituted by elements which are included in the first set and are not the allocation objects at the present time, and calculating scores on the basis of review results each including one of the plurality of results of the first calculation and one of a plurality of results of the second calculation corresponding to the one of the plurality of results of the first calculation, deciding information to be allocated to at least one of the elements included in the first subset based on a review result selected from the review results based on the scores and allocating the decided information to the at least one of the elements in the first subset; an updater arranged for updating the first subset by deleting the at least one of the elements which is allocated the decided information from the first subset; and an acquirer arranged for acquiring update information for updating the elements in the first subset and the second subset, the update information corresponding to a generation or disappearance of an element; wherein the updater is arranged for transferring an element indicated by the update information in the second subset to the first subset and adding an element indicated by the update information to the second subset to update on the first subset and the second subset, wherein each time an element is added to the first subset by the updater, the allocator decides information to be allocated to at least one element included in the updated first subset and allocates the information to at least one element included in the updated first subset using the updated first subset and the updated second subset, and wherein the elements included in the first set are processes and the information allocated to the at least one of the elements in the first subset is an area in a cache, wherein in a case where the update information related to disappearance of a process is acquired by the acquirer, the updater changes the area of the process in an actual situation data to a free area, and the process is added to the second subset.