




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
(優(yōu)選)數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格ppt講解當(dāng)前第1頁\共有49頁\編于星期五\4點主要內(nèi)容4.1數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格的基本特征4.2管道-過濾器(pipe-and-filter)4.3批處理(batchsequential)4.4批處理與管道-過濾器的比較當(dāng)前第2頁\共有49頁\編于星期五\4點4.1數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格
的基本特征當(dāng)前第3頁\共有49頁\編于星期五\4點數(shù)據(jù)流風(fēng)格的直觀理解Adataflowsystemisoneinwhich–theavailabilityofdatacontrolstheomputation(數(shù)據(jù)的可用性決定著處理<計算單元>是否執(zhí)行)–thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系統(tǒng)結(jié)構(gòu):數(shù)據(jù)在各處理之間的有序移動)–inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在純數(shù)據(jù)流系統(tǒng)中,處理之間除了數(shù)據(jù)交換,沒有任何其他的交互)當(dāng)前第4頁\共有49頁\編于星期五\4點數(shù)據(jù)流風(fēng)格的基本構(gòu)件(COMPONENT)Components:dataprocessingcomponents(基本構(gòu)件:數(shù)據(jù)處理)–Interfacesareinputportsandoutputports(構(gòu)件接口:輸入端口和輸出端口)–Inputportsreaddata;outputportswritedata(從輸入端口讀取數(shù)據(jù),向輸出端口寫入數(shù)據(jù))–Computationalmodel:readdatafrominputports,compute,writedatatooutputports(計算模型:從輸入端口讀數(shù),經(jīng)過計算/處理,然后寫到輸出端口)當(dāng)前第5頁\共有49頁\編于星期五\4點數(shù)據(jù)流風(fēng)格的連接件(CONNECTOR)Connectors:dataflow(datastream)(連接件:數(shù)據(jù)流)–Uni-directional,usuallyasynchronous,buffered(單向、通常是異步、有緩沖)–Interfacesarereaderandwriterroles(接口角色:reader和writer)–Computationalmodel(計算模型:把數(shù)據(jù)從一個處理的輸出端口傳送到另一個處理的輸入端口)當(dāng)前第6頁\共有49頁\編于星期五\4點數(shù)據(jù)流風(fēng)格的拓?fù)浣Y(jié)構(gòu)(TOPOLOGY)當(dāng)前第7頁\共有49頁\編于星期五\4點數(shù)據(jù)流VS.控制流在vonNeumann的計算機體系結(jié)構(gòu)中,有控制流與數(shù)據(jù)流之分;–
控制流(Controlflow)–
數(shù)據(jù)流(Dataflow)討論:二者有什么區(qū)別和聯(lián)系?能否分別舉出幾個例子?當(dāng)前第8頁\共有49頁\編于星期五\4點兩種典型的數(shù)據(jù)流風(fēng)格Pipe-and-Filter(管道-過濾器)BatchSequential(批處理)當(dāng)前第9頁\共有49頁\編于星期五\4點4.2管道與過濾器風(fēng)格
PIPE-AND-FILTER當(dāng)前第10頁\共有49頁\編于星期五\4點從“自來水管道系統(tǒng)”看Pipe-And-Filter當(dāng)前第11頁\共有49頁\編于星期五\4點基本定義語境:數(shù)據(jù)源源不斷的產(chǎn)生,系統(tǒng)需要對這些數(shù)據(jù)進(jìn)行若干處理(分析、計算、轉(zhuǎn)換等)。解決方案:–
把系統(tǒng)分解為幾個序貫的處理步驟,這些步驟之間通過數(shù)據(jù)流連接,一個步驟的輸出是另一個步驟的輸入;–
每個處理步驟由一個過濾器構(gòu)件(Filter)實現(xiàn);–
處理步驟之間的數(shù)據(jù)傳輸由管道(Pipe)負(fù)責(zé)。每個處理步驟(過濾器)都有一組輸入和輸出,過濾器從管道中讀取輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流并寫入管道中。當(dāng)前第12頁\共有49頁\編于星期五\4點Pipe-And-Filter風(fēng)格的基本構(gòu)成Components:Filters—processdatastreams(構(gòu)件:過濾器,處理數(shù)據(jù)流)–Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一個過濾器封裝了一個處理步驟)–Datasourceanddatasinkareparticularfilters(數(shù)據(jù)源點和數(shù)據(jù)終止點可以看作是特殊的過濾器)Connectors:Apipeconnectsasourceandasinkfilter(連接件:管道,連接一個源和一個目的過濾器)–Pipesmovedatafromafilteroutputtoafilterinput(轉(zhuǎn)發(fā)數(shù)據(jù)流)–Dataisastreamof“objects”(數(shù)據(jù)是特定類型的“對象”流)Topology:Connectorsdefinedataflowgraph(連接器定義了數(shù)據(jù)流圖,形成拓?fù)浣Y(jié)構(gòu))當(dāng)前第13頁\共有49頁\編于星期五\4點1過濾器(Filter)Incrementallytransformsomeofthesourcedataintosinkdata(目標(biāo):將源數(shù)據(jù)變換成目標(biāo)數(shù)據(jù))Streamtostreamtransformation(從“數(shù)據(jù)流”“數(shù)據(jù)流”的變換)–enrichdatabycomputationandaddinginformation(通過計算和增加信息來豐富數(shù)據(jù))–refinebydistillingdataorremovingirrelevantdata(通過濃縮和刪減來精煉數(shù)據(jù))–transformdatabychangingitsrepresentation(通過改變數(shù)據(jù)表現(xiàn)方式來轉(zhuǎn)化數(shù)據(jù))–decomposedatatomultiplestreams(將一個數(shù)據(jù)流分解為多個數(shù)據(jù)流)–mergemultiplestreamsintoonestream(將多個數(shù)據(jù)流合并為一個數(shù)據(jù)流)當(dāng)前第14頁\共有49頁\編于星期五\4點過濾器對數(shù)據(jù)流的五種變換類型當(dāng)前第15頁\共有49頁\編于星期五\4點過濾器讀取與處理數(shù)據(jù)流的方式Incrementallytransformdatafromthesourcetothesink(遞增的讀取和消費數(shù)據(jù)流)–
在輸入被完全消費之前,輸出便產(chǎn)生了。當(dāng)前第16頁\共有49頁\編于星期五\4點過濾器的一些基本特征Filtersareindependententities,i.e.,–nocontextinprocessingstreams(無上下文信息)–nostatepreservationbetweeninstantiations(不保留狀態(tài))–noknowledgeofupstream/downstreamfilters(對其他過濾器無任何了解)–collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用數(shù)據(jù)緩沖區(qū)臨時保存數(shù)據(jù)流)?蓄水池當(dāng)前第17頁\共有49頁\編于星期五\4點2管道(Pipe)Movedatafromafilter’soutputtoafilter’sinput(ortoadeviceorfile)(作用:在過濾器之間傳送數(shù)據(jù))–Onewayflowfromonedatasourcetoonedatasink(單向流)–Apipemayimplementabuffer(可能具有緩沖區(qū))–Pipesformdatatransmissiongraph(管道形成傳輸圖)不同的管道中流動的數(shù)據(jù)流,具有不同的數(shù)據(jù)格式(Dataformat)。原因:數(shù)據(jù)在流過每一個過濾器時,被過濾器進(jìn)行了豐富、精練、轉(zhuǎn)換、融合、分解等操作,因而發(fā)生了變化。當(dāng)前第18頁\共有49頁\編于星期五\4點管道中流動的數(shù)據(jù)類型Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)–StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)–streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)–Streamcontentslimitedto"rawbytes"–Protocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences)當(dāng)前第19頁\共有49頁\編于星期五\4點管道中流動的數(shù)據(jù)類型Tradeoff–compatibilityandreusability"everythingisastream"–vs.typesafety"streamofPersons,streamofTexts"Popularstreamdataformats–rawbytestream–streamofASCIItextlineswithlineseparator–recordstream(recordattributesarestrings,separatedbytabulatororcomma)–nestedrecordstream(recordattributeisinturnasequence)–streamrepresentingatreetraversal(innernodes/leafnodesenumeratedinpreorder,postorder,inorder)–typedstreamwithaheadercontainingitstypeinformation(e.g.,columnheadings)–eventstreams(eventnameandeventarguments)當(dāng)前第20頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的一些變化形式當(dāng)前第21頁\共有49頁\編于星期五\4點數(shù)據(jù)流的分類:推式與拉式Question:whatistheforcethatmakedataflow?(是什么力量推動數(shù)據(jù)在管道中流動?)Threechoice,allwithforceemanatingfromfilters:–Push:datasourcepushesdataindownstreamdirection(推式:前面的過濾器把新產(chǎn)生的數(shù)據(jù)推入管道)–Pull:datasinkpullsdatafromupstreamdirection(拉式:隨后的過濾器從管道中拉出所需數(shù)據(jù))–Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:過濾器以循環(huán)的方式,從管道中拉出其輸入數(shù)據(jù),并將其處理產(chǎn)生的數(shù)據(jù)壓入后續(xù)管道)當(dāng)前第22頁\共有49頁\編于星期五\4點過濾器的分類:主動與被動Activefilter:driversthedataflowonthepipes.(主動過濾器:驅(qū)動數(shù)據(jù)流動,pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被動過濾器:被管道中的輸入或輸出數(shù)據(jù)流所驅(qū)動)Attention:系統(tǒng)中至少有一個主動過濾器(可以來自外部環(huán)境,如用戶輸入)當(dāng)前第23頁\共有49頁\編于星期五\4點被動過濾器所采用的兩種策略PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被動過濾器:該過濾器不會主動執(zhí)行,而是在后續(xù)過濾器的“拉”動作的驅(qū)動下才執(zhí)行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被動過濾器:該過濾器不會主動執(zhí)行,而是在前續(xù)過濾器的“推”動作的驅(qū)動下才執(zhí)行)當(dāng)前第24頁\共有49頁\編于星期五\4點采用推式策略的被動過濾器當(dāng)前第25頁\共有49頁\編于星期五\4點采用拉式策略的被動過濾器當(dāng)前第26頁\共有49頁\編于星期五\4點一個混合型的管道-過濾器系統(tǒng)當(dāng)前第27頁\共有49頁\編于星期五\4點一個混合型的管道-過濾器系統(tǒng)當(dāng)前第28頁\共有49頁\編于星期五\4點帶有緩沖區(qū)的混合型管道-過濾器系統(tǒng)當(dāng)前第29頁\共有49頁\編于星期五\4點帶有緩沖區(qū)的混合型管道-過濾器系統(tǒng)當(dāng)前第30頁\共有49頁\編于星期五\4點過濾器的狀態(tài)停止?fàn)顟B(tài):表示過濾器處于待啟動狀態(tài),當(dāng)外部啟動過濾器后,過濾器處于處理狀態(tài)。處理狀態(tài):表示過濾器正處理輸入數(shù)據(jù)隊列中的數(shù)據(jù)。等待狀態(tài):表示過濾器的輸入數(shù)據(jù)隊列為空,此時過濾器等待,當(dāng)有新的數(shù)據(jù)輸入時,過濾器處于處理狀態(tài)。當(dāng)前第31頁\共有49頁\編于星期五\4點Pipe-And-Filter風(fēng)格的典型應(yīng)用當(dāng)前第32頁\共有49頁\編于星期五\4點Pipe-And-Filter風(fēng)格的典型應(yīng)用Complier(scan,parse,generatecode,..)(編譯器)Unixpipes(Unix管道)Imageprocessing(圖像處理)Signalprocessing(信號處理)Voiceandvideostreaming(聲音與圖像處理)…當(dāng)前第33頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的例子當(dāng)前第34頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的例子:UnixShell當(dāng)前第35頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的例子:UnixShell當(dāng)前第36頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的例子:編譯器(1)當(dāng)前第37頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的例子:編譯器(2)當(dāng)前第38頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的優(yōu)點使得系統(tǒng)中的構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點;允許設(shè)計者將整個系統(tǒng)的輸入/輸出行為看成是多個過濾器的行為的簡單合成;支持軟件復(fù)用:–
只要提供適合在兩個過濾器之間傳送的數(shù)據(jù),任何兩個過濾器都可被連接起來;系統(tǒng)維護(hù)和增強系統(tǒng)性能簡單:–
新的過濾器可以添加到現(xiàn)有系統(tǒng)中來,舊的可以被改進(jìn)的過濾器替換掉;允許對一些如吞吐量、死鎖等屬性的分析;支持并行執(zhí)行:–
每個過濾器是作為一個單獨的任務(wù)完成,因此可與其它任務(wù)并行執(zhí)行。當(dāng)前第39頁\共有49頁\編于星期五\4點管道-過濾器風(fēng)格的缺點通常導(dǎo)致進(jìn)程成為批處理的結(jié)構(gòu)–
這是因為雖然過濾器可增量式地處理數(shù)據(jù),但它們是獨立的,所以設(shè)計者必須將每個過濾器看成一個完整的從輸入到輸出的轉(zhuǎn)換;不適合處理交互的應(yīng)用–
當(dāng)需要增量地顯示改變時,這個問題尤為嚴(yán)重;因為在數(shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。–
絕大部分處理時間消耗在格式轉(zhuǎn)換上當(dāng)前第40頁\共有49頁\編于星期五\4點4.3順序批處理風(fēng)格
BatchSequentialStyle當(dāng)前第41頁\共有49頁\編于星期五\4點批處理風(fēng)格的直觀結(jié)構(gòu)將用戶輸入的紙帶上的數(shù)據(jù)寫入磁帶將磁帶作為計算設(shè)備的輸入,進(jìn)行計算,得到輸出結(jié)果打印計算結(jié)果當(dāng)前第42頁\共有49頁\編于星期五\4點批處理風(fēng)格的直觀結(jié)構(gòu)當(dāng)前第43頁\共有49頁\編于星期五\4點基本定義Processingstepsareindependentprograms(每個處理步驟是一個獨立的程序)Eachsteprunstocompletionbeforenextstepstarts(每一步必須在前一步結(jié)束后才能開始)Datatransmittedasawholebetweensteps(數(shù)據(jù)必須是完整的,以整體的方式傳遞)Typicalapplications(典型應(yīng)用):–classicaldataprocessing(傳統(tǒng)的數(shù)據(jù)處理)–programcompilation/computeraidedsoftwareengineering(程序編譯/CASE工具)當(dāng)前第44頁\共有49頁\編于星期五\4點基本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年軍隊文職人員招聘之軍隊文職教育學(xué)題庫與答案
- 2025年軍隊文職人員招聘之軍隊文職管理學(xué)與服務(wù)考試題庫
- 2021-2022學(xué)年廣東省廣州市白云區(qū)六校七年級(下)期中數(shù)學(xué)試卷(含答案)
- 企業(yè)級數(shù)據(jù)安全合規(guī)策略制定服務(wù)協(xié)議
- 網(wǎng)絡(luò)直播平臺合作項目表
- 四川省成都市武侯區(qū)2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 湖南省岳陽市岳陽縣2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 語言學(xué)英語翻譯技能測試卷
- 濕地松采脂承包合同
- 團(tuán)隊目標(biāo)與績效考核表
- 醫(yī)療垃圾的分類與處理知識培訓(xùn)
- 加油站自動化控制系統(tǒng)
- 環(huán)境地質(zhì)學(xué)第一講-緒論課件
- DB6523-T 387-2023 蘋果小吉丁蟲監(jiān)測調(diào)查技術(shù)規(guī)程
- 汽車維修工時收費標(biāo)準(zhǔn)(二類企業(yè))
- (醫(yī)學(xué)課件)腰椎穿刺術(shù)課件
- 參保人員轉(zhuǎn)診就醫(yī)審核意見單
- 動物免疫接種技術(shù)課件
- 93年國際大專辯論賽經(jīng)典辯詞
- 幼兒園大班繪本故事-神奇的大蒜【幼兒教案】
- GB/T 17639-2023土工合成材料長絲紡粘針刺非織造土工布
評論
0/150
提交評論