国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種嵌入式分區(qū)操作系統(tǒng)中虛擬化串口的設計與實現(xiàn)

2016-12-31 19:41:14郭芳超周霆徐曉光中航工業(yè)西安航空計算技術研究所
數(shù)碼世界 2016年6期
關鍵詞:下層中斷串口

郭芳超 周霆 徐曉光中航工業(yè)西安航空計算技術研究所

?

一種嵌入式分區(qū)操作系統(tǒng)中虛擬化串口的設計與實現(xiàn)

郭芳超周霆徐曉光
中航工業(yè)西安航空計算技術研究所

摘要:文章針對軟件虛擬化過程中對設備虛擬化的需求,提出了基于客戶(CLIENT)/服務器(SERVER)模式的串口設備訪問模型,分別闡述了虛擬化過程中串口服務器的處理功能、硬件設備中斷處理方法、客戶端代理驅動接口功能及結構設計、以及數(shù)據(jù)傳輸采用的地址空間共享。

關鍵字:設備虛擬化 串口 代理驅動 客戶/服務器

1 引言

設備虛擬化是軟件虛擬化的重要研究方向,也是軟件虛擬化過程中必須解決的。高效的設備虛擬化方法可以有效提高設備訪問效率,提高系統(tǒng)。串口通信方式簡單、可靠、穩(wěn)定,具有很好的可移植性、實時性,且具有使用線路少、成本低的特點。在嵌入式操作系統(tǒng)中對串口進行虛擬化可以快速驗證設備虛擬化方案的。

2 虛擬化串口訪問模型

虛擬化串口訪問模型采用客戶(CLIENT)/服務器(SERVER)模式的設備虛擬化方法實現(xiàn),設備驅動程序在設備服務分區(qū)地址空間內(nèi)。虛擬化串口的訪問要求設備服務分區(qū)內(nèi)包含合適的驅 動程序,其它分區(qū)包含代理驅動。一旦用戶調(diào)用代理驅動提供的設備操作接口,它就會把用戶的請求轉發(fā)到設備服務分區(qū)內(nèi)的串口服務器。代理驅動提供的函數(shù)在接口形式上與原物理設備驅動接口保持一致,在函數(shù)內(nèi)部將對物理設備的訪問封裝為特定形式的IPC消息格式轉發(fā)到串口服務器。串口服務器為每個分區(qū)創(chuàng)建一個虛擬串口設備,分區(qū)所有對物理設備的訪問請求被轉換為對虛擬串口設備的訪問。

設備服務器直接控制物理設備,仲裁處理各個分區(qū)之間的競爭,同時處理設備中斷請求。另外,為了處理來自微內(nèi)核虛擬機管理器轉發(fā)的串口中斷請求,在設備服務分區(qū)內(nèi)創(chuàng)建處理串口中斷的用戶級中斷處理任務。

2.1串口服務器

串口服務器的主要功能之一就是對某個物理串口設備,在設備服務器內(nèi)部創(chuàng)建多個虛擬串口實例,用戶分區(qū)通過IPC請求操作設備時,設備服務器將訪問對象轉換為創(chuàng)建出的虛擬串口。串口服務線程啟動后根據(jù)配置信息檢測硬件設備并初始化,讀取分區(qū)配置信息判斷系統(tǒng)中需要使用串口的分區(qū)個數(shù),根據(jù)配置信息生成虛擬串口設備描述符,進行部分初始化,然后進入等待態(tài),等待來自其它應用分區(qū)的設備使用請求,設備使用請求包含四類:

a請求設備:處理來自客戶分區(qū)對串口設備的請求,為虛擬設備分配共享邏輯地址空間,將共享空間的<邏輯--物理>地址映射關系通過虛擬機管理器提供的映射/解映射接口加入客戶分區(qū)設備owner 線程(pager)的映射表中,將共享空間的邏輯地址和大小反饋給客戶分區(qū)。

b注冊控制塊:將客戶分區(qū)劃分好的共享空間控制塊地址注冊到串口服務器分配的對應虛擬設備描述符中。方便之后客戶分區(qū)與串口服務器交換數(shù)據(jù)讀/寫位置等信息。

c初始化虛擬設備:實現(xiàn)虛擬設備所有者信息的注冊/變更,只有虛擬設備的所有者被允許修改設備的訪問屬性,例如打開/關閉等。

d關閉虛擬設備:清理緩沖區(qū),將待發(fā)送隊列中的所有數(shù)據(jù)發(fā)送出去。如果接收緩沖內(nèi)有數(shù)據(jù),通知虛擬串口對應的分區(qū)來取數(shù)據(jù)。最后刪除虛擬設備描述符。

e中斷請求和數(shù)據(jù)收發(fā)請求,串口服務器將這兩類時間統(tǒng)一劃分為異步事件。系統(tǒng)中虛擬設備與物理設備之間存在多對一的關系,因此設計了雙層數(shù)據(jù)處理流。數(shù)據(jù)發(fā)送時,串口服務器程根據(jù)應用分區(qū)待發(fā)送數(shù)據(jù)流內(nèi)的數(shù)據(jù)包個數(shù),為其分配下層數(shù)據(jù)包,初始化下層數(shù)據(jù)包內(nèi)各個域的值,加入到下層數(shù)據(jù)發(fā)送隊列中。數(shù)據(jù)接收時,根據(jù)待接收數(shù)據(jù)的個數(shù)分配下層數(shù)據(jù)包并加入接收等待隊列中。上層數(shù)據(jù)包與下層數(shù)據(jù)包只是建立對應依賴關系而不進行數(shù) 據(jù)拷貝。

串口服務器處理發(fā)送/接收數(shù)據(jù)請求的流程。串口服務器在發(fā)送流程處理過程中如果有下層 數(shù)據(jù)包不夠使用的情況出現(xiàn),需要主動清空虛擬設備占有的下層發(fā)送隊列數(shù)據(jù)包。進入當前處理流程后,數(shù)據(jù)已由硬件發(fā)送出去,此時只需要修改下層數(shù)據(jù)包對應的上層數(shù)據(jù)包狀態(tài),將處理完后的數(shù)據(jù)包加入到當前虛擬設備的空閑隊列中,處理完成后釋放下層數(shù)據(jù)包,同時通知接收分區(qū)處理上層數(shù)據(jù)包。

2.2串口中斷處理

串口設備中斷處理包括上下兩層,下層位于虛擬機管理器中,物理中斷到來時,虛擬機管理器進行中斷統(tǒng)一處理流程,再調(diào)用串口中斷處理函數(shù)時向設備服務分區(qū)發(fā)送中斷通知。設備服務分區(qū)內(nèi)單獨創(chuàng)建一個處理來自串口的中斷處理線程。

2.3代理驅動

在客戶分區(qū),創(chuàng)建代理驅動程序供應用程序訪問,代理驅動程序在接口形式上保持與原始驅動程 序接口一致。串口設備訪問過程中基本的操作有 open、close、read、write和ioctl。

2.4串口數(shù)據(jù)傳輸

本文使用的IPC消息機制可以高效的傳遞設備控制信息,傳輸數(shù)據(jù)時由于數(shù)據(jù)量比較大,使用IPC通信方式會影響設備訪問效率,影響虛擬設備的性能,所以需要使用更為高效的共享內(nèi)存方式。

3 結束語

本文采用基于客戶(CLIENT)/服務器(SERVER) 模式的設備訪問模型在嵌入式分區(qū)操作系統(tǒng)中對串口設備進行了虛擬化,實現(xiàn)了設備服務分區(qū)內(nèi)串口服務器的功能設計,硬件設備中斷的任務級處理、數(shù)據(jù)發(fā)送、接收流程設計、客戶端代理驅動程序的設計,以及其他關鍵技術。通過串口設備的成功虛擬化,有效驗證了基于C/S模型設備虛擬化方法的可行性。

參考文獻

[1]Gernot Heiser, Chief Technology. Virtualization for Embedded Systems, OK 40036:2007

[2]Asif Iqbal, Nayeema Sadeque, Rafika Ida Mutia. An Overview of Microkernel, Hypervisor and Microvisor Virtualization Approaches for Embedded Systems, Sweden

[3]郝繼鋒,任曉瑞,胡寧,一種基于微核架構的虛擬化設備高效訪問模型,電子技術,2013 42(7)4-6

[4]VxWorks中任務恢復機制的設計與實現(xiàn)[J].空軍工程大學學報(自然科學版),2013 14(5)3-4.

猜你喜歡
下層中斷串口
淺談AB PLC串口跟RFID傳感器的通訊應用
跟蹤導練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
一類多個下層的雙層規(guī)劃問題
積雪
陜西橫山羅圪臺村元代壁畫墓發(fā)掘簡報
考古與文物(2016年5期)2016-12-21 06:28:48
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
地礦測繪(2015年3期)2015-12-22 06:27:26
有借有還
基于并行控制的FPGA多串口拓展實現(xiàn)
新津县| 博野县| 宾川县| 西充县| 新津县| 大丰市| 霞浦县| 汤阴县| 建德市| 庆阳市| 昌江| 盐亭县| 武强县| 洛宁县| 平昌县| 页游| 宜兴市| 宁阳县| 广昌县| 铅山县| 宁德市| 老河口市| 汉源县| 鄢陵县| 新巴尔虎左旗| 合阳县| 遂平县| 昆山市| 区。| 防城港市| 奉新县| 新乐市| 甘洛县| 长阳| 嘉兴市| 那坡县| 凌源市| 进贤县| 瓦房店市| 含山县| 拜泉县|