multithreading optimization techniques for sensor network...

30
Multithreading Optimization Techniques for Sensor Network Operating Systems Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim Hojung Cha Yonsei University, Korea 2007. 1. 31. Hyoseung Kim [email protected]

Upload: others

Post on 13-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Multithreading Optimization Techniques forSensor Network Operating Systems

Multithreading Optimization Techniques forSensor Network Operating Systems

Hyoseung Kim Hojung Cha

Yonsei University, Korea

2007. 1. 31.

Hyoseung [email protected]

Page 2: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 2EWSN 2007

Motivation (1)Motivation (1)

• Sensor network OS requirements– Support high concurrency – Minimal memory usage and low energy consumption

• TinyOS and SOS

– “TinyOS achieved 30x improvement in data memory and 12x reduction in power consumption over GPOS”

S.-F. Li et. al, “Low Power Operating System for Heterogeneous Wireless Communication Systems,”Proc. of the Workshop on Compilers and Operating Systems for Low Power, 2001.

Cooperatively-operated tasks No preemption Single stack

Event-driven Sensor Operating Systems

Page 3: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 3EWSN 2007

Motivation (2)Motivation (2)

• Disadvantage of event-driven model

Split a long-running task into

several phases

Manage event handlers’

states

Tasks are inter-dependent inexecution context

Changes in application requirements

Repeated analysis of System concurrencySystem restructuring

Page 4: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 4EWSN 2007

Motivation (3)Motivation (3)

• Multithreading model– High concurrency with preemption – Automatic state management – Blocking I/O interface

• Problem: overhead of multithreading– Space overhead: stack reservation for each thread – Time overhead: scheduler, context switch, time management– Scheduling policy optimized for sensor applications

foo ()

foo_2 ()

foo_1 ()I/O

I/O doneI/O

Thread model: Event model:

Page 5: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 5EWSN 2007

Our GoalsOur Goals

• Optimized techniques for the implementation of multithreaded sensor network operating systems!

(1) Memory optimization– Single kernel stack reduces the size of thread stack requirement – Stack-size analysis assigns an appropriate stack size to each

thread automatically

(2) Energy reduction– Variable timer reduces energy consumption of time management,

such as CPU-time sharing and software timers

(3) Sensor-aware scheduling policy– Event-boosting thread scheduler satisfies the response time

requirement for sensor applications

Page 6: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 6EWSN 2007

RETOS Operating SystemRETOS Operating System

Page 7: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 7EWSN 2007

IssuesIssues

Memory Optimization

Energy Reduction

Scheduling Policy

Page 8: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 8EWSN 2007

Single Kernel Stack (1)Single Kernel Stack (1)

• Size of thread stack– Thread function + System calls + Interrupt handlers

• Single kernel stack – Separate the thread stack into kernel and user stacks– Maintain a unitary kernel stack for system calls and interrupt

handlers to reduce the thread stack bound

User Stack

Kernel Stack

Thread

User Stack

Kernel Stack

Thread

User Stack

Kernel Stack

Thread

User Stack

Kernel Stack

Thread

System Call

Interrupt Handler

Hardware Context

Page 9: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 9EWSN 2007

• Results of running multithread sensor applications

• If each system executes all applications in this table,

Single Kernel Stack (2)Single Kernel Stack (2)

380336984Surge15210681Pingpong228157182Sensing304214503R_recv304217783R_send228416782MPT_mobile

76

152131681MPT_backboneSingleMultiple(byte)(byte)Threads

Kernel stack (byte)Data section User stack Num. of Applications

Multiple kernel stack system1748 bytes for kernel stack

Single kernel stack system76 bytes for kernel stack

Page 10: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 10EWSN 2007

Stack-size Analysis (1)Stack-size Analysis (1)

• With MMU-less hardware, application developers must estimate accurate thread stack size– Stack overflow RAM overhead

• Stack-size analysis– Estimate optimal stack requirement and pass the size to the kernel– Produce a control flow graph of an application – Calculate the maximum possible thread stack size with DFS

Directly adjust stack pointer+-Nadd/sub SP, NPush return address+ 2call #labelPop a value- 2pop varPush a value+ 2push var

DescriptionStack usagesInstruction

Ex) TI MSP430 stack instructions

Page 11: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 11EWSN 2007

Stack-size Analysis (2)Stack-size Analysis (2)

• Exception 1: Recursive call– Create cycles in the flow graph

• Exception 2: Indirect call– Cause a disconnect in the flow graph

• Results – The results of the technique were equal to 1 or 2 words more than

the results of simulation– The same call graph with the program’s control flow

Page 12: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 12EWSN 2007

IssuesIssues

Memory Optimization

Energy Reduction

Scheduling Policy

Page 13: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 13EWSN 2007

Variable Timer (1)Variable Timer (1)

• Major energy overhead of the multithreaded system– Scheduling

– Time management

Frequency of Thread scheduling

Frequency of Message passing<<

Context saving/restoring(TI MSP430) 90 clock cycles<

Timer interrupt handler & timer bottom half handler 320 clock cycle>

100HZ of periodic timer interrupt : 32,000 clock cycles/sec

We have focused on reducing the overhead of time management!!

Page 14: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 14EWSN 2007

Variable Timer (2)Variable Timer (2)

• Problem: Time management of Multi-threaded GPOS– Based on the periodic timer interrupt– Continuously trigger the interrupt handler even if it is not required

► Let the timer interrupt interval be t and A have 3t of time quantum.► Let A be executed until 2.5t.

− If there is no timer request to be handled, then − If there is no thread to be scheduled, then − If A wanted to be woken up after 3t of sleep, then

the time drift is inevitable.

these are useless.these are useless.

sleep for 3t + 0.5t

Page 15: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 15EWSN 2007

Variable Timer (3)Variable Timer (3)

• Principle: Adjust the next timer interrupt to the earliest upcoming timeout

► Let A and B be threads with 2t of time quantum.► Let there be no external interrupt, except the timer interrupt.

1. Next thread: A, Earliest upcoming timeout: A’s quantum expiration2. Timer interrupts A has exhausted its time quantum3. Next thread: B, Earliest upcoming timeout: B’s quantum expiration4. Timer interrupts B has exhausted its time quantum5. All running threads (A, B) have exhausted their quanta,

Scheduler re-allocates time quantum durations

Page 16: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 16EWSN 2007

Variable Timer (3)Variable Timer (3)

• Principle: Adjust the next timer interrupt to the earliest upcoming timeout

► Let A and B be threads with 2t of time quantum.► Let there be no external interrupt, except the timer interrupt.

6. Next thread: A, Earliest upcoming timeout: A’s quantum expiration7. A issued sleep( 0.75t ) and blocked

Adjust next timer interrupt: current time + 0.75t = 5.5t8. Next thread: B, Timer is not changed

(B’s time quantum expiration is later than A’s wakeup time)9. Timer interrupts: sleep( 0.75t ) expired10. Next thread: A.

sleep

Page 17: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 17EWSN 2007

Variable Timer (4)Variable Timer (4)

• Energy efficiency of variable timer– Measured the active CPU time to estimate the energy consumption– The effectiveness differs from the execution interval of applications

0

10000

20000

30000

40000

50000

MPTbackbone

MPTmobile

R_send R_recv Sensing Pingpong Surge

cycl

es/s

ec

Variable timer (1tick=1ms)Periodic timer (1tick=10ms)

Page 18: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 18EWSN 2007

IssuesIssues

Memory Optimization

Energy Reduction

Scheduling Policy

Page 19: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 19EWSN 2007

RETOS SchedulingRETOS Scheduling

• Priority-based, time-sharing, preemptive scheduling– When time quantum expires, timer interrupts– Support both static and dynamic priority– Threads are preemptive (but the kernel is non-preemtive).– The scheduler is invoked in a deferred way

: before returning to the user mode

• POSIX.4 Compatibility– SCHED_FIFO: static priority “real-time” class with no time limit– SCHED_RR: static priority “real-time” class with time quantum

• Cannot be blocked by best-effort threads not hard real-time– SCHED_OTHER: best effort class (conventional threads)

Page 20: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 20EWSN 2007

Event-boosting Thread Scheduling (1)Event-boosting Thread Scheduling (1)

• Typical sensor applications on multithreaded systems

– Mostly I/O bound job– Switch between I/O bound and CPU bound

sensor_read(LIGHT, &buf);

process();

Timer expired

sleep(PERIOD);

radio_recv(port, len, &buf);

process();

radio_send(addr, port, len, &buf);

Packet forwarding Sensing

Page 21: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 21EWSN 2007

Event-boosting Thread Scheduling (2)Event-boosting Thread Scheduling (2)

• Principle: Priority adjustment for event-boosting– Boosts the priority of the thread requesting to handle a sensor

application specific event– Expiration of the timer request– Receiving a packet– Sensing

Decrease dynamic priority- 1 per 8msConsuming CPU timeSensor event request+1sensor_read()Radio event request+2radio_recv()Timer request+3sleep()Thread created4Init.

DescriptionDynamic priority

Page 22: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 22EWSN 2007

Event-boosting Thread Scheduling (3)Event-boosting Thread Scheduling (3)

• Principle: Priority adjustment for event-boosting► Let A and B have the same initial priority and 2t of time quantum► Let A be periodic sensing thread (interval: 3t)► Let B be CPU-bound thread

1. A : wakeup, variable timer sets the next timer interrupt at 2tA : process sleep, priority ↑

2. Next thread: B, Variable timer adjusts the next timer interrupt3. Timer interrupts, B : CPU time consumed, priority ↓4. B exhausted its time quantum Re-allocate time quantum.

Next thread: B.Earliest upcoming timeout: 3t (A’s sleep expiration)

Page 23: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 23EWSN 2007

Event-boosting Thread Scheduling (4)Event-boosting Thread Scheduling (4)

• Principle: Priority adjustment for event-boosting► Let A and B have the same initial priority and 2t of time quantum► Let A be periodic sensing thread (interval: 3t)► Let B be CPU-bound thread

5. Timer interrupts Thread A wakes up6. A : priority boosted by sleep() system call

B : CPU time consumed, priority ↓ preemption (next thread: A)7. A issued sleep() and blocked8. Next thread : B,

B will execute until the time quantum expiration

Page 24: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 24EWSN 2007

Event-boosting Thread Scheduling (5)Event-boosting Thread Scheduling (5)

• Results of the event-boosting policy– A packet round-trip program – # of round-trips per second according to the scheduling policy

50

60

70

80

90

100

110

0 1 2 3 4 5Num. of computation thread

Rou

nd tr

ips

/ sec

SCHED_RR (Always higher priority than others)

SCHED_OTHER (Simple round-robin)

SCHED_OTHER (Event-boosting policy)

Page 25: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 25EWSN 2007

RETOS vs. TinyOS (1)RETOS vs. TinyOS (1)

• MPT(Mobile object tracking) app.– Based on ultrasound localization technique– Consist of Mobile node and Backbone node– Mobile node: computes its location

using Trilateration

• Code size for MPT

1,18225,1624346,84874818,31470117,222MPTMobile

89118,80614349274818,31446712,614MPTBackbone

RAMROMRAMROMRAMROMRAMROM

RETOS Total(bytes)

RETOS Lib. + App. (bytes)

RETOS Kernel(bytes)

TinyOS(bytes)

Page 26: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 26EWSN 2007

RETOS vs. TinyOS (2)RETOS vs. TinyOS (2)

• Packet handling delay (MPT + Periodic RF Send/Recv)– RETOS: delay was almost the same whether or not MPT was run– TinyOS without MPT: delay was slightly shorter than RETOS– TinyOS with MPT: the considerably longer delay was detected periodically

0

1000

2000

3000

4000

5000

6000

1 2 3 4 5 6 7 8 9 Seq. no.

dela

y (u

s)

RETOSRETOS with MPTTinyOSTinyOS with MPT

Page 27: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 27EWSN 2007

RETOS vs. TinyOS (3)RETOS vs. TinyOS (3)

• Computational Overhead

• RETOS Overhead analysis

App code checking(1.58%)

Context switching

(0.37%)

Mode switching(0.26%)

Scheduler(0.93%)

Etc2.72%

User thread56%

Kernel42%

679,200

691,491

0 1x105 2x105 3x105 4x105 5x105 6x105 7x105 8x105

TinyOS

RETOS

cycles/sec

Page 28: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 28EWSN 2007

ConclusionsConclusions

• Optimized multithreading techniques for sensor network operating systems

(1) Memory Optimization : Single kernel stack, Stack-size analysis(2) Energy Reduction : Variable timer(3) Scheduling Policy : Event-boosting thread scheduler

• Our experiences– The overhead of multithreading is reasonable.– The system guarantees minimal response delay to sensor

applications without manual configurations.

Page 29: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 29EWSN 2007

RETOS Operating SystemRETOS Operating System

• Current status– Ported to TI MSP430, AVR ATmega128 and CC2430– System-level power management– Monitoring tools– Network stack optimization

H. Shin, H. Cha, "Supporting Application-Oriented Kernel Functionality for Resource Constrained Wireless Sensor Nodes," The 2nd International Conference on Mobile Ad-hoc and Sensor Networks (MSN 2006), Hong Kong, China, December 2006.

Loadable modules

S. Choi, H. Cha, "Application-Centric Networking Framework for Wireless Sensor Nodes," The 3rd Annual International Conference on Mobile and Ubiquitous Systems: Networks and Services (MOBIQUITOUS) 2006, San Jose, California, July 2006.

Network stack

H. Kim, H. Cha, "Towards a Resilient Operating System for Wireless Sensor Networks",The 2006 USENIX Annual Technical Conference (USENIX'06), Boston, Massachusetts, June 2006.

Safety mechanism

Page 30: Multithreading Optimization Techniques for Sensor Network ...hyoseung/pdf/hskim-ewsn2007...Multithreading Optimization Techniques for Sensor Network Operating Systems Hyoseung Kim

Mobile Embedded System Lab., Yonsei University 30EWSN 2007

Questions