30 lines
939 B
Plaintext
30 lines
939 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 — block state and heap statistics
|
|
|
|
[*] --> Free : 01 one list node
|
|
Free --> Allocated : 02 first-fit + split\ncurrent free decreases
|
|
Allocated --> Fragmented : free A and C
|
|
Fragmented : 03 two free blocks
|
|
Fragmented : sum free > largest block
|
|
Fragmented --> Coalesced : free B\naddress-order joins neighbours
|
|
Coalesced : 04 one free block
|
|
Coalesced : current free = initial free
|
|
Coalesced --> OOMChecked : request > arena
|
|
OOMChecked : NULL + hook once
|
|
OOMChecked --> [*]
|
|
|
|
state "05 minimum-ever" as MIN
|
|
Allocated -right-> MIN : records low watermark
|
|
Fragmented -right-> MIN : does not rise
|
|
Coalesced -right-> MIN : history remains
|
|
@enduml
|