diff --git a/course/04-PIO.md b/course/04-PIO.md new file mode 100644 index 0000000000000000000000000000000000000000..7020ad7601c685a5425dc6dffe43785a70160f33 --- /dev/null +++ b/course/04-PIO.md @@ -0,0 +1,238 @@ +--- +author: Florent Gluck - Florent.Gluck@hesge.ch + +title: Programmed Input/Output (PIO) + +date: \vspace{.5cm} \footnotesize \today + +pandoc-latex-fontsize: + - classes: [tiny] + size: tiny + - classes: [verysmall] + size: scriptsize + - classes: [small] + size: footnotesize + - classes: [huge, important] + size: huge +--- + +[//]: # ---------------------------------------------------------------- +## Devices + +::: incremental + +- To be used, devices must be controlled/programmed +- Devices are controlled by a special piece of code: a **device driver** +- Each device is controlled differently: each requires specific controlling code! +- How to program a device is described in its datasheet/manual +- Each device is controlled through specific device **registers** +- How to read/write to these specific device registers? + +::: + +## Device addressing + +- Devices are programmed using dedicated registers +- Each device has a different set of registers + - usually command, data, status, etc. + - each register has a specific access type (read, write, both) + +- **\textcolor{myred}{Device registers can be accessed in two different ways: MMIO or PMIO}** + +- Whether a device is accessed in MMIO or PMIO depends on the system + - the **only** way to know is by reading the system's documentation! + +[//]: # ---------------------------------------------------------------- +## Memory-Mapped I/O devices (MMIO) + +\small + +- Device registers are **mapped** into the CPU **physical address space** +- **RAM and devices registers share the same address space!** +- Called **MMIO**: Memory-Mapped Input/Output +- Read/write from/to these devices happen exactly like memory (RAM) +- All CPU instructions dealing with memory operands can interact with these devices + - \footnotesize e.g. `mov` instruction (x86) + ```{.verysmall .assembler} + mov al,[42] ; reads 32-bits at MMIO address 42 + ; and stores it into al register + ``` + ```{.verysmall .assembler} + mov ebx,42 ; store 42 into ebx register + mov byte[ebx],17 ; writes 8-bits value 17 + ; to MMIO address 42 + ``` + +[//]: # ---------------------------------------------------------------- +## Port-Mapped I/O devices (PMIO) + +- Device registers are **mapped** into a **specific** memory space, **distinct** from the CPU physical address space +- Require **specific** CPU instructions to access these devices + - e.g. `in` and `out` instructions (x86) + ```{.verysmall .assembler} + in al,42 ; reads 8-bits at PMIO address 42 + ; and stores it into al register + ``` + ```{.verysmall .assembler} + mov al,17 ; writes 8-bits value 17 + out 42,al ; to PMIO address 42 + ``` + +[//]: # ---------------------------------------------------------------- +## Device address spaces + +\centering +{ width=100% } + +\vfill + +:::::: {.columns} +::: {.column width="50%"} + +\footnotesize + +- MMIO address space, accessed using regular memory instructions (`mov`) + +::: +::: {.column width="50%"} + +\footnotesize + +- Distinct memory space, **only** accessed using specific machine instructions (`in`, `out`) + +::: +:::::: + +[//]: # ---------------------------------------------------------------- +## Accessing devices + +- Devices using MMIO registers can be programmed in C using regular memory operations, e.g.: + \vspace{0.2cm} + ```{.c .verysmall} + uint32_t *vbe_fb = 0xFC000000; + // red (0xFF), green (0x40), blue (0x80) + *vbe_fb = 0x00FF4080; + ``` +- Devices using PMIO registers cannot be programmed in C directly, they require special assembly instructions +- PMIO addresses are often called "ports" + +[//]: # ---------------------------------------------------------------- +## Assembly code to access PMIO devices + +- `outb` instruction writes 1 byte onto the specified port: + ```{.assembler .verysmall} + ; void outb(uint16_t port, uint8_t data) + outb: + mov dx,word [esp+4] ; port into dx (2 bytes) + mov al,byte [esp+8] ; data into al (1 byte) + out dx,al ; write data to port + ret + ``` + +- `inb` instruction reads 1 byte from the specified port: + ```{.assembler .verysmall} + ; uint8_t inb(uint16_t port) + inb: + mov dx,word [esp+4] ; port into dx (2 bytes) + in al,dx ; read port into al (1 byte) + ret + ``` + +[//]: # ---------------------------------------------------------------- +## Accessing PMIO devices in C + +- Writing to PMIO devices using the previously implemented `outb` and `inb` functions is easy, e.g. + \vspace{0.2cm} + ```{.c .verysmall} + void write_sector(int idx, void *buf) { + while((inb(0x1F7) & 0xC0) != 0x40); + outb(0x1F2, 1); + outb(0x1F3, idx & 0xFF); + outb(0x1F4, (idx >> 8) & 0xFF); + outb(0x1F5, (idx >> 16) & 0xFF); + outb(0x1F6, ((idx >> 24) & 0x0F) | 0xE0); + outb(0x1F7, 0x30); + while((inb(0x1F7) & 0xC0) != 0x40); + uint8_t *data = (uint8_t *)buf; + for (int i = 0; i < 512; i++) { + outb(0x1F0, *data); + data++; + } + } + ``` + +<!-- +[//]: # ---------------------------------------------------------------- +## PMIO on x86 + +- On x86, PMIO access is done using `IN` and `OUT` assembly instructions +- `OUT` instruction to write at a given address +- `IN` instruction to read from a given address +- Address **always** specified in `DX` (16-bit adress space) ! +- Read/write always done through `EAX`, `AX` or `AL`: + - `EAX` $\rightarrow$ read or write 32 bits + - `AX` $\rightarrow$ read or write 16 bits + - `AL` $\rightarrow$ read or write 8 bits + +[//]: # ---------------------------------------------------------------- +## MMIO and PMIO examples + +**MMIO** + +:::::: {.columns} +::: {.column width="50%"} + +- Read 8 bits, then 32 bits from address 0x100: + ```{.verysmall} + mov ebx, 0x100 + mov al, [ebx] + mov eax, [ebx] + ``` + +::: +::: {.column width="50%"} + +- Write 32 bits, then 8 bits to address 0xA000: + ```{.verysmall} + mov ebx,0x0A000 + mov dword[ebx],123 + mov byte[ebx],123 + ``` + +::: +:::::: + +**PMIO** + +:::::: {.columns} +::: {.column width="50%"} + +- Read 16 bits from address (port) 0x60: + ```{.verysmall} + mov dx,0x60 + in ax,dx + ``` + +::: +::: {.column width="50%"} + +- Write 8 bits, then 32 bits to address (port) 0x80: + ```{.verysmall} + mov dx,0x80 + mov eax,4 + out dx,al + out dx,eax + ``` + +::: +:::::: +--> + +[//]: # ---------------------------------------------------------------- +## Resources + +- Programmed input/output\ +\small [\textcolor{myblue}{https://en.wikipedia.org/wiki/Programmed\_input/output}](https://en.wikipedia.org/wiki/Programmed_input/output) + +- Memory-mapped I/O\ +\small [\textcolor{myblue}{https://en.wikipedia.org/wiki/Memory-mapped\_I/O}](https://en.wikipedia.org/wiki/Memory-mapped_I/O) diff --git a/course/04-PIO.pdf b/course/04-PIO.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e20823d8412e281fa6534ed85ce9ee894afb85d5 Binary files /dev/null and b/course/04-PIO.pdf differ diff --git a/course/05-Interrupts.md b/course/05-Interrupts.md new file mode 100644 index 0000000000000000000000000000000000000000..612970dcf9563432a1b3fb53d1ae6f7101805b3e --- /dev/null +++ b/course/05-Interrupts.md @@ -0,0 +1,462 @@ +--- +author: Florent Gluck - Florent.Gluck@hesge.ch + +title: Interrupts + +date: \vspace{.5cm} \footnotesize \today + +pandoc-latex-fontsize: + - classes: [tiny] + size: tiny + - classes: [verysmall] + size: scriptsize + - classes: [small] + size: footnotesize + - classes: [huge, important] + size: huge +--- + +[//]: # ---------------------------------------------------------------- +## Interruptions + +- We distinguish 3 kinds of **interrupts** : + - \textbf{\textcolor{myorange}{processor exceptions}} + - \textbf{\textcolor{myblue}{software interrupts}} + - \textbf{\textcolor{mygreen}{hardware interrupts}} + +\vspace{.3cm} + +- **To each interrupt is associated an Interrupt Service Routine (ISR)** + - this ISR is a function that is executed when the associated interrupt is triggered + +[//]: # ---------------------------------------------------------------- +## Interrupt Vector Table (IVT) + +:::::: {.columns} +::: {.column width="55%"} + +\small + +- The IVT **associates an interrupt number to a function** +- At index `i` of the IVT is stored the **address** of the routine associated to interrupt number `i` +- When an interrupt is triggered, the corresponding ISR is executed +- The IA-32 architecture supports an IVT of up to 256 entries +- IVT entries 0 to 31 are **reserved for processor exceptions** + +::: +::: {.column width="45%"} + +\centering +{ width=90% } + +::: +:::::: + +[//]: # ---------------------------------------------------------------- +## Processor exceptions (1/2) + +- \textbf{\textcolor{myorange}{Processor exceptions}} are triggered by the CPU itself +- They are triggered when the **CPU is not able to handle an error** caused by the code being executed +- Exception examples: + - accessing an invalid or unmapped address $\rightarrow$ *Page Fault* + - writing to a *read-only* page $\rightarrow$ *Page Fault* + - division by zero $\rightarrow$ *Divide Error* + - executing a privileged instruction while in user mode (ring 3) $\rightarrow$ *General Protection Fault* + - etc. + +[//]: # ---------------------------------------------------------------- +## Processor exceptions (2/2) + +- \textbf{\textcolor{myorange}{Processor exceptions}} are always **synchronous** with respect to the program's execution +- When the exception is triggered, the corresponding ISR is executed **synchronously**: + - once the execution of the ISR is over, the CPU executes the code following the instruction that triggered the exception +- Processor exceptions are hardwired to specific vector numbers in the IVT (see next slide) + - for instance, "division by 0" executes ISR at index 0 in the IVT + +[//]: # ---------------------------------------------------------------- +## Processor exceptions for the IA-32 architecture + +\centering +{ width=95% } + +[//]: # ---------------------------------------------------------------- +## Classification of processor exceptions + +\footnotesize + +**Faults** + +\vspace{-.3cm} +- Can generally be corrected; once corrected, the program can be resumed with no loss of continuity +- The return address for the fault handler points to the faulting instruction[^1] + +**Traps** + +\vspace{-.3cm} +- The program can be resumed with no loss of continuity +- The return address for the trap handler points to the instruction **after** the trapping instruction + +**Aborts** + +\vspace{-.3cm} +- Does not always report the precise location of the instruction causing the exception; disallow a restart of +the program +- Report severe errors, e.g. hardware, illegal values in system tables + +[^1]: CPU restores the machine state to the state **prior** to the faulting instruction + +<!-- +Excerpt from Intel64_IA32_Manual-Vol3-System_Programming_Guide "Exception Classifications" section: + +Exceptions are classified as faults, traps, or aborts depending on the way they are +reported and whether the instruction that caused the exception can be restarted +without loss of program or task continuity. + +- **Faults**: exception that can generally be corrected and that, once +corrected, allows the program to be restarted with no loss of continuity. When a +fault is reported, the processor restores the machine state to the state prior to +the beginning of execution of the faulting instruction. The return address (saved +contents of the CS and EIP registers) for the fault handler points to the faulting +instruction, rather than to the instruction following the faulting instruction. + +- **Traps**: exception that is reported immediately following the +execution of the trapping instruction. Traps allow execution of a program or task +to be continued without loss of program continuity. The return address for the +trap handler points to the instruction to be executed after the trapping +instruction. + +- **Aborts**: exception that does not always report the precise +location of the instruction causing the exception and does not allow a restart of +the program or task that caused the exception. Aborts are used to report severe +errors, such as hardware errors and inconsistent or illegal values in system +tables. +--> + +[//]: # ---------------------------------------------------------------- +## Double fault exception and triple fault + +**Double Fault Exception** (index 8 in IVT) + +\vspace{-.2cm} +- The CPU detected a second exception **while** calling an exception handler for a prior exception + +\vspace{.5cm} + +**\textcolor{myred}{Triple Fault}** + +\vspace{-.2cm} +- If another exception occurs **while** attempting to call the double-fault handler, the **CPU enters shutdown mode and reboots** +- Important to implement a double fault handler **to prevent** uncontrolled **reboots** + +[//]: # ---------------------------------------------------------------- +## Software interrupts + +- A \textbf{\textcolor{myblue}{software interrupt}} is triggered by using the `INT` assembler instruction +- For instance, `INT 42` triggers software interrupt 42 +- When the CPU encounters the following instruction, + ```{.small} + INT 42 + ``` + it performs the following operations: + - extracts the address of the ISR stored at index 42 in the IVT + - executes the ISR + +[//]: # ---------------------------------------------------------------- +## Software interrupts' execution + +- Like \textbf{\textcolor{myorange}{processor exceptions}}, \textbf{\textcolor{myblue}{software interrupts}} are always **synchronous** +- When the `INT` instruction is executed, the corresponding ISR is executed **synchronously**: + - once the execution of the ISR is over, the CPU executes the code following the `INT` instruction + +[//]: # ---------------------------------------------------------------- +## Hardware interrupts and interrupt requests + +- \textbf{\textcolor{mygreen}{Hardware interrupts}} are typically triggered by devices (disk controller, keyboard, sound card, network card, etc.) +- When a device requires the attention of the CPU, it sends it an **interrupt request (IRQ)** +- A device triggers an IRQ when data are ready or when a command is completed (e.g. writing to disk, key press, etc.) +- To each IRQ corresponds a **hardware interrupt**: + - a specific device, the Programmable Interrupt Controller (PIC) **maps** an IRQ number to a hardware interrupt number + - the hardware interrupt number corresponds to the index (in the IVT) of the ISR to execute + +<!-- +- Two types of hardware interrupts : + - Non Maskable Interrupts (NMI) + - Interrupt Requests (IRQ) +- An NMI implies a hardware problem (faulty memory, bus error, etc.). NMIs cannot be ignored or masked. Purpose: to prevent the machine from running, in order to avoid data loss. +--> + +[//]: # ---------------------------------------------------------------- +## Hardware interrupts' execution + +- When a device triggers an IRQ, the corresponding hardware interrupt is triggered + - the CPU is interrupted **asynchronously** and executes the ISR corresponding to the hardware interrupt +- By opposition to software interrupts, hardware interrupts are **asynchronous**, i.e. they are triggered at any time during the CPU execution flow +- The `STI`/`CLI` assembly instructions are used to mask/unmask (enable/disable) hardware interrupts + +[//]: # ---------------------------------------------------------------- +## IRQs, hardware interrupts and ISRs + +\centering +{ width=100% } + + +[//]: # ---------------------------------------------------------------- +## IRQ to hardware interrupt mapping at boot + +\scriptsize + +**IRQ** **Interrupt** **Description** +------- ------------- ----------------------- +0 0x08 System timer (PIT) +1 0x09 Keyboard +2 0x0A Redirected to slave PIC +3 0x0B Serial port (COM2/COM4) +4 0x0C Serial port (COM1/COM3) +5 0x0D Sound card +6 0x0E Floppy disk controller +7 0x0F Parallel port +8 0x70 Real time clock +9 0x71 Redirected to IRQ2 +10 0x72 Reserved +11 0x73 Reserved +12 0x74 P/S mouse +13 0x75 Math coprocessor +14 0x76 Hard disk controller +15 0x77 Reserved + +[//]: # ---------------------------------------------------------------- +## Hardware interrupt acknowledgement + +- Once the execution of a hardware interrupt's ISR is over, the CPU **must notify the PIC** that the IRQ was handled + - done by sending the PIC an end of interrupt (EOI) command + - usually done at the end of the ISR + - this process is called **interrupt acknowledgement** + - (the PIC can be programmed to automatically issue an EOI) + +\vspace{.5cm} +- **\textcolor{myred}{If an interrupt is not acknowledged, it won't be triggered again!}** + +[//]: # ---------------------------------------------------------------- +## Interrupt Descriptor Table + +- On Intel processors, the Interrupt Vector Table (IVT) is called **Interrupt Descriptor Table (IDT)** +- The IDT defines, for **all interrupt types**, software, hardware and exception, the ISR corresponding to each interrupt number +- The IDT resides in RAM + +[//]: # ---------------------------------------------------------------- +## IDT content + +- The IDT contains **interrupt descriptors** (also called *gates*) +- An **interrupt descriptor** is a 64-bit data structure that mainly defines: + - the interrupt descriptor **type** + - the **address of the ISR** (also called *offset*) + - the **privilege level** (= who can call this interrupt) +- The IDT is simply an array of **interrupt descriptor** structures + +[//]: # ---------------------------------------------------------------- +## Structure of an IDT interrupt descriptor + +\small + +```{.c .verysmall} +typedef struct { + u16 offset15_0; // lower 16 bits of ISR's address + u16 selector; // segment selector for code segment + u16 reserved : 8; + u16 type : 5; // descriptor type: LDT, task, TSS, + // call, trap, interrupt + u16 dpl : 2; // privilege level (0-3) + u16 p : 1; // segment present (should be 1) + u16 offset31_16; // higher 16 bits of ISR's address +} __attribute__((packed)) idt_entry_t; +``` + +- `offset`: specifies the ISR address (32 bits) +- `selector`: segment selector in which the ISR resides +- `type`: descriptor type: LDT, task, TSS, call, trap, interrupt +- `DPL`: privilege level (kernel/ring 0 or user/ring 3) required to execute the ISR + +<!-- +\vspace{-.4cm} + +\centering +{ width=100% } +--> + +[//]: # ---------------------------------------------------------------- +## Interrupt descriptors + +- Many types (6) of interrupt descriptors exist, but we only present two types: + - **Interrupt** Gates + - **Trap** Gates + +- The only difference is their behavior during the execution of the ISR: + - **Interrupt** Gate: hardware interrupts are **masked** (disabled) + - **Trap** Gate: hardware interrupts are **not masked** (enabled) +<!-- + (`IF` Flag of `EFLAGS` remains unchanged) +--> + +[//]: # ---------------------------------------------------------------- +## How does the CPU find the IDT? + +- The CPU needs to know where the IDT is located in physical memory + - it uses a dedicated register, `IDTR`, that must point to the IDT +- The `IDTR` register points to a **structure in RAM** defining where the IDT is located and how long it is +- The `LIDT` instruction is used to load the `IDTR` register with the above structure's address + +[//]: # ---------------------------------------------------------------- +## Code example: loading the IDT + +\footnotesize +IDT initialization code (C): +```{.c .tiny} +typedef struct { // Struct defining where the IDT resides + uint16_t limit; // Size of the IDT in bytes + uint32_t base; // Address of the IDT +} __attribute__((packed)) idt_ptr_t; + +static idt_entry_t idt[256]; // IDT +static idt_ptr_t idt_ptr; // declares an idt_ptr_t struct + +void idt_init() { + memset(idt, 0, sizeof(idt)); // Clears the IDT + idt_ptr.limit = sizeof(idt)-1; // Setup the idt_ptr_t structure + idt_ptr.base = (uint32_t)&idt; // to points to the IDT + idt_load(&idt_ptr); // Loads the IDT (asm function) +} +``` + +\footnotesize +Loading the IDTR registers requires the `lidt` instruction (asm): +```{.assembly .tiny} +idt_load: + mov eax,[esp+4] ; Address of the idt_ptr struct passed in arg. + lidt [eax] ; Loads the IDT + ret +``` + + +[//]: # ---------------------------------------------------------------- +## Locating the IDT with the IDTR register + +\centering +{ width=100% } + +<!-- +[//]: # ---------------------------------------------------------------- +## IDT and IDTR register (1/2) + +- Similarily to the GDT, the IDT is located by the CPU using the `IDTR` register +- The 48-bit `IDTR` register contains: + - IDT base address (32 bits) + - IDT limit (16 bits); as with the GDT, this limit indicates the size of the IDT in bytes - 1. +- The `lidt` assembly instruction is used to load the IDT into the `IDTR` register so that it can be taken into account by the CPU. + - Similar to the `lgdt` instruction and `LGDTR` register when programming the GDT + +[//]: # ---------------------------------------------------------------- +## IDT and IDTR register (2/2) + +- The `lidt` instruction takes a single argument, the address of a 48-bit structure specifying the base address of the IDT and its size +- Example: loading the `IDTR` register: + ```{.verysmall} + lidt [eax] ; where eax points to a 48 bits structure + ``` +--> + +[//]: # ---------------------------------------------------------------- +## Execution workflow of a software or hardware interrupt + +\footnotesize + +What happens when CPU executes `INT 60` or handles hardware interrupt 60? + +1. Using the IDTR register, CPU locates the IDT in RAM +1. CPU checks IDT limit (size) is < 64-bits * 256; if not $\rightarrow$ exception! +1. CPU reads interrupt descriptor at index 60 in the IDT +1. CPU checks ISR can be executed at current privilege level; if not $\rightarrow$ exception! +1. CPU extracts address of ISR to execute from interrupt descriptor +1. CPU saves return context on stack (`EFLAGS`, `CS`, and `EIP` registers) to resume execution where it left of before the interruption +1. CPU executes ISR code (which must ends with an `IRET` instruction) +1. `IRET` reads the return context from the stack to resume execution + +[//]: # ---------------------------------------------------------------- +## Execution workflow of an exception + +\footnotesize + +What happens when exception 13 occurs? (difference with previous slide in \textcolor{myblue}{blue}): + +1. Using the IDTR register, CPU locates the IDT in RAM +1. CPU checks IDT limit (size) is < 64-bits * 256; if not $\rightarrow$ exception! +1. CPU reads interrupt descriptor at index 13 in the IDT +1. CPU checks ISR can be executed at current privilege level; if not $\rightarrow$ exception! +1. CPU extracts address of ISR to execute from interrupt descriptor +1. \textcolor{myblue}{If a fault, loads `CS` and `EIP` with address of the instruction that caused the exception so it can be executed again} +1. CPU saves return context on stack (`EFLAGS`, `CS`, and `EIP` registers) to resume execution where it left of before the interruption +1. \textcolor{myblue}{If the exception carries an error code, saves it on the stack} +1. CPU executes ISR code (which must ends with an `IRET` instruction) +1. `IRET` reads the return context from the stack to resume execution + +[//]: # ---------------------------------------------------------------- +## Execution context + +\small + +- We don't want the ISR code to modify the state of registers, otherwise the code following the ISR call **will not behave properly!** + +- For this reason, the ISR must **perserve** the full CPU context at the beginning of the routine and **restore** it at the end + +\vfill + +\centering +{ width=70% } + +[//]: # ---------------------------------------------------------------- +## ISR: important remarks + +- Every ISR must be **as short as possible** since during its execution hardware interrupts are often masked + - if an ISR takes too long to complete, subsequent hardware interrupts might be missed! + +- Usually, the code of an ISR is divided into two parts: + - a low-level part, written in assembly, which: + - preserves and restores the CPU context + - calls the high-level part of the ISR + - a high-level part, written in C, which implements the actual behavior of the ISR + +<!-- +[//]: # ---------------------------------------------------------------- +## ISR (2/2) + +- All ISRs must save the CPU context and update the `DS` register in order to access the correct data (typically kernel data, so `DS` $\leftarrow$ kernel data selector). +- In the case of `textbf{\textcolor{myorange}}{processor exceptions}}, an error code may or may not be **deposited on the stack, depending on the exception** (cf. table on slide 7). +--> + +[//]: # ---------------------------------------------------------------- +## Lab code: exception handler workflow + +\centering +{ width=100% } + +[//]: # ---------------------------------------------------------------- +## Lab code: hardware interrupt handler workflow + +\centering +{ width=100% } + + +[//]: # ---------------------------------------------------------------- +## Resources + +\small + +- Understanding the Linux Kernel (2nd Edition), Daniel P. Bovet, Marco Cesati, O'Reilly + +\small + +- Interrupts, Exceptions, ISR and IDT at wiki.osdev.org + + - \footnotesize [\textcolor{myblue}{https://wiki.osdev.org/Interrupts}](https://wiki.osdev.org/Interrupts) + - \footnotesize [\textcolor{myblue}{https://wiki.osdev.org/Exceptions}](https://wiki.osdev.org/Exceptions) + - \footnotesize [\textcolor{myblue}{https://wiki.osdev.org/Interrupt\_Service\_Routines}](https://wiki.osdev.org/Interrupt_Service_Routines) + - \footnotesize [\textcolor{myblue}{https://wiki.osdev.org/Interrupt\_Descriptor\_Table}](https://wiki.osdev.org/Interrupt_Descriptor_Table) diff --git a/course/05-Interrupts.pdf b/course/05-Interrupts.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7d9b5a6f73971d813fcd092f47c4a06d5507dde4 Binary files /dev/null and b/course/05-Interrupts.pdf differ diff --git a/course/images/GDT.odg b/course/images/GDT.odg new file mode 100644 index 0000000000000000000000000000000000000000..f7cc4fa6e8f8777096990fde1a77e4aee0e0b78c Binary files /dev/null and b/course/images/GDT.odg differ diff --git a/course/images/PICs.odg b/course/images/PICs.odg new file mode 100644 index 0000000000000000000000000000000000000000..8f95b87cdbcf7f020afaa3f7bd1bd4e56b8cdf53 Binary files /dev/null and b/course/images/PICs.odg differ diff --git a/course/images/address_space.odg b/course/images/address_space.odg new file mode 100644 index 0000000000000000000000000000000000000000..3df17ad7fa7fa412fe4d87d7ac99e2aeae8d35e7 Binary files /dev/null and b/course/images/address_space.odg differ diff --git a/course/images/address_space_without_legends.odg b/course/images/address_space_without_legends.odg new file mode 100644 index 0000000000000000000000000000000000000000..72df0b325be833c122839583fcf3d8335d2a7db3 Binary files /dev/null and b/course/images/address_space_without_legends.odg differ diff --git a/course/images/address_translation_x86-64.odg b/course/images/address_translation_x86-64.odg new file mode 100644 index 0000000000000000000000000000000000000000..1330f35bda18426008699cb46e0782797a442321 Binary files /dev/null and b/course/images/address_translation_x86-64.odg differ diff --git a/course/images/basic_address_space.odg b/course/images/basic_address_space.odg new file mode 100644 index 0000000000000000000000000000000000000000..479455be785d89f5311624f43e8025f5c1bfb086 Binary files /dev/null and b/course/images/basic_address_space.odg differ diff --git a/course/images/cpu_exceptions.odg b/course/images/cpu_exceptions.odg new file mode 100644 index 0000000000000000000000000000000000000000..81d1eb5a2fcbfe6c7dc2280a9970d69db6914bb0 Binary files /dev/null and b/course/images/cpu_exceptions.odg differ diff --git a/course/images/exception_handlers.odg b/course/images/exception_handlers.odg new file mode 100644 index 0000000000000000000000000000000000000000..22f3532e9c9bad94df3185359dd86e4c7b6ea133 Binary files /dev/null and b/course/images/exception_handlers.odg differ diff --git a/course/images/exception_handlers.png b/course/images/exception_handlers.png index e3076611ce7a2e7b87d5c87a42648fb41c5d0020..ebeb3a87dab971b0187174e1731d46b3d72132ea 100644 Binary files a/course/images/exception_handlers.png and b/course/images/exception_handlers.png differ diff --git a/course/images/external_fragmentation.odg b/course/images/external_fragmentation.odg new file mode 100644 index 0000000000000000000000000000000000000000..719013767ac5b475e8689f161c4f0954f9ba821e Binary files /dev/null and b/course/images/external_fragmentation.odg differ diff --git a/course/images/frame_management.odg b/course/images/frame_management.odg new file mode 100644 index 0000000000000000000000000000000000000000..5d7218080dfd2f123d91a2fbaa9c267b71e16e52 Binary files /dev/null and b/course/images/frame_management.odg differ diff --git a/course/images/frame_management_bitarray.odg b/course/images/frame_management_bitarray.odg new file mode 100644 index 0000000000000000000000000000000000000000..94e4a7432f532522bc2ee450045f1897253af0b5 Binary files /dev/null and b/course/images/frame_management_bitarray.odg differ diff --git a/course/images/framebuffer.odg b/course/images/framebuffer.odg new file mode 100644 index 0000000000000000000000000000000000000000..99f7b03302bf5e2d35470ee1b443da5a63250460 Binary files /dev/null and b/course/images/framebuffer.odg differ diff --git a/course/images/hw_int.odg b/course/images/hw_int.odg new file mode 100644 index 0000000000000000000000000000000000000000..f9ad944e3beba04a15504c5a0c3397fb4d84deb6 Binary files /dev/null and b/course/images/hw_int.odg differ diff --git a/course/images/ia32_mapping_example.odg b/course/images/ia32_mapping_example.odg new file mode 100644 index 0000000000000000000000000000000000000000..2b20481e2bed999e11777d4860d302bf8473d6d2 Binary files /dev/null and b/course/images/ia32_mapping_example.odg differ diff --git a/course/images/identity_mapping.odg b/course/images/identity_mapping.odg new file mode 100644 index 0000000000000000000000000000000000000000..d399afca5e2c60a7f640fef8795de9c5abb8cbd5 Binary files /dev/null and b/course/images/identity_mapping.odg differ diff --git a/course/images/idt_and_idtr.odg b/course/images/idt_and_idtr.odg new file mode 100644 index 0000000000000000000000000000000000000000..89620fe1d19032dd6fc1cb68af64f648b694a2de Binary files /dev/null and b/course/images/idt_and_idtr.odg differ diff --git a/course/images/interrupt_desc.odg b/course/images/interrupt_desc.odg new file mode 100644 index 0000000000000000000000000000000000000000..7aa3f994a9a511b304840b6f92ca3541da2f959f Binary files /dev/null and b/course/images/interrupt_desc.odg differ diff --git a/course/images/interrupt_handlers.odg b/course/images/interrupt_handlers.odg new file mode 100644 index 0000000000000000000000000000000000000000..669a029c899932a9fb2219acde0c0e23550ba93b Binary files /dev/null and b/course/images/interrupt_handlers.odg differ diff --git a/course/images/interrupt_handlers.old.odg b/course/images/interrupt_handlers.old.odg new file mode 100644 index 0000000000000000000000000000000000000000..df5c8d49d290be8ea1899c23fce711c18c52ee4c Binary files /dev/null and b/course/images/interrupt_handlers.old.odg differ diff --git a/course/images/interrupt_handlers.png b/course/images/interrupt_handlers.png index 400e8e7ced1e089dedc7c31b8f13b91ba2163112..1d3957c4691d6f0a6edba61c17d517ae8576cdc7 100644 Binary files a/course/images/interrupt_handlers.png and b/course/images/interrupt_handlers.png differ diff --git a/course/images/interrupt_vector_table.odg b/course/images/interrupt_vector_table.odg new file mode 100644 index 0000000000000000000000000000000000000000..3e1f6f4c75a1c417c1bbe2fff5c6a236d2376837 Binary files /dev/null and b/course/images/interrupt_vector_table.odg differ diff --git a/course/images/irq_global_view.odg b/course/images/irq_global_view.odg new file mode 100644 index 0000000000000000000000000000000000000000..d83ff9c5c4dea61c3d2bed8d56536510ac3fe6f2 Binary files /dev/null and b/course/images/irq_global_view.odg differ diff --git a/course/images/kernel_addr_space.odg b/course/images/kernel_addr_space.odg new file mode 100644 index 0000000000000000000000000000000000000000..c2de319a65e2a8ac2a2e5cbea9d7656b716e557d Binary files /dev/null and b/course/images/kernel_addr_space.odg differ diff --git a/course/images/memory_fetching.odg b/course/images/memory_fetching.odg new file mode 100644 index 0000000000000000000000000000000000000000..c9863db0a944dc4def80afa05d215f1c418f1804 Binary files /dev/null and b/course/images/memory_fetching.odg differ diff --git a/course/images/mmio_vs_pmio.odg b/course/images/mmio_vs_pmio.odg new file mode 100644 index 0000000000000000000000000000000000000000..d96576393134ea641a107de1c89fbaaa56028af0 Binary files /dev/null and b/course/images/mmio_vs_pmio.odg differ diff --git a/course/images/mmio_vs_pmio.png b/course/images/mmio_vs_pmio.png index 3baf19543dfc1129599d45561c21646795d5d8f8..68a3829895d18e9c3b18e9808de0da19b5bf0773 100644 Binary files a/course/images/mmio_vs_pmio.png and b/course/images/mmio_vs_pmio.png differ diff --git a/course/images/mmu.odg b/course/images/mmu.odg new file mode 100644 index 0000000000000000000000000000000000000000..7f792e92172ebc5e0df3c39135eb191cde2c9401 Binary files /dev/null and b/course/images/mmu.odg differ diff --git a/course/images/multi_level_paging.odg b/course/images/multi_level_paging.odg new file mode 100644 index 0000000000000000000000000000000000000000..bc38a43e5345a9e9c849002793a4ec1ff3d478e7 Binary files /dev/null and b/course/images/multi_level_paging.odg differ diff --git a/course/images/multiple_processes.odg b/course/images/multiple_processes.odg new file mode 100644 index 0000000000000000000000000000000000000000..785dd397b190b4e9b8a7c6a287aecba4fbd8425c Binary files /dev/null and b/course/images/multiple_processes.odg differ diff --git a/course/images/multiple_processes_address_spaces.odg b/course/images/multiple_processes_address_spaces.odg new file mode 100644 index 0000000000000000000000000000000000000000..3f454c9d9795db545e902264675cb769a1e9cc0e Binary files /dev/null and b/course/images/multiple_processes_address_spaces.odg differ diff --git a/course/images/paging_2level_page_table.odg b/course/images/paging_2level_page_table.odg new file mode 100644 index 0000000000000000000000000000000000000000..b99961bd4f85284bb26b6eaadade068af4de4787 Binary files /dev/null and b/course/images/paging_2level_page_table.odg differ diff --git a/course/images/paging_2level_page_table_compact.odg b/course/images/paging_2level_page_table_compact.odg new file mode 100644 index 0000000000000000000000000000000000000000..9968785c4285df8380722e245430feec23d42fa9 Binary files /dev/null and b/course/images/paging_2level_page_table_compact.odg differ diff --git a/course/images/paging_linear_page_table.odg b/course/images/paging_linear_page_table.odg new file mode 100644 index 0000000000000000000000000000000000000000..2777d33c4851ebbd3b81b6aea20cdaecfc7491a4 Binary files /dev/null and b/course/images/paging_linear_page_table.odg differ diff --git a/course/images/paging_null_ptr.odg b/course/images/paging_null_ptr.odg new file mode 100644 index 0000000000000000000000000000000000000000..5ffc13e55951da47655e797ff763350b32218cc8 Binary files /dev/null and b/course/images/paging_null_ptr.odg differ diff --git a/course/images/paging_shared_pages.odg b/course/images/paging_shared_pages.odg new file mode 100644 index 0000000000000000000000000000000000000000..a4bc54f441edf9577fb71ac68089666805ce2f22 Binary files /dev/null and b/course/images/paging_shared_pages.odg differ diff --git a/course/images/paging_simple_ex.odg b/course/images/paging_simple_ex.odg new file mode 100644 index 0000000000000000000000000000000000000000..9b4d4b13113a1712be22905201571b5d93d4c240 Binary files /dev/null and b/course/images/paging_simple_ex.odg differ diff --git a/course/images/paging_stack_overflow.odg b/course/images/paging_stack_overflow.odg new file mode 100644 index 0000000000000000000000000000000000000000..1694a17a0ffa3727371a85b839485a21c84cf6cf Binary files /dev/null and b/course/images/paging_stack_overflow.odg differ diff --git a/course/images/paging_virtual_address_ex_1.odg b/course/images/paging_virtual_address_ex_1.odg new file mode 100644 index 0000000000000000000000000000000000000000..c7c897cc4466be5596b0478e8e5bf3c65522709e Binary files /dev/null and b/course/images/paging_virtual_address_ex_1.odg differ diff --git a/course/images/paging_virtual_address_ex_2.odg b/course/images/paging_virtual_address_ex_2.odg new file mode 100644 index 0000000000000000000000000000000000000000..0028437fe35fad1400643bb8e1e8854239568ee0 Binary files /dev/null and b/course/images/paging_virtual_address_ex_2.odg differ diff --git a/course/images/paging_virtual_address_ex_3.odg b/course/images/paging_virtual_address_ex_3.odg new file mode 100644 index 0000000000000000000000000000000000000000..e1fbc3db59cefa130cbaae2c83e74a77b87f02bf Binary files /dev/null and b/course/images/paging_virtual_address_ex_3.odg differ diff --git a/course/images/paging_virtual_address_ex_4.odg b/course/images/paging_virtual_address_ex_4.odg new file mode 100644 index 0000000000000000000000000000000000000000..6a8b70cb75d5499cf0e5ab0f7a78d3ee7675c71b Binary files /dev/null and b/course/images/paging_virtual_address_ex_4.odg differ diff --git a/course/images/part_table_gpt.odg b/course/images/part_table_gpt.odg new file mode 100644 index 0000000000000000000000000000000000000000..410e4df621974dfbb869f03afe78fadfdf0f37f3 Binary files /dev/null and b/course/images/part_table_gpt.odg differ diff --git a/course/images/pic_cascade.odg b/course/images/pic_cascade.odg new file mode 100644 index 0000000000000000000000000000000000000000..b58896d48c7926437810f9581f8ba4817716690e Binary files /dev/null and b/course/images/pic_cascade.odg differ diff --git a/course/images/process_address_space.odg b/course/images/process_address_space.odg new file mode 100644 index 0000000000000000000000000000000000000000..759a195f9d3d758152774930846bc14a84b087b8 Binary files /dev/null and b/course/images/process_address_space.odg differ diff --git a/course/images/process_address_space_fetching.odg b/course/images/process_address_space_fetching.odg new file mode 100644 index 0000000000000000000000000000000000000000..026bd868e85305051cd403eaf957b740699e57a1 Binary files /dev/null and b/course/images/process_address_space_fetching.odg differ diff --git a/course/images/process_relocation.odg b/course/images/process_relocation.odg new file mode 100644 index 0000000000000000000000000000000000000000..5b5c643b31f0031ac10cb1d53efd054bd8498ca5 Binary files /dev/null and b/course/images/process_relocation.odg differ diff --git a/course/images/processes_and_phys_address_space.odg b/course/images/processes_and_phys_address_space.odg new file mode 100644 index 0000000000000000000000000000000000000000..b8c61be702514846b3715e74974f12d7f9d452e7 Binary files /dev/null and b/course/images/processes_and_phys_address_space.odg differ diff --git a/course/images/segmentation.odg b/course/images/segmentation.odg new file mode 100644 index 0000000000000000000000000000000000000000..178e092062475e6c7838fc0a5bbea2f4667c6551 Binary files /dev/null and b/course/images/segmentation.odg differ diff --git a/course/images/syscall_full_workflow.odg b/course/images/syscall_full_workflow.odg new file mode 100644 index 0000000000000000000000000000000000000000..dfb09c005ef600869b10c9a04e113e5155dd6509 Binary files /dev/null and b/course/images/syscall_full_workflow.odg differ diff --git a/course/images/syscalls.odg b/course/images/syscalls.odg new file mode 100644 index 0000000000000000000000000000000000000000..4b2bf6af125b196cefde49ef65381e21703c6e2b Binary files /dev/null and b/course/images/syscalls.odg differ diff --git a/course/images/syscalls_dispatch_table.odg b/course/images/syscalls_dispatch_table.odg new file mode 100644 index 0000000000000000000000000000000000000000..d234cab0aad41ba6c06d51208c2f4c8efff1379e Binary files /dev/null and b/course/images/syscalls_dispatch_table.odg differ diff --git a/course/images/task_create.drawio b/course/images/task_create.drawio new file mode 100644 index 0000000000000000000000000000000000000000..d8b8641650bed542bc60c9d6f2f0994aabd7e484 --- /dev/null +++ b/course/images/task_create.drawio @@ -0,0 +1,2429 @@ +<mxfile host="Electron" modified="2024-04-23T09:38:18.305Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.2.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="4HuVxekiYdcvc4HrSL2U" version="24.2.5" type="device"> + <diagram name="Page-1" id="xRqMWYEQTJzr8UWEzbjy"> + <mxGraphModel dx="3418" dy="2288" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-238" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="220" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-239" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="220" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-240" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" parent="1" vertex="1"> + <mxGeometry x="220" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-241" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="220" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-242" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="240" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-243" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="220" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-244" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="280" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-245" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="320" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-246" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="300" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-247" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="340" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-248" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="400" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-249" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="380" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-250" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="240" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-251" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="220" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-252" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="280" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-253" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="260" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-254" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="320" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-255" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="360" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-256" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="340" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-257" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="400" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-258" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="380" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-259" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="220" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-260" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="280" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-261" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="260" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-262" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="320" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-263" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="300" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-266" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="-760" width="200" height="240" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-267" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" parent="1" vertex="1"> + <mxGeometry x="220" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-268" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="420" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-269" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="420" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-270" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" parent="1" vertex="1"> + <mxGeometry y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-271" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="200" y="-160" as="sourcePoint" /> + <mxPoint x="200" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-274" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="220" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-275" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="260" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-276" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="240" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-277" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="280" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-278" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="320" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-279" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="300" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-280" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="340" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-281" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="380" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="nOdfrsuBWWGeC7lUmk1g-282" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="360" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-92" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-93" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-94" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-95" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-96" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-120" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-97" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-98" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-80" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-99" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-40" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-100" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-60" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-101" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-20" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-102" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="40" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-103" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="20" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-104" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-120" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-105" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-106" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-80" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-107" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-100" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-108" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-40" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-109" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-110" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-20" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-111" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="40" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-112" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="20" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-113" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-114" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-80" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-115" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-100" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-116" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-40" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-117" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-60" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-118" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-119" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-120" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-121" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-122" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="60" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-123" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="60" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-124" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" parent="1" vertex="1"> + <mxGeometry x="-360" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-125" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-160" y="-160" as="sourcePoint" /> + <mxPoint x="-160" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-126" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" parent="1" vertex="1"> + <mxGeometry x="-200" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-127" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-160" y="-640" as="sourcePoint" /> + <mxPoint x="-160" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-128" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-140" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-129" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-100" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-130" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-120" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-131" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-80" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-132" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-40" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-133" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-60" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-134" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="-20" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-135" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry x="20" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="Tw0GtSsca_V-gcj3qF0E-136" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" parent="1" vertex="1"> + <mxGeometry y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-2" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-3" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-4" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1140" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-7" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1180" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-8" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1220" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1200" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-10" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1240" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-11" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1300" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-12" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1280" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-13" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1140" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-14" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-15" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1180" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-16" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1160" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-17" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1220" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-18" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1260" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-19" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1240" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-20" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1300" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-21" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1280" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-22" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-23" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1180" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-24" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1160" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-25" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1220" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-26" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1200" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-27" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-28" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-29" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-30" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-31" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="1320" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-32" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="1320" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-33" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="900" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-34" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1100" y="-160" as="sourcePoint" /> + <mxPoint x="1100" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-35" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="1060" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-36" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1100" y="-640" as="sourcePoint" /> + <mxPoint x="1100" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-37" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1120" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-38" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1160" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-39" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1140" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-40" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1180" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-41" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1220" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-42" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1200" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-43" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1240" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-44" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1280" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-45" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1260" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-46" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-47" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-48" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-49" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-72" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-73" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-74" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-75" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="2210" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-76" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="2210" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-77" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="1790" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-78" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1990" y="-160" as="sourcePoint" /> + <mxPoint x="1990" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-79" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="1950" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-80" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1990" y="-640" as="sourcePoint" /> + <mxPoint x="1990" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-81" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-82" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2050" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-83" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2030" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-84" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2070" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-85" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2110" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-86" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2090" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-87" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2130" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-88" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2170" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-89" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2150" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-90" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="760" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-91" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="760" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-92" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="760" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-93" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="760" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-94" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="780" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-95" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="760" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-96" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="820" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-97" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="860" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-98" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="840" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-99" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="880" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-100" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="940" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-101" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="920" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-102" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="780" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-103" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="760" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-104" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="820" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-105" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="800" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-106" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="860" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-107" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="900" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-108" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="880" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-109" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="940" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-110" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="920" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-111" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="760" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-112" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="820" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-113" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="800" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-114" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="860" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-115" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="840" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-116" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="760" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-117" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="760" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-118" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="760" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-119" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="760" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-120" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="960" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-121" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="960" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-122" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="540" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-123" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="740" y="-160" as="sourcePoint" /> + <mxPoint x="740" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-124" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="700" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-125" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="740" y="-640" as="sourcePoint" /> + <mxPoint x="740" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-126" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="760" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-127" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="800" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-128" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="780" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-129" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="820" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-130" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="860" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-131" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="840" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-132" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="880" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-133" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="920" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-134" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="900" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-135" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-136" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-137" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-138" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-161" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-162" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-163" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-164" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-165" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="1850" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-166" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="1850" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-167" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="1430" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-168" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1630" y="-160" as="sourcePoint" /> + <mxPoint x="1630" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-169" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="1590" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-170" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1630" y="-640" as="sourcePoint" /> + <mxPoint x="1630" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-171" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-172" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1690" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-173" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1670" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-174" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1710" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-175" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1750" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-176" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1730" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-177" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1770" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-178" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1810" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-179" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1790" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-180" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-181" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-182" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-183" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-184" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3680" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-185" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-186" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3720" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-187" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3760" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-188" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3740" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-189" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3780" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-190" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3840" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-191" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3820" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-192" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3680" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-193" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-194" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3720" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-195" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3700" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-196" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3760" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-197" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-198" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3780" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-199" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3840" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-200" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3820" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-201" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-202" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3720" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-203" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3700" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-204" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3760" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-205" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3740" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-206" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-640" width="200" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-207" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-208" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-209" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-210" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3860" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-211" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3860" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-212" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="3440" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-213" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3640" y="-160" as="sourcePoint" /> + <mxPoint x="3640" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-214" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="3600" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-215" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3640" y="-640" as="sourcePoint" /> + <mxPoint x="3640" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-216" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-217" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3700" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-218" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3680" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-219" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3720" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-220" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3760" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-221" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3740" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-222" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3780" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-223" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3820" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-224" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-225" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-226" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-227" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-228" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-251" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-252" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-253" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-254" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-255" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="5030" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-256" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="5030" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-257" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="4610" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-258" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4810" y="-160" as="sourcePoint" /> + <mxPoint x="4810" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-259" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="4770" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-260" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4810" y="-640" as="sourcePoint" /> + <mxPoint x="4810" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-261" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-262" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4870" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-263" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4850" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-264" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4890" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-265" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4930" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-266" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4910" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-267" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4950" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-268" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4990" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-269" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4970" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-271" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-272" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-273" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-274" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-275" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-276" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-277" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="4220" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-278" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="4220" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-279" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4000" y="-160" as="sourcePoint" /> + <mxPoint x="4000" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-280" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4000" y="-640" as="sourcePoint" /> + <mxPoint x="4000" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-281" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-282" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4060" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-283" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4040" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-284" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4080" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-285" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-286" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4100" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-287" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4140" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-288" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4180" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-289" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4160" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-290" value="<br style="font-size: 16px;">The kernel uses the task's mapping by loading the task's paging directory.<br style="font-size: 16px;">It does it to access the task's pages located at 1GB in the task's address space.The kernel then copies the task's code and data from the module's address to the task's address space at 1GB.<br style="font-size: 16px;"><br style="font-size: 16px;">" style="text;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;html=1;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="4291" y="-760" width="200" height="210" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-291" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-292" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="3960" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-293" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4000" y="-640" as="sourcePoint" /> + <mxPoint x="4000" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-294" value="<div><b>Task</b></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-620" width="200" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-295" value="<i>1G</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3860" y="-600" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-296" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="3591.25" y="-611.25" width="57.5" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-297" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3639.44" y="-560" as="sourcePoint" /> + <mxPoint x="3639.44" y="-620" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-299" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3700" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-300" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3740" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-301" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-302" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3680" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-303" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-304" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3780" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-305" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3820" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-306" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-307" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3840" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-308" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-309" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3700" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-310" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3680" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-311" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3720" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-312" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3760" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-313" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3740" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-314" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3780" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-315" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3820" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-316" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3800" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-317" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="3660" y="-560" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-318" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-640" width="200" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-322" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="1941.25" y="-611.25" width="57.5" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-323" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1989.44" y="-560" as="sourcePoint" /> + <mxPoint x="1989.44" y="-620" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-324" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-325" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-308" target="0AOVjni8bstOHRxbiD9X-299"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3730" y="-530" as="sourcePoint" /> + <mxPoint x="3780" y="-580" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-326" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-310" target="0AOVjni8bstOHRxbiD9X-301"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3680" y="-550" as="sourcePoint" /> + <mxPoint x="3720" y="-330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-327" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-315" target="0AOVjni8bstOHRxbiD9X-306"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3690" y="-540" as="sourcePoint" /> + <mxPoint x="3730" y="-320" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-329" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-330" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4040" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-331" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-332" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4080" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-333" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-334" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4100" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-335" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4140" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-336" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4200" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-337" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4180" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-338" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4040" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-339" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-340" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4080" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-341" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4060" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-342" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-343" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4160" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-344" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4140" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-345" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4200" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-346" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4180" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-347" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-348" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4080" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-349" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4060" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-350" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-351" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4100" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-352" value="<div><b>Task</b></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-620" width="200" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-353" value="<i>1G</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="4220" y="-600" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-354" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="3951.25" y="-611.25" width="57.5" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-355" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3999.4400000000005" y="-560" as="sourcePoint" /> + <mxPoint x="3999.4400000000005" y="-620" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-356" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4060" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-357" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4100" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-358" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4160" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-359" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4040" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-360" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4160" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-361" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4140" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-362" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4180" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-363" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-364" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4200" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-365" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-366" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4060" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-367" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4040" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-368" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4080" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-369" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-370" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4100" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-371" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4140" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-372" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4180" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-373" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4160" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-374" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="4020" y="-560" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-375" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-365" target="0AOVjni8bstOHRxbiD9X-356"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4090" y="-530" as="sourcePoint" /> + <mxPoint x="4140" y="-580" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-376" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-367" target="0AOVjni8bstOHRxbiD9X-358"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4040" y="-550" as="sourcePoint" /> + <mxPoint x="4080" y="-330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-377" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-372" target="0AOVjni8bstOHRxbiD9X-363"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="4050" y="-540" as="sourcePoint" /> + <mxPoint x="4090" y="-320" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-379" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#fad9d5;strokeColor=#ae4132;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-216" target="0AOVjni8bstOHRxbiD9X-308"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3680" y="-550" as="sourcePoint" /> + <mxPoint x="3720" y="-330" as="targetPoint" /> + <Array as="points"> + <mxPoint x="3670" y="-310" /> + <mxPoint x="3630" y="-310" /> + <mxPoint x="3630" y="-570" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-380" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#fad9d5;strokeColor=#ae4132;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-223" target="0AOVjni8bstOHRxbiD9X-315"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3680" y="-250" as="sourcePoint" /> + <mxPoint x="3670" y="-560" as="targetPoint" /> + <Array as="points"> + <mxPoint x="3830" y="-300" /> + <mxPoint x="3870" y="-300" /> + <mxPoint x="3870" y="-570" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-382" value="<font color="#ae4132">Copy</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;" vertex="1" parent="1"> + <mxGeometry x="3580" y="-460" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-383" value="<font color="#ae4132">Copy</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;" vertex="1" parent="1"> + <mxGeometry x="3850" y="-460" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-384" value="<font>paging (mmu)<br></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;fontColor=#435978;" vertex="1" parent="1"> + <mxGeometry x="3750" y="-480" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-385" value="<font>paging (mmu)<br></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;fontColor=#435978;" vertex="1" parent="1"> + <mxGeometry x="4120" y="-480" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-386" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-387" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-388" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-389" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-390" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-391" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-392" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="5390" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-393" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="5390" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-394" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5170" y="-160" as="sourcePoint" /> + <mxPoint x="5170" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-395" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5170" y="-640" as="sourcePoint" /> + <mxPoint x="5170" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-396" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-397" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5230" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-398" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5210" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-399" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5250" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-400" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-401" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5270" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-402" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5310" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-403" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5350" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-404" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5330" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-405" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5170" y="-640" as="sourcePoint" /> + <mxPoint x="5170" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-406" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-640" width="200" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-407" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-408" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5210" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-409" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-410" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5250" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-411" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-412" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5270" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-413" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5310" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-414" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5370" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-415" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5350" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-416" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5210" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-417" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-418" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5250" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-419" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5230" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-420" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-421" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5330" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-422" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5310" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-423" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5370" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-424" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5350" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-425" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-426" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5250" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-427" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5230" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-428" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-429" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5270" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-430" value="<div><b>Task</b></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-620" width="200" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-431" value="<i>1G</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="5390" y="-600" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-432" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5169.4400000000005" y="-560" as="sourcePoint" /> + <mxPoint x="5169.4400000000005" y="-620" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-433" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5230" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-434" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5270" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-435" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5330" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-436" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5210" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-437" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5330" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-438" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5310" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-439" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5350" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-440" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-441" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5370" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-442" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-443" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5230" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-444" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5210" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-445" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5250" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-446" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-447" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5270" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-448" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5310" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-449" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5350" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-450" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5330" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-451" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="5190" y="-560" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-452" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-442" target="0AOVjni8bstOHRxbiD9X-433"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5260" y="-530" as="sourcePoint" /> + <mxPoint x="5310" y="-580" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-453" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-444" target="0AOVjni8bstOHRxbiD9X-435"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5210" y="-550" as="sourcePoint" /> + <mxPoint x="5250" y="-330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-454" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-449" target="0AOVjni8bstOHRxbiD9X-440"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5220" y="-540" as="sourcePoint" /> + <mxPoint x="5260" y="-320" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-456" value="<font>paging (mmu)<br></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;fontColor=#435978;" vertex="1" parent="1"> + <mxGeometry x="5290" y="-480" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-457" value="<div style="font-size: 16px;"><font style="font-size: 16px;"><span class="--l --r sentence_highlight" style="font-size: 16px;">Finally, the kernel restores its initial address space.</span></font></div>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="5460" y="-760" width="170" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-458" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5170" y="-639" as="sourcePoint" /> + <mxPoint x="5170" y="-679" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-459" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="5130" y="-679" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-460" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5170" y="-639" as="sourcePoint" /> + <mxPoint x="5170" y="-679" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-461" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="5121.25" y="-610.25" width="57.5" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-462" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="5169.4400000000005" y="-559" as="sourcePoint" /> + <mxPoint x="5169.4400000000005" y="-619" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-463" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="5130" y="-360" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-491" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="-680" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-505" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-506" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-507" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-508" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-509" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1020" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-510" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-511" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-980" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-512" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-940" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-513" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-960" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-514" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-920" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-515" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-860" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-516" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-880" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-517" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1020" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-518" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-519" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-980" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-520" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1000" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-521" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-940" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-522" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-900" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-523" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-920" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-524" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-860" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-525" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-880" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-526" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-527" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-980" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-528" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-1000" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-529" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-940" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-530" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="-960" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-531" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-532" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-533" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-534" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-535" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="-840" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-536" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="-840" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-537" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="-1260" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-538" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1060" y="-160" as="sourcePoint" /> + <mxPoint x="-1060" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-539" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="-1100" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-540" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1060" y="-640" as="sourcePoint" /> + <mxPoint x="-1060" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-541" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-1040" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-542" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-1000" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-543" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-1020" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-544" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-980" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-545" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-940" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-546" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-960" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-547" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-920" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-548" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-880" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-549" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="-900" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-551" value="Initially, the task address space is empty" style="text;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;html=1;" vertex="1" parent="1"> + <mxGeometry x="-410" y="-760" width="170" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-552" value="The kernel starts creating the task's address space by creating an identity mapping from address 0 to the end of the RAM.<br>This mapping&nbsp;is privileged (kernel or ring 0)." style="text;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;html=1;" vertex="1" parent="1"> + <mxGeometry x="490" y="-760" width="180" height="170" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-553" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-680" y="-760" width="200" height="600" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-555" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="-480" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-556" value="The kernel identity maps in the task's address space the framebuffer as a non-privileged mapping (user or ring 3).<br>" style="text;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;html=1;" vertex="1" parent="1"> + <mxGeometry x="1390" y="-760" width="170" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-558" value="The kernel allocates new frames for the task's code, data and stack." style="text;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;html=1;fontFamily=Helvetica;" vertex="1" parent="1"> + <mxGeometry x="2280" y="-760" width="170" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-711" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1670" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-712" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-713" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1710" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-714" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1750" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-715" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1730" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-716" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1770" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-717" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1830" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-718" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1810" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-719" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1670" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-720" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-721" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1710" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-722" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1690" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-723" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1750" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-724" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1790" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-725" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1770" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-726" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1830" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-727" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1810" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-728" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-729" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1710" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-730" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1690" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-731" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1750" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-732" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="1730" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-733" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1690" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-734" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1730" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-735" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1790" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-736" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1670" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-737" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1790" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-738" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1770" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-739" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1810" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-740" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1650" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-741" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="1830" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-774" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2030" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-775" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-776" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2070" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-777" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2110" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-778" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2090" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-779" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2130" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-780" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2190" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-781" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2170" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-782" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2030" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-783" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-784" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2070" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-785" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2050" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-786" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2110" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-787" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2150" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-788" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2130" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-789" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2190" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-790" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2170" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-791" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-792" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2070" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-793" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2050" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-794" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2110" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-795" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2090" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-796" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2050" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-797" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2090" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-798" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2150" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-799" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2030" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-800" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2150" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-801" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2130" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-802" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2170" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-803" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2010" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-804" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2190" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-805" value="<p style="font-size: 16px;"><font face="CMU Sans Serif">newly allocated<br>frames</font></p>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="2290" y="-430" width="110" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-807" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-805" target="0AOVjni8bstOHRxbiD9X-804"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2060" y="-480" as="sourcePoint" /> + <mxPoint x="2110" y="-530" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-808" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-805" target="0AOVjni8bstOHRxbiD9X-781"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2300" y="-390" as="sourcePoint" /> + <mxPoint x="2220" y="-355" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-809" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-805" target="0AOVjni8bstOHRxbiD9X-799"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2300" y="-450" as="sourcePoint" /> + <mxPoint x="2220" y="-415" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-925" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-926" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-927" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-928" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-929" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2990" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-930" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-931" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3030" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-932" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3070" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-933" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3050" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-934" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3090" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-935" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3150" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-936" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3130" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-937" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2990" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-938" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-939" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3030" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-940" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3010" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-941" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3070" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-942" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3110" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-943" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3090" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-944" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3150" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-945" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3130" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-946" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-947" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3030" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-948" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3010" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-949" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3070" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-950" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="3050" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-951" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-640" width="200" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-952" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-953" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-954" value="<b style="font-size: 16px;">Task space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-955" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3170" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-956" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3170" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-957" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="2750" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-958" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2950" y="-160" as="sourcePoint" /> + <mxPoint x="2950" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-959" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="2910" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-960" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2950" y="-640" as="sourcePoint" /> + <mxPoint x="2950" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-961" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-962" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3010" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-963" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2990" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-964" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3030" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-965" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3070" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-966" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3050" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-967" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3090" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-968" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3130" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-969" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3110" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-992" value="<div><b>Task</b></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-620" width="200" height="60" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-993" value="<i>1G</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3170" y="-600" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-994" value="<i>Ring 3<br></i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#006600;" vertex="1" parent="1"> + <mxGeometry x="2901.25" y="-611.25" width="57.5" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-995" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2949.44" y="-560" as="sourcePoint" /> + <mxPoint x="2949.44" y="-620" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-996" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3010" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-997" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3050" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-998" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3110" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-999" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2990" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1000" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3110" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1001" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3090" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1002" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3130" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1003" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1004" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3150" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1005" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1006" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3010" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1007" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2990" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1008" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3030" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1009" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3070" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1010" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3050" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1011" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3090" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1012" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3130" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1013" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="3110" y="-580" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1014" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2970" y="-560" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1016" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-1005" target="0AOVjni8bstOHRxbiD9X-996"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3040" y="-530" as="sourcePoint" /> + <mxPoint x="3090" y="-580" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1017" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-1007" target="0AOVjni8bstOHRxbiD9X-998"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2990" y="-550" as="sourcePoint" /> + <mxPoint x="3030" y="-330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1018" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#b0e3e6;strokeColor=#0e8088;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="0AOVjni8bstOHRxbiD9X-1012" target="0AOVjni8bstOHRxbiD9X-1003"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="3000" y="-540" as="sourcePoint" /> + <mxPoint x="3040" y="-320" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1075" value="<font>paging (mmu)<br></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;fontColor=#435978;" vertex="1" parent="1"> + <mxGeometry x="3060" y="-480" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1077" value="<br>The kernel maps the newly allocated frames contiguously at 1GB in the task's address space and add some extra space for the stack.This mapping&nbsp;is non-privileged (user or ring 3).<br>" style="text;align=left;verticalAlign=middle;rounded=0;fontSize=16;html=1;whiteSpace=wrap;" vertex="1" parent="1"> + <mxGeometry x="3240" y="-760" width="190" height="140" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1208" value="<b>Kernel</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-240" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1209" value="<b>Modules</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-320" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1210" value="<b>Unused</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;fillStyle=cross-hatch;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-200" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1211" value="<b>RAM</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-520" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1212" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-640" width="200" height="120" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1213" value="<b>Framebuffer</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6D0DE;strokeColor=#000000;fontColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-680" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1214" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-760" width="200" height="80" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1215" value="<b style="font-size: 16px;">Kernel space</b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-800" width="200" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1216" value="<i>4GB</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="2810" y="-760" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1217" value="<i>0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="2810" y="-200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1218" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="2390" y="-360" width="360" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1219" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2590" y="-160" as="sourcePoint" /> + <mxPoint x="2590" y="-520" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1220" value="<i>Ring 0</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=270;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1"> + <mxGeometry x="2550" y="-680" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1221" value="" style="endArrow=blockThin;startArrow=blockThin;html=1;rounded=0;endFill=1;startFill=1;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2590" y="-640" as="sourcePoint" /> + <mxPoint x="2590" y="-680" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1222" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1223" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2650" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1224" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2630" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1225" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2670" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1226" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2710" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1227" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2690" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1228" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2730" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1229" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2770" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1230" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2750" y="-260" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1231" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2630" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1232" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1233" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2670" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1234" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2710" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1235" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2690" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1236" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2730" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1237" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2790" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1238" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2770" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1239" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2630" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1240" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1241" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2670" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1242" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2650" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1243" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2710" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1244" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2750" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1245" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2730" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1246" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2790" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1247" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2770" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1248" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1249" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2670" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1250" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2650" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1251" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2710" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1252" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="2690" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1253" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2650" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1254" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2690" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1255" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2750" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1256" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2630" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1257" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2750" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1258" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2730" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1259" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2770" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1260" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2610" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1261" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="2790" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1263" value="<i>stack</i>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="3111" y="-612" width="40" height="19" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1266" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4850" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1267" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1268" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4890" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1269" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4930" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1270" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4910" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1271" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4950" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1272" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5010" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1273" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4990" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1274" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4850" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1275" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1276" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4890" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1277" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4870" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1278" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4930" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1279" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4970" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1280" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4950" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1281" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="5010" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1282" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4990" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1283" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1284" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4890" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1285" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4870" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1286" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4930" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1287" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1"> + <mxGeometry x="4910" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1288" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4870" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1289" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4910" y="-360" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1290" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4970" y="-340" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1291" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4850" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1292" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4970" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1293" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4950" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1294" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4990" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1295" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="4830" y="-400" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="0AOVjni8bstOHRxbiD9X-1296" value="<i>T1</i>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1"> + <mxGeometry x="5010" y="-380" width="20" height="20" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/course/images/tasks_and_kernel_addr_spaces_1.odg b/course/images/tasks_and_kernel_addr_spaces_1.odg new file mode 100644 index 0000000000000000000000000000000000000000..f0fde77aa5d5c3e330613abb4f650f17b1c8f58b Binary files /dev/null and b/course/images/tasks_and_kernel_addr_spaces_1.odg differ diff --git a/course/images/tasks_and_kernel_addr_spaces_2.odg b/course/images/tasks_and_kernel_addr_spaces_2.odg new file mode 100644 index 0000000000000000000000000000000000000000..aa0455f7cf4be9b08d2f6f632a084174a88c2a5d Binary files /dev/null and b/course/images/tasks_and_kernel_addr_spaces_2.odg differ diff --git a/course/images/tasks_overview.odg b/course/images/tasks_overview.odg new file mode 100644 index 0000000000000000000000000000000000000000..b2f074d9abf2d59e5a43911f749825407e24a7aa Binary files /dev/null and b/course/images/tasks_overview.odg differ diff --git a/course/images/x86_bootloader.odg b/course/images/x86_bootloader.odg new file mode 100644 index 0000000000000000000000000000000000000000..065e115324c6116b5290d132e092b4fffcccb07e Binary files /dev/null and b/course/images/x86_bootloader.odg differ