30 lines
974 B
Plaintext
30 lines
974 B
Plaintext
@startuml
|
|
scale 600 height
|
|
top to bottom direction
|
|
skinparam backgroundColor transparent
|
|
skinparam shadowing false
|
|
skinparam defaultFontName Monospace
|
|
skinparam defaultFontSize 10
|
|
skinparam stateBorderColor #2c7794
|
|
skinparam stateBackgroundColor #edf6fa
|
|
skinparam ArrowColor #8095a1
|
|
title A6 STATE — reusable states of the same RV32 arena
|
|
|
|
[*] --> Free : 01 E01 one list node
|
|
Free --> Allocated : 02 E04 A+B+C allocated\ncurrent free = 3936
|
|
Allocated --> Fragmented : E05 free A\nE06 free C
|
|
Fragmented : 03 E06 two free blocks
|
|
Fragmented : sum free > largest block
|
|
Fragmented --> Coalesced : 04 E07 free B\nmerge previous, then next
|
|
Coalesced : one free block
|
|
Coalesced : current = largest = initial
|
|
Coalesced --> OOMChecked : 05 E08 request > arena
|
|
OOMChecked : NULL · hook=1 · PASS=1
|
|
OOMChecked --> [*]
|
|
|
|
state "minimum-ever" as MIN
|
|
Allocated -right-> MIN : records low watermark
|
|
Fragmented -right-> MIN : does not rise
|
|
Coalesced -right-> MIN : history remains
|
|
@enduml
|