A computer system has secondary data that is derived from primary data,
such as entries in a TLB being derived from entries in a page table. When
an actor changes the primary data, a producer indicates the change in a
set data structure, such as a data array, in memory that is shared by the
producer and a consumer. There may be multiple producers and multiple
consumers and each producer/consumer pair has a separate channel. At
coherency events, at which incoherencies between the primary data and the
secondary data should be removed, consumers read the channels to
determine the changes, and update the secondary data accordingly. The
system may be a multiprocessor virtual computer system, the actor may be
a guest operating system, and the producers and consumers may be
subsystems within a virtual machine monitor, wherein each subsystem
exports a separate virtual central processing unit.