Index: doc/theses/mubeen_zulfiqar_MMath/allocator.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/allocator.tex	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/allocator.tex	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -651,6 +651,6 @@
 The following API was created to provide interaction between the language runtime and the allocator.
 \begin{lstlisting}
-void startTask();			$\C{// KT starts}$
-void finishTask();			$\C{// KT ends}$
+void startThread();			$\C{// KT starts}$
+void finishThread();			$\C{// KT ends}$
 void startup();				$\C{// when application code starts}$
 void shutdown();			$\C{// when application code ends}$
Index: doc/theses/mubeen_zulfiqar_MMath/background.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/background.tex	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/background.tex	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -18,5 +18,5 @@
 \end{comment}
 
-\chapter[Background]{Background\footnote{Part of this chapter draws from similar background work in~\cite{wasik.thesis} with many updates.}}
+\chapter[Background]{Background\footnote{Part of this chapter draws from similar background work in~\cite{Wasik08} with many updates.}}
 
 
@@ -213,5 +213,5 @@
 
 \paragraph{\newterm{Program-induced false-sharing}} occurs when one thread passes an object sharing a cache line to another thread, and both threads modify the respective objects.
-\VRef[Figure]{f:ProgramInducedFalseSharing} shows when Task$_1$ passes Object$_2$ to Task$_2$, a false-sharing situation forms when Task$_1$ modifies Object$_1$ and Task$_2$ modifies Object$_2$.
+\VRef[Figure]{f:ProgramInducedFalseSharing} shows when Thread$_1$ passes Object$_2$ to Thread$_2$, a false-sharing situation forms when Thread$_1$ modifies Object$_1$ and Thread$_2$ modifies Object$_2$.
 Changes to Object$_1$ invalidate CPU$_2$'s cache line, and changes to Object$_2$ invalidate CPU$_1$'s cache line.
 
@@ -237,11 +237,11 @@
 
 \paragraph{\newterm{Allocator-induced active false-sharing}} occurs when objects are allocated within the same cache line but to different threads.
-For example, in \VRef[Figure]{f:AllocatorInducedActiveFalseSharing}, each task allocates an object and loads a cache-line of memory into its associated cache.
+For example, in \VRef[Figure]{f:AllocatorInducedActiveFalseSharing}, each thread allocates an object and loads a cache-line of memory into its associated cache.
 Again, changes to Object$_1$ invalidate CPU$_2$'s cache line, and changes to Object$_2$ invalidate CPU$_1$'s cache line.
 
 \paragraph{\newterm{Allocator-induced passive false-sharing}} is another form of allocator-induced false-sharing caused by program-induced false-sharing.
 When an object in a program-induced false-sharing situation is deallocated, a future allocation of that object may cause passive false-sharing.
-For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, Task$_1$ passes Object$_2$ to Task$_2$, and Task$_2$ subsequently deallocates Object$_2$.
-Allocator-induced passive false-sharing occurs when Object$_2$ is reallocated to Task$_2$ while Task$_1$ is still using Object$_1$.
+For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, Thread$_1$ passes Object$_2$ to Thread$_2$, and Thread$_2$ subsequently deallocates Object$_2$.
+Allocator-induced passive false-sharing occurs when Object$_2$ is reallocated to Thread$_2$ while Thread$_1$ is still using Object$_1$.
 
 
@@ -461,7 +461,7 @@
 Ownership prevents the classical problem where one thread performs allocations from one heap, passes the object to another thread, and the receiving thread deallocates the object to another heap, hence draining the initial heap of storage.
 As well, allocator-induced passive false-sharing is eliminated because returning an object to its owner heap means it can never be allocated to another thread.
-For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, the deallocation by Task$_2$ returns Object$_2$ back to Task$_1$'s heap;
-hence a subsequent allocation by Task$_2$ cannot return this storage.
-The disadvantage of ownership is deallocating to another task's heap so heaps are no longer private and require locks to provide safe concurrent access.
+For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, the deallocation by Thread$_2$ returns Object$_2$ back to Thread$_1$'s heap;
+hence a subsequent allocation by Thread$_2$ cannot return this storage.
+The disadvantage of ownership is deallocating to another thread's heap so heaps are no longer private and require locks to provide safe concurrent access.
 
 Object ownership can be immediate or delayed, meaning free objects may be batched on a separate free list either by the returning or receiving thread.
@@ -472,6 +472,6 @@
 It is possible for heaps to steal objects rather than return them and reallocating these objects when storage runs out on a heap.
 However, stealing can result in passive false-sharing.
-For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, Object$_2$ may be deallocated to Task$_2$'s heap initially.
-If Task$_2$ reallocates Object$_2$ before it is returned to its owner heap, then passive false-sharing may occur.
+For example, in \VRef[Figure]{f:AllocatorInducedPassiveFalseSharing}, Object$_2$ may be deallocated to Thread$_2$'s heap initially.
+If Thread$_2$ reallocates Object$_2$ before it is returned to its owner heap, then passive false-sharing may occur.
 
 
@@ -565,7 +565,7 @@
 
 Additional restrictions may be applied to the movement of containers to prevent active false-sharing.
-For example, in \VRef[Figure]{f:ContainerFalseSharing1}, a container being used by Task$_1$ changes ownership, through the global heap.
-In \VRef[Figure]{f:ContainerFalseSharing2}, when Task$_2$ allocates an object from the newly acquired container it is actively false-sharing even though no objects are passed among threads.
-Note, once the object is freed by Task$_1$, no more false sharing can occur until the container changes ownership again.
+For example, in \VRef[Figure]{f:ContainerFalseSharing1}, a container being used by Thread$_1$ changes ownership, through the global heap.
+In \VRef[Figure]{f:ContainerFalseSharing2}, when Thread$_2$ allocates an object from the newly acquired container it is actively false-sharing even though no objects are passed among threads.
+Note, once the object is freed by Thread$_1$, no more false sharing can occur until the container changes ownership again.
 To prevent this form of false sharing, container movement may be restricted to when all objects in the container are free.
 One implementation approach that increases the freedom to return a free container to the operating system involves allocating containers using a call like @mmap@, which allows memory at an arbitrary address to be returned versus only storage at the end of the contiguous @sbrk@ area, again pushing storage management complexity back to the operating system.
@@ -683,9 +683,9 @@
 For thread heaps with ownership, it is possible to combine these approaches into a hybrid approach with both private and public heaps (see~\VRef[Figure]{f:HybridPrivatePublicHeap}).
 The main goal of the hybrid approach is to eliminate locking on thread-local allocation/deallocation, while providing ownership to prevent heap blowup.
-In the hybrid approach, a task first allocates from its private heap and second from its public heap if no free memory exists in the private heap.
-Similarly, a task first deallocates an object its private heap, and second to the public heap.
+In the hybrid approach, a thread first allocates from its private heap and second from its public heap if no free memory exists in the private heap.
+Similarly, a thread first deallocates an object its private heap, and second to the public heap.
 Both private and public heaps can allocate/deallocate to/from the global heap if there is no free memory or excess free memory, although an implementation may choose to funnel all interaction with the global heap through one of the heaps.
 Note, deallocation from the private to the public (dashed line) is unlikely because there is no obvious advantages unless the public heap provides the only interface to the global heap.
-Finally, when a task frees an object it does not own, the object is either freed immediately to its owner's public heap or put in the freeing task's private heap for delayed ownership, which allows the freeing task to temporarily reuse an object before returning it to its owner or batch objects for an owner heap into a single return.
+Finally, when a thread frees an object it does not own, the object is either freed immediately to its owner's public heap or put in the freeing thread's private heap for delayed ownership, which allows the freeing thread to temporarily reuse an object before returning it to its owner or batch objects for an owner heap into a single return.
 
 \begin{figure}
@@ -746,5 +746,5 @@
 \label{s:LockFreeOperations}
 
-A \newterm{lock-free algorithm} guarantees safe concurrent-access to a data structure, so that at least one thread makes progress, but an individual task has no execution bound and may starve~\cite[pp.~745--746]{Herlihy93}.
+A \newterm{lock-free algorithm} guarantees safe concurrent-access to a data structure, so that at least one thread makes progress, but an individual thread has no execution bound and may starve~\cite[pp.~745--746]{Herlihy93}.
 (A \newterm{wait-free algorithm} puts a bound on the number of steps any thread takes to complete an operation to prevent starvation.)
 Lock-free operations can be used in an allocator to reduce or eliminate the use of locks.
@@ -759,8 +759,8 @@
 
 
-\subsubsection{Speed Workload}
-The worload method uses the opposite approach. It calls the allocator's routines for a specific amount of time and measures how much work was done during that time. Then, similar to the time method, it divides the time by the workload done during that time and calculates the average time taken by the allocator's routine.
-*** FIX ME: Insert a figure of above benchmark with description
-
-\paragraph{Knobs}
-*** FIX ME: Insert Knobs
+% \subsubsection{Speed Workload}
+% The worload method uses the opposite approach. It calls the allocator's routines for a specific amount of time and measures how much work was done during that time. Then, similar to the time method, it divides the time by the workload done during that time and calculates the average time taken by the allocator's routine.
+% *** FIX ME: Insert a figure of above benchmark with description
+% 
+% \paragraph{Knobs}
+% *** FIX ME: Insert Knobs
Index: doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedActiveFalseSharing.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedActiveFalseSharing.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedActiveFalseSharing.fig	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -1,54 +1,54 @@
-#FIG 3.2  Produced by xfig version 3.2.5
+#FIG 3.2  Produced by xfig version 3.2.7b
 Landscape
 Center
 Inches
-Letter  
+Letter
 100.00
 Single
 -2
 1200 2
-6 2250 2400 4050 2700
+6 2550 2700 4350 3000
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2250 2400 3150 2400 3150 2700 2250 2700 2250 2400
+	 2550 2700 3450 2700 3450 3000 2550 3000 2550 2700
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3150 2400 4050 2400 4050 2700 3150 2700 3150 2400
-4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2625 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3600 2625 Object$_2$\001
+	 3450 2700 4350 2700 4350 3000 3450 3000 3450 2700
+4 1 0 50 -1 0 11 0.0000 2 165 825 3000 2925 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 3900 2925 Object$_2$\001
 -6
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1050 1500 1950 1500 1950 1800 1050 1800 1050 1500
+	 1350 1800 2250 1800 2250 2100 1350 2100 1350 1800
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 900 900 3000 900 3000 1950 900 1950 900 900
+	 1200 1200 3300 1200 3300 2250 1200 2250 1200 1200
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 1950 1950 2700 2400
+	 2250 2250 3000 2700
 2 2 0 1 0 7 60 -1 -1 0.000 0 0 -1 0 0 5
-	 1950 1500 2850 1500 2850 1800 1950 1800 1950 1500
+	 2250 1800 3150 1800 3150 2100 2250 2100 2250 1800
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4350 1500 5250 1500 5250 1800 4350 1800 4350 1500
+	 4650 1800 5550 1800 5550 2100 4650 2100 4650 1800
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3300 900 5400 900 5400 1950 3300 1950 3300 900
+	 3600 1200 5700 1200 5700 2250 3600 2250 3600 1200
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 4350 1950 3600 2400
+	 4650 2250 3900 2700
 2 2 0 1 0 7 60 -1 -1 0.000 0 0 -1 0 0 5
-	 3450 1500 4350 1500 4350 1800 3450 1800 3450 1500
+	 3750 1800 4650 1800 4650 2100 3750 2100 3750 1800
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 2850 1200 2850 975 2250 975 2250 1200 2850 1200
+	 3225 1500 2475 1500 2475 1275 3225 1275 3225 1500
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 5250 1200 5250 975 4650 975 4650 1200 5250 1200
-4 1 0 50 -1 0 11 0.0000 2 195 735 2550 1125 Task$_1$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 975 1125 CPU$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 1950 1425 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 1500 1725 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 2400 1725 Object$_2$\001
-4 2 0 50 -1 2 11 0.0000 2 135 585 2250 2250 1. alloc\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 4950 1125 Task$_2$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 3375 1125 CPU$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3900 1725 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 4800 1725 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 4350 1425 Cache\001
-4 2 0 50 -1 0 11 0.0000 2 180 630 2175 2625 Memory\001
-4 0 0 50 -1 2 11 0.0000 2 180 720 4050 2250 4. modify\001
-4 2 0 50 -1 2 11 0.0000 2 135 585 3900 2175 3. alloc\001
-4 0 0 50 -1 2 11 0.0000 2 180 720 2400 2175 2. modify\001
+	 5625 1500 4875 1500 4875 1275 5625 1275 5625 1500
+4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1425 Thread$_1$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1425 CPU$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 2250 1725 Cache\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2025 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2025 Object$_2$\001
+4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2550 1. alloc\001
+4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1425 Thread$_2$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1425 CPU$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2025 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2025 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 4650 1725 Cache\001
+4 2 0 50 -1 0 11 0.0000 2 165 615 2475 2925 Memory\001
+4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2550 4. modify\001
+4 2 0 50 -1 2 11 0.0000 2 135 525 4200 2475 3. alloc\001
+4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2475 2. modify\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedPassiveFalseSharing.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedPassiveFalseSharing.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/figures/AllocInducedPassiveFalseSharing.fig	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -1,58 +1,58 @@
-#FIG 3.2  Produced by xfig version 3.2.5
+#FIG 3.2  Produced by xfig version 3.2.7b
 Landscape
 Center
 Inches
-Letter  
+Letter
 100.00
 Single
 -2
 1200 2
-5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 3750.000 4062.500 2550 975 3750 750 4950 975
+5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 4050.000 4662.500 2850 1575 4050 1350 5250 1575
 	1 1 1.00 45.00 90.00
-6 2250 2400 4050 2700
+6 2550 3000 4350 3300
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2250 2400 3150 2400 3150 2700 2250 2700 2250 2400
+	 2550 3000 3450 3000 3450 3300 2550 3300 2550 3000
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3150 2400 4050 2400 4050 2700 3150 2700 3150 2400
-4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2625 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3600 2625 Object$_2$\001
+	 3450 3000 4350 3000 4350 3300 3450 3300 3450 3000
+4 1 0 50 -1 0 11 0.0000 2 165 825 3000 3225 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 3900 3225 Object$_2$\001
 -6
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1050 1500 1950 1500 1950 1800 1050 1800 1050 1500
+	 1350 2100 2250 2100 2250 2400 1350 2400 1350 2100
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 900 900 3000 900 3000 1950 900 1950 900 900
+	 1200 1500 3300 1500 3300 2550 1200 2550 1200 1500
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 1950 1950 2700 2400
+	 2250 2550 3000 3000
 2 2 0 1 0 7 60 -1 -1 0.000 0 0 -1 0 0 5
-	 1950 1500 2850 1500 2850 1800 1950 1800 1950 1500
+	 2250 2100 3150 2100 3150 2400 2250 2400 2250 2100
 2 2 0 1 0 7 60 -1 -1 0.000 0 0 -1 0 0 5
-	 3450 1500 4350 1500 4350 1800 3450 1800 3450 1500
+	 3750 2100 4650 2100 4650 2400 3750 2400 3750 2100
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4350 1500 5250 1500 5250 1800 4350 1800 4350 1500
+	 4650 2100 5550 2100 5550 2400 4650 2400 4650 2100
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3300 900 5400 900 5400 1950 3300 1950 3300 900
+	 3600 1500 5700 1500 5700 2550 3600 2550 3600 1500
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 4350 1950 3600 2400
+	 4650 2550 3900 3000
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 5250 1200 5250 975 4650 975 4650 1200 5250 1200
+	 3225 1800 2475 1800 2475 1575 3225 1575 3225 1800
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 2850 1200 2850 975 2250 975 2250 1200 2850 1200
-4 1 0 50 -1 0 11 0.0000 2 195 735 2550 1125 Task$_1$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 975 1125 CPU$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 1950 1425 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 1500 1725 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 2400 1725 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 4950 1125 Task$_2$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 3375 1125 CPU$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3900 1725 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 4800 1725 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 4350 1425 Cache\001
-4 0 0 50 -1 2 11 0.0000 2 180 720 4050 2250 6. modify\001
-4 2 0 50 -1 0 11 0.0000 2 180 630 2175 2625 Memory\001
-4 2 0 50 -1 2 11 0.0000 2 135 585 2250 2250 1. alloc\001
-4 0 0 50 -1 2 11 0.0000 2 180 720 2400 2175 3. modify\001
-4 2 0 50 -1 2 11 0.0000 2 135 585 3675 2325 5. alloc\001
-4 2 0 50 -1 2 11 0.0000 2 135 780 3975 2175 4. dealloc\001
-4 1 0 50 -1 2 11 0.0000 2 195 2400 3750 675 2.  pass Object$_2$ reference\001
+	 5625 1800 4875 1800 4875 1575 5625 1575 5625 1800
+4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1725 Thread$_1$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1725 CPU$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 2250 2025 Cache\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2325 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2325 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1725 Thread$_2$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1725 CPU$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2325 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2325 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 4650 2025 Cache\001
+4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2850 6. modify\001
+4 2 0 50 -1 0 11 0.0000 2 165 615 2475 3225 Memory\001
+4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2850 1. alloc\001
+4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2775 3. modify\001
+4 2 0 50 -1 2 11 0.0000 2 135 525 3975 2925 5. alloc\001
+4 2 0 50 -1 2 11 0.0000 2 135 705 4275 2775 4. dealloc\001
+4 1 0 50 -1 2 11 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingA.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingA.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2325 1500 2325 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2625 1500 3225 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 1200 3750 1200 3750 1500 3000 1500 3000 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 1200 2850 1200 2850 1500 2100 1500 2100 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 2100 2850 2100 2850 2400 2100 2400 2100 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2850 2100 3600 2100 3600 2400 2850 2400 2850 2100
-4 2 0 50 -1 0 11 0.0000 2 150 405 2250 1875 alloc\001
-4 0 0 50 -1 0 11 0.0000 2 150 405 3075 1875 alloc\001
-4 2 0 50 -1 0 11 0.0000 2 150 570 1950 2325 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 210 855 2475 1425 Task$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 210 855 3375 1425 Task$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 210 1005 2475 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 210 1005 3225 2325 Object$_2$\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingB.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingB.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 2962.500 1912.500 2475 1200 2925 1050 3450 1200
-	1 1 1.00 45.00 90.00
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 1200 2850 1200 2850 1500 2100 1500 2100 1200
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3300 1500 3300 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2550 1500 2550 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 1200 3750 1200 3750 1500 3000 1500 3000 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2175 2100 2925 2100 2925 2400 2175 2400 2175 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2925 2100 3675 2100 3675 2400 2925 2400 2925 2100
-4 1 0 50 -1 0 11 0.0000 2 210 855 2475 1425 Task$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 210 855 3375 1425 Task$_2$\001
-4 2 0 50 -1 0 11 0.0000 2 195 585 2475 1875 modify\001
-4 0 0 50 -1 0 11 0.0000 2 195 585 3375 1875 modify\001
-4 2 0 50 -1 0 11 0.0000 2 150 570 2025 2325 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 210 1005 2550 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 210 1005 3300 2325 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 210 1440 3000 975 pass Object$_2$\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingC.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingC.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 1200 2850 1200 2850 1500 2100 1500 2100 1200
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3300 1500 3300 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2550 1500 2550 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 1200 3750 1200 3750 1500 3000 1500 3000 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2175 2100 2925 2100 2925 2400 2175 2400 2175 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2925 2100 3675 2100 3675 2400 2925 2400 2925 2100
-4 1 0 50 -1 0 11 0.0000 2 195 735 2475 1425 Task$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 3375 1425 Task$_2$\001
-4 2 0 50 -1 0 11 0.0000 2 180 510 2475 1875 modify\001
-4 0 0 50 -1 0 11 0.0000 2 135 540 3375 1875 dealloc\001
-4 2 0 50 -1 0 11 0.0000 2 135 480 2025 2325 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 2550 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3300 2325 Object$_2$\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingD.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/FalseSharingD.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2325 1500 2325 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2625 1500 3225 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 1200 3750 1200 3750 1500 3000 1500 3000 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 1200 2850 1200 2850 1500 2100 1500 2100 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 2100 2850 2100 2850 2400 2100 2400 2100 2100
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2850 2100 3600 2100 3600 2400 2850 2400 2850 2100
-4 2 0 50 -1 0 11 0.0000 2 180 510 2250 1875 modify\001
-4 0 0 50 -1 0 11 0.0000 2 135 360 3075 1875 alloc\001
-4 2 0 50 -1 0 11 0.0000 2 135 480 1950 2325 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 2475 1425 Task$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 3375 1425 Task$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 2475 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3225 2325 Object$_2$\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/PerThreadGlobalHeap2.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/PerThreadGlobalHeap2.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,109 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-6 2250 3975 2775 4200
-4 2 0 50 -1 0 11 0.0000 2 150 435 2625 4125 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 2650 4175 2\001
--6
-6 2175 3075 2775 3300
-4 2 0 50 -1 0 11 0.0000 2 195 465 2625 3225 Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 2650 3275 2\001
--6
-6 1200 3000 1950 4200
-6 1350 3975 1875 4200
-4 2 0 50 -1 0 11 0.0000 2 150 435 1725 4125 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 1750 4175 1\001
--6
-6 1275 3075 1875 3300
-4 2 0 50 -1 0 11 0.0000 2 195 465 1725 3225 Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 1750 3275 1\001
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1425 3300 1425 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1725 3900 1725 3300
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 3000 1950 3000 1950 3300 1200 3300 1200 3000
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 3900 1950 3900 1950 4200 1200 4200 1200 3900
-4 1 0 50 -1 0 11 1.5708 2 150 405 1350 3600 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 150 615 1800 3600 dealloc\001
--6
-6 3075 3075 3675 3300
-4 2 0 50 -1 0 11 0.0000 2 195 465 3525 3225 Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 3550 3275 3\001
--6
-6 3150 3975 3675 4200
-4 2 0 50 -1 0 11 0.0000 2 150 435 3525 4125 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 3550 4175 3\001
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1875 2400 1425 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1725 3000 2175 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2325 2400 2325 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2625 3000 2625 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3075 2400 3525 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3225 3000 2775 2400
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1725 1200 3225 1200 3225 1500 1725 1500 1725 1200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1725 2100 3225 2100 3225 2400 1725 2400 1725 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2325 1500 2325 2100
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2625 2100 2625 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2325 3300 2325 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2625 3900 2625 3300
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 3000 2850 3000 2850 3300 2100 3300 2100 3000
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2100 3900 2850 3900 2850 4200 2100 4200 2100 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3225 3300 3225 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3525 3900 3525 3300
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 3900 3750 3900 3750 4200 3000 4200 3000 3900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3000 3000 3750 3000 3750 3300 3000 3300 3000 3000
-4 1 0 50 -1 0 11 0.0000 2 195 1545 2475 1425 Operating System\001
-4 1 0 50 -1 0 11 0.0000 2 195 1035 2475 2325 Gobal Heap\001
-4 1 0 50 -1 0 11 1.5708 2 150 405 2250 1800 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 150 615 2700 1800 dealloc\001
-4 1 0 50 -1 0 11 0.8727 2 150 405 1575 2700 alloc\001
-4 1 0 50 -1 0 11 0.8727 2 150 615 1875 2700 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 150 405 2250 2700 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 150 615 2700 2700 dealloc\001
-4 1 0 50 -1 0 11 5.4105 2 150 615 3450 2775 dealloc\001
-4 1 0 50 -1 0 11 5.4105 2 150 405 3150 2775 alloc\001
-4 1 0 50 -1 0 11 1.5708 2 150 405 2250 3600 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 150 615 2700 3600 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 150 405 3150 3600 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 150 615 3600 3600 dealloc\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/PrivatePublicHeaps2.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/PrivatePublicHeaps2.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,100 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-6 1200 1200 2400 1500
-6 1200 1275 2400 1500
-4 2 0 50 -1 0 11 0.0000 2 180 915 2250 1425 Public Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 2275 1475 1\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 1200 2400 1200 2400 1500 1200 1500 1200 1200
--6
-6 3900 1200 5100 1500
-6 3900 1275 5100 1500
-4 0 0 50 -1 0 9 0.0000 2 105 75 4975 1475 2\001
-4 2 0 50 -1 0 11 0.0000 2 180 915 4950 1425 Public Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3900 1200 5100 1200 5100 1500 3900 1500 3900 1200
--6
-6 1425 2100 2700 2400
-6 1425 2175 2550 2400
-4 2 0 50 -1 0 11 0.0000 2 180 990 2550 2325 Private Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1500 2100 2700 2100 2700 2400 1500 2400 1500 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 2575 2375 1\001
--6
-6 3525 2100 4800 2400
-6 3525 2175 4650 2400
-4 2 0 50 -1 0 11 0.0000 2 180 990 4650 2325 Private Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3600 2100 4800 2100 4800 2400 3600 2400 3600 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 4675 2375 2\001
--6
-6 1200 3000 2400 3300
-6 1575 3075 2100 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 1950 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 1975 3275 1\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 3000 2400 3000 2400 3300 1200 3300 1200 3000
--6
-6 3900 3000 5100 3300
-6 4275 3075 4800 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 4650 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 4675 3275 2\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3900 3000 5100 3000 5100 3300 3900 3300 3900 3000
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1275 1500 1275 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1950 3000 1950 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1575 2400 1575 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 5025 1500 5025 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 4350 2400 4350 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 4350 2100 4350 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 4650 3000 4650 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3900 3000 2400 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2400 3000 3900 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1950 2100 1950 1500
-4 1 0 50 -1 0 11 0.0000 2 180 540 3150 1425 locking\001
-4 1 0 50 -1 0 11 1.5708 2 135 540 1875 1800 dealloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 540 4425 1800 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 540 1875 2700 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 1500 2700 alloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 1200 2250 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 540 4725 2700 dealloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 4425 2700 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 5100 2250 alloc\001
-4 1 0 50 -1 0 11 5.4803 2 135 540 3375 2775 dealloc\001
-4 1 0 50 -1 0 11 0.8029 2 180 780 2700 2625 ownership\001
-4 1 0 50 -1 0 11 0.8029 2 135 540 2925 2775 dealloc\001
-4 1 0 50 -1 0 11 5.4803 2 180 780 3600 2625 ownership\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/ProgramFalseSharing.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/ProgramFalseSharing.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/figures/ProgramFalseSharing.fig	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -1,7 +1,7 @@
-#FIG 3.2  Produced by xfig version 3.2.5
+#FIG 3.2  Produced by xfig version 3.2.7b
 Landscape
 Center
 Inches
-Letter  
+Letter
 100.00
 Single
@@ -15,6 +15,6 @@
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
 	 3450 3000 4350 3000 4350 3300 3450 3300 3450 3000
-4 1 0 50 -1 0 11 0.0000 2 195 870 3000 3225 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 3900 3225 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 3000 3225 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 3900 3225 Object$_2$\001
 -6
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
@@ -37,20 +37,20 @@
 	 4650 2550 3900 3000
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 3150 1800 3150 1575 2550 1575 2550 1800 3150 1800
+	 5625 1800 5625 1575 4875 1575 4875 1800 5625 1800
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 5550 1800 5550 1575 4950 1575 4950 1800 5550 1800
-4 1 0 50 -1 0 11 0.0000 2 195 735 2850 1725 Task$_1$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 1275 1725 CPU$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 2250 2025 Cache\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 1800 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 2700 2325 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 735 5250 1725 Task$_2$\001
-4 0 0 50 -1 0 11 0.0000 2 195 720 3675 1725 CPU$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 4200 2325 Object$_1$\001
-4 1 0 50 -1 0 11 0.0000 2 195 870 5100 2325 Object$_2$\001
-4 1 0 50 -1 0 11 0.0000 2 135 480 4650 2025 Cache\001
-4 2 0 50 -1 0 11 0.0000 2 180 630 2475 3225 Memory\001
-4 2 0 50 -1 2 11 0.0000 2 135 585 2550 2850 1. alloc\001
+	 3225 1800 3225 1575 2475 1575 2475 1800 3225 1800
+4 1 0 50 -1 0 11 0.0000 2 165 855 2850 1725 Thread$_1$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 1275 1725 CPU$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 2250 2025 Cache\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 1800 2325 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 2700 2325 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 855 5250 1725 Thread$_2$\001
+4 0 0 50 -1 0 11 0.0000 2 165 720 3675 1725 CPU$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 4200 2325 Object$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 825 5100 2325 Object$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 135 435 4650 2025 Cache\001
+4 2 0 50 -1 0 11 0.0000 2 165 615 2475 3225 Memory\001
+4 2 0 50 -1 2 11 0.0000 2 135 525 2550 2850 1. alloc\001
 4 0 0 50 -1 2 11 0.0000 2 180 720 2700 2775 3. modify\001
 4 0 0 50 -1 2 11 0.0000 2 180 720 4350 2850 4. modify\001
-4 1 0 50 -1 2 11 0.0000 2 195 2400 4050 1275 2.  pass Object$_2$ reference\001
+4 1 0 50 -1 2 11 0.0000 2 165 2220 4050 1275 2.  pass Object$_2$ reference\001
Index: doc/theses/mubeen_zulfiqar_MMath/figures/RemoteFreeList.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/figures/RemoteFreeList.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ 	(revision )
@@ -1,88 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-6 1125 1200 2400 1500
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 1200 2400 1200 2400 1500 1200 1500 1200 1200
-4 2 0 50 -1 0 11 0.0000 2 180 990 2250 1425 Private Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 2275 1475 1\001
--6
-6 3825 1200 5100 1500
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3900 1200 5100 1200 5100 1500 3900 1500 3900 1200
-4 0 0 50 -1 0 9 0.0000 2 105 75 4975 1475 2\001
-4 2 0 50 -1 0 11 0.0000 2 180 990 4950 1425 Private Heap\001
--6
-6 1725 2100 3000 2400
-6 1725 2175 2850 2325
-4 2 0 50 -1 0 11 0.0000 2 135 975 2850 2325 Remote Free\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1800 2100 3000 2100 3000 2400 1800 2400 1800 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 2875 2375 1\001
--6
-6 3225 2100 4500 2400
-6 3225 2175 4350 2325
-4 2 0 50 -1 0 11 0.0000 2 135 975 4350 2325 Remote Free\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3300 2100 4500 2100 4500 2400 3300 2400 3300 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 4375 2375 2\001
--6
-6 1200 3000 2400 3300
-6 1575 3075 2100 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 1950 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 1975 3275 1\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 3000 2400 3000 2400 3300 1200 3300 1200 3000
--6
-6 3900 3000 5100 3300
-6 4275 3075 4800 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 4650 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 4675 3275 2\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3900 3000 5100 3000 5100 3300 3900 3300 3900 3000
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 3900 3000 3000 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1275 1500 1275 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 1575 3000 1575 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 4725 3000 4725 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 5025 1500 5025 3000
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2400 3000 3300 2400
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 2100 2100 2100 1500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 45.00 90.00
-	 4200 2100 4200 1500
-4 1 0 50 -1 0 11 1.5708 2 135 540 1500 2250 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 1200 2250 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 540 4800 2250 dealloc\001
-4 1 0 50 -1 0 11 0.0000 2 180 540 3150 2025 locking\001
-4 1 0 50 -1 0 11 0.5934 2 135 540 2850 2925 dealloc\001
-4 1 0 50 -1 0 11 5.6898 2 135 540 3450 2925 dealloc\001
-4 1 0 50 -1 0 11 0.5934 2 180 780 2700 2725 ownership\001
-4 1 0 50 -1 0 11 5.6898 2 180 780 3600 2725 ownership\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 2025 1800 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 5100 2250 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 4275 1800 alloc\001
Index: doc/theses/mubeen_zulfiqar_MMath/pictures/PrivatePublicHeaps.fig
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/pictures/PrivatePublicHeaps.fig	(revision 4f7ad4b79278b9346390559ce6de4adf4cbb0e8f)
+++ doc/theses/mubeen_zulfiqar_MMath/pictures/PrivatePublicHeaps.fig	(revision 16d397ad093e8d4fb6f1f865130ffe79f992d4af)
@@ -1,117 +1,91 @@
-#FIG 3.2  Produced by xfig version 3.2.5
+#FIG 3.2  Produced by xfig version 3.2.7b
 Landscape
 Center
 Inches
-Letter  
+Letter
 100.00
 Single
 -2
 1200 2
-6 1200 1200 2400 1500
-6 1200 1275 2400 1500
-4 2 0 50 -1 0 11 0.0000 2 180 915 2250 1425 Public Heap\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 2275 1475 1\001
--6
+6 2550 1200 3750 1500
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 1200 2400 1200 2400 1500 1200 1500 1200 1200
--6
-6 3900 1200 5100 1500
-6 3900 1275 5100 1500
-4 0 0 50 -1 0 9 0.0000 2 105 75 4975 1475 2\001
-4 2 0 50 -1 0 11 0.0000 2 180 915 4950 1425 Public Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3900 1200 5100 1200 5100 1500 3900 1500 3900 1200
--6
-6 1425 2100 2700 2400
-6 1425 2175 2550 2400
-4 2 0 50 -1 0 11 0.0000 2 180 990 2550 2325 Private Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1500 2100 2700 2100 2700 2400 1500 2400 1500 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 2575 2375 1\001
--6
-6 3525 2100 4800 2400
-6 3525 2175 4650 2400
-4 2 0 50 -1 0 11 0.0000 2 180 990 4650 2325 Private Heap\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3600 2100 4800 2100 4800 2400 3600 2400 3600 2100
-4 0 0 50 -1 0 9 0.0000 2 105 75 4675 2375 2\001
--6
-6 2550 600 3750 900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2550 600 3750 600 3750 900 2550 900 2550 600
-4 1 0 50 -1 0 11 0.0000 2 180 945 3150 825 Global Heap\001
--6
-6 1575 3075 2100 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 1950 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 1975 3275 1\001
--6
-6 4275 3075 4800 3300
-4 2 0 50 -1 0 11 0.0000 2 135 375 4650 3225 Task\001
-4 0 0 50 -1 0 9 0.0000 2 105 75 4675 3275 2\001
+	 2550 1200 3750 1200 3750 1500 2550 1500 2550 1200
+4 1 0 50 -1 0 11 0.0000 2 180 900 3150 1425 Global Heap\001
 -6
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 1275 1500 1275 3000
+	 1275 2100 1275 3600
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 5025 1500 5025 3000
+	 5025 2100 5025 3600
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 4650 3000 4650 2400
+	 4650 3600 4650 3000
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 3975 3075 2400 1500
+	 3975 3675 2400 2100
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 2325 3075 3900 1500
+	 2325 3675 3900 2100
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
 	1 1 1.00 45.00 90.00
 	1 1 1.00 45.00 90.00
-	 1950 1200 2550 900
+	 1950 1800 2550 1500
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
 	1 1 1.00 45.00 90.00
 	1 1 1.00 45.00 90.00
-	 3750 900 4350 1200
+	 3750 1500 4350 1800
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
 	1 1 1.00 45.00 90.00
 	1 1 1.00 45.00 90.00
-	 2550 2100 2550 900
+	 2550 2700 2550 1500
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
 	1 1 1.00 45.00 90.00
 	1 1 1.00 45.00 90.00
-	 3750 2100 3750 900
+	 3750 2700 3750 1500
 2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 4650 2100 4650 1500
+	 4650 2700 4650 2100
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 1650 2400 1650 3000
+	 1650 3000 1650 3600
 2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 1650 2100 1650 1500
+	 1650 2700 1650 2100
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 2025 3000 2025 2400
+	 2025 3600 2025 3000
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 45.00 90.00
-	 4275 2400 4275 3000
+	 4275 3000 4275 3600
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 2325 3300 2325 3000 1200 3000 1200 3300 2325 3300
+	 5100 3900 5100 3600 3975 3600 3975 3900 5100 3900
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
-	 5100 3300 5100 3000 3975 3000 3975 3300 5100 3300
-4 1 0 50 -1 0 11 0.0000 2 180 540 3150 1425 locking\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 1200 2250 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 540 4725 2700 dealloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 5100 2250 alloc\001
-4 1 0 50 -1 0 11 5.4803 2 135 540 3375 2775 dealloc\001
-4 1 0 50 -1 0 11 0.8029 2 180 780 2700 2625 ownership\001
-4 1 0 50 -1 0 11 0.8029 2 135 540 2925 2775 dealloc\001
-4 1 0 50 -1 0 11 5.4803 2 180 780 3600 2625 ownership\001
-4 1 0 50 -1 0 11 4.7124 2 135 540 4725 1800 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 540 1575 2700 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 540 1575 1800 dealloc\001
-4 1 0 50 -1 0 11 1.5708 2 135 360 1950 2700 alloc\001
-4 1 0 50 -1 0 11 4.7124 2 135 360 4350 2700 alloc\001
+	 2325 3900 2325 3600 1200 3600 1200 3900 2325 3900
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1500 2700 2700 2700 2700 3000 1500 3000 1500 2700
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 1800 2400 1800 2400 2100 1200 2100 1200 1800
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3900 1800 5100 1800 5100 2100 3900 2100 3900 1800
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 2700 4800 2700 4800 3000 3600 3000 3600 2700
+4 1 0 50 -1 0 11 0.0000 2 180 525 3150 2025 locking\001
+4 1 0 50 -1 0 11 1.5708 2 120 330 1200 2850 alloc\001
+4 1 0 50 -1 0 11 4.7124 2 135 495 4725 3300 dealloc\001
+4 1 0 50 -1 0 11 4.7124 2 120 330 5100 2850 alloc\001
+4 1 0 50 -1 0 11 5.4803 2 135 495 3375 3375 dealloc\001
+4 1 0 50 -1 0 11 0.8029 2 180 750 2700 3225 ownership\001
+4 1 0 50 -1 0 11 0.8029 2 135 495 2925 3375 dealloc\001
+4 1 0 50 -1 0 11 5.4803 2 180 750 3600 3225 ownership\001
+4 1 0 50 -1 0 11 4.7124 2 135 495 4725 2400 dealloc\001
+4 1 0 50 -1 0 11 1.5708 2 135 495 1575 3300 dealloc\001
+4 1 0 50 -1 0 11 1.5708 2 135 495 1575 2400 dealloc\001
+4 1 0 50 -1 0 11 1.5708 2 120 330 1950 3300 alloc\001
+4 1 0 50 -1 0 11 4.7124 2 120 330 4350 3300 alloc\001
+4 1 0 50 -1 0 11 0.0000 2 165 855 1800 3825 Thread$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 165 855 4500 3825 Thread$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 180 1230 1800 2025 Public Heap$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 180 1275 2100 2925 Private Heap$_1$\001
+4 1 0 50 -1 0 11 0.0000 2 180 1230 4500 2025 Public Heap$_2$\001
+4 1 0 50 -1 0 11 0.0000 2 180 1275 4200 2925 Private Heap$_2$\001
