{'fraction_non_alphanumeric': 0.02665589660743134, 'fraction_numerical': 0.0008077544426494346, 'mean_word_length': 4.506666666666667, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Case Study : Using Inspect to Verify and fix bugs in a Work Stealing Deque Simulator

Writing bug-free multi-threaded programs is hard. Bugs in these programs have various types such as deadlock, live lock, race condition, starvation, and so on. These bugs are hard to be detected because that they may only be excited by certain interleaving of instructions. Most of time, we can not find the bugs by only observing the program outputs since the buggy interleaving of instructions will not always happen. Even though we had observed the problem occurred, it often takes us lots of time to debug. Work-stealing is one kind of method to achieve workload balance on distributed system or sharedmemory system. It is a dynamic and distributed algorithm and especially works well on shared-memory system. I believe that work-stealing scheduling would be the trend for future process/task scheduler on CMP system. This project will create a simple work-stealing simulator. Intuitively, it is be a multi-threaded program and it is a good example for us to try on Inspect [7], a runtime model checking tool, to help up finding out bugs in the simulator. In this project, we will show our experience of debuging a multi-threaded program with tool.