94
F. Firouzi et al.
scheduler. Scheduling is a foundational element in RTOSs. In general, there are
two different techniques for scheduling:
• Non-preemptive Scheduling – When a process begins running and the resources
(CPU) are allocated to it, it keeps running and holds all the resources until the
process is completed or the process switches to waiting state.
• Preemptive Scheduling – In this technique, a process can be preempted. In other
words, a task given to a CPU can be removed. Preemptive scheduling can be
implemented in several ways including:
• Round Robin (Cyclic Executive) Scheduling – This scheduling utilizes time
sharing by assigning a time slot or quantum to jobs using a circular pattern
without designating any particular job as a priority.
• Interrupt-Driven Scheduling – In this scheduling technique, tasks can be
prioritized and the most urgent task gets the resources (CPU) first. If a new
task with a greater priority is received, the scheduler ends the current task to
start running the new highest priority task.
2.6 Summary
In this chapter, the “Things” in IoT and its main building blocks (i.e., processing
unit, sensors, actuators, power source, and connectivity) have been presented.
Next, we provided the details of the main technologies of sensors and actuators.
Finally, we described the details of a microcontroller (ARM Cortex-M) covering
all the details of registers, addressing mode, interrupts, GPIOs, parallel/serial
interfaces (e.g., UART, SPI, I2C), timers, clock tree, low-power modes, as well as
programming and debugging techniques.
References
1. IBM. Available from: https://www.ibm.com
2. D. Hanes et al., IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for
the Internet of Things (Cisco Press, 2017)
3. A. Rayes, S. Salam, Internet of Things—From Hype to Reality (The road to Digitization. River
Publisher Series in Communications, Denmark, 2017), p. 49
4. openlabpro. Available from: https://openlabpro.com/guide/relays-and-actuators/
5. National Instruments. Available from: http://www.ni.com/product-documentation/3960/en/
6. Microcontrollers – Types & Applications. Available from: https://www.elprocus.com/
microcontrollers-types-and-applications/
7. Memory-mapped IO vs Port-mapped IO. Available from: https://www.bogotobogo.com/
Embedded/memory_mapped_io_vs_port_mapped_isolated_io.php
8. ARM. Available from: https://www.arm.com/
9. D. Ibrahim, ARM-Based Microcontroller Projects Using Mbed (Newnes, 2019)
10. Sparkfun. Available from: https://learn.sparkfun.com/tutorials
F. Firouzi et al.
scheduler. Scheduling is a foundational element in RTOSs. In general, there are
two different techniques for scheduling:
• Non-preemptive Scheduling – When a process begins running and the resources
(CPU) are allocated to it, it keeps running and holds all the resources until the
process is completed or the process switches to waiting state.
• Preemptive Scheduling – In this technique, a process can be preempted. In other
words, a task given to a CPU can be removed. Preemptive scheduling can be
implemented in several ways including:
• Round Robin (Cyclic Executive) Scheduling – This scheduling utilizes time
sharing by assigning a time slot or quantum to jobs using a circular pattern
without designating any particular job as a priority.
• Interrupt-Driven Scheduling – In this scheduling technique, tasks can be
prioritized and the most urgent task gets the resources (CPU) first. If a new
task with a greater priority is received, the scheduler ends the current task to
start running the new highest priority task.
2.6 Summary
In this chapter, the “Things” in IoT and its main building blocks (i.e., processing
unit, sensors, actuators, power source, and connectivity) have been presented.
Next, we provided the details of the main technologies of sensors and actuators.
Finally, we described the details of a microcontroller (ARM Cortex-M) covering
all the details of registers, addressing mode, interrupts, GPIOs, parallel/serial
interfaces (e.g., UART, SPI, I2C), timers, clock tree, low-power modes, as well as
programming and debugging techniques.
References
1. IBM. Available from: https://www.ibm.com
2. D. Hanes et al., IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for
the Internet of Things (Cisco Press, 2017)
3. A. Rayes, S. Salam, Internet of Things—From Hype to Reality (The road to Digitization. River
Publisher Series in Communications, Denmark, 2017), p. 49
4. openlabpro. Available from: https://openlabpro.com/guide/relays-and-actuators/
5. National Instruments. Available from: http://www.ni.com/product-documentation/3960/en/
6. Microcontrollers – Types & Applications. Available from: https://www.elprocus.com/
microcontrollers-types-and-applications/
7. Memory-mapped IO vs Port-mapped IO. Available from: https://www.bogotobogo.com/
Embedded/memory_mapped_io_vs_port_mapped_isolated_io.php
8. ARM. Available from: https://www.arm.com/
9. D. Ibrahim, ARM-Based Microcontroller Projects Using Mbed (Newnes, 2019)
10. Sparkfun. Available from: https://learn.sparkfun.com/tutorials
