1. A computer-implemented method of loading, in computer memory, files required by a boot program, the method comprising: using at least one data processing device to: record, during at least one execution of the boot program, each file loaded in the computer memory; store, for each of the loaded files, a respective file identifier in a first list of file identifiers; store the first list on a non-volatile memory; and access the stored first list during subsequent execution of the boot program; for each file identifier in the accessed first list, (i) comparing a first attribute of the file corresponding to that file identifier with a predetermined threshold to identify whether retrieval of that file requires movement of a disk-head or access to a directory structure, and (ii) when the first attribute of that file exceeds the predetermined threshold, selectively adding that file identifier to a second list designated for files that require movement of the disk-head to access; sorting the second list based on a second attribute of the files corresponding to the file identifiers in the second list; selecting, in sorted order, a file identifier in the sorted second list; loading the file corresponding to the selected file identifier; and repeating the selecting and loading steps until each file identifier in the sorted second list is selected.