1. In a processing system that enables the use of physical performance monitoring capabilities to measure program performance in virtualized execution environments, a computer implemented method comprising: collecting performance events for a processor using a performance monitoring unit in the processor; counting the performance events collected by the performance monitoring unit; causing the performance monitoring unit to generate a performance monitoring interruption to interrupt the normal execution flow of the processor based on a count of the performance events exceeding a certain number; determining, using a hypervisor executed by the processor, that the interruption occurred during a period of activity of at least one virtual machine; reporting architectural states of the at least one virtual machine to a primary domain performance monitoring component synchronously with the performance monitoring interruption based on the determination of the hypervisor, wherein architectural states comprise information to identify at least one virtualized processor in the at least one virtual machine and an instruction address being executed; reporting system states of the at least one virtual machine to the primary domain performance monitoring component synchronously with the performance monitoring interruption based on the determination of the hypervisor; monitoring system activity within the virtual domain in response to the system states not being reported; measuring program performance in the at least one virtual machine by associating processor performance characteristics with the system and architectural states of the at least one virtual machine; and raising the precision of the performance characteristics-state association by redistributing, by the processor, performance events between virtualized system activity states of separate virtualized processors within separate virtual machines; wherein said performance monitoring interruption is generated due to a change in the performance monitoring process.