Abstract
Wireless sensor networks are sensing, computing and communication infrastructures that allow us to monitor, instrument, observe, and respond to phenomena in the harsh environment. Generally, the wireless sensor networks are composed of many deployed sensor nodes that were designed to be very cost-efficient in terms of production cost. For example, UC Berkeley's MICA motes have only 8-bit CPU, 4KB RAM, and 128KB FLASH memory space. Therefore, sensor operating systems that run on the sensor nodes should be able to operate efficiently in terms of the resource management. In this paper, we present a dynamic threads stack management scheme for space-constrained and multi-threaded sensor operating systems. In this scheme, the necessary stack space of each function is measured on compile-time. Then, the information is used to dynamically allocate and release each function's stack space on run-time. It was implemented in Nano-Qplus sensor operating system. Our experimental results show that the proposed scheme outperforms the existing fixed-size stack allocation mechanism.
무선 센서 네트워크는 자연 환경의 정보를 수집하고, 수집한 정보를 가공하고, 가공된 정보를 무선 통신을 통하여 사용자에게 실시간으로 전달하는 기능을 가진 설비이다. 이러한 센서 네트워크는 다수의 무선 센서 노드들로 이루어지고, 이 센서 노드들은 비용 효율성의 이유로 매우 제한적인 하드웨어 칩들로 구성된다. 예를 들어, UC Berkeley에서 설계한 MICA센서 노드에는 8-bit CPU, 4KB RAM, 그리고, 128KB FLASH 등으로 구성된다. 따라서 이것들을 동작시키는 센서 운영체제는 이러한 하드웨어 제약성을 감내할 수 있어야 한다. 본 논문에서는 멀티 쓰레디드 센서 운영체제를 위한 공간 효율적인 쓰레드 스택 관리 기법을 제안한다. 제안한 기법은 컴파일 시점에 각 쓰레드 함수의 스택 사용량 정보를 측정한다. 측정된 결과를 바탕으로, 함수 호출 시와 같은 스택 영역의 요구가 발생할 경우에 스택의 할당 및 반환 작업을 수행하여 쓰레드 스택 영역을 동적으로 관리한다. 본 기법은 나노 Qplus 센서 운영체제에서 구현되었다. 본 논문의 성능 실험을 통하여, 제안한 기법을 사용하는 것이 기존의 정적인 스택 관리 방법을 사용하는 것 보다 스택 메모리 공간을 보다 효율적으로 관리할 수 있음을 확인한다.