Skip to Main Content
The existing user-level checkpointing schemes support only a certain portion of multithreaded programs on the Windows operating system, which are based on single-threaded programs. This paper focuses on studying a checkpointing scheme to support inter-thread synchronization and quantitative variation of threads for multithreaded processes. Unlike other proposed schemes, in which a thread is suspended by another thread at checkpointing, our checkpointing scheme employs a strategy by which a thread suspends itself. Therefore, it is free of nondeterminacy of thread suspension point, thereby ensuring correct rollback recovery. Our checkpointing scheme supports also various synchronization objects such as Mutex, CriticalSection and Event, as well as Semaphore, WaitableTimer and Thread.