stem/IOT/OS/Composition.md
andy 3fc7fa863e vault backup: 2023-12-22 12:45:16
Affected files:
.obsidian/graph.json
.obsidian/workspace-mobile.json
.obsidian/workspace.json
Christmas Movies.md
Politcs/Fascism.md
Politcs/Neoliberalism/Neoliberalism.md
STEM/AI/Neural Networks/CNN/Interpretation.md
STEM/CS/Languages/Python.md
STEM/IOT/OS/Composition.md
STEM/IOT/OS/Contiki.md
STEM/IOT/OS/OS.md
STEM/IOT/OS/README.md
STEM/img/iot-event-based.png
STEM/img/iot-os-stack.png
STEM/img/iot-thread-based.png
2023-12-22 12:45:16 +00:00

1.5 KiB

Threading

Smallest sequence of programmed instructions that can be managed independently by a scheduler From <https://en.wikipedia.org/wiki/Thread_(computing)>

  • Instructions run independently by scheduler
  • Single address space
  • One thread blocked for I/O
    • Tasks run in other threads
  • Need locks and mutexes
    • Coordination between threads
  • Complicated
    • Deadlocks

Protothreads

  • Lightweight
  • Stack-less
  • Interruptible tasks for event-based
  • Conditional blocking statement
    • Blocks until given statement is true
  • Use timer to manage
  • Invoked whenever process receives message from another process or timer

Events

Action or occurrence recognized by software, often originating asynchronously from the external environment, that may be handled by the software From <https://en.wikipedia.org/wiki/Event_(computing)>

  • Event loop
    • Waits for events
      • Inputs
  • On event
    • Collects info
      • Dispatches to call-back
  • Register handlers with OS scheduler
  • Kernel usually runs loop to poll for events
  • Blocking operation
    • Register call-back
      • Return control to scheduler

Radio Sleep

  • Energy efficiency
  • Congestion

Event-based

Thread-based

  • Less complex
  • Faster
    • Pointer-based