版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、過程實(shí)時(shí)性軟件開發(fā)的要求東北大學(xué):譚樹彬2008年5月18日11 Northeastern University May 28, 2008第二部分:章節(jié)名稱第二部分:章節(jié)名稱第二部分:章節(jié)名稱21.1 什么是過程實(shí)時(shí)控制?Northeastern University Oct 18, 2005過程實(shí)時(shí)控制系統(tǒng)系統(tǒng)能在某個(gè)持續(xù)的過程(包括連續(xù)的或離散的)中,對應(yīng)于系統(tǒng)的一組特定的輸入數(shù)值,在它們尚未發(fā)生有意義的變換時(shí),就作出恰當(dāng)?shù)姆磻?yīng)。也就是說,過程實(shí)時(shí)控制系統(tǒng)是處理具有嚴(yán)格時(shí)間響應(yīng)限制的聯(lián)機(jī)外部過程的系統(tǒng)。由外部過程發(fā)來的中斷信號(hào)引起系統(tǒng)動(dòng)作,系統(tǒng)對此在規(guī)定的時(shí)間內(nèi)作出反應(yīng)。 31.2 過程實(shí)
2、時(shí)控制的特點(diǎn)Northeastern University Oct 18, 2005例如一個(gè)化工過程,將測得的某些過程參數(shù)輸入系統(tǒng),去激勵(lì)系統(tǒng)產(chǎn)生相應(yīng)的響應(yīng),后者又去控制執(zhí)行機(jī)構(gòu)動(dòng)作,校正過程參數(shù),達(dá)到控制與調(diào)整的目的,這就是實(shí)時(shí)操作。如果當(dāng)響應(yīng)出現(xiàn)的時(shí)候,輸入已經(jīng)遠(yuǎn)離初始對應(yīng)的激勵(lì)狀態(tài),以至該響應(yīng)已失去對系統(tǒng)參數(shù)實(shí)施控制與調(diào)整的意義,那么就不是實(shí)時(shí)操作。響應(yīng)對激勵(lì)的時(shí)間之后,稱為響應(yīng)時(shí)間或反應(yīng)時(shí)間,實(shí)時(shí)性的基本指標(biāo)是響應(yīng)時(shí)間。對于不同的過程,有不同的響應(yīng)時(shí)間要求。對于有些慢變化過程,具有幾分鐘甚至更長的響應(yīng)時(shí)間都可以認(rèn)為是實(shí)時(shí)的。對于快速過程,其響應(yīng)時(shí)間可能要求達(dá)毫秒、微秒、毫微秒級(jí)甚至更短
3、。因此,實(shí)時(shí)性不能單純從絕對的時(shí)間響應(yīng)長短來衡量,應(yīng)當(dāng)根據(jù)不同的對象,在相對意義上進(jìn)行評(píng)價(jià)。41.2 過程實(shí)時(shí)控制的特點(diǎn)Northeastern University Oct 18, 2005計(jì)算機(jī)實(shí)時(shí)控制系統(tǒng)對控制對象物理量的采集,做出實(shí)時(shí)控制對策,并進(jìn)行實(shí)時(shí)控制等過程,周而復(fù)始地重復(fù)進(jìn)行,而且這些過程要及時(shí)地進(jìn)行。也就是說,計(jì)算機(jī)的運(yùn)算和操作速度必須與它所控制的對象實(shí)際運(yùn)行過程相適應(yīng)。為了達(dá)到這一要求,需要從硬件和軟件兩個(gè)方面來保證。在硬件方面要求配備實(shí)時(shí)時(shí)鐘和中斷優(yōu)先級(jí)處理電路。在軟件方面要配備實(shí)時(shí)操作系統(tǒng),有實(shí)時(shí)操作調(diào)度管理程序和中斷管理程序。調(diào)度管理程序按多道程序處理的概念對各任務(wù)進(jìn)
4、行調(diào)度。例如,事故報(bào)警優(yōu)先級(jí)高,但在處理事故信息時(shí),打印占用時(shí)間較長,因此在優(yōu)先調(diào)用事故報(bào)警程序過程中,當(dāng)完成了事故音響、閃光和顯示等的工作后轉(zhuǎn)入事故打印時(shí),調(diào)度程序?qū)⑵浞侄螖嚅_去執(zhí)行其他功能模塊。對于實(shí)時(shí)性要求比較高的系統(tǒng),除了采取上述措施以外,在應(yīng)用軟件方面也需要采取各種方法提高程序計(jì)算和執(zhí)行的速度。例如,采用快速的算法,采用快速語言編程等??傊?,要多方設(shè)法,保證其響應(yīng)和處理速度。硬實(shí)時(shí)和軟實(shí)時(shí)的區(qū)別就在于對外界的事件做出反應(yīng)的時(shí)間。硬實(shí)時(shí)系統(tǒng)必須對實(shí)時(shí)事件及時(shí)地作出反應(yīng),絕對不能錯(cuò)過事件處理時(shí)限。軟實(shí)時(shí)系統(tǒng)是指,如果在系統(tǒng)負(fù)荷較重的時(shí)候,允許發(fā)生錯(cuò)過時(shí)限的情況而且不會(huì)造成太大的危害。5實(shí)
5、時(shí)性快速性Northeastern University Oct 18, 20051、一個(gè)計(jì)算機(jī)控制系統(tǒng)處理速度的快慢,主要取決于硬件系統(tǒng)的設(shè)計(jì),尤其是所采用的處理器的性能。而對一個(gè)硬件結(jié)構(gòu)已確定的計(jì)算機(jī)系統(tǒng),它的實(shí)時(shí)性能完全取決于控制過程的要求;2、實(shí)時(shí)系統(tǒng)總是和“多任務(wù)”聯(lián)系在一起。如果一個(gè)計(jì)算機(jī)系統(tǒng)只運(yùn)行一臺(tái)任務(wù),則它永遠(yuǎn)是在實(shí)時(shí)地執(zhí)行著這個(gè)任務(wù),這就沒有討論的必要了。6Northeastern University Oct 18, 2005LEVEL-IIPrinterHUBOPTHMI(PC)ProgrammingUnit (PC)CommonDiskL2OnlineL2Backup
6、Computer roomRouterUpper Level ComputerColorPrinterHUB控制系統(tǒng)配置圖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典型計(jì)算機(jī)控制系統(tǒng)Northeastern University Oct 18, 20058典型計(jì)算機(jī)控制
12、系統(tǒng)Northeastern University Oct 18, 20059實(shí)時(shí)控制系統(tǒng)的軟件結(jié)構(gòu)Northeastern University Oct 18, 200510實(shí)時(shí)控制軟件的4個(gè)特征Northeastern University Oct 18, 20051、 “時(shí)間”是最寶貴的資源 控制系統(tǒng)納各個(gè)任務(wù),包括輸入、輸出、控制計(jì)算和數(shù)據(jù)傳輸必須在確定時(shí)刻開始,在有效的截止時(shí)間內(nèi)完成。推理和計(jì)算的正確不僅依賴于邏輯納準(zhǔn)確,而且依賴于結(jié)果產(chǎn)生的時(shí)間。2、系統(tǒng)的可靠性極為重要 因?yàn)樵谡G闆r下,系統(tǒng)一經(jīng)啟動(dòng)就要不停地連續(xù)工作;在異常情況下,要及時(shí)正確地處置錯(cuò)誤故障,否則,因?yàn)榭刂频氖д`可
13、能導(dǎo)致經(jīng)濟(jì)和人身安全納重大損失。11實(shí)時(shí)控制軟件的4個(gè)特征(續(xù))Northeastern University Oct 18, 20053、計(jì)算機(jī)的運(yùn)行環(huán)境是實(shí)時(shí)控制系統(tǒng)的激活成分 因?yàn)榭刂葡到y(tǒng)納持久性和實(shí)時(shí)性,程序要常駐內(nèi)存,要集中全部系統(tǒng)資源,保證執(zhí)行的響應(yīng)時(shí)間,所以要解決無約束的軟件設(shè)計(jì)方法與嚴(yán)格納時(shí)間和可靠性限制之間的矛盾。4、程序必須具有及時(shí)處理隨機(jī)事件納能力 為了滿足控制精度,任何時(shí)刻運(yùn)行時(shí)間系統(tǒng)既不能丟失數(shù)據(jù)、信息,降低實(shí)時(shí)性,又要按照事件出現(xiàn)的順序和輕重緩急,合理地排隊(duì)處理,這就提出了任務(wù)納占先機(jī)制和設(shè)置優(yōu)先級(jí)問題。12實(shí)現(xiàn)實(shí)時(shí)控制的5種形式Northeastern Unive
14、rsity Oct 18, 20051、成套的計(jì)算機(jī)控制系統(tǒng)產(chǎn)品 目前世界上已出現(xiàn)了許多與硬件產(chǎn)品配套的,具有不同特點(diǎn)、適用于不同控制對象的軟件產(chǎn)品,像HONEYWELL,ROSEMOUNT,F(xiàn)OXBORO,ANALOGIC,WDPF等DCS系統(tǒng)。 這類系統(tǒng)的軟件是由計(jì)算機(jī)廣家提供的,所謂軟件設(shè)計(jì)工作只是編寫用戶程序,程序設(shè)計(jì)簡單易學(xué),系統(tǒng)運(yùn)行可靠,維護(hù)量小,但由于軟件環(huán)境是封閉的,不容易開發(fā)改善。13實(shí)現(xiàn)實(shí)時(shí)控制的5種形式(續(xù))Northeastern University Oct 18, 20052、以實(shí)時(shí)操作系統(tǒng)為基礎(chǔ),由控制系統(tǒng)設(shè)計(jì)人員設(shè)計(jì)在操作系統(tǒng)上運(yùn)行的實(shí)時(shí)應(yīng)用軟件 目前世界上已有
15、一大批像AMX,iRMX,RTOX,PSOS,Lynxos的實(shí)時(shí)操作系統(tǒng)。 這類系統(tǒng)要求用戶自己編寫應(yīng)用程序,設(shè)計(jì)程序的流向。由于系統(tǒng)軟件本身同時(shí)具有實(shí)時(shí)與多任務(wù)特性,用戶可以直接面向控制對象編程,面眾操作系統(tǒng)對應(yīng)用程序進(jìn)行實(shí)時(shí)調(diào)度相占先,循環(huán)處理,因此減少了應(yīng)用軟件開發(fā)的難度和周期。但要求程序員熟悉實(shí)時(shí)多任務(wù)編程技術(shù),而且圖形界面不太好。14實(shí)現(xiàn)實(shí)時(shí)控制的5種形式(續(xù))Northeastern University Oct 18, 20053、集成的實(shí)時(shí)系統(tǒng)開發(fā)軟件 例如Citect,Intouch,由軟件制造商提供、是專門為實(shí)時(shí)控制服務(wù)的開發(fā)環(huán)境和運(yùn)行環(huán)境。 它與采用實(shí)時(shí)操作系統(tǒng)的方式不同
16、,不需要用C、C+之類的通用語言逐行進(jìn)行編程。系統(tǒng)本身已經(jīng)構(gòu)建了實(shí)現(xiàn)不同功能的軟件包、程序模塊和控鍵。用戶只需要按規(guī)定方式,根據(jù)實(shí)際對象要求,調(diào)用相應(yīng)模塊即可構(gòu)成應(yīng)用程序。它與采用成套系統(tǒng)產(chǎn)品的方式也不同,是一種開放式的軟件結(jié)構(gòu),軟件功能不依賴于硬件產(chǎn)品,適用于不同的硬件配置和控制領(lǐng)域。這類產(chǎn)品程序編制工作量小,通用靈活,但一般價(jià)格都比較昂貴。15實(shí)現(xiàn)實(shí)時(shí)控制的5種形式(續(xù))Northeastern University Oct 18, 20054、在通用操作系統(tǒng)(例如WINDOWS)環(huán)境下,實(shí)現(xiàn)程序的實(shí)時(shí)多任務(wù)特性 實(shí)際上是添加到C,PASCA,BASIC等基本庫中的一些可調(diào)用函數(shù),專門用來
17、實(shí)現(xiàn)創(chuàng)建多任務(wù),分配優(yōu)先級(jí),進(jìn)行任務(wù)間的通信等特殊功能。依靠它,用戶可以免去設(shè)置中斷,設(shè)計(jì)調(diào)度程序一系列數(shù)瑣困難的編程工作,用普通編程技術(shù)礙到實(shí)時(shí)多任務(wù)應(yīng)用程序,經(jīng)濟(jì)實(shí)用。16實(shí)現(xiàn)實(shí)時(shí)控制的5種形式(續(xù))Northeastern University Oct 18, 20055、直接從系統(tǒng)的最底層采用高級(jí)語言或匯編語言編制實(shí)時(shí)應(yīng)用程序 這種方法往往先把系統(tǒng)劃分層次,明確目標(biāo)、任務(wù),對各個(gè)任務(wù)的子過程進(jìn)行結(jié)構(gòu)化編程,然后還要另外編寫計(jì)時(shí)、中斷、調(diào)度等控制程序。程序設(shè)計(jì)的難度和工作量很大,但整個(gè)程序?qū)τ谠O(shè)計(jì)人員來說是完全透明的,適應(yīng)性強(qiáng)。17過程實(shí)時(shí)控制的基礎(chǔ)Northeastern Univer
18、sity Oct 18, 20051、實(shí)時(shí)操作系統(tǒng)我們在日常工作學(xué)習(xí)環(huán)境中接觸最多的是通用操作系統(tǒng),通用操作系統(tǒng)是由分時(shí)操作系統(tǒng)發(fā)展而來,大部分都支持多用戶和多進(jìn)程,負(fù)責(zé)管理眾多的進(jìn)程并為它們分配系統(tǒng)資源。分時(shí)操作系統(tǒng)的基本設(shè)計(jì)原則是:盡量縮短系統(tǒng)的平均響應(yīng)時(shí)間并提高系統(tǒng)的吞吐率,在單位時(shí)間內(nèi)為盡可能多的用戶請求提供服務(wù)。由此可以看出,分時(shí)操作系統(tǒng)注重平均表現(xiàn)性能,不注重個(gè)體表現(xiàn)性能。如對于整個(gè)系統(tǒng)來說,注重所有任務(wù)的平均響應(yīng)時(shí)間而不關(guān)心單個(gè)任務(wù)的響應(yīng)時(shí)間,對于某個(gè)單個(gè)任務(wù)來說,注重每次執(zhí)行的平均響應(yīng)時(shí)間而不關(guān)心某次特定執(zhí)行的響應(yīng)時(shí)間。通用操作系統(tǒng)中采用的很多策略和技巧都體現(xiàn)出了這種設(shè)計(jì)原則,
19、如虛存管理機(jī)制中由于采用了LRU等頁替換算法,使得大部分的訪存需求能夠快速地通過物理內(nèi)存完成,只有很小一部分的訪存需求需要通過調(diào)頁完成,但從總體上來看,平均訪存時(shí)間與不采用虛存技術(shù)相比沒有很大的提高,同時(shí)又獲得了虛空間可以遠(yuǎn)大于物理內(nèi)存容量等好處,因此虛存技術(shù)在通用操作系統(tǒng)中得到了十分廣泛的應(yīng)用。類似的例子還有很多,如Unix文件系統(tǒng)中文件存放位置的間接索引查詢機(jī)制等,甚至硬件設(shè)計(jì)中的Cache技術(shù)以及CPU的動(dòng)態(tài)分支預(yù)測技術(shù)等也都體現(xiàn)出了這種設(shè)計(jì)原則。由此可見,這種注重平均表現(xiàn),即統(tǒng)計(jì)型表現(xiàn)特性的設(shè)計(jì)原則的影響是十分深遠(yuǎn)的。 18過程實(shí)時(shí)控制的基礎(chǔ)Northeastern Universit
20、y Oct 18, 2005而對于實(shí)時(shí)操作系統(tǒng),前面我們已經(jīng)提到,它除了要滿足應(yīng)用的功能需求以外,更重要的是還要滿足應(yīng)用提出的實(shí)時(shí)性要求,而組成一個(gè)應(yīng)用的眾多實(shí)時(shí)任務(wù)對于實(shí)時(shí)性的要求是各不相同的,此外實(shí)時(shí)任務(wù)之間可能還會(huì)有一些復(fù)雜的關(guān)聯(lián)和同步關(guān)系,如執(zhí)行順序限制、共享資源的互斥訪問要求等,這就為系統(tǒng)實(shí)時(shí)性的保證帶來了很大的困難。因此,實(shí)時(shí)操作系統(tǒng)所遵循的最重要的設(shè)計(jì)原則是:采用各種算法和策略,始終保證系統(tǒng)行為的可預(yù)測性(predictability)??深A(yù)測性是指在系統(tǒng)運(yùn)行的任何時(shí)刻,在任何情況下,實(shí)時(shí)操作系統(tǒng)的資源調(diào)配策略都能為爭奪資源(包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等)的多個(gè)實(shí)時(shí)任務(wù)合理地分配
21、資源,使每個(gè)實(shí)時(shí)任務(wù)的實(shí)時(shí)性要求都能得到滿足。與通用操作系統(tǒng)不同,實(shí)時(shí)操作系統(tǒng)注重的不是系統(tǒng)的平均表現(xiàn),而是要求每個(gè)實(shí)時(shí)任務(wù)在最壞情況下都要滿足其實(shí)時(shí)性要求,也就是說,實(shí)時(shí)操作系統(tǒng)注重的是個(gè)體表現(xiàn),更準(zhǔn)確地講是個(gè)體最壞情況表現(xiàn)。舉例來說,如果實(shí)時(shí)操作系統(tǒng)采用標(biāo)準(zhǔn)的虛存技術(shù),則一個(gè)實(shí)時(shí)任務(wù)執(zhí)行的最壞情況是每次訪存都需要調(diào)頁,如此累計(jì)起來的該任務(wù)在最壞情況下的運(yùn)行時(shí)間是不可預(yù)測的,因此該任務(wù)的實(shí)時(shí)性無法得到保證。從而可以看出在通用操作系統(tǒng)中廣泛采用的虛存技術(shù)在實(shí)時(shí)操作系統(tǒng)中不宜直接采用。 19過程實(shí)時(shí)控制的基礎(chǔ)Northeastern University Oct 18, 20052、實(shí)時(shí)數(shù)據(jù)庫
22、硬實(shí)時(shí)和軟實(shí)時(shí)的區(qū)別就在于對外界的事件做出反應(yīng)的時(shí)間。硬實(shí)時(shí)系統(tǒng)必須對實(shí)時(shí)事件及時(shí)地作出反應(yīng),絕對不能錯(cuò)過事件處理時(shí)限。軟實(shí)時(shí)系統(tǒng)是指,如果在系統(tǒng)負(fù)荷較重的時(shí)候,允許發(fā)生錯(cuò)過時(shí)限的情況而且不會(huì)造成太大的危害。實(shí)時(shí)數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)發(fā)展的一個(gè)分支,它適用于處理不斷更新的快速變化的數(shù)據(jù)及具有時(shí)間 限制的事務(wù)處理。實(shí)時(shí)數(shù)據(jù)庫技術(shù)是實(shí)時(shí)系統(tǒng)和數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物,研究人員希望利用數(shù)據(jù)庫 技術(shù)來解決實(shí)時(shí)系統(tǒng)中的數(shù)據(jù)管理問題,同時(shí)利用實(shí)時(shí)技術(shù)為實(shí)時(shí)數(shù)據(jù)庫提供時(shí)間驅(qū)動(dòng)調(diào)度和資源分 配算法。然而,實(shí)時(shí)數(shù)據(jù)庫并非是兩者在概念、結(jié)構(gòu)和方法上的簡單集成。需要針對不同的應(yīng)用需求 和應(yīng)用特點(diǎn),對實(shí)時(shí)數(shù)據(jù)模型、實(shí)時(shí)事務(wù)
23、調(diào)度與資源分配策略、實(shí)時(shí)數(shù)據(jù)查詢語言、實(shí)時(shí)數(shù)據(jù)通信等 大量問題作深入的理論研究。 20過程實(shí)時(shí)控制的基礎(chǔ)Northeastern University Oct 18, 2005主要研究內(nèi)容包括: 實(shí)時(shí)數(shù)據(jù)庫模型實(shí)時(shí)事務(wù)調(diào)度:包括并發(fā)控制、沖突解決、死鎖等內(nèi)容容錯(cuò)性與錯(cuò)誤恢復(fù)訪問準(zhǔn)入控制內(nèi)存組織與管理I/O與磁盤調(diào)度主內(nèi)存數(shù)據(jù)庫系統(tǒng)不精確計(jì)算問題放松的可串行化問題實(shí)時(shí)SQL實(shí)時(shí)事務(wù)的可預(yù)測性21過程實(shí)時(shí)控制的基礎(chǔ)Northeastern University Oct 18, 2005實(shí)時(shí)數(shù)據(jù)庫RTDB(Real-Time Data Base)是數(shù)據(jù)和事務(wù)都有定時(shí)特性或顯示的定時(shí)限制的數(shù)據(jù)庫。RT
24、DB的本質(zhì)特征就是定時(shí)限制,定時(shí)限制可以歸納為兩類:一類是與事務(wù)相聯(lián)的定時(shí)限制,典型的就是“截止時(shí)間”;另一類為與數(shù)據(jù)相聯(lián)的“時(shí)間一致性”。時(shí)間一致性則是作為過去的限制的一個(gè)時(shí)間窗口,它是由于要求數(shù)據(jù)庫中數(shù)據(jù)的狀態(tài)與外部環(huán)境中對應(yīng)實(shí)體的實(shí)際狀態(tài)要隨時(shí)一致,以及由事務(wù)存取的各數(shù)據(jù)狀態(tài)在時(shí)間上要一致而引起的。實(shí)時(shí)數(shù)據(jù)庫是一個(gè)新的數(shù)據(jù)庫研究領(lǐng)域,它在概念、方法和技術(shù)上都與傳統(tǒng)的數(shù)據(jù)庫有很大的不同,其核心問題是事物處理既要確保數(shù)據(jù)的一致性,又要保證事物的正確性,而它們都與定時(shí)限制相關(guān)聯(lián)。 22實(shí)時(shí)系統(tǒng)對局域網(wǎng)的需求Northeastern University Oct 18, 2005 通常用網(wǎng)絡(luò)資源
25、的利用率來衡量一個(gè)網(wǎng)絡(luò)的性能。實(shí)時(shí)系統(tǒng)和普通系統(tǒng)不同,在希望有高的利用率的同時(shí),還希望有好的實(shí)時(shí)性。如果在利用率和實(shí)時(shí)性發(fā)生沖突的情況下,寧可犧牲一點(diǎn)利用率,也要保證實(shí)時(shí)性。在實(shí)時(shí)系統(tǒng)中,對信道的存取控制方法有自己的一些要求。如果把實(shí)時(shí)性的要求表示成時(shí)間約束條件,那么,局域網(wǎng)的存取控制應(yīng)該滿足下列時(shí)間約束: (1)每個(gè)節(jié)點(diǎn)每次取得通信的時(shí)間不能超過某一個(gè)時(shí)間限制值。因?yàn)樾诺朗枪蚕淼模绻试S某些節(jié)點(diǎn)可以無限制地使用信道,或者占用信道的時(shí)間很長,那么,其他一些節(jié)點(diǎn)獲得信道的時(shí)間必然減少,或者在需要獲取信道的時(shí)候未能得到信道,這也必然影響這些節(jié)點(diǎn)的實(shí)時(shí)性。 23實(shí)時(shí)系統(tǒng)對局域網(wǎng)的需求Northea
26、stern University Oct 18, 2005 (2)每個(gè)節(jié)點(diǎn)必須在一個(gè)確定的時(shí)間周期里至少獲取一次信道。這主要是針對實(shí)時(shí)控制系統(tǒng)而言的。在實(shí)時(shí)控制系統(tǒng)里,每個(gè)節(jié)點(diǎn)每時(shí)每刻都需要進(jìn)行實(shí)時(shí)數(shù)據(jù)刷新,它必然要把一些被更新了的數(shù)據(jù)及時(shí)通報(bào)給其他需要這些數(shù)據(jù)的節(jié)點(diǎn)。如果不能保證每個(gè)節(jié)點(diǎn)在一個(gè)確定時(shí)間周期里把這些被更新的實(shí)時(shí)數(shù)據(jù)發(fā)送出來,那么,實(shí)時(shí)性也就得不到滿足。 (3)優(yōu)先級(jí)高的報(bào)文優(yōu)先服務(wù),這是實(shí)時(shí)系統(tǒng)的基本要求。 (4)必須保證報(bào)文的接收順序和發(fā)送順序一致。報(bào)文接收和發(fā)送的這種因果順序關(guān)系,在實(shí)時(shí)控制系統(tǒng)里特別重要。設(shè)想在一個(gè)控制系統(tǒng)里,從中央控制室發(fā)出的指令順序是:關(guān)閉1號(hào)控制開關(guān)
27、,再打開2號(hào)控制開關(guān)。如果通信不是因果順序的,控制裝置接收到順序顛倒的指令,先打開2號(hào)控制開關(guān),再關(guān)閉1號(hào)控制開關(guān),就可能發(fā)生嚴(yán)重事故。248.1 線性離散系統(tǒng)的基本概念 LLLhREF測厚儀軋機(jī)軋件 測厚儀式AGC的不穩(wěn)定現(xiàn)象258.1 線性離散系統(tǒng)的基本概念 268.1 線性離散系統(tǒng)的基本概念 1) 模擬信號(hào)(即連續(xù)信號(hào)) 時(shí)間上連續(xù),幅值上也連續(xù)的信號(hào)。2) 離散的模擬信號(hào) 時(shí)間上離散,幅值上連續(xù)的信號(hào)。3) 數(shù)字信號(hào) 時(shí)間上離散,幅值上也是離散的信號(hào);或者說,時(shí)間上離散,幅值是用一組數(shù)碼表示的信號(hào)。4) 采樣 將模擬信號(hào)按一定時(shí)間采樣成離散的模擬信號(hào)。5) 量化 采用一組數(shù)碼來逼近離散
28、模擬信號(hào)的幅值,將其轉(zhuǎn)化成數(shù)字信號(hào)。278.1 線性離散系統(tǒng)的基本概念 (1)連續(xù)控制系統(tǒng)系統(tǒng)中均為模擬信號(hào)按包含的信號(hào)形式分類:連續(xù)控制系統(tǒng)和離散控制系統(tǒng)288.1 線性離散系統(tǒng)的基本概念 (2)離散控制系統(tǒng)系統(tǒng)中既含有連續(xù)信號(hào) , , , 又含有離散模擬信號(hào) , 的混合系統(tǒng)。采樣控制系統(tǒng)是由連續(xù)的控制對象、離散的控制器、采樣器和保持器等幾個(gè)環(huán)節(jié)所組成。 29(1) 在連續(xù)系統(tǒng)中的一處或幾處設(shè)置采樣開關(guān),對被控對象進(jìn)行斷續(xù)控制;(2) 通常采樣周期遠(yuǎn)小于被控對象的時(shí)間常數(shù);(3) 采樣開關(guān)合上的時(shí)間遠(yuǎn)小于斷開的時(shí)間; (4) 采樣周期通常是相同的。8.1 線性離散系統(tǒng)的基本概念 7. 采樣系
29、統(tǒng)的特點(diǎn)308.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理 開關(guān)打開時(shí),沒有輸出; 開關(guān)閉合時(shí)才有輸出,其值等于采樣時(shí)刻的模擬量 。 1. 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式(1)采樣過程的特點(diǎn)318.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理X(0), X(1), X(2), , X(n) 328.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理每周期應(yīng)該有多少采樣點(diǎn) ?最少2點(diǎn):338.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理348.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理從功能和經(jīng)濟(jì)上選最佳采樣周期358.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理3. 采樣定理 采樣定理所要解決的問題是:采樣周期選多大,才能將采樣信號(hào)較少
30、失真地恢復(fù)為原來的連續(xù)信號(hào)。 香農(nóng)(Shannon)采樣定理 為了使信號(hào)得到很好的復(fù)現(xiàn),采樣頻率應(yīng)大于等于原始信號(hào)最大頻率的二倍,即368.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理4. 信號(hào)的復(fù)現(xiàn)(1)信號(hào)復(fù)現(xiàn)定義 把采樣信號(hào)恢復(fù)為原來連續(xù)信號(hào)的過程通常稱為信號(hào)的復(fù)現(xiàn)。 (2)信號(hào)復(fù)現(xiàn)方法加入理想濾波器 (理論上) 加入保持器 (實(shí)際上) 37零階保持器的傳遞函數(shù)為:8.2 離散時(shí)間函數(shù)的數(shù)學(xué)表達(dá)式及采樣定理(3)零階保持器38過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern University Oct 18, 200539過程實(shí)時(shí)控制驅(qū)動(dòng)方式及控制結(jié)構(gòu)Northeastern Univer
31、sity Oct 18, 2005 任務(wù)的功能及運(yùn)行規(guī)律不同,驅(qū)動(dòng)方式及其控制結(jié)構(gòu)也不盡相同。具體可分為: (1 )時(shí)間驅(qū)動(dòng) (2)數(shù)據(jù)驅(qū)動(dòng) (3)中斷驅(qū)動(dòng) (4)事件驅(qū)動(dòng) 不同驅(qū)動(dòng)方式對應(yīng)不同的控制結(jié)構(gòu) 40過程實(shí)時(shí)控制驅(qū)動(dòng)方式及控制結(jié)構(gòu)Northeastern University Oct 18, 2005 (1)時(shí)間驅(qū)動(dòng) 時(shí)間驅(qū)動(dòng)又可分為三種類型:延遲驅(qū)動(dòng)、絕對時(shí)間驅(qū)動(dòng)和定時(shí)驅(qū)動(dòng)。1)延遲驅(qū)動(dòng) 延遲驅(qū)動(dòng)是使實(shí)時(shí)任務(wù)暫停一指定時(shí)間間隔(即延遲時(shí)間)后再驅(qū)動(dòng)執(zhí)行的一種驅(qū)動(dòng)方式,適用于對周期時(shí)間要求不太嚴(yán)格的周期任務(wù),執(zhí)行周期等于實(shí)時(shí)任務(wù)的執(zhí)行時(shí)間與延遲時(shí)間之和,由于實(shí)時(shí)任務(wù)執(zhí)行時(shí)間的長短受系
32、統(tǒng)當(dāng)時(shí)狀態(tài)的制約,因此執(zhí)行周期亦不固定。延遲驅(qū)動(dòng)方式要求實(shí)時(shí)任務(wù)在本次執(zhí)行結(jié)束時(shí)設(shè)置好下次執(zhí)行的間隔時(shí)間,然后該任務(wù)便去睡眠(等待),等間隔時(shí)間到,即再次鉸驅(qū)動(dòng)執(zhí)行。41過程實(shí)時(shí)控制的驅(qū)動(dòng)方式及控制結(jié)構(gòu)Northeastern University Oct 18, 2005 (2)絕對時(shí)間驅(qū)動(dòng) 絕對時(shí)間是指北京時(shí)間。這種驅(qū)動(dòng)方式非常類似我們?nèi)粘I钪锌啥〞r(shí)起鬧的鬧鐘,只要實(shí)時(shí)任務(wù)在本次執(zhí)行時(shí)將下次驅(qū)動(dòng)執(zhí)行的時(shí)刻設(shè)置好,一旦定時(shí)鐘計(jì)時(shí)到指定的時(shí)刻,該任務(wù)即被驅(qū)動(dòng),經(jīng)任務(wù)調(diào)度后執(zhí)行。按指定時(shí)到啟動(dòng)運(yùn)行的任務(wù)可采用這種驅(qū)動(dòng)方式。 42過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern Univers
33、ity Oct 18, 2005 (3)定時(shí)驅(qū)動(dòng) 定時(shí)驅(qū)動(dòng)與上述延遲驅(qū)動(dòng)類似,都屬于相對時(shí)間驅(qū)動(dòng),但延遲驅(qū)動(dòng)所設(shè)置的時(shí)間間隔不包括任務(wù)執(zhí)行時(shí)間,而定時(shí)驅(qū)動(dòng)所設(shè)置的時(shí)間間隔包括任務(wù)的執(zhí)行時(shí)間。定時(shí)驅(qū)動(dòng)方式適用于對周期時(shí)間要求嚴(yán)格的周期任務(wù)。 定時(shí)驅(qū)動(dòng)的特點(diǎn)是:i. 驅(qū)動(dòng)的時(shí)間間隔一次設(shè)定始終有效;ii. 兩次驅(qū)動(dòng)之間的時(shí)間間隔保持不變;iii. 周期任務(wù)的執(zhí)行時(shí)間應(yīng)遠(yuǎn)遠(yuǎn)小于周期時(shí)間。 43過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern University Oct 18, 2005 (2)數(shù)據(jù)驅(qū)動(dòng) 數(shù)據(jù)驅(qū)動(dòng)系指實(shí)時(shí)任務(wù)以是否獲得所需之?dāng)?shù)據(jù)作為運(yùn)行條件可采取此驅(qū)動(dòng)方式。 假設(shè)采樣任務(wù)與數(shù)據(jù)處理
34、任務(wù)之間以數(shù)據(jù)通信方式進(jìn)行數(shù)據(jù)交換,顯然,當(dāng)數(shù)據(jù)處理任務(wù)接收不到采樣任務(wù)的數(shù)據(jù)時(shí)只好等待,一旦采樣任務(wù)把實(shí)時(shí)數(shù)據(jù)采集進(jìn)來,便可將數(shù)據(jù)發(fā)送給數(shù)據(jù)處理任務(wù),并立即驅(qū)動(dòng)數(shù)據(jù)處理任務(wù)運(yùn)行來處理這些數(shù)據(jù)。44過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern University Oct 18, 2005(3)中斷驅(qū)動(dòng) 生產(chǎn)過程中一些非常重要的開關(guān)量和模擬量點(diǎn),往往利用中斷來監(jiān)視它們助工作狀態(tài),一旦發(fā)生誤動(dòng)作(開關(guān)量點(diǎn))或越限(模擬量點(diǎn)),立即會(huì)通過中斷反映到計(jì)算機(jī)中,CPU響應(yīng)中斷后,隨即啟動(dòng)相應(yīng)的中斷處理任務(wù)處理所發(fā)生的上述緊急事件。如果這類監(jiān)測點(diǎn)的工作狀態(tài)正常,此類中斷便不會(huì)發(fā)生,中斷處理仟?jiǎng)?wù)也就
35、只好等待。45過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern University Oct 18, 2005(4)事件驅(qū)動(dòng) “事件”系指一種情況或一種活動(dòng)的發(fā)生或一種指定狀態(tài)的變化。在操作系統(tǒng)中,一般特事件抽象成一個(gè)數(shù)據(jù)或一種數(shù)據(jù)結(jié)構(gòu)。如果一個(gè)任務(wù)以事件出現(xiàn)作為運(yùn)行條件,事件一旦產(chǎn)生,事件的發(fā)出者(操作系統(tǒng)或別的任務(wù))就要將等待該事件的任務(wù)喚醒并投入運(yùn)行,處理完事件所要求的操作后又繼續(xù)等待下一個(gè)事件的出現(xiàn)。報(bào)警管理任務(wù)、數(shù)據(jù)庫管理任務(wù)、操作控制臺(tái)命令處理任務(wù)等可采用此驅(qū)動(dòng)方式。 46過程實(shí)時(shí)控制的基礎(chǔ)是什么?Northeastern University Oct 18, 2005 (5)
36、其他控制結(jié)構(gòu) 前面曾提到具有運(yùn)行截止期任務(wù)的情況,對于這類實(shí)時(shí)任務(wù),它的驅(qū)動(dòng)方式可能是這里介紹的某一種,也可能直接由其他任務(wù)驅(qū)動(dòng)。不論哪一種驅(qū)動(dòng)方式,在其運(yùn)行的開始必須首先設(shè)置好運(yùn)行的截止時(shí)間,然后再開始其正常處理,如果在截止期內(nèi)能夠處理完成,則阻塞等待下次的驅(qū)動(dòng)。如果在截止期內(nèi)不能完成處理,則被時(shí)鐘管理程序發(fā)現(xiàn)后,會(huì)立即進(jìn)入錯(cuò)誤處理程序來處理發(fā)生的錯(cuò)誤(如夭折該任務(wù))。47一、什么是中斷在CPU正常運(yùn)行程序時(shí),由于內(nèi)部或外部某個(gè)非預(yù)料事件的發(fā)生,使CPU暫停正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序,然后再返回被中斷了的程序,繼續(xù)執(zhí)行。這個(gè)過程就是中斷。48中 斷在通用操作系統(tǒng)中,大部
37、分外部中斷都是開啟的,中斷處理一般由設(shè)備驅(qū)動(dòng)程序來完成。由于通用操作系統(tǒng)中的用戶進(jìn)程一般都沒有實(shí)時(shí)性要求,而中斷處理程序直接跟硬件設(shè)備交互,可能有實(shí)時(shí)性要求,因此中斷處理程序的優(yōu)先級(jí)被設(shè)定為高于任何用戶進(jìn)程。 但對于實(shí)時(shí)操作系統(tǒng)采用上述的中斷處理機(jī)制是不合適的。首先,外部中斷是環(huán)境向?qū)崟r(shí)操作系統(tǒng)進(jìn)行的輸入,它的頻度是與環(huán)境變化的速率相關(guān)的,而與實(shí)時(shí)操作系統(tǒng)無關(guān)。如果外部中斷產(chǎn)生的頻度不可預(yù)測,則一個(gè)實(shí)時(shí)任務(wù)在運(yùn)行時(shí)被中斷處理程序阻塞的時(shí)間開銷也是不可預(yù)測的,從而使任務(wù)的實(shí)時(shí)性得不到保證;如果外部中斷產(chǎn)生的頻度是可預(yù)測的,一旦某外部中斷產(chǎn)生的頻度超出其預(yù)測值(如硬件故障產(chǎn)生的虛假中斷信號(hào)或預(yù)測值
38、本身有誤)就可能會(huì)破壞整個(gè)系統(tǒng)的可預(yù)測性。其次,實(shí)時(shí)操作系統(tǒng)中的各用戶進(jìn)程一般都有實(shí)時(shí)性要求,因此中斷處理程序優(yōu)先級(jí)高于所有用戶進(jìn)程的優(yōu)先級(jí)分配方式是不合適的。 一種較適合實(shí)時(shí)操作系統(tǒng)的中斷處理方式為:除時(shí)鐘中斷外,屏蔽所有其它中斷,中斷處理程序變?yōu)橹芷谛缘妮喸儾僮?,這些操作由核心態(tài)的設(shè)備驅(qū)動(dòng)程序或由用戶態(tài)的設(shè)備支持庫來完成。采用這種方式的主要好處是充分保證了系統(tǒng)的可預(yù)測性,主要缺點(diǎn)是對環(huán)境變化的響應(yīng)可能不如上述中斷處理方式快,另外輪詢操作在一定程度上降低了CPU的有效利用率。另一種可行的方式是:對于采用輪詢方式無法滿足需求的外部事件,采用中斷方式,其它時(shí)間仍然采用輪詢方式。但此時(shí)中斷處理程序
39、與所以其它任務(wù)一樣擁有優(yōu)先級(jí),調(diào)度器根據(jù)優(yōu)先級(jí)對處于就緒態(tài)的任務(wù)和中斷處理程序統(tǒng)一進(jìn)行處理器調(diào)度。這種方式使外部事件的響應(yīng)速度加快,并避免了上述中斷方式帶來第二個(gè)問題,但第一個(gè)問題仍然存在。 此外為提高時(shí)鐘中斷響應(yīng)時(shí)間的可預(yù)測性,實(shí)時(shí)操作系統(tǒng)應(yīng)盡可能少地屏蔽中斷。 49一、什么是中斷50中斷服務(wù)程序1中斷服務(wù)程序 2非預(yù)料事件1CPU執(zhí)行流程非預(yù)料事件 251二、中斷源和中斷優(yōu)先權(quán)引起中斷的因素很多,將發(fā)出中斷申請的外設(shè)或內(nèi)部原因,稱為中斷源;給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱為中斷優(yōu)先權(quán);當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請求時(shí),CPU按照中斷優(yōu)先權(quán)的高低順序,依次響應(yīng)。52三、中斷服務(wù)程序 處理中斷源,
40、完成其所要求功能的程序,稱中斷服務(wù)程序(中斷例行程序、中斷子程)。CPU執(zhí)行流程中斷服務(wù)程序1中斷服務(wù)程序2非預(yù)料事件2非預(yù)料事件153 非預(yù)料事件是指事件發(fā)生的時(shí)間無法預(yù)知,即中斷源何時(shí)產(chǎn)生中斷不確定,是隨機(jī)的。 但事件的性質(zhì)及處理方法則是已知的, 確定的,即中斷服務(wù)程序是事先編寫好的,只是何時(shí)執(zhí)行未知。 中斷源產(chǎn)生中斷的隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。54四、斷點(diǎn)和中斷現(xiàn)場斷點(diǎn):是指CPU執(zhí)行的現(xiàn)行程序被中斷時(shí)的下一條指令的地址, 又稱斷點(diǎn)地址。中斷現(xiàn)場: 是指CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),包括CPU內(nèi)部各寄存器、斷點(diǎn)地址等。
41、551000:150H 、 、 、 、MOV AX, 0ADD AX, DXMOV DI , AX、 PUSH AX 、 、 IRETCPU在執(zhí)行此指令時(shí),某中斷源發(fā)申請中斷;CPU在執(zhí)行完該指令后,轉(zhuǎn)去執(zhí)行中斷子程地址1000:150H為斷點(diǎn)斷點(diǎn)概念:56早期中斷概念的引入, 是為解決CPU與外設(shè)間的速度匹配問題, 提高CPU 的工作效率。 中斷源主要是由外部硬件產(chǎn)生。當(dāng)今的中斷技術(shù), 不再限于外部硬件產(chǎn)生中斷(稱硬件中斷或外中斷 ), 還可由CPU內(nèi)部產(chǎn)生 (如被零除操作), 或者由程序預(yù)先安排,即由指令調(diào)用中斷服務(wù)程序。 (稱軟件中斷或內(nèi)中斷)五、硬件中斷和軟件中斷571000:150H
42、 、 、 、 、MOV AH, 01INT 21HCMP AL, 0Dh、 PUSH AX 、 、IRET用指令調(diào)用中斷程序軟件中斷用指令調(diào)用中斷程序58算法對效率的影響Northeastern University Oct 18, 2005 1、在編程序前,盡可能花劍有關(guān)的算術(shù)表達(dá)式和邏輯表達(dá)式;2、仔細(xì)檢查算法中的嵌套的循環(huán),盡可能將某些語句或表達(dá)式移到循環(huán)外面;3、盡量避免使用多維數(shù)組;4、盡量避免使用指針和復(fù)雜的表;5、采用“快速”的算術(shù)運(yùn)算;(y2=yy)6、不要混淆數(shù)據(jù)類型,避免在表達(dá)式中出現(xiàn)類型混雜;7、選用等效的高效算法。59軟件開發(fā)規(guī)范Northeastern Univers
43、ity Oct 18, 2005 一、排版: 1.關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭瘛?2.相對獨(dú)立的程序塊與塊之間加空行 3.較長的語句、表達(dá)式等要分成多行書寫。 4.劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn),使排版整齊,語句可讀。 5.長表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。 6.循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進(jìn)行適應(yīng)的劃分。 7.若函數(shù)或過程中的參數(shù)較長,則要進(jìn)行適當(dāng)?shù)膭澐帧?8.不允許把多個(gè)短語句寫在一行中,即一行只寫一條語句。 9.函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進(jìn)風(fēng)格。 10.C/C+語言是用大括號(hào)和界定一段程序塊的,編寫程序塊時(shí)和
44、 應(yīng)各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語句左對齊。在函數(shù)體 的開始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、 switch、case語句中的程序都要采用如上的縮進(jìn)方式。 60軟件開發(fā)規(guī)范Northeastern University Oct 18, 2005 二、注釋 1.注釋要簡單明了。 2.邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。 3.在必要的地方注釋,注釋量要適中。注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。 4.對代碼的注釋應(yīng)放在其上方相鄰位置,不可放在下面。 5.對數(shù)
45、據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對結(jié)構(gòu)中的每個(gè)域的注釋應(yīng)放在此域的右方;同一結(jié)構(gòu)中不同域的注釋要對齊。 6.變量、常量的注釋應(yīng)放在其上方相鄰位置或右方。 7.全局變量要有較詳細(xì)的注釋,包括對其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時(shí)注意事項(xiàng)等的說明。 8.在每個(gè)源文件的頭部要有必要的注釋信息,包括:文件名;版本號(hào);作者;生成 日期;模塊功能描述(如功能、主要算法、內(nèi)部各部分之間的關(guān)系、該文件與其 它文件關(guān)系等);主要函數(shù)或過程清單及本文件歷史修改記錄等。 9.在每個(gè)函數(shù)或過程的前面要有必要的注釋信息,包括:函數(shù)或過程名稱;功能描 述;輸入、輸出及返回值說明;調(diào)用關(guān)系及被調(diào)
46、用關(guān)系說明等。 61軟件開發(fā)規(guī)范Northeastern University Oct 18, 2005三、命名 1.較短的單詞可通過去掉“元音”形成縮寫; 2.較長的單詞可取單詞的頭幾發(fā)符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí)。 3.使用匈牙利表示法 四、可讀性 1.避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來替代。 2.不要使用難懂的技巧性很高的語句。 3.源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。 62軟件開發(fā)規(guī)范Northeastern University Oct 18, 2005五、變量 1.去掉沒必要的公共變量。 2.構(gòu)造僅有一個(gè)模塊或函數(shù)可以修改、創(chuàng)建,而其余有關(guān)
47、模塊或函數(shù)只訪問的公共變量,防止多個(gè)不同模塊或函數(shù)都可以修改、創(chuàng)建同一公共變量的現(xiàn)象。 3.仔細(xì)定義并明確公共變量的含義、作用、取值范圍及公共變量間的關(guān)系。 4.明確公共變量與操作此公共變量的函數(shù)或過程的關(guān)系,如訪問、修改及創(chuàng)建等。 5.當(dāng)向公共變量傳遞數(shù)據(jù)時(shí),要十分小心,防止賦與不合理的值或越界等現(xiàn)象發(fā)生。 6.防止局部變量與公共變量同名。 7.仔細(xì)設(shè)計(jì)結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象。 8.結(jié)構(gòu)的設(shè)計(jì)要盡量考慮向前兼容和以后的版本升級(jí),并為某些未來可能的應(yīng)用保留余地(如預(yù)留一些空間等)。 9.留心具體語言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié)。
48、 10.嚴(yán)禁使用未經(jīng)初始化的變量。聲明變量的同時(shí)對變量進(jìn)行初始化。 11.編程時(shí),要注意數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。 63軟件開發(fā)規(guī)范Northeastern University Oct 18, 2005六、函數(shù)、過程 1.函數(shù)的規(guī)模盡量限制在200行以內(nèi)。 2.一個(gè)函數(shù)最好僅完成一件功能。 3.為簡單功能編寫函數(shù)。 4.函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。 5.盡量不要編寫依賴于其他函數(shù)內(nèi)部實(shí)現(xiàn)的函數(shù)。 6.避免設(shè)計(jì)多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。 7.用注釋詳細(xì)說明每個(gè)參數(shù)的作用、取值范圍及參數(shù)間的關(guān)系。 8.檢查函數(shù)所有參數(shù)輸入的有效性。 9.檢查函數(shù)所
49、有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。 10.函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。 11.避免使用無意義或含義不清的動(dòng)詞為函數(shù)命名 12.函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯(cuò)誤情況。 13/明確函數(shù)功能,精確(而不是近似)地實(shí)現(xiàn)函數(shù)設(shè)計(jì)。 14.減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。 64過程實(shí)時(shí)控制Northeastern University Oct 18, 200565過程實(shí)時(shí)控制Northeastern University Oct 18, 200566程序,進(jìn)程和線程的概述16位的中,應(yīng)用程序只有在調(diào)用了GetMessage,PeekMessage等函數(shù)后,才有可能把CPU控制權(quán)
50、交給系統(tǒng),別的應(yīng)用程序才有可能得到CPU的控制權(quán)Windows 95/NT實(shí)行搶先式多任務(wù),程序?qū)PU的占用時(shí)間是由系統(tǒng)決定的。系統(tǒng)為每個(gè)程序分配一定的CPU時(shí)間,當(dāng)程序的運(yùn)行超過規(guī)定的時(shí)間后,系統(tǒng)就會(huì)中斷該程序并把CPU控制權(quán)交給別的程序67進(jìn)程和線程在32位的Win32系統(tǒng)中,多任務(wù)是指系統(tǒng)可以同時(shí)運(yùn)行多個(gè)進(jìn)程,而每個(gè)進(jìn)程可以同時(shí)執(zhí)行多個(gè)線程。每個(gè)程序一般對應(yīng)一個(gè)進(jìn)程,每個(gè)進(jìn)程中可以運(yùn)行多個(gè)線程,每個(gè)線程獨(dú)立地執(zhí)行程序代碼中的一組語句進(jìn)程是系統(tǒng)進(jìn)行資源分配的基本單位,每個(gè)進(jìn)程擁有自己的虛擬地址空間。每個(gè)進(jìn)程擁有自己的主線程,但可以另外建立其它的線程。進(jìn)程中的線程是并行執(zhí)行的線程是Wind
51、ows95/98和Windows NT系統(tǒng)調(diào)度的基本單位,一個(gè)進(jìn)程至少擁有一個(gè)主線程。進(jìn)程可以通過調(diào)用庫函數(shù)或Win32 API函數(shù)來增加線程。系統(tǒng)為每一個(gè)線程分配一個(gè)CPU時(shí)間片。實(shí)際上,每一個(gè)微觀時(shí)刻只有一個(gè)線程在運(yùn)行,因?yàn)橹挥幸粋€(gè)CPU68線程的種類線程分為用戶界面線程和工作者線程兩種用戶界面線程擁有自己的消息循環(huán)來處理界面消息,可以與用戶進(jìn)行交互工作者線程沒有自身的消息循環(huán),一般用來完成后臺(tái)工作69MFC中的線程類CWinThread類派生自CcmdTarget類,CWinThread對象代表在一個(gè)應(yīng)用程序內(nèi)運(yùn)行的線程。CWinThread對象允許一個(gè)應(yīng)用程序擁有多個(gè)線程CWinThr
52、ead支持兩種類型的線程:工作者線程和用戶界面線程。工作者線程沒有收發(fā)消息的功能,例如進(jìn)行后臺(tái)計(jì)算。用戶界面線程具有收發(fā)消息的功能,CWinApp及其派生類就是用戶界面線程的例子,其它用戶界面線程也可由CWinThread派生為了創(chuàng)建一個(gè)線程,必須調(diào)用AfxBeginThread函數(shù)。如果需要用戶界面線程,則將指向CWinThread派生類的CRuntimeClass的指針傳遞給AfxBeginThread;如果需要工作者線程,則將指向控制函數(shù)的指針和控制函數(shù)的參數(shù)傳遞給AfxBeginThread70線程的創(chuàng)建工作者線程的創(chuàng)建用戶界面線程的創(chuàng)建71工作者線程的創(chuàng)建首先完成控制函數(shù)的編寫用函數(shù)
53、AfxBeginThread來啟動(dòng)線程72工作者線程的創(chuàng)建控制函數(shù):UINT MyWorkThreadFunction(LPVOID pParam)CWnd * pMainWnd = AfxGetMainWnd();/如果參數(shù)pParam為空,即參數(shù)傳遞錯(cuò)誤,那么線程異常結(jié)束if(pParam=NULL):MessageBox(pMainWnd-m_hWnd,Param error,Thread error,MB_OK);AfxEndThread(2);CString *pStr = (CString *)pParam; /指針傳遞給pStrpStr-MakeReverse(); /調(diào)用類成員
54、函數(shù),完成對字符串的逆序操作MessageBox(pMainWnd-m_hWnd,Thread run!,Thread run,MB_OK); /顯示線程運(yùn)行的消息框return 0;73工作者線程的創(chuàng)建用函數(shù)AfxBeginThread來啟動(dòng)線程AfxBeginThread(MyWorkThreadFunction,(LPVOID)pString);74用戶界面線程的創(chuàng)建首先必須從CWinThread派生出一個(gè)新類。事實(shí)上,代表進(jìn)程主線程的CWinApp類就是CWinThread的派生類。同時(shí),需要重載派生類的InitInstance,ExitInstance,Run等函數(shù)使用AfxBegi
55、nThread函數(shù)的第二個(gè)版本來創(chuàng)建用戶界面線程:CWinThread* AfxBeginThread(CRuntimeClass* pThreadClass,int nPriority=THREAD_PRIORITY_NORMAL,UNIT nStackSize=0,DWORD dwreateFlags=0,LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL);75創(chuàng)建線程的其它方法通過構(gòu)造一個(gè)CWinThread派生對象,再調(diào)用其成員函數(shù)CreateThread()來創(chuàng)建一個(gè)新線程76線程的啟動(dòng)當(dāng)使用AfxBeginThread()來創(chuàng)建一個(gè)工作者線程時(shí),
56、參數(shù)dwCreateFlags指定了線程的初始狀態(tài),通常為0,那么線程在創(chuàng)建后立即執(zhí)行;如果為CREATE_SUSPENDED,在線程在被創(chuàng)建后掛起,指導(dǎo)其它線程調(diào)用ResumeThread()時(shí)才繼續(xù)執(zhí)行77線程的終止當(dāng)發(fā)生以下事情之一時(shí),線程終止:線程調(diào)用ExitThread線程函數(shù)返回調(diào)用全局函數(shù)AfxEndThread.78線程運(yùn)行狀態(tài)的設(shè)置線程啟動(dòng)時(shí),參數(shù)dwCreateFlags為則立即執(zhí)行,為CREATE_SUSPENDED則掛起使用由CWinThread類派生的線程時(shí),可用SuspendThread()將自身掛起,被其它線程調(diào)用ResumeThread()繼續(xù)執(zhí)行線程自身可調(diào)用休眠函數(shù):Sleep(DWORD dwMilliseconds)。此函數(shù)用于執(zhí)行那些本質(zhì)是基于時(shí)間的線程,比如動(dòng)畫控制的后臺(tái)線程7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版摩托車二手交易評(píng)估與鑒定服務(wù)合同4篇
- 2025非全日制勞務(wù)派遣合同樣本:二零二五年度用工協(xié)議3篇
- 二零二五版廠房租賃合同標(biāo)準(zhǔn):租賃廠房周邊環(huán)境維護(hù)責(zé)任3篇
- 2025年度環(huán)保監(jiān)測軟件服務(wù)升級(jí)及數(shù)據(jù)統(tǒng)計(jì)分析合同3篇
- 2025年度補(bǔ)充耕地指標(biāo)出讓與農(nóng)業(yè)科技推廣合同3篇
- 二零二五年度古董藝術(shù)品售后服務(wù)與維權(quán)合同3篇
- 2025年度配音行業(yè)人才培養(yǎng)與輸送合同4篇
- 2025年度旅游紀(jì)念品采購合同書下載3篇
- 2025年度高速公路養(yǎng)護(hù)勞務(wù)分包合同范本
- 2025年度個(gè)人二手房交易合同樣本7篇
- 勞務(wù)協(xié)議范本模板
- 2024年全國職業(yè)院校技能大賽高職組(生產(chǎn)事故應(yīng)急救援賽項(xiàng))考試題庫(含答案)
- 2025大巴車租車合同范文
- 老年上消化道出血急診診療專家共識(shí)2024
- 人教版(2024)數(shù)學(xué)七年級(jí)上冊期末測試卷(含答案)
- 2024年國家保密培訓(xùn)
- 2024年公務(wù)員職務(wù)任命書3篇
- CFM56-3發(fā)動(dòng)機(jī)構(gòu)造課件
- 會(huì)議讀書交流分享匯報(bào)課件-《殺死一只知更鳥》
- 2025屆撫州市高一上數(shù)學(xué)期末綜合測試試題含解析
- 公司印章管理登記使用臺(tái)賬表
評(píng)論
0/150
提交評(píng)論