- skeleton for shadow unit
- non functional at the moment!
- ported from ecos thread system to posix pthreads
- not tested yet
- thread shadowing files do compile now
- still not tested
- code for checking the os calls is incomplete
Merge branch 'master' into shadowing
- sort_demo compiles and runs with shadowing, but it has to be tested if shadowing is applied...
- restructured code
- got shadow semantics right: you start n working threads with shadow_thread_create() and the shadowing system
  starts shadows as needed / available
- implemented a segfault handler for debugging: now i know where the programm segfaulted
- streamlined some function names
- rewrote shadow_os_call_get_retval
- added Debug messages to sort8k
- every call to a system fucntion now also locks the shadowing system... Not optimal, but no deadlock anymore
- need to modify sort_demo, because shared memory accesses of thread and shadow thread interfere with each other
- adapted makefile for valgrind memory checker: removed -static linker option
- rewrote sort_demo to use mbox functions to pass data

- rediscovered bug: recursive merge does not work if blocksize is not a power of two
  -> redesign needed!
- extended merge algarithm to mmerge arbitrary numbers of blocks and not only multiples of 2
- solved deadlock problem
- valgrind + Kcachegrind say:
  thread shadowing is very slow due to list operations for every call
- fixed warning message: variable will only be declared when used by Debugging messages
- fixed warning message by removing unused variable slice_size
- redesigned shadowing system:
 - one thread is now the leading thread and pushes its os-calls into a fifo
 - another thread is the shadow thread and pop the os calls from the fifo and compares against
   its own calls.
 - fifo has fixed size. If full or empty thread waits on the semaphore
 - Profiling with valgrind tells me that bubblesort funtion accounts for 95% of runtime.
 - fifo calls etc. are way below 1%
- Adapted sort_demo to sort_demo_shadowed to facilitate comparable performance measurements
- first approach to error injection
- clean up of internal status message prints
- improved error messages when thread shadowing finds an error
- adding bash script for benchmarking
- at top of file a bunch of arrays specifies the parameters of test runs
- test runs are then executed with sort_demo, sort_demo_shadowed with and without
  activated shadowing
- results are logged into files.
- cleaning up git:
	- adding last changes to sort_demo, before continuing development in sort_demo_messages
	  because of changed hw threads
- cleanup of git repository
- checking in current state of message bassed sort_demo and current shadowing implementation