┌─┐ ║"│ └┬┘ ┌┼┐ │ ┌──┐ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌┴┐ │OS│ │Sensor Driver│ │Sensor Service│ │Product Server│ User └┬─┘ └──────┬──────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ ╔═══════╤═══╪═════════════════╪═════════════════════════╪════════════════════════╪═════════════════════════╪═════════════════╗ ║ LOOP │ │ │ │ │ │ ║ ╟───────┘ │ │ │ │ │ ║ ║ │ perform activity│ │ │ │ ║ ║ │ ────────────────> │ │ │ ║ ║ │ │ │ │ │ ║ ║ │ │ trigger kernel callbacks│ │ │ ║ ║ │ │ ────────────────────────> │ │ ║ ║ │ │ │ │ │ ║ ║ │ │ │────┐ │ │ ║ ║ │ │ │ │ produce events │ │ ║ ║ │ │ │<───┘ │ │ ║ ║ │ │ │ │ │ ║ ║ │ │ │ pull events │ │ ║ ║ │ │ │ <─────────────────────── │ ║ ║ │ │ │ │ │ ║ ║ │ │ │ │ push events │ ║ ║ │ │ │ │ ────────────────────────> ║ ╚═══════════╪═════════════════╪═════════════════════════╪════════════════════════╪═════════════════════════╪═════════════════╝ │ │ │ │ │ │ │ │ │ │