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