Summary: | 碩士 === 國立暨南國際大學 === 資訊工程學系 === 98 === As the rapid development of hardware and maturity of technology, embedded systems’ functions become more and more versatile and complex. In recent years, many researches focus on providing dynamic update functionality in embedded systems. The advantage of dynamic update is that we can dynamically upgrade system’s functionality without rebooting the whole system. Thus, this update would not corrupt system’s status or stop any system services. Dynamic update mechanism is very important for embedded systems such as wireless sensor modes. When they are deployed or sold, they can not be reclaimed to upgrade their functionalities.
In this thesis, we have implemented a platform that can dynamically upgrade LyraOS [2-7] embedded operating system without rebooting the whole systems. Although the original LyraOS has already supported a dynamic update mechanism [6,7], its aim is to reduce energy consumption while upgrading system’s functionality. In addition, the mechanism only supports demand loading functionality. In this thesis, we have further implemented a platform for supporting dynamic update dissemination mechanism and providing system resource protection mechanism. A component manager is developed to maintain the downloaded components and their component dependency. The downloaded components can invoke component manager exported API to download their dependent components into our platform.
Embedded systems’ resources such as memory and energy are usually limited. If our platform does not support any system resource protector functionality, the downloaded components have potential risk to misuse system resources. Although the original LyraOS has supported a memory protection mechanism, it uses ARM’s hardware protection domain to restrict the memory access permission of each downloaded component. Thus, downloaded components would not corrupt the memory spaces of other components or kernel. However, downloaded components can arbitrary acquire system resources through invoking system call service. In this thesis, we have designed and implemented a system resource protection mechanism to protect our system’s resources. Through this mechanism, the embedded client will record the information of each system resource that has been allocated to components. If our system detects the misuse of system resource from an error component, it will reclaim the wasted resource and remove the error component out of our embedded client. Currently, our platform can reclaim lost memory space, ensure normal execution of critical sections, and prevent null pointer access.
Experimental results demonstrate that our platform can effectively support dynamic update and prevent incautiously components to misuse our system’s resources. Our work totally increases about 10% of the size of LyraOS kernel image. The extra overhead of garbage collection is less than 5 microseconds. In order to ensure the normal execution of a critical section, the extra overhead is less than 11 microseconds. The extra overhead for handling null pointer access is about 13915 microseconds. The extra overhead for downloading a component into our embedded client is about 66 microseconds. The extra overhead for removing a component out of our embedded client is about 190 microseconds.
|