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

正文內(nèi)容

第七章并發(fā)程序設計語言-資料下載頁

2025-10-02 21:55本頁面

【導讀】并發(fā)程序帶來的問題。需要解決的基本問題。并發(fā)性,又稱共行性,是指能處理多個同時性活動。的能力,并發(fā)事件之間不一定要同一時刻發(fā)生。并行強調(diào)的是多個執(zhí)行活動同時處于運行狀態(tài)之中,強調(diào)其相互。器或者是多核的處理器同時處理多個不同的任務。并行程序設計模型。并行計算的硬件環(huán)境。程序與進程,線程與進程。關代碼段執(zhí)行的操作相對應。保證數(shù)據(jù)一致性與同步。而無需關心進程間的數(shù)據(jù)交換問題。與并行系統(tǒng)來維護。存儲多處理機,而不用于多處理機、機群系統(tǒng)。消息包括指令、數(shù)。術的發(fā)展而提出的。并行處理單位卻是對象。對象是動態(tài)建立和控制的。對象間發(fā)送和接收消息來完成。臺,但系統(tǒng)開銷較大。對應為單機多處理器的主機或單CPU. 戶的MS-DOS和多用戶的UNIX就是例子,有OS均發(fā)展為右下角的多進程和多線程的計算模式。原子動作是一次“立即”執(zhí)行完的“順序”動作。PL/1的并發(fā)進程是任務TASK,它可以定義語句級的事件。

  

【正文】 :char)。 body var cache_block:TYPE; //磁盤緩存塊 var queue :QTYPE; //等待訪問磁盤的隊 var 按需要的信號燈變量 proc readblk (field, offset, blk) is if 需要的塊不在 caske_block之中 then 將讀要求存入磁盤的等待隊 。 等待處理讀 。 endif。 blk := cache_block。 end。 proc writeblk (field, offset, blk) 選取一可寫 cache_block。 如必要,將寫要求入等待隊 。 等待至磁盤可寫 。 cache_block := blk。 end。 Disk_Driver ::loop 等待磁盤訪問要求 。 啟動磁盤操作;等待中斷 。 喚醒等待此要求的進程并執(zhí)行之 。 end loop。 end File_Server. 會合 ? 會合由進程輸出操作,因而,每當有遠程調(diào)用時進程已經(jīng)是激活了的。這和模塊輸出操作,遠程調(diào)用時再激活進程不一樣,故而得名,即以兩活動進程相會合以求得同步。服務進程一般定義為 : Pname::各操作 Opi的聲明 。 局部變量聲明 。 in/accept 語句和條件 。 //接受 RPC的入口點 opi(FRG_list)。 其它局部操作 。 調(diào)用時和 RPC一樣 : _ call (ARG_list) Buffer :: op deposit(data:TYPE), fetch(var result:TYPE)。 var buf[1..q]:TYPE var front :=1, rear := 1, count !=0。 loop in deposit (data) and count n do buf[rear] := data。 rear := rear mod n+1。 count := count+1; end。 ?in fetch (result) and count0 do result := buf[front]。 front := front mod n+1。 count := count 1。 end。 end loop. 有界緩沖區(qū)是一典型過濾器,一些進程向緩沖區(qū)存入 (deposit)數(shù)據(jù),另一些進程從緩沖區(qū)取出 (fetch),緩沖區(qū) (buffer)本身是一個進程。會合機制的實現(xiàn)算法如下 : 多原語的并發(fā)機制 ?進程交互主要技術的回顧 忙等待 信號燈 條件臨界區(qū) 監(jiān)控器 同步消息傳遞 異步消息傳遞 遠程過程調(diào)用 /會合 路徑表達式 多原語交互 面向 過程 面向 消息 面向操作 主要內(nèi)容: ? 并發(fā)程序設計的基本概念 ? 并發(fā)程序帶來的問題 ? 需要解決的基本問題 ? 程序語言示例 并發(fā)語言需要解決的基本問題 ? 開發(fā)并行程序設計語言一般有三種方法 : – ① 設計一種新語言。新語言有比較強的并行性描述能力。但是兼容性不好 ,不易推廣 ,因此現(xiàn)在采用該方法的系統(tǒng)較少。 – ②對現(xiàn)有的順序語言加以擴展 ,提供并行性描述機制。該方法具有兼容性好、編程簡便等特點 ,現(xiàn)在常常被采用。 ③不改變現(xiàn)有順序語言 ,而由用戶提供的函數(shù)庫、類庫或并行化編譯系統(tǒng)等方法實現(xiàn)并行程序設計。該方法簡單靈活 ,易于推廣。 并發(fā)程序設計語言 高級程序設計語言擴充并發(fā)機制,最早可溯源至 PL/1和Algal68。 20多年以來,隨著各種并發(fā)機制的研究推出了數(shù)十種具有并發(fā)機制的高級程序設計語言。直到目前,還沒有一種并發(fā)程序設計語言能統(tǒng)治并發(fā)程序設計整個領域。其原因是硬件背景、應用領域和程序設計模型的多樣性。 主要的并發(fā)程序設計語言 語言 年代 并發(fā)機制 備注 DP 1978 CCR+RPC Edison 1978 CCR Argus 1982 CCR+RPC+原子事務 Lynx 1991 RPC+會合 +CCR Concurrent Euclid 監(jiān)控器 (SW) Concurrent Pascal 1975 監(jiān)控器 (SW) Modula3 1985 監(jiān)控器 (SC)+協(xié)例程和鎖的包 Path Pascal 1979 監(jiān)控器 +路徑表達式 Pascal Plus 1979 監(jiān)控器 (SU) Turing Plus 1983 監(jiān)控器 (SC+SW) Mesa 1979 監(jiān)控器 (SC)+RPC Emerald 監(jiān)控器 +RPC(面向?qū)ο?) 語言 年代 并發(fā)機制 備注 Actor 異步消息傳遞 (基于對象 ) PLITS 1979 異步消息傳遞 NIL 1982 異步消息傳遞 +會合 Gypsy 1979 異步消息傳遞 CONIC 異步消息傳遞 CSP 1980 同步消息傳遞 Joyce 同步消息傳遞 Occam 1987 同步消息傳遞 Concurrent C 1985 會合 +異步發(fā)送 Concurrent C++ 1987 會合 Ada 1983 會合 SR 1982 多共享 +消息原語 92年 Star Mod 1980 多消息原語 Linda 1986 帶共享元組空間的消息原語 Java 1996 類庫支持多原語 Ada的任務 ?Ada的任務結(jié)構(gòu) task TNAME is entry ENAME (FP_list); //可以多個 end TNAME; task body TNAME is 局部聲明; begin accept ENAME (FP_list) is //對應多個 語句序列 。 end ENAME。 end TNAME。 任務激活后就是一個進程。其它進程通過 call (AP_list)。 ?Ada的 通信與同步 ( 1)簡單選擇 (2) 否則選擇 (3) 衛(wèi)式選擇 ( 4)延時選擇 SR語言 ? 設計于 70年代末,從多消息傳遞原語擴充了共享內(nèi)存而來。 ? 程序結(jié)構(gòu)( 有 resources (資源 )和 globals(全局共享 )兩種模塊) : resource name global name 輸入規(guī)格說明 。 輸入規(guī)格說明 。 輸出操作和類型聲明 。 輸出操作和類型聲明 。 body name(FP_list) body name 變量和局部聲明 。 變量和局部聲明 。 初始化碼 。 初始化碼 。 過程 。 過程 。 進程 。 終止化代碼 。 終止化代碼 。 end name end name. SR語言 ? 在 SR中,同一資源內(nèi)的進程可以共享變量,可以使用各種原語實現(xiàn)通信和同步:信號燈、異步消息傳遞、 RPC、會合。SR既適合分布式也適于共享內(nèi)存的多處理器機器。 ? 調(diào)用操作用 call則為同步, send為異步。 基于消息的并行編程模型 ? 由于消息傳遞并行編程模型的廣泛應用,目前已經(jīng)出現(xiàn)了許多基于該模型的并行編程語言,其中最流行的是 PVM( Parallel Virtual Machine)和 MPI( Message Process Interface)。第一個將工作站集群作為并行計算平臺并被廣泛接受的并行編程語言是 PVM。它由美國的 Oak Ridge國家實驗室、 Tennessean大學、 Em大學、 CMU大學等聯(lián)合開發(fā)而成,能夠?qū)悩?gòu)的 Unix計算機通過異構(gòu)網(wǎng)絡連接成一個“虛擬”的并行計算系統(tǒng),為其上運行的應用程序提供分布式并行計算環(huán)境。 PVM ? PVM是一種基于局域網(wǎng)的 并行計算環(huán)境。它通過將多個異構(gòu)的計算機有機地組織起來,形成一個易于管理、易于編程、并且具有 很好的可擴展性的并行計算環(huán)境。目前 PVM支持 C和 Fortran語言。程序員首先參照消息傳遞模型編寫好并行程序,然后將編譯后的 程序以任務為單位在網(wǎng)絡中特定類型的計算機上運行。 PVM能夠在虛擬機中自動加載任務并運行,并且還提供了任務間相互通信和同步的手段。由于所有的計算任務都被分配到合適的計算節(jié)點 上,多個節(jié)點并行運算,從而實現(xiàn)了任務一級的并行。 PVM為利用現(xiàn)有計算資源進行并行程序的開發(fā)與研究提供了一種有效的解決方案。由于 PVM免費、開放和易于使用的特性,使得它成為一個被廣泛接受的并行程序開發(fā)環(huán)境,目前幾乎所有 的并行計算系統(tǒng)都支持 PVM。 PVM ? PVMParallel Virtural Machine PVM3的原代碼可以在 或 ? XPVM是 PVM的圖形化控制臺,用Tcl/Tk寫成??梢栽趍l下找到 MPI ? MPI是為開發(fā)基于消息傳遞模型的并行程序而制定的工業(yè)標準,其目的是為了提高并行程序的可移植性和易用性。參與 MPI標準制定的人員來自歐美 40多個組 織,大部分主要的并行計算機制造商、大學研究所、政府實驗室、工業(yè)組織等都投入到 MPI標準化工作。有了統(tǒng)一的并行編程語言標準,并行計算環(huán)境下的應用軟件及軟件工具就都能夠?qū)崿F(xiàn)透明的移植,各個廠商就可以依據(jù)標準提供獨具特色和優(yōu)勢的軟件實現(xiàn)和軟件支持,從而提高了并行處理的能力。 MPI ? MPI是一種基于消息傳遞模型的并行編程接口,目前已經(jīng)發(fā)展成為消息傳遞模型的代表和事實上的工業(yè)標準,而不是一門具體的 語言。迄今為止,所有的并行計算機制造商都提供對 MPI的支持,因而從理論上說任何一個正確的 MPI程序可以不加修改地在所有并行計算機上運行。 MPI只是一個并行編程語言標準,要編寫基于 MPI的并行程序,還必須借助某一 MPI具體實現(xiàn)。 MPICH是 Linux平臺下最重要的一種 MPI實現(xiàn), 是一個與 MPI規(guī)范同步發(fā)展的版本。每當 MPI標準推出新的版本時, MPICH就會有相應的實現(xiàn)版本。 LAM( Local Area Multiputer)是 Linux平臺下另一免費的 MPI實現(xiàn)。它由 Ohio州立大學開發(fā),主要用于異構(gòu)的網(wǎng)格計算并行系統(tǒng)。 MPI ? MPIMessage Passing Interface:
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1