




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、過程實時性軟件開發的要求東北大學:譚樹彬2008年5月18日11 Northeastern University May 28, 2008第二部分:章節名稱第二部分:章節名稱第二部分:章節名稱21.1 什么是過程實時控制?Northeastern University Oct 18, 2005過程實時控制系統系統能在某個持續的過程(包括連續的或離散的)中,對應于系統的一組特定的輸入數值,在它們尚未發生有意義的變換時,就作出恰當的反應。也就是說,過程實時控制系統是處理具有嚴格時間響應限制的聯機外部過程的系統。由外部過程發來的中斷信號引起系統動作,系統對此在規定的時間內作出反應。 31.2 過程實
2、時控制的特點Northeastern University Oct 18, 2005例如一個化工過程,將測得的某些過程參數輸入系統,去激勵系統產生相應的響應,后者又去控制執行機構動作,校正過程參數,達到控制與調整的目的,這就是實時操作。如果當響應出現的時候,輸入已經遠離初始對應的激勵狀態,以至該響應已失去對系統參數實施控制與調整的意義,那么就不是實時操作。響應對激勵的時間之后,稱為響應時間或反應時間,實時性的基本指標是響應時間。對于不同的過程,有不同的響應時間要求。對于有些慢變化過程,具有幾分鐘甚至更長的響應時間都可以認為是實時的。對于快速過程,其響應時間可能要求達毫秒、微秒、毫微秒級甚至更短
3、。因此,實時性不能單純從絕對的時間響應長短來衡量,應當根據不同的對象,在相對意義上進行評價。41.2 過程實時控制的特點Northeastern University Oct 18, 2005計算機實時控制系統對控制對象物理量的采集,做出實時控制對策,并進行實時控制等過程,周而復始地重復進行,而且這些過程要及時地進行。也就是說,計算機的運算和操作速度必須與它所控制的對象實際運行過程相適應。為了達到這一要求,需要從硬件和軟件兩個方面來保證。在硬件方面要求配備實時時鐘和中斷優先級處理電路。在軟件方面要配備實時操作系統,有實時操作調度管理程序和中斷管理程序。調度管理程序按多道程序處理的概念對各任務進
4、行調度。例如,事故報警優先級高,但在處理事故信息時,打印占用時間較長,因此在優先調用事故報警程序過程中,當完成了事故音響、閃光和顯示等的工作后轉入事故打印時,調度程序將其分段斷開去執行其他功能模塊。對于實時性要求比較高的系統,除了采取上述措施以外,在應用軟件方面也需要采取各種方法提高程序計算和執行的速度。例如,采用快速的算法,采用快速語言編程等。總之,要多方設法,保證其響應和處理速度。硬實時和軟實時的區別就在于對外界的事件做出反應的時間。硬實時系統必須對實時事件及時地作出反應,絕對不能錯過事件處理時限。軟實時系統是指,如果在系統負荷較重的時候,允許發生錯過時限的情況而且不會造成太大的危害。5實
5、時性快速性Northeastern University Oct 18, 20051、一個計算機控制系統處理速度的快慢,主要取決于硬件系統的設計,尤其是所采用的處理器的性能。而對一個硬件結構已確定的計算機系統,它的實時性能完全取決于控制過程的要求;2、實時系統總是和“多任務”聯系在一起。如果一個計算機系統只運行一臺任務,則它永遠是在實時地執行著這個任務,這就沒有討論的必要了。6Northeastern University Oct 18, 2005LEVEL-IIPrinterHUBOPTHMI(PC)ProgrammingUnit (PC)CommonDiskL2OnlineL2Backup
6、Computer roomRouterUpper Level ComputerColorPrinterHUB控制系統配置圖CPU-1HPU-1HPU-2CPU-2HPU-3HPU-4CPU-4HardcopyTrimmer P/PHUBOPTHMI(PC)PrinterEntry P/PPLMasterPLHandlingTCMMaster &HandlingH-04/R700 (PLC) systemHMI ServerTCM Electrical roomHMI :Human Machine InterfacePOC :Process Operation ConsoleMICA :Modu
7、lar Integrated Concept ArchitectureCPU :Central Processing UnitHPU :High speed Processing UnitD.NET :Device NetworkC.NET :Control Area NetworkMV CUB :Magnet Valve CubicleLV CUB :Level Converter CubicleIF CUB :Interface CubicleRY CUB :Relay CubicleOPT :Optical TransceiverIWS :Industrial Work StationD
8、.NETMainDeskMainDeskHMI(PC)HMI(PC)HMI(PC)PrinterHMI(PC)PrinterPOC(for MICA)HMI(PC)CRTOPTDataInterfaceDataInterfaceOPTPIO StationPIOD.NETC.NETT/M PanelWelderCPCPLGSYLoad CellIF PanelINVVVVFMHydraulicPush UPT/M PanelShape Meter(*4 TO HUB)Thickness GaugeCPCPLGSYBanding MachineWeigher(*3 TO HUB)*1*1(TCM
9、 P/P)INVVVVFMCCMPL YardTCM YardPL Electrical roomIF PanelLocal OperationStationLocal OperationStationFor Electrical EngineeringAGC/ASCPLC SYSTEM LAN(mSNetwork-100)ETHERNETETHERNET(HMI/MICA LAN)OPTHUBOPTOPTHMI(PC)PrinterCPU-3HPU-5HPU-6PLAux.(Instrument)DataInterfaceTCMAux.(Instrument)HMI(PC)HMI(PC)TC
10、M P/PD.NETMainDeskOPTHardcopyOPTHUBOPTPIO StationPIOD.NETC.NETRY Cub.MagnescaleLaser speeddetectorBender(*6 TO HUB)RY Cub.(*2 TO HUB)HUB*2HUB*3*4*6ETHERNET(CONTROL DATA LAN)3.5-2(Spare ports)(Spare ports)HMI(PC)(MICA)HUBHMI(PC)(MICA)Optical fiber cableShielded twist cable(D.NET, C.NET)OPTHMI(PC)HMI(
11、PC)HMI(PC)HMI(PC)HMI(PC)Coil Check Station(Coil Inspection)ARP Electrical roomOPTHUBARP PLC*5HMI(PC)(*5 TO HUB)(RIO)(RIO)(RIO)IF Panel(RIO)MCCDL Panel(RIO)(RIO)SolenoidValveMV Cub.LV Cub.Sensor(RIO)(RIO)SolenoidValveMV Cub.LV Cub.Sensor(RIO)(RIO)7典型計算機控制系統Northeastern University Oct 18, 20058典型計算機控制
12、系統Northeastern University Oct 18, 20059實時控制系統的軟件結構Northeastern University Oct 18, 200510實時控制軟件的4個特征Northeastern University Oct 18, 20051、 “時間”是最寶貴的資源 控制系統納各個任務,包括輸入、輸出、控制計算和數據傳輸必須在確定時刻開始,在有效的截止時間內完成。推理和計算的正確不僅依賴于邏輯納準確,而且依賴于結果產生的時間。2、系統的可靠性極為重要 因為在正常情況下,系統一經啟動就要不停地連續工作;在異常情況下,要及時正確地處置錯誤故障,否則,因為控制的失誤可
13、能導致經濟和人身安全納重大損失。11實時控制軟件的4個特征(續)Northeastern University Oct 18, 20053、計算機的運行環境是實時控制系統的激活成分 因為控制系統納持久性和實時性,程序要常駐內存,要集中全部系統資源,保證執行的響應時間,所以要解決無約束的軟件設計方法與嚴格納時間和可靠性限制之間的矛盾。4、程序必須具有及時處理隨機事件納能力 為了滿足控制精度,任何時刻運行時間系統既不能丟失數據、信息,降低實時性,又要按照事件出現的順序和輕重緩急,合理地排隊處理,這就提出了任務納占先機制和設置優先級問題。12實現實時控制的5種形式Northeastern Unive
14、rsity Oct 18, 20051、成套的計算機控制系統產品 目前世界上已出現了許多與硬件產品配套的,具有不同特點、適用于不同控制對象的軟件產品,像HONEYWELL,ROSEMOUNT,FOXBORO,ANALOGIC,WDPF等DCS系統。 這類系統的軟件是由計算機廣家提供的,所謂軟件設計工作只是編寫用戶程序,程序設計簡單易學,系統運行可靠,維護量小,但由于軟件環境是封閉的,不容易開發改善。13實現實時控制的5種形式(續)Northeastern University Oct 18, 20052、以實時操作系統為基礎,由控制系統設計人員設計在操作系統上運行的實時應用軟件 目前世界上已有
15、一大批像AMX,iRMX,RTOX,PSOS,Lynxos的實時操作系統。 這類系統要求用戶自己編寫應用程序,設計程序的流向。由于系統軟件本身同時具有實時與多任務特性,用戶可以直接面向控制對象編程,面眾操作系統對應用程序進行實時調度相占先,循環處理,因此減少了應用軟件開發的難度和周期。但要求程序員熟悉實時多任務編程技術,而且圖形界面不太好。14實現實時控制的5種形式(續)Northeastern University Oct 18, 20053、集成的實時系統開發軟件 例如Citect,Intouch,由軟件制造商提供、是專門為實時控制服務的開發環境和運行環境。 它與采用實時操作系統的方式不同
16、,不需要用C、C+之類的通用語言逐行進行編程。系統本身已經構建了實現不同功能的軟件包、程序模塊和控鍵。用戶只需要按規定方式,根據實際對象要求,調用相應模塊即可構成應用程序。它與采用成套系統產品的方式也不同,是一種開放式的軟件結構,軟件功能不依賴于硬件產品,適用于不同的硬件配置和控制領域。這類產品程序編制工作量小,通用靈活,但一般價格都比較昂貴。15實現實時控制的5種形式(續)Northeastern University Oct 18, 20054、在通用操作系統(例如WINDOWS)環境下,實現程序的實時多任務特性 實際上是添加到C,PASCA,BASIC等基本庫中的一些可調用函數,專門用來
17、實現創建多任務,分配優先級,進行任務間的通信等特殊功能。依靠它,用戶可以免去設置中斷,設計調度程序一系列數瑣困難的編程工作,用普通編程技術礙到實時多任務應用程序,經濟實用。16實現實時控制的5種形式(續)Northeastern University Oct 18, 20055、直接從系統的最底層采用高級語言或匯編語言編制實時應用程序 這種方法往往先把系統劃分層次,明確目標、任務,對各個任務的子過程進行結構化編程,然后還要另外編寫計時、中斷、調度等控制程序。程序設計的難度和工作量很大,但整個程序對于設計人員來說是完全透明的,適應性強。17過程實時控制的基礎Northeastern Univer
18、sity Oct 18, 20051、實時操作系統我們在日常工作學習環境中接觸最多的是通用操作系統,通用操作系統是由分時操作系統發展而來,大部分都支持多用戶和多進程,負責管理眾多的進程并為它們分配系統資源。分時操作系統的基本設計原則是:盡量縮短系統的平均響應時間并提高系統的吞吐率,在單位時間內為盡可能多的用戶請求提供服務。由此可以看出,分時操作系統注重平均表現性能,不注重個體表現性能。如對于整個系統來說,注重所有任務的平均響應時間而不關心單個任務的響應時間,對于某個單個任務來說,注重每次執行的平均響應時間而不關心某次特定執行的響應時間。通用操作系統中采用的很多策略和技巧都體現出了這種設計原則,
19、如虛存管理機制中由于采用了LRU等頁替換算法,使得大部分的訪存需求能夠快速地通過物理內存完成,只有很小一部分的訪存需求需要通過調頁完成,但從總體上來看,平均訪存時間與不采用虛存技術相比沒有很大的提高,同時又獲得了虛空間可以遠大于物理內存容量等好處,因此虛存技術在通用操作系統中得到了十分廣泛的應用。類似的例子還有很多,如Unix文件系統中文件存放位置的間接索引查詢機制等,甚至硬件設計中的Cache技術以及CPU的動態分支預測技術等也都體現出了這種設計原則。由此可見,這種注重平均表現,即統計型表現特性的設計原則的影響是十分深遠的。 18過程實時控制的基礎Northeastern Universit
20、y Oct 18, 2005而對于實時操作系統,前面我們已經提到,它除了要滿足應用的功能需求以外,更重要的是還要滿足應用提出的實時性要求,而組成一個應用的眾多實時任務對于實時性的要求是各不相同的,此外實時任務之間可能還會有一些復雜的關聯和同步關系,如執行順序限制、共享資源的互斥訪問要求等,這就為系統實時性的保證帶來了很大的困難。因此,實時操作系統所遵循的最重要的設計原則是:采用各種算法和策略,始終保證系統行為的可預測性(predictability)。可預測性是指在系統運行的任何時刻,在任何情況下,實時操作系統的資源調配策略都能為爭奪資源(包括CPU、內存、網絡帶寬等)的多個實時任務合理地分配
21、資源,使每個實時任務的實時性要求都能得到滿足。與通用操作系統不同,實時操作系統注重的不是系統的平均表現,而是要求每個實時任務在最壞情況下都要滿足其實時性要求,也就是說,實時操作系統注重的是個體表現,更準確地講是個體最壞情況表現。舉例來說,如果實時操作系統采用標準的虛存技術,則一個實時任務執行的最壞情況是每次訪存都需要調頁,如此累計起來的該任務在最壞情況下的運行時間是不可預測的,因此該任務的實時性無法得到保證。從而可以看出在通用操作系統中廣泛采用的虛存技術在實時操作系統中不宜直接采用。 19過程實時控制的基礎Northeastern University Oct 18, 20052、實時數據庫
22、硬實時和軟實時的區別就在于對外界的事件做出反應的時間。硬實時系統必須對實時事件及時地作出反應,絕對不能錯過事件處理時限。軟實時系統是指,如果在系統負荷較重的時候,允許發生錯過時限的情況而且不會造成太大的危害。實時數據庫是數據庫系統發展的一個分支,它適用于處理不斷更新的快速變化的數據及具有時間 限制的事務處理。實時數據庫技術是實時系統和數據庫技術相結合的產物,研究人員希望利用數據庫 技術來解決實時系統中的數據管理問題,同時利用實時技術為實時數據庫提供時間驅動調度和資源分 配算法。然而,實時數據庫并非是兩者在概念、結構和方法上的簡單集成。需要針對不同的應用需求 和應用特點,對實時數據模型、實時事務
23、調度與資源分配策略、實時數據查詢語言、實時數據通信等 大量問題作深入的理論研究。 20過程實時控制的基礎Northeastern University Oct 18, 2005主要研究內容包括: 實時數據庫模型實時事務調度:包括并發控制、沖突解決、死鎖等內容容錯性與錯誤恢復訪問準入控制內存組織與管理I/O與磁盤調度主內存數據庫系統不精確計算問題放松的可串行化問題實時SQL實時事務的可預測性21過程實時控制的基礎Northeastern University Oct 18, 2005實時數據庫RTDB(Real-Time Data Base)是數據和事務都有定時特性或顯示的定時限制的數據庫。RT
24、DB的本質特征就是定時限制,定時限制可以歸納為兩類:一類是與事務相聯的定時限制,典型的就是“截止時間”;另一類為與數據相聯的“時間一致性”。時間一致性則是作為過去的限制的一個時間窗口,它是由于要求數據庫中數據的狀態與外部環境中對應實體的實際狀態要隨時一致,以及由事務存取的各數據狀態在時間上要一致而引起的。實時數據庫是一個新的數據庫研究領域,它在概念、方法和技術上都與傳統的數據庫有很大的不同,其核心問題是事物處理既要確保數據的一致性,又要保證事物的正確性,而它們都與定時限制相關聯。 22實時系統對局域網的需求Northeastern University Oct 18, 2005 通常用網絡資源
25、的利用率來衡量一個網絡的性能。實時系統和普通系統不同,在希望有高的利用率的同時,還希望有好的實時性。如果在利用率和實時性發生沖突的情況下,寧可犧牲一點利用率,也要保證實時性。在實時系統中,對信道的存取控制方法有自己的一些要求。如果把實時性的要求表示成時間約束條件,那么,局域網的存取控制應該滿足下列時間約束: (1)每個節點每次取得通信的時間不能超過某一個時間限制值。因為信道是共享的,如果允許某些節點可以無限制地使用信道,或者占用信道的時間很長,那么,其他一些節點獲得信道的時間必然減少,或者在需要獲取信道的時候未能得到信道,這也必然影響這些節點的實時性。 23實時系統對局域網的需求Northea
26、stern University Oct 18, 2005 (2)每個節點必須在一個確定的時間周期里至少獲取一次信道。這主要是針對實時控制系統而言的。在實時控制系統里,每個節點每時每刻都需要進行實時數據刷新,它必然要把一些被更新了的數據及時通報給其他需要這些數據的節點。如果不能保證每個節點在一個確定時間周期里把這些被更新的實時數據發送出來,那么,實時性也就得不到滿足。 (3)優先級高的報文優先服務,這是實時系統的基本要求。 (4)必須保證報文的接收順序和發送順序一致。報文接收和發送的這種因果順序關系,在實時控制系統里特別重要。設想在一個控制系統里,從中央控制室發出的指令順序是:關閉1號控制開關
27、,再打開2號控制開關。如果通信不是因果順序的,控制裝置接收到順序顛倒的指令,先打開2號控制開關,再關閉1號控制開關,就可能發生嚴重事故。248.1 線性離散系統的基本概念 LLLhREF測厚儀軋機軋件 測厚儀式AGC的不穩定現象258.1 線性離散系統的基本概念 268.1 線性離散系統的基本概念 1) 模擬信號(即連續信號) 時間上連續,幅值上也連續的信號。2) 離散的模擬信號 時間上離散,幅值上連續的信號。3) 數字信號 時間上離散,幅值上也是離散的信號;或者說,時間上離散,幅值是用一組數碼表示的信號。4) 采樣 將模擬信號按一定時間采樣成離散的模擬信號。5) 量化 采用一組數碼來逼近離散
28、模擬信號的幅值,將其轉化成數字信號。278.1 線性離散系統的基本概念 (1)連續控制系統系統中均為模擬信號按包含的信號形式分類:連續控制系統和離散控制系統288.1 線性離散系統的基本概念 (2)離散控制系統系統中既含有連續信號 , , , 又含有離散模擬信號 , 的混合系統。采樣控制系統是由連續的控制對象、離散的控制器、采樣器和保持器等幾個環節所組成。 29(1) 在連續系統中的一處或幾處設置采樣開關,對被控對象進行斷續控制;(2) 通常采樣周期遠小于被控對象的時間常數;(3) 采樣開關合上的時間遠小于斷開的時間; (4) 采樣周期通常是相同的。8.1 線性離散系統的基本概念 7. 采樣系
29、統的特點308.2 離散時間函數的數學表達式及采樣定理 開關打開時,沒有輸出; 開關閉合時才有輸出,其值等于采樣時刻的模擬量 。 1. 離散時間函數的數學表達式(1)采樣過程的特點318.2 離散時間函數的數學表達式及采樣定理X(0), X(1), X(2), , X(n) 328.2 離散時間函數的數學表達式及采樣定理每周期應該有多少采樣點 ?最少2點:338.2 離散時間函數的數學表達式及采樣定理348.2 離散時間函數的數學表達式及采樣定理從功能和經濟上選最佳采樣周期358.2 離散時間函數的數學表達式及采樣定理3. 采樣定理 采樣定理所要解決的問題是:采樣周期選多大,才能將采樣信號較少
30、失真地恢復為原來的連續信號。 香農(Shannon)采樣定理 為了使信號得到很好的復現,采樣頻率應大于等于原始信號最大頻率的二倍,即368.2 離散時間函數的數學表達式及采樣定理4. 信號的復現(1)信號復現定義 把采樣信號恢復為原來連續信號的過程通常稱為信號的復現。 (2)信號復現方法加入理想濾波器 (理論上) 加入保持器 (實際上) 37零階保持器的傳遞函數為:8.2 離散時間函數的數學表達式及采樣定理(3)零階保持器38過程實時控制的基礎是什么?Northeastern University Oct 18, 200539過程實時控制驅動方式及控制結構Northeastern Univer
31、sity Oct 18, 2005 任務的功能及運行規律不同,驅動方式及其控制結構也不盡相同。具體可分為: (1 )時間驅動 (2)數據驅動 (3)中斷驅動 (4)事件驅動 不同驅動方式對應不同的控制結構 40過程實時控制驅動方式及控制結構Northeastern University Oct 18, 2005 (1)時間驅動 時間驅動又可分為三種類型:延遲驅動、絕對時間驅動和定時驅動。1)延遲驅動 延遲驅動是使實時任務暫停一指定時間間隔(即延遲時間)后再驅動執行的一種驅動方式,適用于對周期時間要求不太嚴格的周期任務,執行周期等于實時任務的執行時間與延遲時間之和,由于實時任務執行時間的長短受系
32、統當時狀態的制約,因此執行周期亦不固定。延遲驅動方式要求實時任務在本次執行結束時設置好下次執行的間隔時間,然后該任務便去睡眠(等待),等間隔時間到,即再次鉸驅動執行。41過程實時控制的驅動方式及控制結構Northeastern University Oct 18, 2005 (2)絕對時間驅動 絕對時間是指北京時間。這種驅動方式非常類似我們日常生活中可定時起鬧的鬧鐘,只要實時任務在本次執行時將下次驅動執行的時刻設置好,一旦定時鐘計時到指定的時刻,該任務即被驅動,經任務調度后執行。按指定時到啟動運行的任務可采用這種驅動方式。 42過程實時控制的基礎是什么?Northeastern Univers
33、ity Oct 18, 2005 (3)定時驅動 定時驅動與上述延遲驅動類似,都屬于相對時間驅動,但延遲驅動所設置的時間間隔不包括任務執行時間,而定時驅動所設置的時間間隔包括任務的執行時間。定時驅動方式適用于對周期時間要求嚴格的周期任務。 定時驅動的特點是:i. 驅動的時間間隔一次設定始終有效;ii. 兩次驅動之間的時間間隔保持不變;iii. 周期任務的執行時間應遠遠小于周期時間。 43過程實時控制的基礎是什么?Northeastern University Oct 18, 2005 (2)數據驅動 數據驅動系指實時任務以是否獲得所需之數據作為運行條件可采取此驅動方式。 假設采樣任務與數據處理
34、任務之間以數據通信方式進行數據交換,顯然,當數據處理任務接收不到采樣任務的數據時只好等待,一旦采樣任務把實時數據采集進來,便可將數據發送給數據處理任務,并立即驅動數據處理任務運行來處理這些數據。44過程實時控制的基礎是什么?Northeastern University Oct 18, 2005(3)中斷驅動 生產過程中一些非常重要的開關量和模擬量點,往往利用中斷來監視它們助工作狀態,一旦發生誤動作(開關量點)或越限(模擬量點),立即會通過中斷反映到計算機中,CPU響應中斷后,隨即啟動相應的中斷處理任務處理所發生的上述緊急事件。如果這類監測點的工作狀態正常,此類中斷便不會發生,中斷處理仟務也就
35、只好等待。45過程實時控制的基礎是什么?Northeastern University Oct 18, 2005(4)事件驅動 “事件”系指一種情況或一種活動的發生或一種指定狀態的變化。在操作系統中,一般特事件抽象成一個數據或一種數據結構。如果一個任務以事件出現作為運行條件,事件一旦產生,事件的發出者(操作系統或別的任務)就要將等待該事件的任務喚醒并投入運行,處理完事件所要求的操作后又繼續等待下一個事件的出現。報警管理任務、數據庫管理任務、操作控制臺命令處理任務等可采用此驅動方式。 46過程實時控制的基礎是什么?Northeastern University Oct 18, 2005 (5)
36、其他控制結構 前面曾提到具有運行截止期任務的情況,對于這類實時任務,它的驅動方式可能是這里介紹的某一種,也可能直接由其他任務驅動。不論哪一種驅動方式,在其運行的開始必須首先設置好運行的截止時間,然后再開始其正常處理,如果在截止期內能夠處理完成,則阻塞等待下次的驅動。如果在截止期內不能完成處理,則被時鐘管理程序發現后,會立即進入錯誤處理程序來處理發生的錯誤(如夭折該任務)。47一、什么是中斷在CPU正常運行程序時,由于內部或外部某個非預料事件的發生,使CPU暫停正在運行的程序,而轉去執行處理引起中斷事件的程序,然后再返回被中斷了的程序,繼續執行。這個過程就是中斷。48中 斷在通用操作系統中,大部
37、分外部中斷都是開啟的,中斷處理一般由設備驅動程序來完成。由于通用操作系統中的用戶進程一般都沒有實時性要求,而中斷處理程序直接跟硬件設備交互,可能有實時性要求,因此中斷處理程序的優先級被設定為高于任何用戶進程。 但對于實時操作系統采用上述的中斷處理機制是不合適的。首先,外部中斷是環境向實時操作系統進行的輸入,它的頻度是與環境變化的速率相關的,而與實時操作系統無關。如果外部中斷產生的頻度不可預測,則一個實時任務在運行時被中斷處理程序阻塞的時間開銷也是不可預測的,從而使任務的實時性得不到保證;如果外部中斷產生的頻度是可預測的,一旦某外部中斷產生的頻度超出其預測值(如硬件故障產生的虛假中斷信號或預測值
38、本身有誤)就可能會破壞整個系統的可預測性。其次,實時操作系統中的各用戶進程一般都有實時性要求,因此中斷處理程序優先級高于所有用戶進程的優先級分配方式是不合適的。 一種較適合實時操作系統的中斷處理方式為:除時鐘中斷外,屏蔽所有其它中斷,中斷處理程序變為周期性的輪詢操作,這些操作由核心態的設備驅動程序或由用戶態的設備支持庫來完成。采用這種方式的主要好處是充分保證了系統的可預測性,主要缺點是對環境變化的響應可能不如上述中斷處理方式快,另外輪詢操作在一定程度上降低了CPU的有效利用率。另一種可行的方式是:對于采用輪詢方式無法滿足需求的外部事件,采用中斷方式,其它時間仍然采用輪詢方式。但此時中斷處理程序
39、與所以其它任務一樣擁有優先級,調度器根據優先級對處于就緒態的任務和中斷處理程序統一進行處理器調度。這種方式使外部事件的響應速度加快,并避免了上述中斷方式帶來第二個問題,但第一個問題仍然存在。 此外為提高時鐘中斷響應時間的可預測性,實時操作系統應盡可能少地屏蔽中斷。 49一、什么是中斷50中斷服務程序1中斷服務程序 2非預料事件1CPU執行流程非預料事件 251二、中斷源和中斷優先權引起中斷的因素很多,將發出中斷申請的外設或內部原因,稱為中斷源;給每個中斷源指定一個優先權,稱為中斷優先權;當多個中斷源同時發出中斷請求時,CPU按照中斷優先權的高低順序,依次響應。52三、中斷服務程序 處理中斷源,
40、完成其所要求功能的程序,稱中斷服務程序(中斷例行程序、中斷子程)。CPU執行流程中斷服務程序1中斷服務程序2非預料事件2非預料事件153 非預料事件是指事件發生的時間無法預知,即中斷源何時產生中斷不確定,是隨機的。 但事件的性質及處理方法則是已知的, 確定的,即中斷服務程序是事先編寫好的,只是何時執行未知。 中斷源產生中斷的隨機性,使中斷服務程序的執行也具有隨機性,即何時執行中斷服務程序不是在程序中安排好的。54四、斷點和中斷現場斷點:是指CPU執行的現行程序被中斷時的下一條指令的地址, 又稱斷點地址。中斷現場: 是指CPU轉去執行中斷服務程序前的運行狀態,包括CPU內部各寄存器、斷點地址等。
41、551000:150H 、 、 、 、MOV AX, 0ADD AX, DXMOV DI , AX、 PUSH AX 、 、 IRETCPU在執行此指令時,某中斷源發申請中斷;CPU在執行完該指令后,轉去執行中斷子程地址1000:150H為斷點斷點概念:56早期中斷概念的引入, 是為解決CPU與外設間的速度匹配問題, 提高CPU 的工作效率。 中斷源主要是由外部硬件產生。當今的中斷技術, 不再限于外部硬件產生中斷(稱硬件中斷或外中斷 ), 還可由CPU內部產生 (如被零除操作), 或者由程序預先安排,即由指令調用中斷服務程序。 (稱軟件中斷或內中斷)五、硬件中斷和軟件中斷571000:150H
42、 、 、 、 、MOV AH, 01INT 21HCMP AL, 0Dh、 PUSH AX 、 、IRET用指令調用中斷程序軟件中斷用指令調用中斷程序58算法對效率的影響Northeastern University Oct 18, 2005 1、在編程序前,盡可能花劍有關的算術表達式和邏輯表達式;2、仔細檢查算法中的嵌套的循環,盡可能將某些語句或表達式移到循環外面;3、盡量避免使用多維數組;4、盡量避免使用指針和復雜的表;5、采用“快速”的算術運算;(y2=yy)6、不要混淆數據類型,避免在表達式中出現類型混雜;7、選用等效的高效算法。59軟件開發規范Northeastern Univers
43、ity Oct 18, 2005 一、排版: 1.關鍵詞和操作符之間加適當的空格。 2.相對獨立的程序塊與塊之間加空行 3.較長的語句、表達式等要分成多行書寫。 4.劃分出的新行要進行適應的縮進,使排版整齊,語句可讀。 5.長表達式要在低優先級操作符處劃分新行,操作符放在新行之首。 6.循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分。 7.若函數或過程中的參數較長,則要進行適當的劃分。 8.不允許把多個短語句寫在一行中,即一行只寫一條語句。 9.函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要采用縮進風格。 10.C/C+語言是用大括號和界定一段程序塊的,編寫程序塊時和
44、 應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數體 的開始、類的定義、結構的定義、枚舉的定義以及if、for、do、while、 switch、case語句中的程序都要采用如上的縮進方式。 60軟件開發規范Northeastern University Oct 18, 2005 二、注釋 1.注釋要簡單明了。 2.邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。 3.在必要的地方注釋,注釋量要適中。注釋的內容要清楚、明了,含義準確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。 4.對代碼的注釋應放在其上方相鄰位置,不可放在下面。 5.對數
45、據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋應放在此域的右方;同一結構中不同域的注釋要對齊。 6.變量、常量的注釋應放在其上方相鄰位置或右方。 7.全局變量要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。 8.在每個源文件的頭部要有必要的注釋信息,包括:文件名;版本號;作者;生成 日期;模塊功能描述(如功能、主要算法、內部各部分之間的關系、該文件與其 它文件關系等);主要函數或過程清單及本文件歷史修改記錄等。 9.在每個函數或過程的前面要有必要的注釋信息,包括:函數或過程名稱;功能描 述;輸入、輸出及返回值說明;調用關系及被調
46、用關系說明等。 61軟件開發規范Northeastern University Oct 18, 2005三、命名 1.較短的單詞可通過去掉“元音”形成縮寫; 2.較長的單詞可取單詞的頭幾發符的優先級,并用括號明確表達式的操作順序,避免使用默認優先級。 3.使用匈牙利表示法 四、可讀性 1.避免使用不易理解的數字,用有意義的標識來替代。 2.不要使用難懂的技巧性很高的語句。 3.源程序中關系較為緊密的代碼應盡可能相鄰。 62軟件開發規范Northeastern University Oct 18, 2005五、變量 1.去掉沒必要的公共變量。 2.構造僅有一個模塊或函數可以修改、創建,而其余有關
47、模塊或函數只訪問的公共變量,防止多個不同模塊或函數都可以修改、創建同一公共變量的現象。 3.仔細定義并明確公共變量的含義、作用、取值范圍及公共變量間的關系。 4.明確公共變量與操作此公共變量的函數或過程的關系,如訪問、修改及創建等。 5.當向公共變量傳遞數據時,要十分小心,防止賦與不合理的值或越界等現象發生。 6.防止局部變量與公共變量同名。 7.仔細設計結構中元素的布局與排列順序,使結構容易理解、節省占用空間,并減少引起誤用現象。 8.結構的設計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應用保留余地(如預留一些空間等)。 9.留心具體語言及編譯器處理不同數據類型的原則及有關細節。
48、 10.嚴禁使用未經初始化的變量。聲明變量的同時對變量進行初始化。 11.編程時,要注意數據類型的強制轉換。 63軟件開發規范Northeastern University Oct 18, 2005六、函數、過程 1.函數的規模盡量限制在200行以內。 2.一個函數最好僅完成一件功能。 3.為簡單功能編寫函數。 4.函數的功能應該是可以預測的,也就是只要輸入數據相同就應產生同樣的輸出。 5.盡量不要編寫依賴于其他函數內部實現的函數。 6.避免設計多參數函數,不使用的參數從接口中去掉。 7.用注釋詳細說明每個參數的作用、取值范圍及參數間的關系。 8.檢查函數所有參數輸入的有效性。 9.檢查函數所
49、有非參數輸入的有效性,如數據文件、公共變量等。 10.函數名應準確描述函數的功能。 11.避免使用無意義或含義不清的動詞為函數命名 12.函數的返回值要清楚、明了,讓使用者不容易忽視錯誤情況。 13/明確函數功能,精確(而不是近似)地實現函數設計。 14.減少函數本身或函數間的遞歸調用。 64過程實時控制Northeastern University Oct 18, 200565過程實時控制Northeastern University Oct 18, 200566程序,進程和線程的概述16位的中,應用程序只有在調用了GetMessage,PeekMessage等函數后,才有可能把CPU控制權
50、交給系統,別的應用程序才有可能得到CPU的控制權Windows 95/NT實行搶先式多任務,程序對CPU的占用時間是由系統決定的。系統為每個程序分配一定的CPU時間,當程序的運行超過規定的時間后,系統就會中斷該程序并把CPU控制權交給別的程序67進程和線程在32位的Win32系統中,多任務是指系統可以同時運行多個進程,而每個進程可以同時執行多個線程。每個程序一般對應一個進程,每個進程中可以運行多個線程,每個線程獨立地執行程序代碼中的一組語句進程是系統進行資源分配的基本單位,每個進程擁有自己的虛擬地址空間。每個進程擁有自己的主線程,但可以另外建立其它的線程。進程中的線程是并行執行的線程是Wind
51、ows95/98和Windows NT系統調度的基本單位,一個進程至少擁有一個主線程。進程可以通過調用庫函數或Win32 API函數來增加線程。系統為每一個線程分配一個CPU時間片。實際上,每一個微觀時刻只有一個線程在運行,因為只有一個CPU68線程的種類線程分為用戶界面線程和工作者線程兩種用戶界面線程擁有自己的消息循環來處理界面消息,可以與用戶進行交互工作者線程沒有自身的消息循環,一般用來完成后臺工作69MFC中的線程類CWinThread類派生自CcmdTarget類,CWinThread對象代表在一個應用程序內運行的線程。CWinThread對象允許一個應用程序擁有多個線程CWinThr
52、ead支持兩種類型的線程:工作者線程和用戶界面線程。工作者線程沒有收發消息的功能,例如進行后臺計算。用戶界面線程具有收發消息的功能,CWinApp及其派生類就是用戶界面線程的例子,其它用戶界面線程也可由CWinThread派生為了創建一個線程,必須調用AfxBeginThread函數。如果需要用戶界面線程,則將指向CWinThread派生類的CRuntimeClass的指針傳遞給AfxBeginThread;如果需要工作者線程,則將指向控制函數的指針和控制函數的參數傳遞給AfxBeginThread70線程的創建工作者線程的創建用戶界面線程的創建71工作者線程的創建首先完成控制函數的編寫用函數
53、AfxBeginThread來啟動線程72工作者線程的創建控制函數:UINT MyWorkThreadFunction(LPVOID pParam)CWnd * pMainWnd = AfxGetMainWnd();/如果參數pParam為空,即參數傳遞錯誤,那么線程異常結束if(pParam=NULL):MessageBox(pMainWnd-m_hWnd,Param error,Thread error,MB_OK);AfxEndThread(2);CString *pStr = (CString *)pParam; /指針傳遞給pStrpStr-MakeReverse(); /調用類成員
54、函數,完成對字符串的逆序操作MessageBox(pMainWnd-m_hWnd,Thread run!,Thread run,MB_OK); /顯示線程運行的消息框return 0;73工作者線程的創建用函數AfxBeginThread來啟動線程AfxBeginThread(MyWorkThreadFunction,(LPVOID)pString);74用戶界面線程的創建首先必須從CWinThread派生出一個新類。事實上,代表進程主線程的CWinApp類就是CWinThread的派生類。同時,需要重載派生類的InitInstance,ExitInstance,Run等函數使用AfxBegi
55、nThread函數的第二個版本來創建用戶界面線程:CWinThread* AfxBeginThread(CRuntimeClass* pThreadClass,int nPriority=THREAD_PRIORITY_NORMAL,UNIT nStackSize=0,DWORD dwreateFlags=0,LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL);75創建線程的其它方法通過構造一個CWinThread派生對象,再調用其成員函數CreateThread()來創建一個新線程76線程的啟動當使用AfxBeginThread()來創建一個工作者線程時,
56、參數dwCreateFlags指定了線程的初始狀態,通常為0,那么線程在創建后立即執行;如果為CREATE_SUSPENDED,在線程在被創建后掛起,指導其它線程調用ResumeThread()時才繼續執行77線程的終止當發生以下事情之一時,線程終止:線程調用ExitThread線程函數返回調用全局函數AfxEndThread.78線程運行狀態的設置線程啟動時,參數dwCreateFlags為則立即執行,為CREATE_SUSPENDED則掛起使用由CWinThread類派生的線程時,可用SuspendThread()將自身掛起,被其它線程調用ResumeThread()繼續執行線程自身可調用休眠函數:Sleep(DWORD dwMilliseconds)。此函數用于執行那些本質是基于時間的線程,比如動畫控制的后臺線程7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動售貨機行業市場發展現狀與市場發展前景展望預測考核試卷
- 回歸測試必要性分析試題及答案
- 行政組織理論發展的影響因素及2025年試題及答案
- 帶寬管理與流量控制技術試題及答案
- 關注軟件測試工程師考試試題及答案動態
- 公路工程施工案例試題及答案探討
- 老年人日常生活照料技能考核試卷
- 嵌入式控制系統設計技巧試題及答案
- 嵌入式編程中的最佳實踐試題及答案
- 行政組織中的社會責任與價值觀探索試題及答案
- 電力輸電線路施工安全培訓
- 體育中國學習通超星期末考試答案章節答案2024年
- 定制家具工裝合同模板
- 云南省普通高中學生綜合素質評價方案
- 數學家華羅庚課件
- 《人工智能基礎》課件-AI的前世今生:她從哪里來
- 西藏事業單位統一招聘考試真題
- FGFR3在膀胱尿路上皮癌中的表達及對臨床意義的研究分析
- 奶茶店食品安全管理制度文本
- 自行車棚修建合同
- 2025屆廣東省中山市實驗中學高三第二次聯考生物試卷含解析
評論
0/150
提交評論