  Minimizing the energy consumption of Linux-based devices is an essential step
towards their wide deployment in various IoT scenarios. Energy saving methods
such as duty-cycling aim to address this constraint by limiting the amount of
time the device is powered on. In this work we study and improve the amount of
time a Linux-based IoT device is powered on to accomplish its tasks. We analyze
the processes of system boot up and shutdown on two platforms, the Raspberry Pi
3 and Raspberry Pi Zero Wireless, and enhance duty-cycling performance by
identifying and disabling time-consuming or unnecessary units initialized in
the userspace. We also study whether SD card speed and SD card capacity
utilization affect boot up duration and energy consumption. In addition, we
propose 'Pallex', a parallel execution framework built on top of the 'systemd
init' system to run a user application concurrently with userspace
initialization. We validate the performance impact of Pallex when applied to
various IoT application scenarios: (i) capturing an image, (ii) capturing and
encrypting an image, (iii) capturing and classifying an image using the the
k-nearest neighbor algorithm, and (iv) capturing images and sending them to a
cloud server. Our results show that system lifetime is increased by 18.3%,
16.8%, 13.9% and 30.2%, for these application scenarios, respectively.

Operating Systems;Distributed, Parallel, and Cluster Computing;Networking and Internet Architecture;Performance