亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? minigui lite 版本的新改進(jìn).htm

?? MiniGUI的體系結(jié)構(gòu)
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
      <TABLE cellSpacing=0 cellPadding=0 width=137 align=right border=0>
        <TBODY>
        <TR>
          <TD align=middle bgColor=#cc6633><FONT face=helvetica,helv,arial 
            color=#ffffff size=-1><B>目錄:</B></FONT></TD></TR>
        <TR>
          <TD width="100%" bgColor=#000000><FONT face=helvetica,helv,arial 
            size=-3><IMG height=1 alt="" src="MiniGUI Lite 版本的新改進(jìn).files/c.gif" 
            width=1 border=0></FONT></TD></TR>
        <TR>
          <TD width="100%" bgColor=#ffffff><FONT face=helvetica,helv,arial 
            size=-3><IMG height=4 alt="" src="MiniGUI Lite 版本的新改進(jìn).files/c.gif" 
            width=1 border=0></FONT></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#1"><FONT 
            face=宋體 size=2>引言:為什么要開發(fā)Lite版本</FONT></A> </TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#2"><FONT 
            face=宋體 size=2>Lite版本簡介</FONT></A></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#3"><FONT 
            face=宋體 size=2>Lite版本的設(shè)計(jì)</FONT></A></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#4"><FONT 
            face=宋體 size=2>Lite版本的一些實(shí)現(xiàn)細(xì)節(jié)</FONT></A></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#4"><FONT 
            face=宋體 size=2>總結(jié)語</FONT></A></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#resources"><FONT 
            face=宋體 size=2>資源</FONT></A></TD></TR>
        <TR>
          <TD><A 
            href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/minigui-6/index.shtml#author"><FONT 
            face=宋體 size=2>有關(guān)作者</FONT></A></TD></TR>
        <TR>
          <TD bgColor=#000000><FONT face=helvetica,helv,arial size=-3><IMG 
            height=3 alt="" src="MiniGUI Lite 版本的新改進(jìn).files/c.gif" 
            width=137></FONT></TD></TR></TBODY></TABLE><BR><BR><!-- comments #6: html content of the paper -->
      <BLOCKQUOTE><EM>MiniGUI從0.98開始推出Lite版本。Lite版本是MiniGUI邁向嵌入式應(yīng)用重要的一步。在Lite版本中,我們使用了自己設(shè)計(jì)的引擎,拋棄了pthread庫,從而使得MiniGUI能夠輕裝上陣,更穩(wěn)定,更高效率,也更符合嵌入式系統(tǒng)應(yīng)用。本文介紹了MiniGUI 
        Lite版本的基于Unix IPC實(shí)現(xiàn)的多進(jìn)程機(jī)制。并詳細(xì)介紹了一些實(shí)現(xiàn)細(xì)節(jié)。</EM></BLOCKQUOTE><A id=1 
      name=1></A>
      <P><STRONG class=subhead>1 引言:為什么要開發(fā)Lite版本</STRONG></P>
      <P>現(xiàn)在,大多數(shù)UNIX系統(tǒng)采用X 窗口系統(tǒng)作為圖形用戶界面,MS Windows 則采用 
      Microsoft公司自己設(shè)計(jì)的GUI系統(tǒng)。這兩種GUI系統(tǒng)也代表著目前通用GUI系統(tǒng)的兩種實(shí)現(xiàn)。比如,著名的自由軟件MicroWindows就同時(shí)實(shí)現(xiàn)了類似于MS 
      Windows的MicroWindows API 和類似于X Window的NanoX API。</P>
      <P>MiniGUI 原來就采用了類似于MS Windows的體系結(jié)構(gòu),并且建立了基于線程的消息傳遞和窗口管理機(jī)制。然而,它是基于POSIX 
      線程的,這種實(shí)現(xiàn)提供最大程度上的數(shù)據(jù)共享,但也同時(shí)造成MiniGUI體系結(jié)構(gòu)上的脆弱。如果某個(gè)線程因?yàn)榉欠ǖ臄?shù)據(jù)訪問而終止運(yùn)行,則整個(gè)系統(tǒng)都將受到影響。</P>
      <P>另一種方法是采用UNIX進(jìn)程間通信機(jī)制建立窗口系統(tǒng),即類似 X Window 
      的客戶/服務(wù)器體系。但是這種體系結(jié)構(gòu)也有它的先天不足,主要是通常的 IPC 機(jī)制無法提供高效的數(shù)據(jù)復(fù)制,大量的 CPU 
      資源用于各進(jìn)程之間復(fù)制數(shù)據(jù)。在 PDA 等設(shè)備中,這種 CPU 資源的浪費(fèi)將最終導(dǎo)致系統(tǒng)性能的降低以及設(shè)備耗電量的增加。</P>
      <P>為了解決以上各種問題,同時(shí)也為了讓 MiniGUI更加適合于嵌入式系統(tǒng),我們開發(fā)了MiniGUI Lite 版本。</P><A id=2 
      name=2></A>
      <P><STRONG class=subhead>2 Lite版本簡介</STRONG></P>
      <P>在MiniGUI Lite 版本中,我們可以同時(shí)運(yùn)行多個(gè) MiniGUI 應(yīng)用程序。首先我們啟動(dòng)一個(gè)服務(wù)器程序 
      mginit,然后我們可以從中啟動(dòng)其他做為客戶運(yùn)行的 MiniGUI 
      應(yīng)用程序。如果因?yàn)槟撤N原因客戶終止,服務(wù)器可以繼續(xù)運(yùn)行。mginit程序建立了一個(gè)虛擬控制臺(tái)窗口。我們可以從這個(gè)虛擬控制臺(tái)的命令行啟動(dòng)其他的程序,甚至可以通過 
      gdb 調(diào)試這些程序。 這大大方便了MiniGUI應(yīng)用程序的調(diào)試。</P>
      <P>MiniGUI-Lite 區(qū)別于 MiniGUI 原有版本的最大不同在于我們可以在 MiniGUI-Lite 
      程序中創(chuàng)建多個(gè)窗口,但不能啟動(dòng)新的線程建立窗口。除此之外,其他幾乎所有的 API 都和 MiniGUI 原有版本是兼容的。因此,從 MiniGUI 
      原有版本向 MiniGUI-Lite 版本的移植是非常簡單的。象mglite-exec 包中的程序,其中所有的程序均來自 miniguiexec 
      包,而每個(gè)源文件的改動(dòng)不超過 5 行。</P><A id=3 name=3></A>
      <P><STRONG class=subhead>3 Lite版本的設(shè)計(jì)</STRONG></P>
      <P>設(shè)計(jì)之初,我們確定MiniGUI Lite 版本的開發(fā)目的:</P>
      <OL>
        <LI>保持與原先 MiniGUI 版本在源代碼級 98% 以上的兼容。 
        <LI>不再使用 LinuxThreads。 
        <LI>可以同時(shí)運(yùn)行多個(gè)基于 MiniGUI Lite 的應(yīng)用程序,即多個(gè)進(jìn)程,并且提供前后臺(tái)進(jìn)程的切換。 </LI></OL>
      <P>顯然,要滿足這三個(gè)設(shè)計(jì)目的,如果采用傳統(tǒng)的 C/S 結(jié)構(gòu)對現(xiàn)有 MiniGUI 進(jìn)行改造,應(yīng)該不難實(shí)現(xiàn)。但傳統(tǒng) C/S 
      結(jié)構(gòu)的缺陷卻無法避免。經(jīng)過對 PDA 等嵌入式系統(tǒng)的分析,我們發(fā)現(xiàn),某些 PDA 
      產(chǎn)品具有運(yùn)行多個(gè)任務(wù)的能力,但同一時(shí)刻在屏幕上進(jìn)行繪制的程序,一般不會(huì)超過兩個(gè)。因此,只要確保將這兩個(gè)進(jìn)程的繪制相互隔離,就不需要采用復(fù)雜的 C/S 
      結(jié)構(gòu)處理多個(gè)進(jìn)程窗口之間的互相剪切。在這種產(chǎn)品中,如果采用基于傳統(tǒng) C/S 結(jié)構(gòu)的多窗口系統(tǒng),實(shí)際是一種浪費(fèi)。</P>
      <P>因此,我們對 MiniGUI-Lite 版本進(jìn)行了如下簡化設(shè)計(jì):</P>
      <OL>
        <LI>每個(gè)進(jìn)程維護(hù)自己的主窗口 Z 序,同一進(jìn)程創(chuàng)建的主窗口之間互相剪切。也就是說,除了只有一個(gè)線程,只有一個(gè)消息循環(huán)之外,一個(gè)進(jìn)程與原有的 
        MiniGUI 版本之間沒有任何區(qū)別。每個(gè)進(jìn)程在進(jìn)行屏幕繪制時(shí),不需要考慮其他進(jìn)程。 
        <LI>建立一個(gè)簡單的客戶/服務(wù)器體系,但確保最小化進(jìn)程間的數(shù)據(jù)復(fù)制功能。因此,在服務(wù)器和客戶之間傳遞的數(shù)據(jù)僅限于輸入設(shè)備的輸入數(shù)據(jù),以及客戶和服務(wù)器之間的某些請求和響應(yīng)數(shù)據(jù)。 

        <LI>有一個(gè)服務(wù)器進(jìn)程(mginit),它負(fù)責(zé)初始化一些輸入設(shè)備,并且通過 UNIX Domain 套接字將輸入設(shè)備的消息發(fā)送到前臺(tái)的 
        MiniGUI Lite 客戶進(jìn)程。 
        <LI>服務(wù)器和客戶被分別限定在屏幕的某兩個(gè)不相交矩形內(nèi)進(jìn)行繪制,同一時(shí)刻,只能有一個(gè)客戶及服務(wù)器進(jìn)行屏幕繪制。其他客戶可繼續(xù)運(yùn)行,但屏幕輸入被屏蔽。服務(wù)器可以利用 
        API 接口將某個(gè)客戶切換到前臺(tái)。同時(shí),服務(wù)器和客戶之間采用信號和 System V 信號量進(jìn)行同步。 
        <LI>服務(wù)器還采用 System V IPC 機(jī)制提供一些資源的共享,包括位圖、圖標(biāo)、鼠標(biāo)、字體等等,以便減少實(shí)際內(nèi)存的消耗。 
      </LI></OL><A id=4 name=4></A>
      <P><STRONG class=subhead>4 Lite版本的一些實(shí)現(xiàn)細(xì)節(jié)</STRONG></P><STRONG>4.1 
      系統(tǒng)初始化</STRONG> 
      <P>應(yīng)用程序的入口點(diǎn)為main()函數(shù),而MiniGUI應(yīng)用程序的入口點(diǎn)為MiniGUIMain,在這兩個(gè)入口點(diǎn)之間,是MiniGUI的初始化部分和結(jié)束部分。如圖 
      1所示。</P>
      <P align=center><IMG height=224 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image01.gif" width=337 border=0><BR>圖 1 
      MiniGUI應(yīng)用程序流程</P>
      <P>在系統(tǒng)初始化時(shí),MiniGUI區(qū)分兩種情況:服務(wù)器(Server)和客戶(Client)。針對這兩種不同的情況,隨后的各項(xiàng)操作均有不同的處理,這主要依據(jù)全局變量mgServer。由于僅僅根據(jù)名稱判斷是否為服務(wù)器,所以服務(wù)器的名字只能是"mginit"。 
      InitGUI()是對MiniGUI進(jìn)行初始化的函數(shù),它主要負(fù)責(zé):</P>
      <OL>
        <LI>獲取有關(guān)終端的信息。 
        <LI>初始化圖形抽象層。 
        <LI>如果是服務(wù)器,則裝入共享資源,若為客戶則與共享資源建立連接。 
        <LI>建立與窗口活動(dòng)有關(guān)的運(yùn)行環(huán)境。 
        <LI>如果為服務(wù)器,則初始化事件驅(qū)動(dòng)抽象層(IAL),如果為客戶,則打開與服務(wù)器事件驅(qū)動(dòng)器的通道。 
        <LI>如果為服務(wù)器,則設(shè)定空閑處理為IdleHandler4Server,如果為客戶,則設(shè)定空閑處理為IdleHandle4Client。 
        </LI></OL>
      <P>流程如圖 2(為突出重點(diǎn),我們忽略了一些細(xì)節(jié)):</P>
      <P align=center><IMG height=441 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image02.gif" width=505 border=0><BR>圖 2 
      InitGUI流程</P><STRONG>4.2 共享資源初始化</STRONG> 
      <P>共享資源是客戶服務(wù)器模型中的重要元素,它由服務(wù)器負(fù)責(zé)創(chuàng)建和釋放,而提供所有客戶程序共享的數(shù)據(jù)資源。它的初始化過程由圖 
      3所示的調(diào)用流完成。</P>
      <P align=center><IMG height=147 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image03.gif" width=625 border=0><BR>圖 3 
      InitGUI調(diào)用流</P>
      <P>如果是服務(wù)器,則初始化此結(jié)構(gòu),src/kernel/sharedres.c/LoadSharedResource()負(fù)責(zé)完成這一任務(wù),它的執(zhí)行流如圖 
      4所示:</P>
      <P align=center><IMG height=295 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image04.gif" width=313 border=0><BR>圖 4 
      LoadSharedResource 流程</P>
      <P>對于客戶,則只需要與此結(jié)構(gòu)進(jìn)行連接即可,它在src/kernel/sharedres.c/AttachSharedResource()實(shí)現(xiàn),參見圖 
      5:</P>
      <P align=center><IMG height=193 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image05.gif" width=296 border=0><BR>圖 5 
      AttachSharedResource 流程</P><STRONG>4.3 服務(wù)器客戶通信連接初始化</STRONG> 
      <P>在客戶服務(wù)器模型的討論中,我們還將詳細(xì)的討論服務(wù)器客戶的通信機(jī)制,這里只給出初始化的調(diào)用關(guān)系。見圖 6。</P>
      <P align=center><IMG height=157 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image06.gif" width=469 border=0><BR>圖 6 
      通信連接的初始化</P>
      <P>ServerStartUp實(shí)現(xiàn)流程如圖 7所示:</P>
      <P align=center><IMG height=254 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image07.gif" width=296 border=0><BR>圖 7 
      ServerStartUp 流程</P>
      <P>ClientStartUp()實(shí)現(xiàn)如圖 8所示:</P>
      <P align=center><IMG height=192 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image08.gif" width=296 border=0><BR>圖 8 
      ClientStartUp流程</P><STRONG>4.4 多進(jìn)程模型</STRONG> 
      <P>Lite版本是支持客戶服務(wù)器(C/S)方式的多進(jìn)程系統(tǒng),在運(yùn)行過程中有且僅有一個(gè)服務(wù)器程序在運(yùn)行,它的全局變量mgServer被設(shè)為TRUE,其余的MiniGUI應(yīng)用程序?yàn)榭蛻簦琺gServer變量被設(shè)為FALSE。各個(gè)應(yīng)用程序分別運(yùn)行于各自不同的進(jìn)程空間,如圖 
      9所示:</P>
      <P align=center><IMG height=325 alt="" 
      src="MiniGUI Lite 版本的新改進(jìn).files/image09.gif" width=459 border=0><BR>圖 9 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲综合色| 亚洲大片在线观看| 国产成人鲁色资源国产91色综 | 精品一区二区三区香蕉蜜桃| 日韩精品一区在线| 国产精品1024| 亚洲欧洲精品一区二区三区 | 高清久久久久久| 国产精品久久久久影院老司| 波多野结衣视频一区| 中文字幕在线一区二区三区| 色哟哟国产精品免费观看| 亚洲国产视频直播| 日韩一区二区三区电影在线观看| 精品一区二区三区在线播放| 国产欧美一区二区三区网站| 白白色亚洲国产精品| 亚洲宅男天堂在线观看无病毒| 欧美精品第一页| 国产精品一线二线三线精华| 中文字幕一区二区三区在线观看 | 欧美一区二区三区不卡| 国产成人无遮挡在线视频| 亚洲视频每日更新| 欧美一区二区观看视频| 丁香六月综合激情| 亚洲.国产.中文慕字在线| 精品88久久久久88久久久| 91丨九色丨黑人外教| 五月婷婷激情综合| 中文字幕av一区二区三区免费看 | av成人老司机| 日韩影院在线观看| 国产精品你懂的在线| 欧美视频日韩视频| 国产精品综合视频| 天天综合日日夜夜精品| 久久精品亚洲精品国产欧美| 欧美乱妇23p| 成人免费观看视频| 美女免费视频一区二区| 亚洲欧美日韩小说| 国产亚洲欧美中文| 91精品国产一区二区三区蜜臀| 成人毛片在线观看| 久久99热99| 天天操天天干天天综合网| 中文字幕亚洲视频| 久久久www成人免费无遮挡大片| 欧美唯美清纯偷拍| 99综合影院在线| 国产精品一区二区视频| 日本在线不卡视频一二三区| 亚洲免费观看在线观看| 国产偷国产偷精品高清尤物| 91麻豆精品国产91久久久久久| 91免费看片在线观看| 国产成人av一区二区三区在线| 秋霞国产午夜精品免费视频| 亚洲久本草在线中文字幕| 国产午夜精品一区二区三区嫩草 | 日本韩国欧美国产| 成人av片在线观看| 国产福利一区在线| 捆绑紧缚一区二区三区视频| 日韩av电影一区| 婷婷国产在线综合| 亚洲超丰满肉感bbw| 一区二区三区免费看视频| 日韩毛片在线免费观看| 国产精品视频在线看| 国产亚洲精品7777| 久久久久久久久久电影| 精品国产网站在线观看| 制服丝袜中文字幕一区| 欧美日本在线看| 欧美区在线观看| 欧美日韩国产综合视频在线观看| 在线观看一区二区视频| 欧美婷婷六月丁香综合色| 在线免费一区三区| 欧美午夜电影网| 8v天堂国产在线一区二区| 欧美一区二区三区系列电影| 91精品国产综合久久久久久| 欧美精品亚洲一区二区在线播放| 欧美日韩一区二区三区免费看| 在线观看成人小视频| 欧美日韩一区二区三区四区五区| 免费观看日韩电影| 亚洲午夜日本在线观看| 亚洲福利视频一区二区| 亚洲 欧美综合在线网络| 日韩电影在线免费观看| 日本va欧美va精品| 精品一区二区三区在线播放视频| 国产真实乱子伦精品视频| 黄一区二区三区| 风间由美性色一区二区三区| 99久久99精品久久久久久| 91美女片黄在线观看| 日本电影欧美片| 884aa四虎影成人精品一区| 精品久久久久久久久久久久包黑料 | 日本不卡一区二区三区高清视频| 日本不卡一区二区三区| 国产毛片精品一区| 色网站国产精品| 欧美绝品在线观看成人午夜影视| 日韩欧美一级特黄在线播放| 久久精品视频免费| 夜夜夜精品看看| 久久综合综合久久综合| 成人午夜av影视| 欧美日韩精品欧美日韩精品一| 欧美成人一区二区三区在线观看| 日本一二三四高清不卡| 一区二区三区美女视频| 麻豆成人91精品二区三区| 99久久久久久| 欧美一区二区免费视频| 中文字幕二三区不卡| 亚洲国产成人av网| 丁香天五香天堂综合| 欧美日韩色一区| 国产日韩欧美a| 日本va欧美va瓶| 91免费观看在线| 国产日韩v精品一区二区| 一区二区三区鲁丝不卡| 国产99精品在线观看| 91.麻豆视频| 伊人开心综合网| 国产一区二区不卡老阿姨| 欧美日韩一区成人| 亚洲欧美日韩在线| 成a人片亚洲日本久久| 精品国产区一区| 日韩主播视频在线| 91在线观看一区二区| 精品成人私密视频| 亚洲成a人片在线不卡一二三区| www.欧美色图| 国产视频一区在线播放| 日韩电影在线免费观看| 欧美中文一区二区三区| 国产女同互慰高潮91漫画| 久久狠狠亚洲综合| 777久久久精品| 亚洲国产一二三| 色视频一区二区| 国产精品免费视频网站| 国产尤物一区二区在线| 欧美一三区三区四区免费在线看 | 精品成a人在线观看| 日本不卡123| 欧美一区二区三区白人| 天天影视网天天综合色在线播放| 在线观看欧美日本| 亚洲免费观看高清完整版在线| 国产99久久久久久免费看农村| 日韩精品一区二区三区在线观看 | 亚洲免费av观看| 91丨九色丨蝌蚪丨老版| 中文字幕一区二区三区四区不卡| 国产精品综合网| 国产三级精品三级| 国产精品18久久久久久久久久久久| 日韩视频免费观看高清完整版 | 自拍偷拍亚洲激情| av电影天堂一区二区在线观看| 欧美国产视频在线| 99久久精品免费| 中文字幕中文字幕一区二区| 99九九99九九九视频精品| 亚洲欧美色图小说| 欧美日韩在线播放三区四区| 人人超碰91尤物精品国产| 日韩精品一区二区在线观看| 国产一区二区免费看| 中文字幕av不卡| 色猫猫国产区一区二在线视频| 亚洲精品国产高清久久伦理二区| 欧洲av在线精品| 日韩激情av在线| www国产成人| 99精品一区二区| 亚洲成人tv网| 精品国产髙清在线看国产毛片| 国产一区二区剧情av在线| 国产精品美女一区二区三区 | 色婷婷精品大在线视频 | 91免费精品国自产拍在线不卡| **性色生活片久久毛片| 北条麻妃一区二区三区| 亚洲自拍欧美精品| 日韩欧美在线综合网| 久久99久久精品| 中文字幕一区二区三区视频| 色拍拍在线精品视频8848|