freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ip2000網(wǎng)絡(luò)終端系統(tǒng)方案概要設(shè)計(編輯修改稿)

2024-10-09 08:06 本頁面
 

【文章內(nèi)容簡介】 的兼容接口 設(shè)計 ,大大方便了許多基于 X Window 的應(yīng)用程 序的移植 和代碼復(fù)用 。 ? 采用 GUI 上下文共享的方法 通常在單任務(wù) GUI 基礎(chǔ)上開發(fā)圖形界面應(yīng)用有如下圖左邊的系統(tǒng)流程, 應(yīng)用程序通過調(diào)用 GUI的 API實現(xiàn)相應(yīng)功能,而這些函數(shù)有自己的上下文,并且這些上下文主要是通過數(shù)據(jù)空間的形式( data amp。 BSS)來保持的。由于消息系統(tǒng)的同步功能,如果在同一進(jìn)程中創(chuàng)建并使用多個窗口,也不會造成 GUI的沖突。例如,可以在一個進(jìn)程中構(gòu)造記事本和計算器,兩個窗口都可以正常地運行,因為任一時刻只有一個窗口接受消息隊列的消息分發(fā)并處理(使用或改變 GUI 上 下文 ) —— 這種同步是由消息系統(tǒng)來保證的。假如把 GUI使用的上下文和應(yīng)用其它部分的上下文分開,一個應(yīng)用完全是可以正常運行的。如果把這種方法應(yīng)用到多任務(wù)的系統(tǒng),如果各個任務(wù)獨有自己的 GUI上下文,則不能解決一些系統(tǒng)公共的設(shè)備例如鼠標(biāo)、鍵盤、輸入法等事件的檢測、轉(zhuǎn)換、分派以及系統(tǒng)龐大等許多問題(在C/S 結(jié)構(gòu)中是由 Sever 來完成這個工作的)。由此只能在各個任務(wù)之間共享 GUI 上下文,同步訪問的方法來實現(xiàn)多任務(wù),但在這種方法下,可能出現(xiàn)上圖右部的狀況,兩個應(yīng)用的 GUI API接口函數(shù)會不可預(yù)知地改寫 GUI的上下文,會 造成嚴(yán)重沖突,為了避免這種情況,通過OS 的鎖機(jī)制來實現(xiàn)在不同進(jìn)程間實現(xiàn)同步地訪問 GUI 上下文,則可實現(xiàn)不同進(jìn)程有秩序地協(xié)同作,達(dá)到多任務(wù)的目的,通常通過采用了嵌入式 Linux中常用的一些工具,包括 ld腳本、 ld、 nm、 objcopy、 awk、 objdump等把 ELF文件各部分抽取出來、并重新定位,用共享內(nèi)存函數(shù)把指定的內(nèi)存映射到固定的地址的方法,把 抽取 的 GUI上下文裝載到固定位置 的方法來實現(xiàn)共享。共享 GUI上下文的各進(jìn)程運行時結(jié)構(gòu)如下圖所示: share data amp。bssdata amp。 bsscodestatckDATA amp。 BSSCODESHARE DATA amp。 BSSshare data amp。bssdata amp。 bsscodestatck進(jìn)程1進(jìn)程NSTACKSTATCKDATA amp。 BSS進(jìn)程私有空間 進(jìn)程虛擬空間 進(jìn)程共享空間其中 share data amp。 BSS就是 GUI的上下文。 采用這種方法來設(shè)計 GUI 多任務(wù)支持的有博利思公司為我們公司 IP1000 多任務(wù)版網(wǎng)絡(luò)終端設(shè)計 GUI,該 GUI 是在 Microwindows 的基礎(chǔ)上改進(jìn)后的設(shè)計,事實上,這種設(shè)計方法也是借鑒了 MiniGUILite版本的一些技術(shù),用一個主進(jìn)程作為虛擬 Sever處理所有的外部事件,完成消息轉(zhuǎn)換后完成消息的分發(fā)并完成窗口維護(hù)和管理,同時負(fù)責(zé)用戶進(jìn)程的啟動(用 fork的方式復(fù)制子進(jìn)程,因而主進(jìn)程和所有用戶進(jìn)程之間皆為父子關(guān)系,各用戶進(jìn)程之間則互為兄弟進(jìn)程),各 用戶進(jìn)程則接受并完成消息處理。主進(jìn)程和用戶進(jìn)程通過共享內(nèi)存的方式來實現(xiàn) GUI上下文共享和通訊,并且采用主進(jìn)程附加調(diào)度的方式:在 LINUX 內(nèi)核進(jìn)程調(diào)度的基礎(chǔ)上再建立應(yīng)用調(diào)度,任意時刻只讓其中一個用戶進(jìn)程運行( Running狀態(tài)),其他用戶進(jìn)程則讓其進(jìn)入 Sleepon狀態(tài),主進(jìn)程并用消息分發(fā)的主動權(quán)采用消息驅(qū)動的機(jī)制完成各用戶進(jìn)程間的調(diào)度,并實現(xiàn)前后臺時間片的主動分配,這種方法不僅可實現(xiàn)共享 GUI的訪問沖突,同時也提高系統(tǒng)的效率――決不使空閑的用戶進(jìn)程占用寶貴的 CPU時間片資源,但這種方法的缺點也是顯而易見的 。 對于我們 GUI 的設(shè)計,我們進(jìn)行了較長時間的預(yù)研,并對 Microwindows/Nanox 和MiniGUI 的多任務(wù)機(jī)制進(jìn)行了較為詳細(xì)的剖析,覺得兩者實現(xiàn)多任務(wù)的 C/S 結(jié)構(gòu)對于我們的arm7500 硬件平臺并不適合,由于 C/S 結(jié)構(gòu)系統(tǒng)效率較低,在我們這種硬件平臺資源的基礎(chǔ)上,性能遠(yuǎn)遠(yuǎn)不能達(dá)到我們的功能需求,鑒如此,我們決定在 IP1000 多任務(wù)版本 GUI 的基礎(chǔ)上, 開發(fā) IP2020 的 GUI,主要是完善在 IP1000 開發(fā)過程中已發(fā)現(xiàn)的缺陷,并增加如下功能的支持: ? 對 Microwindows 桌面和窗口管理進(jìn)行完 善,使整個桌面和窗口管理 與windows 風(fēng)格 更加類似,從而為 IP2020 設(shè)計出更好的人機(jī)界面 :多窗口操作,圖標(biāo)的拖動,窗口最大、最小化操作等 ? 參照 MiniGUI 改進(jìn) Microwindows 圖形引擎的一些算法,提高 GUI 的效率 ? 增加業(yè)務(wù)窗口下拉菜單的支持(參考 MiniGUI 菜單組件設(shè)計) ? 增加 國際標(biāo)準(zhǔn)化漢字系統(tǒng):支持 16x16(大字符集) 、 24x24 漢字庫( GB2312) 多種漢字字體 ? 字符顯示驅(qū)動增加 16 色支持 ? 尋找替代單消息隊列共享的進(jìn)程間通訊機(jī)制,避免某個用戶進(jìn)程崩潰導(dǎo)致整個系統(tǒng)崩潰。 仿真設(shè)計 設(shè)計目 標(biāo) ? 降低模塊間的耦合關(guān)系 ? 減少中間層 ? 方便各個平臺的移植 設(shè)計方法 ? 將 IP1000 的仿真程序進(jìn)行整合,按模塊封裝成 API。 ? 針對幾個關(guān)鍵點進(jìn)行技術(shù)改進(jìn),爭取最大程度地發(fā)揮系統(tǒng)和硬件平臺的優(yōu)點。 ? 在縱向的層次上只有相鄰的兩層有調(diào)用和被調(diào)用的關(guān)系,相同的層次可以調(diào)用和被調(diào)用。 仿真結(jié)構(gòu)設(shè)計 全局模塊、命令分析模塊 鍵盤模塊 顯示模塊 打印模塊 外設(shè)模塊 通訊模塊 自檢模塊 鍵盤仿真driver 顯示仿真driver 打印仿真driver 外設(shè)仿真driver 通訊仿真driver 自檢仿真driver NVR 操作 鍵盤 API 顯示 API 打印 API 串口 API 網(wǎng)絡(luò) API NVR API 中文輸入法 模塊說明 1)、仿真全局模塊,包括: ? 初始化 Gblint 的數(shù)據(jù) 仿真層 仿真 driver 層 microwin ? 改變漢字通訊碼的顯示拼字入口 ? 設(shè)置輸入 /輸出入口 (將終端仿真軟件從功能上分為輸入、輸出兩大部分 ) ? 復(fù)位通用命令分析器 ? 根據(jù)參數(shù)初始化串口 ? 恢復(fù)、保存、缺省 NVR 參數(shù) 2)、命令分析 使用有限狀態(tài)自動機(jī)來解析命令序列。 3)、鍵盤模塊 仿真上層: ? 處理控制碼 (ESC、 CAN、 BS、 CR、 XON、 XOFF) ? 處理 ASCII 碼 ? 處理本地功能鍵 ? 處理用戶自定義序列鍵 ? 處理缺省功能鍵 ? 漢字譯碼并發(fā)送 仿真 driver 層: 將系統(tǒng)發(fā)來的鍵盤消息 WM_KEYDOWN、
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1