Tuesday, October 9, 2012

Virtual Time

This is a summary of section 1 and 2 of Jefferson's paper of University of Southern California "Virtual Time".

What is Virtual Time?
Virtual time is a paradigm that provides a flexible abstraction of real time in much the same way that virtual memory provides an abstraction of real memory. It is implemented using the Time Warp mechanism.

Programmer's POV: the global virtual clock always progresses forward at an unpredictable rate with respect to real time.
Implementer's POV: there are many local virtual clocks, loosely synchronized, and while all of the virtual clocks tend to go forward toward higher virtual times, they occasionally jump backward.

Event at (x, t) where x is the virtual place and t is the virtual time

Processes communicate only by exchanging messages to any process that it can name.

All messages are stamped with four values:
  • Sender
  • Virtual sender time
  • Receiver
  • Virtual receiver time
Virtual time systems are subject to two fundamental semantic rules:
  1. The virtual send time of each message must be less than its virtual receive time
  2. The virtual time of each event in a process must be less than the virtual time of the next event at that process.
This rule imply:
  • All messages output from any one process are sent in order of virtual send time
  • All messages input to any process are read in order of virtual receive time
The major constraint on the implementation:
If an event A causes event B, then the execution of A and B must be scheduled in real time so that A is completed before B starts.

No comments:

Post a Comment