A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform the steps of: in response to a signal from a shutdown module during a shutdown phase of an operating system: performing one or more operations for one or more installed applications to generate one or more results; and storing the one or more results in a memory; and during a boot-up phase of the operating system: receiving the one or more results from the memory; and booting the operating system, including: i) determining whether a first result of the one or more results meets any of one or more failure conditions; ii) if the first result meets any of the one or more failure conditions, performing the operation corresponding to the first result, iii) if the first result does not meet any of the failure conditions, omitting the operation corresponding to the first result from the boot-up phase; iv) determining whether there are more results, and repeating steps i) to iii) for each one of the more results if there are more results. in response to a signal from a shutdown module during a shutdown phase of an operating system: performing one or more operations for one or more installed applications to generate one or more results; and storing the one or more results in a memory; and performing one or more operations for one or more installed applications to generate one or more results; and storing the one or more results in a memory; and during a boot-up phase of the operating system: receiving the one or more results from the memory; and booting the operating system, including: i) determining whether a first result of the one or more results meets any of one or more failure conditions; ii) if the first result meets any of the one or more failure conditions, performing the operation corresponding to the first result, iii) if the first result does not meet any of the failure conditions, omitting the operation corresponding to the first result from the boot-up phase; iv) determining whether there are more results, and repeating steps i) to iii) for each one of the more results if there are more results. receiving the one or more results from the memory; and booting the operating system, including: i) determining whether a first result of the one or more results meets any of one or more failure conditions; ii) if the first result meets any of the one or more failure conditions, performing the operation corresponding to the first result, iii) if the first result does not meet any of the failure conditions, omitting the operation corresponding to the first result from the boot-up phase; iv) determining whether there are more results, and repeating steps i) to iii) for each one of the more results if there are more results. i) determining whether a first result of the one or more results meets any of one or more failure conditions; ii) if the first result meets any of the one or more failure conditions, performing the operation corresponding to the first result, iii) if the first result does not meet any of the failure conditions, omitting the operation corresponding to the first result from the boot-up phase; iv) determining whether there are more results, and repeating steps i) to iii) for each one of the more results if there are more results.