<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      學習筆記 第四章的自學歸納

      并行計算導論

      • 多進程服務器是指當客戶端發出請求時,服務器使用子進程來處理客戶端的請求。

      • 父進程繼續等待來自其他客戶端的請求。

      順序算法與并行算法

      • 并行計算的優勢:探討并行計算相對于串行計算的優勢,包括加速計算速度、提高系統吞吐量、處理大規模數據等。

      • 在只有一個CPU的情況下,每次只能按順序執行某算法的一個指令和步驟。但是,基于分治原則(如二叉樹查找和快速排序等)的算法經常表現出高度的并行性,可通過使用并行或并發執行來提高計算速度。并行計算是一種計算方案,它嘗試使用多個執行并行算法的處理器更快速地解決問題。

      并行性與并發性

      • 并行性指的是同時執行多個任務或操作的能力。在并行計算中,多個計算任務可以同時進行,每個任務由不同的處理單元執行,以提高計算效率和性能。并行性的目標是通過同時執行多個任務來加速計算過程。

      • 并發性指的是多個任務或操作在相同時間段內交替執行的能力。在并發計算中,多個任務按照一定的調度策略交替執行,每個任務在某個時間片段內獲得處理器的執行時間。并發性的目標是通過任務的交替執行來提高系統的資源利用率和響應能力。

      • 在單 CPU 系統中,一次只能執行一個任務。在這種情況下,不同的任務只能并發執行、即在邏輯上并行執行。在單CPU系統中,并發性是通過多任務處理來實現的。

      線程

      線程的原理

      • 線程是某進程同一地址空間上的獨立執行單元。

      線程的優點

      • 線程創建和切換速度更快∶進程的上下文復雜而龐大。其復雜性主要來自管理進程映像的需要。在執行過程中,有些頁面在內存中,有些則不在內存中。操作系統內核必須使用多個頁表和多個級別的硬件輔助來跟蹤每個進程的頁面。要想創建新的進程,操作系統必須為進程分配內存并構建頁表。若要在某個進程中創建線程,操作系統不必為新的線程分配內存和創建頁表。因為線程與進程共用同一個地址空間。所以創建線程比創建進程更快。

      • 線程的響應速度更快:一個進程只有一個執行路徑。當某個進程被掛起時、整個進程都將停止執行。相反,當某個線程被掛起時,同一進程中的其他線程可以繼續執行。這使得有多個線程的程序響應速度更快。

      • 線程更適合并行計算∶并行計算的目標是使用多個執行路徑更快地解決問題。基于分治原則(如二叉樹查找和快速排序等)的算法經常表現出高度的并行性。可通過使用并行或并發執行來提高計算速度。這種算法通常要求執行實體共享公用數據。在進程模型中,各進程不能有效共享數據,因為它們的地址空間都不一樣。

      線程的缺點

      • 由于地址空間共享,線程需要來自用戶的明確同步。

      • 許多庫函數可能對線程不安全。通常,任何使用全局變量或依賴于靜態內存內容的函數,線程都不安全。

      • 在單CPU系統上,使用線程解決問題實際上要比使用順序程序慢。

      線程管理函數

      pthread_create(thread, attr, function, arg): create thread

      pthread_exit(status) : terminate thread

      pthread_cancel(thread) : cancel thread

      pthread_attr_init(attr) : initialize thread attributes

      pthread_attr_destroy(attr): destroy thread attribute

      創建線程

      • 使用pthread_create()函數

      • pthread_id是指向pthread_t類型變量的指針。它會被操作系統內核分配的唯一線程ID填充。在POSIX中,pthread_t是一種不透明的類型。程序員應該不知道不透明對象的內容,因為它可能取決于實現情況。

      • attr是指向另一種不透明數據類型的指針,它指定線程屬性,下面將對此進行更詳細的說明。

      • func是要執行的新線程函數的入口地址。 arg是指向線程函數參數的指針,可寫為:void *func(void *arg)

      • attr參數

      線程ID

      線程ID是一種不透明的數據類型,取決于實現情況。

      線程終止

      • 線程函數結束后,線程即終止。或者,線程可以調用函數int pthread_exit (void *status);

      • 進行顯式終止,其中狀態是線程的退出狀態。通常,0退出值表示正常終止,非0值表示異常終止。

      線程連接

      一個線程可以等待另一個線程的終止。

      線程同步

      互斥量

      最簡單的同步工具是鎖,它允許執行實體僅在有鎖的情況下才能繼續執行。

      死鎖預防

      互斥量使用封鎖協議。如果某線程不能獲取互斥量,就會被阻塞,等待互斥量解鎖后再繼續。

      在實際系統中,唯一可行的方法是死鎖預防,試圖在設計并行算法時防止死鎖的發生。

      條件變量

      條件變量可以通過兩種方法進行初始化

      • 靜態方法

      • 動態方法

      生產者-消費者問題

      信號量

      • 信號量是進程同步的一般機制

      • 信號量和條件變量

      屏障

      • 線程連接操作允許某線程等待其他線程終止

      • 在pthread中可以采用的機制是屏障以及一系列屏障函數

      Linux中的線程

      • 進程和線程都是由clone()系統調用創建的具有以下原型

      int clone(int (fn)(void),void *child_stack,int flags,void *arg)

      遇見的問題及相關解決措施


      蘇格拉底挑戰




      posted on 2023-10-29 19:31  20211422王俊凱  閱讀(14)  評論(0)    收藏  舉報



      主站蜘蛛池模板: 周至县| 亚洲精品宾馆在线精品酒店| 亚洲熟妇自偷自拍另欧美| 国产午夜在线观看视频播放| 亚洲永久精品日韩成人av| a片免费视频在线观看| 欧美日韩在线亚洲二区综二| 色道久久综合亚洲精品蜜桃| 亚洲欧美人成人综合在线播放| 欧美人与动牲交精品| 99久久精品国产一区二区| 国产中文字幕在线一区| 久久精品人人看人人爽| 最近中文字幕国产精品| 国产欧美性成人精品午夜| 制服丝袜人妻有码无码中文字幕| 亚洲精品男男一区二区| 亚洲无av码一区二区三区| 最新亚洲av日韩av二区| 中文字幕人妻在线精品| 博爱县| 看亚洲黄色不在线网占| 亚洲欧美日韩综合一区在线| 亚洲精品国模一区二区| 国产精品一区二区三区色| 亚洲日韩一区二区| 欧美成人精品一级在线观看| 中文字幕国产精品第一页| 亚洲最大国产成人综合网站 | 午夜综合网| 真人无码作爱免费视频| 无码精品人妻一区二区三区湄公河| 精品国产中文字幕在线看| 人妻体体内射精一区二区| 亚洲一区二区约美女探花| 免费看的一级黄色片永久| 亚洲人成网站在线播放2019| 国模少妇无码一区二区三区| 国产精品多p对白交换绿帽| 沾化县| 欧美熟妇乱子伦XX视频|