An image forming apparatus comprising a first system, a second system, and an output engine and configured to process input data by the first system and the second system and to output the processed data as an image via the output engine, wherein the first system comprises: a CPU a memory which stores an operating system which controls the first system in accordance with execution by the CPU, a virtual machine operating on the operation system, and a guest operating system operating on the virtual machine, the guest operating system having a driver program; first communication means configured to communicate with the second system; detection means configured to detect whether the second system is in a processing-disabled state; virtual environment activation means configured to activate the guest operating system and the driver program operating on the guest operating system running on the operating system in the first system in accordance that the detection means detects that the second system is in the processing-disabled state; and wherein the CPU causes starting the rasterization process by the second system with the input data processed and stored by the first system in accordance that the detection means detects that the second system is not in the processing-disabled state, but in a case where the detection means detects that the second system is in the processing-disabled state and the driver program operating on the guest operating system has performed image processing, is arranged to wait for the second system to be in a processing-enabled state and to transfer the processed input data to the second system after the second system becomes in the processing-enabled state, wherein the second system comprises: second communication means configured to communicate with the first system; second image processing means configured to perform image processing on data received from the first system if the input data to be processed has transferred from the first system; and output engine control means configured to control the output engine so as to output the data processed by the first image processing means or the second image processing means as an image, and wherein the output engine is configured to output the processed data as an image under control of the output engine control means. a CPU a memory which stores an operating system which controls the first system in accordance with execution by the CPU, a virtual machine operating on the operation system, and a guest operating system operating on the virtual machine, the guest operating system having a driver program; first communication means configured to communicate with the second system; detection means configured to detect whether the second system is in a processing-disabled state; virtual environment activation means configured to activate the guest operating system and the driver program operating on the guest operating system running on the operating system in the first system in accordance that the detection means detects that the second system is in the processing-disabled state; and wherein the CPU causes starting the rasterization process by the second system with the input data processed and stored by the first system in accordance that the detection means detects that the second system is not in the processing-disabled state, but in a case where the detection means detects that the second system is in the processing-disabled state and the driver program operating on the guest operating system has performed image processing, is arranged to wait for the second system to be in a processing-enabled state and to transfer the processed input data to the second system after the second system becomes in the processing-enabled state, wherein the second system comprises: second communication means configured to communicate with the first system; second image processing means configured to perform image processing on data received from the first system if the input data to be processed has transferred from the first system; and output engine control means configured to control the output engine so as to output the data processed by the first image processing means or the second image processing means as an image, and wherein the output engine is configured to output the processed data as an image under control of the output engine control means. second communication means configured to communicate with the first system; second image processing means configured to perform image processing on data received from the first system if the input data to be processed has transferred from the first system; and output engine control means configured to control the output engine so as to output the data processed by the first image processing means or the second image processing means as an image, and wherein the output engine is configured to output the processed data as an image under control of the output engine control means.