1. A virtual core management system comprising: a physical core; a first virtual core including a collection of logical states associated with execution of a first program, the first virtual core being mapped to the physical core; a second virtual core including a collection of logical states associated with execution of a second program; and a virtual core management component configured to both unmap the first virtual core from the physical core and map the second virtual core to the physical core in response to the virtual core management component detecting that the physical core is idle, wherein the virtual core management component is further configured to both unmap the first virtual core from the physical core and map the second virtual core to the physical core in response to the virtual core management component detecting that the physical core is to executing an instruction in the first program that will cause the physical core to be idle for a time period exceeding a threshold, the instruction comprises an instruction corresponding to an input request or an output request that requires an acknowledgement by an input device or output device.