diff --git a/a4mcar/high_level_applications/scripts/tracing/ListThreads.sh b/a4mcar/high_level_applications/scripts/tracing/ListThreads.sh
new file mode 100644
index 0000000..436d16f
--- /dev/null
+++ b/a4mcar/high_level_applications/scripts/tracing/ListThreads.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# Copyright (c) 2017 FH Dortmund and others
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Description:
+#	This script is used for estimating the granularity of a thread by
+#	making use of its name and period.
+#	Example usage: sudo ./ListThreads.sh -n <process_name>
+#	
+# Authors:
+#	M. Ozcelikors <mozcelikors@gmail.com>, FH Dortmund
+#
+
+helpwindow ()
+{
+	echo "Arguments for ListThreads.sh are:"
+	echo "#################################################"
+	echo "-h or --help : Show these help instructions"
+	echo "-p or --pid  : Progress using Process ID"
+	echo "-n or --name : Progress using Process Name (CMD)"
+	echo "#################################################"
+	echo "Example usage: sudo ./ListThreads.sh -n <process_name> "
+	echo "or sudo ./ListThreads.sh -p <pid>"
+}
+
+if [ "$1" == "" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+	helpwindow
+	exit 0
+fi
+
+while [[ $# -gt 1 ]]
+do
+	key="$1"
+	case $key in
+		-p|--pid)
+			pid="$2"
+			shift
+		;;
+		-n|--name)
+			process_name="$2"
+			shift
+		;;
+		*)
+			#Unknown
+			helpwindow
+		;;
+	esac
+	shift
+done
+
+if ! [[ -z ${pid+x} ]]; then
+	ps H -p $pid -o 'pid tid cmd comm'
+elif ! [[ -z ${process_name+x} ]]; then
+	pid=$(pgrep -f $process_name -o)
+	ps H -p $pid -o 'pid tid cmd comm'
+fi
+
+exit $?
+
+
+
+
+
+
+
+
+
diff --git a/a4mcar/high_level_applications/scripts/tracing/MonitorThreads.sh b/a4mcar/high_level_applications/scripts/tracing/MonitorThreads.sh
new file mode 100644
index 0000000..501bc3f
--- /dev/null
+++ b/a4mcar/high_level_applications/scripts/tracing/MonitorThreads.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+# Copyright (c) 2017 FH Dortmund and others
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Description:
+#	This script is used for monitoring core utilization of all threads of
+#	a process by the process name.
+#	Right usage: 	./MonitorThreads.sh -n <process_name>
+#					./MonitorThreads.sh -p <pid>
+#	You can access the help instructions by typing ./MonitorThreads.sh --help
+#
+# Authors:
+#	M. Ozcelikors <mozcelikors@gmail.com>, FH Dortmund
+#
+
+helpwindow ()
+{
+	echo "Arguments for MonitorThreads.sh are:"
+	echo "#################################################"
+	echo "-h or --help : Show these help instructions"
+	echo "-p or --pid  : Progress using Process ID"
+	echo "-n or --name : Progress using Process Name (CMD)"
+	echo "#################################################"
+	echo "Example usage: sudo ./MonitorThreads -n MyApplication"
+	echo "               sudo ./MonitorThreads -p 1550"
+}
+
+if [ "$1" == "" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+	helpwindow
+	exit 0
+fi
+
+while [[ $# -gt 1 ]]
+do
+	key="$1"
+	case $key in
+		-p|--pid)
+			pid="$2"
+			shift
+		;;
+		-n|--name)
+			process_name="$2"
+			shift
+		;;
+		*)
+			#Unknown
+			helpwindow
+		;;
+	esac
+	shift
+done
+
+
+if ! [[ -z ${pid+x} ]]; then
+	ps H -p $pid -o 'pid tid cmd comm'
+	top H -p $pid
+elif ! [[ -z ${process_name+x} ]]; then
+	pid=$(pgrep -f $process_name -o)
+	ps H -p $pid -o 'pid tid cmd comm'
+	top H -p $pid
+fi
+
+exit $?
diff --git a/a4mcar/high_level_applications/scripts/tracing/ProfileAThread.sh b/a4mcar/high_level_applications/scripts/tracing/ProfileAThread.sh
new file mode 100644
index 0000000..e8c31f6
--- /dev/null
+++ b/a4mcar/high_level_applications/scripts/tracing/ProfileAThread.sh
@@ -0,0 +1,86 @@
+#!/bin/bash
+# Copyright (c) 2017 FH Dortmund and others
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Description:
+#	This script is used for estimating the granularity of a thread by
+#	making use of its name and period.
+#	Example usage: ./ProfileAThread.sh -n <process_name> -t <period> -c <path/to/perf/obj>
+#					<period> is in seconds
+#	
+# Authors:
+#	M. Ozcelikors <mozcelikors@gmail.com>, FH Dortmund
+#
+
+helpwindow ()
+{
+	echo "Arguments for ProfileAThread.sh are:"
+	echo "#################################################"
+	echo "-h or --help : Show these help instructions"
+	echo "-p or --pid  : Progress using Process ID"
+	echo "-n or --name : Progress using Process Name (CMD)"
+	echo "-t or --time : Specify period in seconds to analyze"
+	echo "-c or --command : Perf command or path to perf object to run"
+	echo "#################################################"
+	echo "Example usage: sudo ./ProfileAThread.sh -n <process_name> -t <period> -c <path/to/perf/obj>"
+	echo "or sudo ./ProfileAThread.sh -p <pid> -t <period> -c <path/to/perf/obj>"
+}
+
+if [ "$1" == "" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+	helpwindow
+	exit 0
+fi
+
+while [[ $# -gt 1 ]]
+do
+	key="$1"
+	case $key in
+		-p|--pid)
+			pid="$2"
+			shift
+		;;
+		-n|--name)
+			process_name="$2"
+			shift
+		;;
+		-t|--time)
+			period="$2"
+			shift
+		;;
+		-c|--command)
+			perf_command="$2"
+			shift
+		;;
+		*)
+			#Unknown
+			helpwindow
+		;;
+	esac
+	shift
+done
+
+if ! [[ -z ${perf_command+x} ]]; then
+	if ! [[ -z ${period+x} ]]; then
+		if ! [[ -z ${pid+x} ]]; then
+			$perf_command stat -e instructions:u -p $pid -- sleep $period
+		elif ! [[ -z ${process_name+x} ]]; then
+			pid=$(pgrep -f $process_name -o)
+			$perf_command stat -e instructions:u -p $pid -- sleep $period 
+		fi
+	else
+		helpwindow
+	fi
+else
+	helpwindow
+fi
+
+exit $?
+
+
+
+
+
+
diff --git a/a4mcar/high_level_applications/scripts/tracing/ProfileThreadsOfAProcess.sh b/a4mcar/high_level_applications/scripts/tracing/ProfileThreadsOfAProcess.sh
new file mode 100644
index 0000000..f2839b0
--- /dev/null
+++ b/a4mcar/high_level_applications/scripts/tracing/ProfileThreadsOfAProcess.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+# Copyright (c) 2017 FH Dortmund and others
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Description:
+#	This script is used for estimating the granularity of a thread by
+#	making use of its name and period.
+#	Example usage: ./ProfileThreadsOfAProcess.sh -n <process_name> -t <period> -c <path/to/perf/obj>
+#					<period> is in milliseconds
+#	
+# Authors:
+#	M. Ozcelikors <mozcelikors@gmail.com>, FH Dortmund
+#
+
+helpwindow ()
+{
+	echo "Arguments for ProfileThreadsOfAProcess.sh are:"
+	echo "#################################################"
+	echo "-h or --help : Show these help instructions"
+	echo "-p or --pid  : Progress using Process ID"
+	echo "-n or --name : Progress using Process Name (CMD)"
+	echo "-t or --time : Specify period in milliseconds to analyze"
+	echo "-c or --command : Perf command or path to perf object to run"
+	echo "#################################################"
+	echo "Example usage: sudo ./ProfileThreadsOfAProcess.sh -n <process_name> -t <period> -c <path/to/perf/obj>"
+	echo "or sudo ./ProfileThreadsOfAProcess.sh -p <pid> -t <period> -c <path/to/perf/obj>"
+}
+
+if [ "$1" == "" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+	helpwindow
+	exit 0
+fi
+
+while [[ $# -gt 1 ]]
+do
+	key="$1"
+	case $key in
+		-p|--pid)
+			pid="$2"
+			shift
+		;;
+		-n|--name)
+			process_name="$2"
+			shift
+		;;
+		-t|--time)
+			period="$2"
+			shift
+		;;
+		-c|--command)
+			perf_command="$2"
+			shift
+		;;
+		*)
+			#Unknown
+			helpwindow
+		;;
+	esac
+	shift
+done
+
+if ! [[ -z ${perf_command+x} ]]; then
+	if ! [[ -z ${period+x} ]]; then
+		if ! [[ -z ${pid+x} ]]; then
+			$perf_command stat --per-thread -e instructions:u -p $pid -I $period 
+		elif ! [[ -z ${process_name+x} ]]; then
+			pid=$(pgrep -f $process_name -o)
+			$perf_command stat --per-thread -e instructions:u -p $pid -I $period 
+		fi
+	else
+		helpwindow
+	fi
+else
+	helpwindow
+fi
+
+exit $?
+
+
diff --git a/a4mcar/high_level_applications/scripts/tracing/TraceLinuxProcesses.sh b/a4mcar/high_level_applications/scripts/tracing/TraceLinuxProcesses.sh
new file mode 100644
index 0000000..765b118
--- /dev/null
+++ b/a4mcar/high_level_applications/scripts/tracing/TraceLinuxProcesses.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+# Copyright (c) 2017 FH Dortmund and others
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Description:
+#	Linux shell (bash) script that traces linux processes and converts
+#	the trace to common tracing format (CTF).
+#	perf module should be compiles with libbabeltrace in order to run
+#	the tracing utility correctly.
+#	Created out directory will contain Processes_List.txt (process IDs
+#	are listed), perf.data (trace in perf format), ctf_trace.tar.gz
+#	(trace in ctf format)
+#	The ctf_format.tar.gz can be extracted in order to visualize the 
+#	perf streams using Eclipse TraceCompass.
+#
+# Usage:
+#	sudo ./TraceLinuxProcesses.sh -p <path/to/perf> -n <trace_name> -t <period_to_trace>
+#
+# Authors:
+#	M. Ozcelikors <mozcelikors@gmail.com>, FH Dortmund
+#
+
+helpwindow ()
+{
+	echo "Arguments for TraceLinuxProcesses.sh are:"
+	echo "#################################################"
+	echo "-h or --help : 			Show these help instructions"
+	echo "-p or --path-to-perf : 	Progress using Process ID"
+	echo "-n or --name : 			Trace name to be created"
+	echo "-t or --time : 			Specify period in seconds to trace"
+	echo "#################################################"
+	echo "Example usage: sudo ./TraceLinuxProcesses.sh -p <path/to/perf> -n <trace_name> -t <period_to_trace>"
+}
+
+if [ "$1" == "" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+	helpwindow
+	exit 0
+fi
+
+while [[ $# -gt 1 ]]
+do
+	key="$1"
+	case $key in
+		-p|--path-to-perf)
+			perf_directory="$2"
+			shift
+		;;
+		-n|--name)
+			trace_name="$2"
+			shift
+		;;
+		-t|--time)
+			seconds="$2"
+			shift
+		;;
+		*)
+			#Unknown
+			helpwindow
+		;;
+	esac
+	shift
+done
+
+if ! [[ -z ${perf_directory+x} ]]; then
+	if ! [[ -z ${trace_name+x} ]]; then
+		if ! [[ -z ${seconds+x} ]]; then
+			echo "### Creating directory.."
+			sudo mkdir out_$trace_name/
+			echo "### Writing out process names.."
+			ps -aux >> out_$trace_name/Processes_List.txt
+			echo "### Tracing with perf for $seconds seconds.."
+			sudo $perf_directory/./perf sched record -o out_$trace_name/perf.data -- sleep $seconds
+			echo "### Converting to data to CTF (Common Tracing Format).."
+			sudo LD_LIBRARY_PATH=/opt/libbabeltrace/lib $perf_directory/./perf data convert -i out_$trace_name/perf.data --to-ctf=./ctf
+			sudo tar -czvf out_$trace_name/trace.tar.gz ctf/
+			sudo rm -rf ctf/
+			
+			echo "### Process IDs are written to out_$trace_name/Processes_List.txt"
+			echo "### Trace in Perf format is written to out_$trace_name/perf.data"
+			echo "### Trace in CTF format is written to out_$trace_name/ctf_trace.tar.gz"
+			echo "### Exiting.."
+		else
+			helpwindow
+		fi
+	else
+		helpwindow
+	fi
+else
+	helpwindow
+fi
+
+exit $?
+
+
+
+
