1. A computing device, comprising: a processor comprising one or more processing cores and operating in a multi-tenant environment, wherein the one or more processing cores executes at least a first virtual machine and a second virtual machine simultaneously, and the first virtual machine comprising a first plurality of computer executable instructions for a first tenant and the second virtual machine comprising a second plurality of computer executable instructions for a second tenant; a cache or a buffer in the processor shared by the first virtual machine and the second virtual machine, the first virtual machine and the second virtual machine executing simultaneously on the one or more processing cores wherein simultaneously executing virtual machines comprises concurrently processing at least one executable instruction belonging to the first virtual machine and at least another executable instruction belonging to the second virtual machine, wherein neither of the instructions belonging to the first virtual machine and the second virtual machine have completed execution; a hardware resource allocator implemented in microcode for the one or more processing cores or privileged code executing on the one or more processing cores to: assign a first identifier to the first virtual machine; and associate a portion of the cache or the buffer with the first identifier; and the processor comprising a hardware resource manager to: restrict access for computer executable instructions executed from the first virtual machine to the portion of the cache or the buffer associated with the first identifier, wherein the computer executable instructions access other portions of the cache or the buffer.