The emergence of the technology of Wireless Sensor Networks has lead to many changes in current and traditional computational techniques. Traditional operating systems do not take into consideration the limitations in space and energy of wireless sensor networks. New system architectures have emerged to overcome these limitations. Each follows one of two design concepts, event-driven or thread-driven. This paper studies the differences between the aforementioned system designs, pointing out the causes of the tradeoff. The paper then introduces a thread-driven scheduling algorithm focusing on the value of preemption to overcome the energy tradeoff brought by event-driven systems. Our proposed algorithm reduces the average amount of energy spent under high system load which was a significant scenario where event-driven systems showed better energy savings.