1. A computing system, comprising: a memory; and a computer processor communicatively coupled to the memory and configured to: initialize a hypervisor; establish a first virtual machine under the control of the hypervisor; load an antivirus software program from a non-volatile storage; execute the antivirus software program on the first virtual machine; establish a second virtual machine under the control of the hypervisor; load and execute a computer operating system on the second virtual machine; execute an antivirus agent on the second virtual machine, wherein the antivirus software monitors a running state of the software agent; pause execution of the computer operating system; grant the antivirus software program access to registers of the second virtual machine and to a portion of the memory allocated to the second virtual machine running the operating system, wherein the antivirus software program uses the access to the portion of the memory allocated to the second virtual machine to monitor state of the second virtual machine and take a corrective action, and wherein the antivirus software program takes corrective action upon detecting that the antivirus agent is not running or is modified on the second virtual machine.