1. A computer-implemented method in a provisioning system including a first pool having the images of a plurality of different operating systems (OS) and a second pool having a plurality of data processing systems, for selecting one or more OS images to be cached in a target data processing system, wherein the target data processing system is one of a plurality of data processing systems from the plurality of OS images in the first pool, the method causing a computer to execute the steps comprising: calculating the probability that the respective OS images in the first pool will be used in the next provisioning, wherein calculating the probability comprises obtaining the probability with respect to the respective OS images in the first pool by calculating the number of resources that are created using the OS image and currently running in any one of the data processing systems in the second pool; and determining, among all combinations of one or more OS images that can be selected from the plurality of OS images in the first pool to be cached in the target data processing system, a combination of one or more OS images as one or more OS images to be cached, which minimizes an expected value of the time needed for transmitting OS images to the target data processing system in the next provisioning, obtained assuming the caching.