Efficient Algorithms for Distributed Snapshots and Global Virtual Time Approximation Journal of Parallel and Distributed Computing, Vol. 18, pp. 423-434, August 1993 (Reprinted in: Z. Yang, T.A. Marsland (eds.), "Global States and Time in Distributed Systems", IEEE, 1994, pp. 27-36) This paper presents snapshot algorithms for determining a global state of a distributed system without significantly affecting the underlying computation. These algorithms do not require channels to be FIFO or messages to be acknowledged. Only a small amount of storage is needed. An important application of a snapshot algorithm is Global Virtual Time determination for distributed simulations. The paper proposes new and efficient Global Virtual Time approximation schemes based on snapshot algorithms and distributed termination detection principles.