導航:首頁 > 源碼編譯 > 編譯smp線程庫

編譯smp線程庫

發布時間:2023-08-14 17:51:31

① 作業調度器和cpu調度器有何區別

作業調度器(job
scheler)是一個使公司能夠調度並且,在某些情況下,能管理計算機「批」作業(執行單位,例如一個職工工資表程序的運行)的程序。
作業調度器(job
scheler)是一個使公司能夠調度並且,在某些情況下,能管理計算機「批」作業(執行單位,例如一個職工工資表程序的運行)的程序。作業調度器可以自動地通過處理准備好的作業控制語言語句或通過和一個人類操作者進行同等作用的交互來初始化和管理作業。現在的作業調度器一般都提供一個圖形化的用戶介面,以及在分布式計算機網路中對所有的操作提供一個單點控制。

在作業調度器(job
scheler)中可以找到的一些特徵包括:
對作業以及完成通告的持續自動的監控
事件驅動的作業的調度
性能監控
報告調度
多處理器調度(Multiple-Processor
Scheling):如果多個CPU,則負載分配(load
sharing)。其中主要討論處理器功能相同(或同構)的系統,可以將任何處理器用於運行隊列內的任何進程。
多處理器調度方法:在一個多處理器中,CPU調度的一種方法是讓一個處理器(主伺服器)處理所有的調度決定、I/O處理以及其他系統活動,其他的處理器只執行用戶代碼。這種非對稱處理(asymmetric
multiprocessing)方法更為簡單,因為只有一個處理器訪問系統數據結構,減輕了數據共享的需要。另一種方法是使用對稱多處理(symmetric
multiprocessing,SMP)方法,即每個處理器自我調度。所有進程可能處於一個共同的就緒隊列中,或每個處理器都有自己的私有就緒隊列。無論如何,調度通過每個處理器檢查共同就緒隊列並選擇一個進程來執行。如果多個處理器試圖訪問和更新一個共同數據結構,那麼每個處理器必須仔編程:必須確保兩個處理器不能選擇同一進程,且進程不會從隊列中丟失。
處理器親和性:進程移到其他處理器上時,被遷移的第一個處理器的緩存中的內容必須為無效,而將要遷移的第二個處理器上的緩存需重新構建。由於使緩存無效或重構的代價高,因而SMP努力的使一個進程在同一個處理器上運行,這被稱為處理器親和性,即一個進程需有一種對其他運行所在的處理器的親和性。軟親和性(soft
affinity,操作系統具有設法讓一個進程保持在同一個處理器上運行的策略,但不能做任何保證)—硬親和性(hard
affinity,允許進程指定它不允許移至其他處理器)。
負載平衡(load
balancing):設法將工作負載平均地分配到SMP系統中的所有處理器上。通常只是對那些擁有自己私有的可執行的進程的處理器而言是必要的。兩種方法:push
migration(一個特定的任務周期性地檢查每個處理器上的負載,如果發現不平衡,即通過將進程從超載處理器移到(或推送到)空閑或不太忙的處理器,從而平均地分配負載,當空閑處理器從一個忙的處理器上推送pull一個等待任務時,發生pull
migration)和pull
migration。會抵消處理器親和性。達到限額。
對稱多線程:提供多個邏輯(而非物理的)處理器來運行幾個線程,稱為對稱多線程(SMT),或超線程(hyperthreading)技術。即使系統僅有單處理器,每個邏輯處理器都有它自己的架構狀態,包括通用目的和機器狀態寄存器。每個邏輯處理器負責自己的中斷處理,這意味著中斷被送到並被邏輯處理器所處理,每個邏輯處理器共享其物理處理器的資源,如緩存或匯流排。SMT是硬體而非軟體提供的。硬體應該提供每個邏輯處理器的架構狀態的表示以及中斷處理方法。調度程序首先設法把不同線程分別調度到每個物理處理器上,而不是調度到同一個物理處理器的不同邏輯處理器上。

線程調度:用戶線程---內核線程
系統調度的是內核線程,而不是進程。用戶線程由線程庫管理,內核並不了解它們。用戶線程最終必須映射到相應的內核級線程。輕量級線程(LWP)。
競爭范圍:用戶線程和內核線程的區別之一是它們是如何被調度的。在執行多對一模型和多對多模型系統上,線程庫調度用戶級線程到一個有效的LWP上運行,這被稱為進程競爭范圍(process-contention
scope,PCS)方法,因為CPU競爭發生在屬於相同進程的線程之間。為了決定調度哪個內核線程到CPU,內核採用系統競爭范圍(system-contention
scope,SCS)方法來進行,競爭CPU發生在系統所有線程中,採用一對一的模型的系統,調度僅使用SCS方法。
PCS是根據優先順序完成的。
Pthread調度:在線程生成過程中允許指定是PCS或SCS的。

② 什麼是並行處理

並行處理是計算機系統中能同時執行兩個或多個處理的一種計算方法。並行處理可同時工作於同一程序的不同方面。並行處理的主要目的是節省大型和復雜問題的解決時間。

為使用並行處理,首先需要對程序進行並行化處理,也就是說將工作各部分分配到不同處理進程(線程)中。並行處理由於存在相互關聯的問題,因此不能自動實現。

另外,並行也不能保證加速。從理論上講,在 n 個並行處理的執行速度可能會是在單一處理機上執行的速度的 n 倍。

(2)編譯smp線程庫擴展閱讀:

利用計算機語言進行並行性描述的時候主要有三種方案:

1.語言擴展方案:也就是利用各種語言的庫函數來進行並行性功能的擴展。

2.編譯制導法:也稱為智能編譯,它是隱式並行策略的體現,主要是由並行編譯系統進行程序表示、由相關分析得到方法庫管理方案,由優化分析得到知識庫管理方案,從而形成並行程序。

3.新的語言結構法:這是顯式並行策略的體現。也就是建立一種全新的並行語言的體系,而這種並行語言通過編譯就能直接形成並行程序 。

閱讀全文

與編譯smp線程庫相關的資料

熱點內容
什麼是面對對象編程 瀏覽:706
b站伺服器什麼時候恢復 瀏覽:719
6p相當於安卓機什麼水準 瀏覽:496
能否給隱藏相冊加密 瀏覽:596
糖心app改什麼名 瀏覽:823
戰地1控伺服器如何部署 瀏覽:394
xp還原系統輸入命令 瀏覽:323
mysql命令行版本 瀏覽:303
如何進入itunes找文件夾 瀏覽:832
CAD中重復命令使用 瀏覽:477
心智pdf 瀏覽:475
網站電台直播間源碼 瀏覽:852
文件夾14c和18c的區別 瀏覽:34
android隱式調用 瀏覽:667
plc的編程指令邊沿繼電器 瀏覽:723
voc文件夾 瀏覽:865
租廣東聯通伺服器注意什麼雲空間 瀏覽:935
javascript高級程序設計pdf 瀏覽:292
pwm單片機原理 瀏覽:348
ai演算法在線修復圖片 瀏覽:983