Update documentation
This commit is contained in:
		
							parent
							
								
									ac1ae8e69d
								
							
						
					
					
						commit
						903244d22b
					
				| @ -6,7 +6,7 @@ This file contains an exhaustive list of events supported by the emulator. | ||||
| - All events refer to the current thread. | ||||
| - Descriptions must be kept short. | ||||
| 
 | ||||
| ``` | ||||
| ```txt | ||||
| ********************************************************** | ||||
| Please keep this list synchronized with the emulator code! | ||||
| ********************************************************** | ||||
| @ -141,27 +141,27 @@ KCI	Is back in the CPU due to a context switch | ||||
| 6TC	Task creation ends | ||||
| 6Tx	Task execute | ||||
| 6Te	Task end | ||||
| 6Tb	Task block | ||||
| 6Tu	Task unblock | ||||
| 6Tp	Task pause | ||||
| 6Tr	Task resume | ||||
| 
 | ||||
| 6Yc	Task type create (punctual event) | ||||
| 
 | ||||
| 6S[	Enters the scheduler serving mode | ||||
| 6S]	Ends the scheduler serving mode | ||||
| 6Sa	Begins to submit a ready task via addReadyTask() | ||||
| 6SA	Ends submitting a ready task via addReadyTask() | ||||
| 6Sr	Receives a task from another thread (punctual event) | ||||
| 6Ss	Sends a task to another thread (punctual event) | ||||
| 6S@	Self-assigns itself a task (punctual event) | ||||
| 6Sh	Enters the hungry state, waiting for a task | ||||
| 6Sf	Is no longer hungry | ||||
| 6S[	Enters the scheduler server mode | ||||
| 6S]	Ends the scheduler server mode | ||||
| 6Su	Begins a ready task submission via addReadyTask() | ||||
| 6SU	Ends a ready task submission via addReadyTask() | ||||
| 
 | ||||
| 6W[	Begins the worker body loop, looking for tasks | ||||
| 6W]	Ends the worker body loop | ||||
| 6Wt	Begins handling a task via handleTask() | ||||
| 6WT	Ends handling a task via handleTask() | ||||
| 
 | ||||
| 6U[	Starts to submit a task via submitTask() | ||||
| 6U]	Ends the submission of a task via submitTask() | ||||
| 
 | ||||
| 6Ha	Attaches to Nanos6 as external thread | ||||
| 6HA	Detaches from Nanos6 as external thread | ||||
| 
 | ||||
| 6F[	Begins to spawn a function via spawnFunction() | ||||
| 6F]	Ends spawning a function | ||||
| 
 | ||||
| @ -170,12 +170,21 @@ KCI	Is back in the CPU due to a context switch | ||||
| 6Du	Begins the unregistration of a task's accesses | ||||
| 6DU	Ends the unregistration of a task's accesses | ||||
| 
 | ||||
| 6Bu	Begins to unblock a task | ||||
| 6BU	Ends unblocking a task | ||||
| 6Bb	Begins to block the current task via blockCurrentTask() | ||||
| 6BB	Ends blocking the current task via blockCurrentTask() | ||||
| 6Bu	Begins to unblock a task | ||||
| 6BU	Ends unblocking a task | ||||
| 6Bw	Enters taskWait() | ||||
| 6BW	Exits taskWait() | ||||
| 6Bf	Enters taskFor() | ||||
| 6BF	Exits taskFor() | ||||
| 
 | ||||
| 6He	Sets itself as external thread | ||||
| 6HE	Unsets itself as external thread | ||||
| 6Hw	Sets itself as worker thread | ||||
| 6HW	Unsets itself as worker thread | ||||
| 6Hl	Sets itself as leader thread | ||||
| 6HL	Unsets itself as leader thread | ||||
| 6Hm	Sets itself as main thread | ||||
| 6HM	Unsets itself as main thread | ||||
| ``` | ||||
|  | ||||
| @ -89,59 +89,56 @@ presents that section as the current state of the execution, in this | ||||
| case the section $`S_3`$. | ||||
| 
 | ||||
| Additionally, the runtime sections $`S_i`$ are grouped together in | ||||
| subsystems, which form a closely related group of functions. The | ||||
| complete list of subsystems and sections is shown below. | ||||
| subsystems, which form a closely related group of functions. When there is no | ||||
| instrumented section in the thread stack, the state is set to **No subsystem**. | ||||
| The complete list of subsystems and sections is shown below. | ||||
| 
 | ||||
| When there is no instrumented section in the thread stack, the state is | ||||
| set to **No subsystem**. | ||||
| - **Task subsystem**: Controls the life cycle of tasks | ||||
| 
 | ||||
| Task subsystem | ||||
| : The **Task** subsystem contains the code that controls the life cycle | ||||
| of tasks. It contains the following sections: | ||||
|     - **Body**: Executing the body of the task (user defined code). | ||||
|      | ||||
|     - **Spawning function**: Spawning a function as task that will be submitted | ||||
|       for later execution. | ||||
|      | ||||
|     - **Creating**: Creating a new task via `nanos6_create_task` | ||||
|      | ||||
|     - **Submitting**: Submitting a recently created task via | ||||
|       `nanos6_submit_task` | ||||
| 
 | ||||
| - **Body**: Executing the body of the task (user defined code). | ||||
| - **Scheduler subsystem**: Queueing and dequeueing ready tasks. | ||||
| 
 | ||||
| - **Spawning function**: Spawning a function as task (it will be | ||||
|   submitted to the scheduler for later execution). | ||||
|     - **Serving tasks**: Inside the scheduler lock, serving tasks | ||||
|     to other threads | ||||
|      | ||||
|     - **Adding ready tasks**: Adding tasks to the scheduler queues, | ||||
|     but outside of the scheduler lock. | ||||
| 
 | ||||
| - **Creating**: Creating a new task, through `nanos6_create_task` | ||||
| 
 | ||||
| - **Submitting**: Submitting a recently created task, through | ||||
| `nanos6_submit_task` | ||||
| - **Worker subsystem**: Actions that relate to worker threads, which | ||||
|   continuously try to execute new tasks. | ||||
| 
 | ||||
| Scheduler subsystem | ||||
| : The **Scheduler** system groups the actions that relate to the queueing | ||||
| and dequeueing of ready tasks. It contains the following sections: | ||||
|     - **Looking for work**: Actively requesting tasks from the scheduler, | ||||
|       registered but not holding the lock. | ||||
|      | ||||
|     - **Handling task**: Processing a recently assigned task. | ||||
| 
 | ||||
| - **Waiting for tasks**: Actively waiting for tasks inside the | ||||
| scheduler subsystem, registered but not holding the scheduler lock | ||||
| - **Dependency subsystem**: Manages the registration of task | ||||
|   dependencies. | ||||
| 
 | ||||
| - **Serving tasks**: Inside the scheduler lock, serving tasks | ||||
| to other threads | ||||
|     - **Registering**: Registering dependencies of a task | ||||
|      | ||||
|     - **Unregistering**: Releasing dependencies of a task because | ||||
|     it has ended | ||||
| 
 | ||||
| - **Adding ready tasks**: Adding tasks to the scheduler queues, | ||||
| but outside of the scheduler lock. | ||||
| - **Blocking subsystem**: Code that stops the thread execution. | ||||
| 
 | ||||
| Dependency subsystem | ||||
| : The **Dependency** system only contains the code that manages the | ||||
| registration of task dependencies. It contains the following sections: | ||||
| 
 | ||||
| - **Registering**: Registering a task's dependencies | ||||
| 
 | ||||
| - **Unregistering**: Releasing a task's dependencies because | ||||
| it has ended | ||||
| 
 | ||||
| Blocking subsystem | ||||
| : The **Blocking** subsystem deals with the code stops the thread | ||||
| execution. It contains the following sections: | ||||
| 
 | ||||
| - **Taskwait**: Task is blocked while inside a taskwait | ||||
| 
 | ||||
| - **Blocking current task**: Task is blocked through the Nanos6 | ||||
| blocking API | ||||
| 
 | ||||
| - **Unblocking remote task**: Unblocking a different task using | ||||
| the Nanos6 blocking API | ||||
| 
 | ||||
| - **Wait For**: Blocking a deadline task, which will be | ||||
| re-enqueued when a certain amount of time has passed | ||||
|     - **Taskwait**: Task is blocked due to a `taskwait` clause | ||||
|      | ||||
|     - **Blocking current task**: Task is blocked through the Nanos6 | ||||
|       blocking API | ||||
|      | ||||
|     - **Unblocking remote task**: Unblocking a different task using the | ||||
|       Nanos6 blocking API | ||||
|      | ||||
|     - **Wait for deadline**: Blocking a deadline task, which will be | ||||
|       re-enqueued when a certain amount of time has passed | ||||
|  | ||||
							
								
								
									
										326
									
								
								doc/fig/palette.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										326
									
								
								doc/fig/palette.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,326 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    width="210mm" | ||||
|    height="297mm" | ||||
|    viewBox="0 0 210 297" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    inkscape:version="1.2 (dc2aedaf03, 2022-05-15)" | ||||
|    sodipodi:docname="palette.svg" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:xlink="http://www.w3.org/1999/xlink" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview7" | ||||
|      pagecolor="#000000" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1.0" | ||||
|      inkscape:showpageshadow="2" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#d1d1d1" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="1.5126683" | ||||
|      inkscape:cx="337.15256" | ||||
|      inkscape:cy="253.85604" | ||||
|      inkscape:window-width="1914" | ||||
|      inkscape:window-height="1025" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="24" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1"> | ||||
|     <inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid8317" | ||||
|        empcolor="#e4ff3f" | ||||
|        empopacity="0.25098039" /> | ||||
|   </sodipodi:namedview> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <rect | ||||
|        style="fill:#54d200;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="task-executing-body" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.9375" | ||||
|        y="7.9375005" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.520691" | ||||
|        y="14.202404" | ||||
|        id="text8213"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan8211" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.520691" | ||||
|          y="14.202404">Task: Executing body</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect8319" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="82.020836" | ||||
|        y="7.9375" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="96.294754" | ||||
|        y="14.544328" | ||||
|        id="text8323"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan8321" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="96.294754" | ||||
|          y="14.544328">Worker: Waiting for work</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#004468;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect8325" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.9375" | ||||
|        y="34.395832" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.520691" | ||||
|        y="40.660736" | ||||
|        id="text8329"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan8327" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.520691" | ||||
|          y="40.660736">Task: Creating</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#8c2e2e;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect8331" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="82.020836" | ||||
|        y="34.395832" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="96.065659" | ||||
|        y="41.002663" | ||||
|        id="text8335"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan8333" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="96.065659" | ||||
|          y="41.002663">Block: Taskwait</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#69b498;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect9063" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.9374995" | ||||
|        y="21.166666" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.277811" | ||||
|        y="27.431568" | ||||
|        id="text9067"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan9065" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.277811" | ||||
|          y="27.431568">Scheduler: Adding ready tasks</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#730dff;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect11247" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.9374995" | ||||
|        y="47.625" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.164124" | ||||
|        y="53.889904" | ||||
|        id="text11251"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan11249" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.164124" | ||||
|          y="53.889904">Dependency: Registering</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#4400ff;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect11253" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.937499" | ||||
|        y="60.854164" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.164124" | ||||
|        y="67.119064" | ||||
|        id="text11257"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan11255" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.164124" | ||||
|          y="67.119064">Dependency: Unregistering</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#816803;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect13437" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="82.020836" | ||||
|        y="60.854168" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="96.179344" | ||||
|        y="67.119072" | ||||
|        id="text13441"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan13439" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="96.179344" | ||||
|          y="67.119072">Scheduler: Serving tasks</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#483737;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect14940" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="82.020836" | ||||
|        y="47.625" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="96.065659" | ||||
|        y="54.231831" | ||||
|        id="text14944"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan14942" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="96.065659" | ||||
|          y="54.231831">Block: Taskfor</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect14946" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="82.020836" | ||||
|        y="21.166666" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="96.294754" | ||||
|        y="27.773493" | ||||
|        id="text14950"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan14948" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="96.294754" | ||||
|          y="27.773493">Worker: handling task</tspan></text> | ||||
|     <rect | ||||
|        style="fill:#a916a7;fill-opacity:1;stroke:none;stroke-width:0.264999" | ||||
|        id="rect18669" | ||||
|        width="10.583334" | ||||
|        height="10.583333" | ||||
|        x="7.9375" | ||||
|        y="74.083336" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="21.520691" | ||||
|        y="80.348236" | ||||
|        id="text18673"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan18671" | ||||
|          style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" | ||||
|          x="21.520691" | ||||
|          y="80.348236">Task: Subtmitting</tspan></text> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8319" | ||||
|        id="use26699" | ||||
|        transform="matrix(12.000002,0,0,0.25000006,-973.66686,97.234375)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect14946" | ||||
|        id="use26701" | ||||
|        transform="matrix(4.9999992,0,0,0.25000008,-375.7083,93.927081)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#task-executing-body" | ||||
|        id="use26703" | ||||
|        transform="matrix(4.2499997,0,0,0.24999998,5.9531158,97.234375)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8325" | ||||
|        id="use26705" | ||||
|        transform="matrix(0.74999999,0,0,0.25000006,60.192697,90.61979)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect18669" | ||||
|        id="use26707" | ||||
|        transform="matrix(0.74999999,0,0,0.24999989,68.130197,80.697925)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8319" | ||||
|        id="use26719" | ||||
|        transform="matrix(11.999997,0,0,0.24999994,-973.66645,101.20313)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect14946" | ||||
|        id="use28173" | ||||
|        transform="matrix(10.999997,0,0,0.25000008,-886.35397,97.895827)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#task-executing-body" | ||||
|        id="use28175" | ||||
|        transform="matrix(10.249999,0,0,0.24999995,-62.838518,101.20313)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8331" | ||||
|        id="use28177" | ||||
|        transform="matrix(4.499999,0,0,0.25000002,-318.82282,94.588537)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8325" | ||||
|        id="use28179" | ||||
|        transform="matrix(1.239965,0,0,0.24999994,13.666176,94.588545)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect18669" | ||||
|        id="use28183" | ||||
|        transform="matrix(0.54985987,0,0,0.25000004,35.515186,84.666658)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect8319" | ||||
|        id="use28237" | ||||
|        transform="matrix(3.8245086,0,0,0.25000012,-259.84411,101.20312)" /> | ||||
|     <use | ||||
|        x="0" | ||||
|        y="0" | ||||
|        xlink:href="#rect13437" | ||||
|        id="use28239" | ||||
|        transform="matrix(11.999996,0,0,0.24999991,-973.66636,80.036465)" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 10 KiB | 
							
								
								
									
										202
									
								
								doc/fig/subsystem-stack.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								doc/fig/subsystem-stack.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,202 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    width="210mm" | ||||
|    height="297mm" | ||||
|    viewBox="0 0 210 297" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    inkscape:version="1.2 (dc2aedaf03, 2022-05-15)" | ||||
|    sodipodi:docname="subsystem-stack.svg" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview7" | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1.0" | ||||
|      inkscape:showpageshadow="2" | ||||
|      inkscape:pageopacity="0.0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#d1d1d1" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="1.5126683" | ||||
|      inkscape:cx="416.15203" | ||||
|      inkscape:cy="244.60087" | ||||
|      inkscape:window-width="1914" | ||||
|      inkscape:window-height="1025" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="24" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1"> | ||||
|     <inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid3825" /> | ||||
|   </sodipodi:namedview> | ||||
|   <defs | ||||
|      id="defs2"> | ||||
|     <marker | ||||
|        style="overflow:visible" | ||||
|        id="Arrow2" | ||||
|        refX="0" | ||||
|        refY="0" | ||||
|        orient="auto-start-reverse" | ||||
|        inkscape:stockid="Arrow2" | ||||
|        markerWidth="7.6999998" | ||||
|        markerHeight="5.5999999" | ||||
|        viewBox="0 0 7.7 5.6" | ||||
|        inkscape:isstock="true" | ||||
|        inkscape:collect="always" | ||||
|        preserveAspectRatio="xMidYMid"> | ||||
|       <path | ||||
|          transform="scale(0.7)" | ||||
|          d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z" | ||||
|          style="fill:context-stroke;fill-rule:evenodd;stroke:none" | ||||
|          id="arrow2L" /> | ||||
|     </marker> | ||||
|   </defs> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <rect | ||||
|        style="fill:#eee8d5;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3879" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="22.489584" /> | ||||
|     <rect | ||||
|        style="fill:#aaeeff;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3881" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="30.427084" /> | ||||
|     <rect | ||||
|        style="fill:#eee8d5;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3883" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="38.364582" /> | ||||
|     <rect | ||||
|        style="fill:#ffaaaa;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3885" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="46.302082" /> | ||||
|     <rect | ||||
|        style="fill:#deaa87;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3887" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="54.239582" /> | ||||
|     <rect | ||||
|        style="fill:#eee8d5;stroke:#000000;stroke-width:0.2" | ||||
|        id="rect3889" | ||||
|        width="58.208332" | ||||
|        height="7.9375" | ||||
|        x="21.166666" | ||||
|        y="62.177082" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="34.193466" | ||||
|        y="35.369072" | ||||
|        id="text3645"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3643" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="34.193466" | ||||
|          y="35.369072">Creating new task</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="32.009281" | ||||
|        y="43.306568" | ||||
|        id="text3649"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3647" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="32.009281" | ||||
|          y="43.306568">Unknown (app code)</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="33.635365" | ||||
|        y="51.244068" | ||||
|        id="text3653"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3651" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="33.635365" | ||||
|          y="51.244068">Running task Body</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="39.037262" | ||||
|        y="59.181568" | ||||
|        id="text3657"><tspan | ||||
|          sodipodi:role="line" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="39.037262" | ||||
|          y="59.181568" | ||||
|          id="tspan3659">Worker Body</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="28.103415" | ||||
|        y="27.431572" | ||||
|        id="text3715"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3713" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="28.103415" | ||||
|          y="27.431572">Unknown (memory alloc)</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="36.400909" | ||||
|        y="67.460991" | ||||
|        id="text3893"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3891" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="36.400909" | ||||
|          y="67.460991">Other frames ...</tspan></text> | ||||
|     <path | ||||
|        style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)" | ||||
|        d="m 79.747761,34.198069 c 9.27107,-0.479269 18.184197,3.203946 18.339362,26.014504" | ||||
|        id="path4008" | ||||
|        sodipodi:nodetypes="cc" /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="84.488319" | ||||
|        y="67.429054" | ||||
|        id="text4012"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan4010" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="84.488319" | ||||
|          y="67.429054">Subsystem=Creating new task</tspan></text> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583" | ||||
|        x="38.870174" | ||||
|        y="75.927666" | ||||
|        id="text4234"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan4232" | ||||
|          style="stroke-width:0.264583" | ||||
|          x="38.870174" | ||||
|          y="75.927666">Thread stack</tspan></text> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 6.5 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user