* 數(shù)據(jù)流驅(qū)動(dòng)
o 數(shù)據(jù)流驅(qū)動(dòng),基于模塊輸入輸出架構(gòu),每周期定時(shí)調(diào)用所有模塊
o 簡(jiǎn)單直觀的編程,適合工業(yè)應(yīng)用
o 對(duì)于復(fù)雜邏輯序列事件編程復(fù)雜而且調(diào)試?yán)щy
o 應(yīng)用模型通;趩尉程分時(shí),類似偽纖程,算法等價(jià)為為一棵定時(shí)器觸發(fā)跟節(jié)點(diǎn)的執(zhí)行樹
o 對(duì)于IO使用輪詢,中斷一般有底層驅(qū)動(dòng)或者操作系統(tǒng)服務(wù)處理
o 作為一般的應(yīng)用情況,數(shù)據(jù)流驅(qū)動(dòng)的程序可以是無(wú)限循環(huán)運(yùn)行的
* 數(shù)據(jù)加算法
o 函數(shù)方式編程
o 實(shí)現(xiàn)代價(jià)換取最高的靈活性
o 作為馮諾依曼和圖靈機(jī)體系下的工作計(jì)算機(jī)里面,可以實(shí)現(xiàn)任何編程模型
o 純函數(shù)調(diào)用等價(jià)于一顆調(diào)用樹(除了setrun,setlong run,jump等特殊接口)
o 大部分情況編譯時(shí)確定執(zhí)行樹,也存在動(dòng)態(tài)節(jié)點(diǎn),可以通過(guò)函數(shù)指針和dll裝載實(shí)現(xiàn)
* 面向?qū)ο?br />
o 高階編程模型,通常向下兼容函數(shù)式編程
o 以類和對(duì)象為基礎(chǔ)通過(guò)方法(消息)交互,對(duì)象一般具有封裝,繼承,多態(tài)等特性
o 面向?qū)ο笸瑫r(shí)暗含了自指,元和衍生對(duì)象概念
o 衍生的編程概念包括事件處理
o 面向?qū)ο笫歉鼮楦唠A的設(shè)計(jì)模式的基礎(chǔ),包括用途,契約式設(shè)計(jì),UML等
o 通常和運(yùn)行環(huán)境和庫(kù)緊密相關(guān)
6.2.2 動(dòng)態(tài)對(duì)象復(fù)雜應(yīng)用分析
* 操作系統(tǒng)管理進(jìn)程
o 主要對(duì)象:操作系統(tǒng)和進(jìn)程
o 操作系統(tǒng)負(fù)責(zé)創(chuàng)建銷毀進(jìn)程,調(diào)度進(jìn)程,改變進(jìn)程狀態(tài),內(nèi)部維護(hù)有進(jìn)程列表,指定/替換進(jìn)程執(zhí)行內(nèi)容,但是不關(guān)心進(jìn)程具體實(shí)現(xiàn)
o 進(jìn)程通過(guò)系統(tǒng)調(diào)用和操作系統(tǒng)通信
o 進(jìn)程通過(guò)父子關(guān)系,間接操作系統(tǒng)核心對(duì)象(管道,socket等等)和其他進(jìn)程建立刪除連接,并交換信息
* 網(wǎng)絡(luò)服務(wù)守護(hù)任務(wù)
o 主要對(duì)象:守護(hù)進(jìn)程和任務(wù)進(jìn)程
o 守護(hù)進(jìn)程接受客戶請(qǐng)求,管理任務(wù)進(jìn)程,包括創(chuàng)建,銷毀,改變?nèi)蝿?wù)進(jìn)程狀態(tài)
o 任務(wù)進(jìn)程通過(guò)特定接口對(duì)象和客戶通信
o 任務(wù)間進(jìn)程通常彼此獨(dú)立
* 多窗口GUI應(yīng)用
o 主要對(duì)象:窗口對(duì)象和消息循環(huán)
o 程序靜態(tài)或者動(dòng)態(tài)創(chuàng)建窗口對(duì)象,由操作系統(tǒng)負(fù)責(zé)加入消息循環(huán)來(lái)響應(yīng)外部事件
o 窗口通過(guò)暴露接口變量和回調(diào)函數(shù)和后臺(tái)應(yīng)用邏輯通信
o 窗口可以動(dòng)態(tài)建立和銷毀,窗口控件之間不直接耦合,但是可以通過(guò)后臺(tái)應(yīng)用邏輯聯(lián)合顯示信息
* 插件鏈條管理
o 一個(gè)典型的插件鏈條是媒體播放,包括demux,stream decoding, stream playback構(gòu)成
o 根據(jù)用戶配置和媒體文件不同,每播放一個(gè)文件,這個(gè)鏈條重置并重新建立
o 主程序根據(jù)不同的輸入配置載入合適的動(dòng)態(tài)庫(kù),并在過(guò)程中連接這些動(dòng)態(tài)庫(kù)的輸入輸出構(gòu)成鏈條
o 當(dāng)播放停止時(shí),鏈條被解構(gòu)
6.2.3 程序模型升級(jí)更新分析
* 一般IT升級(jí)
o 部分升級(jí)和全部升級(jí)
+ 程序的動(dòng)態(tài)加載庫(kù)升級(jí)
+ 程序包的完全升級(jí)
o 在線升級(jí)和線下升級(jí)
+ 程序運(yùn)行時(shí)部分或者全部部分升級(jí),可能對(duì)正在運(yùn)行的軟件構(gòu)成影響,一般工業(yè)產(chǎn)品軟件環(huán)境簡(jiǎn)單可以使用
+ 通常的做法是后臺(tái)下載整個(gè)程序包,被動(dòng)等待或者主動(dòng)進(jìn)行重啟,下次重新啟動(dòng)前進(jìn)行升級(jí)
* 工業(yè)軟件升級(jí)
o 升級(jí)過(guò)程從屬于產(chǎn)品操作流程的一部分
o 一般過(guò)程是關(guān)閉機(jī)器,確認(rèn)處于安全狀態(tài)下,升級(jí)軟件,重啟工業(yè)控制器,軟件運(yùn)行正常后重新啟動(dòng)機(jī)器
* 開發(fā)更新過(guò)程
o 加入新的原代碼文件,更新項(xiàng)目組織文件
o 編譯運(yùn)行調(diào)試
o 發(fā)布最終版本
* 版本系統(tǒng)協(xié)作
o 利用現(xiàn)有版本系統(tǒng)跟蹤文本文件改變,進(jìn)行比較合并
o 利用版本系統(tǒng)進(jìn)行自動(dòng)編譯
6.3.2 圖形編程
* 系統(tǒng)架構(gòu)
o 純圖形編程
o 圖形編程作為程序跨架,可以與模塊共同工作
o 文本編程語(yǔ)言環(huán)境作為框架,圖形模塊編譯嵌入框架
* 開發(fā)更新過(guò)程
o 加入新的模塊,和現(xiàn)有系統(tǒng)模塊連接
o 編譯運(yùn)行調(diào)試
o 發(fā)布最終版本,包括源代碼和編譯版本
* 版本系統(tǒng)協(xié)作
o 大系統(tǒng)分拆為組件,以組件文件級(jí)別進(jìn)行更新
o 其修改無(wú)法直接比較,通過(guò)更改日志和文檔進(jìn)行說(shuō)明,可控性由個(gè)人負(fù)責(zé) 作者: dreamice 時(shí)間: 2011-12-13 17:44
沒(méi)看出你這篇帖子想說(shuō)啥。 作者: jpzhu 時(shí)間: 2011-12-13 22:49
簡(jiǎn)述編程模型和編程平臺(tái)的底層機(jī)制,所利用到的概念沒(méi)有超過(guò)計(jì)算機(jī)體系結(jié)構(gòu)里面的基本常識(shí)。
其中的數(shù)據(jù)+算法可以認(rèn)為概括了C,pascal類似的編程語(yǔ)言,面向?qū)ο笫菍?duì)obj-c,c++,perl等等的一個(gè)簡(jiǎn)單概括。純數(shù)據(jù)流驅(qū)動(dòng)的模型一般用于工業(yè)開發(fā)當(dāng)中。
如果有那些點(diǎn)看不明白我可以再補(bǔ)充一些。
這篇文章的主要對(duì)象針對(duì)的是編程語(yǔ)言和編程平臺(tái)的設(shè)計(jì),和具體的java或者.net關(guān)系不是很大。 作者: jpzhu 時(shí)間: 2011-12-29 20:23 本帖最后由 jpzhu 于 2011-12-29 20:25 編輯