標題: | Linux平台上驅動程式層網路事件通知機制之設計與實作 Design and Implementation of Driver-Level Network Event Notification Mechanism in Linux |
作者: | 周大鈞 Ta-Juan Chou 曾建超 Chien-Chao Tseng 資訊科學與工程研究所 |
關鍵字: | Linux;驅動程式;網路;事件通知;Linux;device driver;networking;event notification |
公開日期: | 2004 |
摘要: | 近年由於各種無線網路(GPRS、3G、Wireless LAN等)接取技術的成熟,在行動設備(例如手機、個人數位助理或是筆記型電腦)上同時配備多種無線網路接取介面也成為潮流,但是,由於各種無線網路接取技術的特性不同,因此,我們通常需要一套介面管理的機制使得使用者能夠在不同環境下,根據自己的喜好設定,選擇適當的網路接取方法。
介面管理通常在應用層(Application Layer)處理,傳統上,應用層的介面管理程式會週期性的發出系統呼叫,以取得底層介面的資訊(例如網路介面的種類、頻寬或連線狀況),但是,由於網路介面的狀態改變可能不會如此的頻繁,因此頻繁的發出系統呼叫可能會造成系統多餘的負荷,此外,在需要快速換手的情況下,介面管理程式必須對網路介面的狀態改變做出迅速的反應,而在傳統的狀況下,網路介面狀態更新的頻率取決於程式發出系統呼叫的頻率,而且受到作業系統排程的影響,因此可能無法對網路設備狀態的改變作出即時的處理。
為了解決上述的問題,我們設計並且實作了一套「驅動程式層網路事件通知機制」,將網路介面相關的狀態改變利用類似傳統UNIX作業系統上的信號(signal)機制通知使用者空間的程式,並且修改了排程的演算法,使得使用者空間程式不必再發出無意義的系統呼叫,加快對於網路介面狀態改變的處理,增進系統效能,並且使得利用本論文提出的機制所實作出來的應用程式更適用於多網路的環境之下。 As the wireless technologies advance, it is now a trend to equip a handheld device with multiple wireless interfaces of different wireless accessing technologies, such as GPRS, 3G, and Wireless LAN. Because different wireless access technologies have different communication properties and constraints, the multi-interfaced mobile devices need an interface manager that can select the most appropriate interface according to the user preferences and statuses of wireless networks. Current Linux operating system is insufficient for the interface manager to react promptly according to the interface statuses. Interface management is normally accomplished by user programs running in the application layer. Therefore, application programs that manage interfaces need to issue system calls periodically to retrieve interface statuses and reacts to the changes accordingly. However, interface statuses may remain the same for a long period but change suddenly depending on the network deployment and environmental conditions. If the interval of system calls is short then these system calls will result in wasting system resources for useless information. On the other hand, if the system call interval is long then interface management applications may not react promptly to the changes of interface statuses. Furthermore, even with frequent system calls, interface management applications may still not be able to gather the statuses in time due to the scheduling policy of the operating system. Therefore in order for interface management applications to react promptly to the changes in interface statuses, some notification mechanism is required for the operating system to notify interface management applications of the changes in interface statuses. In this thesis, we proposed and implemented a new mechanism called “Driver-level Network Event Notification Mechanism” for the Linux operating system. With the mechanism, the Linux operating system can notify user-mode processes of the changes in interfaces statuses to eliminate intensive system calls. The mechanism also provides a signal-like method in UNIX for processes to register handler functions. In order to speedup the handling of the interface status changes, we also modify the scheduling process of the Linux kernel. Experimental results show that our mechanism can indeed shorten the time an interface management program reacts to the changes in interface statuses and eliminate unnecessary system calls invoked by the interface management program. |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT009217512 http://hdl.handle.net/11536/73124 |
顯示於類別: | 畢業論文 |