下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、運(yùn)“芯”帷幄 CMP 的操作系統(tǒng)技術(shù)單芯片多處理器( CMP ),特別是在一個(gè)芯片上集成了多個(gè)相同通用處理器的單芯片對(duì)稱多 處理器(同構(gòu) CMP )的發(fā)展,是上世紀(jì) 90 年代以來(lái)集成電路制造工藝的進(jìn)步與微處理器體 系結(jié)構(gòu)的發(fā)展所帶來(lái)的必然發(fā)展方向。和目前在服務(wù)器領(lǐng)域廣泛采用的對(duì)稱多處理器( Symmetric Multi-Processor, SMP )結(jié)構(gòu)類似,在 CMP 系統(tǒng)中,位于同一個(gè)芯片內(nèi)部所有處理器內(nèi)核以平等的身份參與任務(wù)調(diào)度和中斷處 理,共享內(nèi)存和外部設(shè)備,而且也可以共享片內(nèi)的 (部分或全部)高速緩存。CMP 的結(jié)構(gòu)相對(duì)簡(jiǎn)單,可以直接使用現(xiàn)有的處理器內(nèi)核,因此開(kāi)發(fā)周期與成本相對(duì)
2、較低, 結(jié)構(gòu)簡(jiǎn)單帶來(lái)的另一個(gè)好處是更易獲得高的主頻。由于多個(gè)處理器集成在 一塊芯片上,且 共享cache,微處理器之間的通信延遲會(huì)明顯降低,有利于提高系統(tǒng)的整體性能。因此,CMP具有良好的發(fā)展前景和廣泛的應(yīng)用空間, 眾多著名大學(xué)、 科研機(jī)構(gòu)和商業(yè)公司都展開(kāi)了廣泛 而積極的研究。而要想真正發(fā)揮 CMP 的優(yōu)勢(shì),軟件,特別是操作系統(tǒng)和編譯工具等系統(tǒng)軟件的支持至關(guān)重 要,沒(méi)有這些軟件, CMP 將處于 “空轉(zhuǎn)”狀態(tài)。因此,每一個(gè) CMP 系統(tǒng)都需要為其量身打造 的系統(tǒng)軟件。CMP 對(duì)操作系統(tǒng)提出的挑戰(zhàn)系統(tǒng)軟件對(duì)于 CMP 廣泛、深入的應(yīng)用有重要的意義,這里我們討論操作系統(tǒng)。操作系統(tǒng)是 計(jì)算機(jī)系統(tǒng)的基
3、本系統(tǒng)軟件, 在整個(gè)計(jì)算機(jī)系統(tǒng)中處于核心地位, 負(fù)責(zé)控制、 管理計(jì)算機(jī)的 所有軟件、硬件資源,是惟一直接和硬件系統(tǒng)打交道的軟件,是整個(gè)軟件系統(tǒng)的基礎(chǔ)部分, 同時(shí)還為計(jì)算機(jī)用戶提供良好的界面。對(duì)于普通用戶而言, 操作系統(tǒng)是一個(gè)資源管理者, 通過(guò)它提供的系統(tǒng)命令和界面操作等工具, 以某種易于理解的方式完成系統(tǒng)管理功能, 有效地控制各種硬件資源, 組織自己的數(shù)據(jù), 完 成自己的工作并和其他人共享資源。對(duì)于程序員來(lái)講, 操作系統(tǒng)提供了一個(gè)與計(jì)算機(jī)硬件等價(jià)的擴(kuò)展或虛擬的計(jì)算平臺(tái)。操作系統(tǒng)提供給程序員的工具除了系統(tǒng)命令、界面操作之外,還有系統(tǒng)調(diào)用,系統(tǒng)調(diào)用抽象了許多硬件細(xì)節(jié), 程序可以以某種統(tǒng)一的方式進(jìn)行
4、數(shù)據(jù)處理, 程序員可以避開(kāi)許多具體的硬件細(xì) 節(jié),提高程序開(kāi)發(fā)效率,改善程序移植特性。并行是計(jì)算機(jī)科學(xué)與技術(shù)的重要分支之一, 其核心思想是通過(guò)任務(wù)的合理劃分和分配,使得多個(gè)處理器可以同時(shí)執(zhí)行一個(gè)或多個(gè)任務(wù),以達(dá)到系統(tǒng)整體計(jì)算能力的大幅度提升。CMP的意義在于能夠提供任務(wù)并行執(zhí)行的一個(gè)新思路, 支持在一個(gè)芯片內(nèi)的多個(gè)處理器內(nèi)核之間 任務(wù)的劃分和分配(也就是調(diào)度) ,而任務(wù)的調(diào)度則需 要操作系統(tǒng)來(lái)完成。CMP 的發(fā)展對(duì)操作系統(tǒng)提出了新的挑戰(zhàn)。首先,如何合理組織、調(diào)度任務(wù)才能最大程度地 發(fā)揮 CMP 結(jié)構(gòu)的性能?其次,如何保持操作系統(tǒng)的外部接口的相對(duì)穩(wěn)定?對(duì)于一般用戶而 言,大家希望的是平滑的過(guò)渡,
5、一方面界面最好和以前的操作系統(tǒng)完全相同, 另一方面以前 能用的應(yīng)用程序最好還能夠不做任何修改就直接在 CMP 的機(jī)器上直接運(yùn)行, 也就是說(shuō) CMP 對(duì)于用戶來(lái)講最好是透明的,這需要操作系統(tǒng)在用戶界面和編程接口方面都保持不變。如何更好地組織和調(diào)度任務(wù)以便將 CMP 結(jié)構(gòu)的性能發(fā)揮到極致是核心的問(wèn)題,這是人們對(duì)CMP 最大的期望。要解決這個(gè)問(wèn)題,需要軟硬件共同協(xié)作,從任務(wù)調(diào)度、中斷分配、資源 共享等幾個(gè)方面入手, 硬件方面則要求 CMP 系統(tǒng)提供全新的同步與互斥、 中斷分配以及 CPU 內(nèi)核之間的中斷等機(jī)制。支持 CMP 操作系統(tǒng)的關(guān)鍵技術(shù) 目前國(guó)際上對(duì)于 CMP 的研究還處于探索階段,相關(guān)操作系
6、統(tǒng)也處在積極研究時(shí)期。研究、 分析和借鑒支持 CMP 操作系統(tǒng)的關(guān)鍵技術(shù)對(duì)于我們認(rèn)識(shí)、理解和設(shè)計(jì)用于 CMP 的操作系 統(tǒng)有著非常重要的意義,這里,我們簡(jiǎn)單介紹支持 CMP 操作系統(tǒng)的引導(dǎo)和初始化、調(diào)度, 中斷處理和同步、互斥技術(shù)。系統(tǒng)引導(dǎo)和初始化操作系統(tǒng)的引導(dǎo)和初始化是指從系統(tǒng)加電到能夠在多個(gè)處理器內(nèi)核之間平等地進(jìn)行任務(wù)調(diào) 度的過(guò)程, 這一過(guò)程是建立平等調(diào)度實(shí)施的基礎(chǔ), 對(duì)于整個(gè)系統(tǒng)的運(yùn)行具有重要意義。 雖然 說(shuō)對(duì)稱多處理器系統(tǒng)中, 各處理器可以平等地并行工作, 但這是建立在系統(tǒng)有多個(gè)可并行執(zhí) 行任務(wù)的基礎(chǔ)之上, 而在引導(dǎo)和初始化過(guò)程中, 由于很多工作只能串行地執(zhí)行, 所以在這個(gè) 階段處理器
7、內(nèi)核是不平等的,是有主次之分的。系統(tǒng)加電之后,受到硬件控制,只啟動(dòng)其中 一個(gè)處理器,稱為主 CPU 或者引導(dǎo)處理器( Booting Processor, BP) ,而其他處理器,稱為次 CPU 或者應(yīng)用處理器 (Application Processor, AP) ,則處于停機(jī)等待狀態(tài)。加電啟動(dòng)之后,主 CPU 跳轉(zhuǎn)到特定的內(nèi)存地址,通常映射到只讀存儲(chǔ)器,這里保存著整個(gè) 計(jì)算機(jī)的引導(dǎo)程序, 其任務(wù)是進(jìn)行簡(jiǎn)單的硬件檢測(cè)、 初始化環(huán)境參數(shù)、 將操作系統(tǒng)內(nèi)核裝載 到內(nèi)存中,跳轉(zhuǎn)到操作系統(tǒng)的起始地址并開(kāi)始執(zhí)行。這段引導(dǎo)過(guò)程完全由 BP 完成。進(jìn)入操作系統(tǒng)內(nèi)核之后, BP 需要進(jìn)行最初的草創(chuàng)性工作,完
8、成運(yùn)行環(huán)境準(zhǔn)備、各種初識(shí)狀 態(tài)設(shè)置、 基本讀寫(xiě)數(shù)據(jù)段清零、 bootloader 傳遞過(guò)來(lái)的各種環(huán) 境參數(shù)保存、 內(nèi)存棧的開(kāi)辟以 及棧指針、全局指針設(shè)置。前面這部分工作全部由底層匯編代碼完成,之后, BP 跳轉(zhuǎn)到由 高級(jí)語(yǔ)言編寫(xiě)的函數(shù),開(kāi)始第二個(gè)階段 CPU 本身的初始化。在 CPU 初始化過(guò)程中, BP 首先開(kāi)始自檢,收集 CPU 相關(guān)的指令集、存儲(chǔ)管理、高速緩存 以及協(xié)處理器等基本信息。接著為次 CPU 準(zhǔn)備運(yùn)行環(huán)境,同時(shí)為 AP 準(zhǔn)備一個(gè)鎖,之后喚 醒 AP , AP 轉(zhuǎn)入主 CPU 設(shè)置好的地址,開(kāi)始鎖測(cè)試而進(jìn)入等待狀態(tài)。喚醒AP 之后, BP 輸出自身信息之后,繼續(xù)進(jìn)行內(nèi)存等各種資源
9、的初始化。接下來(lái)的工作主要有 BP 進(jìn)行開(kāi)發(fā)板以及外部設(shè)備初始化,之后準(zhǔn)備用于所有 CPU 的空閑 進(jìn)程,這是一個(gè)不參與調(diào)度的進(jìn)程,當(dāng)某個(gè) CPU 沒(méi)有需要執(zhí)行的任務(wù), 就轉(zhuǎn)入這個(gè)進(jìn)程。 準(zhǔn)備好空閑進(jìn)程之后,由 BP 解除對(duì) AP 的鎖,各 AP 逐個(gè)啟動(dòng),進(jìn)行各種關(guān)于各自 CPU 的 初始化,將自身的狀態(tài)填寫(xiě)到適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),最后相繼進(jìn)入空閑狀態(tài)。所有的 AP 都完成初始化并進(jìn)入空閑狀態(tài)后,由 BP 來(lái)完成整個(gè)系統(tǒng)最后階段的初始化,并 執(zhí)行系統(tǒng)的第一個(gè)進(jìn)程,之后真正步入對(duì)稱多處理器環(huán)境,所有的 CPU 進(jìn)入正常、平等的 調(diào)度。調(diào)度調(diào)度系統(tǒng)對(duì)于操作系統(tǒng)乃至整個(gè)計(jì)算機(jī)系統(tǒng)的整體性能有非常重要的影
10、響, 嵌入式、 桌面和 高端服務(wù)器系統(tǒng)對(duì)于調(diào)度器的要求是很不一樣的。在 CMP 結(jié)構(gòu)中調(diào)度機(jī)制的重點(diǎn)在于更好 地滿足多處理機(jī)并行性上,核心思想是通過(guò)降低 CPU 間調(diào)度競(jìng)爭(zhēng)和選擇下一個(gè)運(yùn)行進(jìn)程的 開(kāi)銷, 以及提高系統(tǒng)整體負(fù)載平衡的能力, 從而大幅度提高多處理機(jī)系統(tǒng)的執(zhí)行效率。 其特 性如下:1. 調(diào)度算法在傳統(tǒng)單 CPU 結(jié)構(gòu)的調(diào)度系統(tǒng)中,所有就緒進(jìn)程(狀態(tài)為 TASK_RUNNING )被組織到同 一個(gè)雙向鏈表之中, 稱為全局任務(wù)隊(duì)列, 調(diào)度過(guò)程中將遍歷此鏈表中的所有進(jìn)程, 調(diào)用計(jì)算 每一個(gè)進(jìn)程的權(quán)值,從中選擇權(quán)值最大的進(jìn)程投入運(yùn)行。由于調(diào)度器要遍歷所有就緒進(jìn)程, 因此選擇下一個(gè)運(yùn)行進(jìn)程的時(shí)
11、間復(fù)雜度是O (n)(n 為就緒進(jìn)程的個(gè)數(shù) )。同時(shí), 因?yàn)榫途w隊(duì)列是全局性的,對(duì)單 CPU 系統(tǒng)來(lái)講只可能有一個(gè) CPU 訪問(wèn)這個(gè)隊(duì)列,而在多處理器結(jié)構(gòu)中, 必須通過(guò)一個(gè)全局的自旋鎖保證同一時(shí)刻只有一個(gè) CPU 進(jìn)行訪問(wèn),這樣導(dǎo)致系統(tǒng)中其他 CPU 的等待。如果就緒進(jìn)程個(gè)數(shù)比較多,那么就緒隊(duì)列就會(huì)成為一個(gè)明顯的瓶頸。在支持 CMP 的操作系統(tǒng)中,每個(gè) CPU 維護(hù)一個(gè)自己的就緒進(jìn)程隊(duì)列,稱為局部任務(wù)隊(duì)列, 這樣大大降低了 CPU 間的競(jìng)爭(zhēng)。就緒進(jìn)程按時(shí)間片是否用完分為 active 和 expired 兩大類, active 類包括那些時(shí)間片沒(méi)用完、 當(dāng)前可被調(diào)度的就緒進(jìn)程, expired
12、 類包括那些時(shí)間片已用 完的就緒進(jìn)程。 同時(shí),每類中的進(jìn)程按照其優(yōu)先級(jí)的不同處于不同的優(yōu)先級(jí)鏈表中。調(diào)度時(shí), active 隊(duì)列中非空的最高優(yōu)先級(jí)鏈表的第一項(xiàng)被作為候選進(jìn)程,使得選擇下一個(gè)運(yùn) 行進(jìn)程的操作可以在固定時(shí)間內(nèi)完成。 同時(shí)內(nèi)核建立了一個(gè)位映射數(shù)組來(lái)對(duì)應(yīng)每一個(gè)優(yōu)先級(jí) 鏈表,使用標(biāo)志位的方式極大降低尋找非空的鏈表所需要的時(shí)間。 當(dāng)一個(gè)進(jìn)程耗盡其時(shí)間片 后,內(nèi)核重新計(jì)算它的優(yōu)先級(jí),并把它放置在 expired 隊(duì)列的相應(yīng)優(yōu)先級(jí)鏈表中。進(jìn)程優(yōu)先 級(jí)的計(jì)算過(guò)程還可以分散到進(jìn)程的執(zhí)行過(guò)程中進(jìn)行。 這種將集中計(jì)算過(guò)程分散的做法, 保證 了調(diào)度器運(yùn)行的時(shí)間上限, 降低了不必要的開(kāi)銷; 同時(shí)在內(nèi)存中保
13、留更加豐富的信息的做法 也加速了候選進(jìn)程的定位過(guò)程。 當(dāng) active 隊(duì)列中沒(méi)有可調(diào)度進(jìn)程時(shí),內(nèi)核簡(jiǎn)單地對(duì)調(diào) active 和 expired 隊(duì)列,將原來(lái)的 expired 隊(duì)列作為新的 active 隊(duì)列后即可進(jìn)行新一輪調(diào)度。此調(diào)度算法選擇下一個(gè)運(yùn)行進(jìn)程的時(shí)間復(fù)雜度是 O(1) ,與就緒進(jìn)程的個(gè)數(shù)無(wú)關(guān),調(diào)度效率 大大提高。2. 系統(tǒng)負(fù)載平衡支持 CMP 操作系統(tǒng)內(nèi)核的調(diào)度系統(tǒng)需要很好地解決進(jìn)程與 CPU 之間的 “親和 ”問(wèn)題。如果不 考慮親和,一個(gè)進(jìn)程可能在 CPU 之間比較頻繁地遷移,交互式進(jìn)程(或高優(yōu)先級(jí)的進(jìn)程) 可能還會(huì)在 CPU 之間不斷 “跳躍 ”,這樣,每一次遷移之后,都可
14、能造成頻繁的內(nèi)存訪問(wèn), 導(dǎo)致整體性能下降。支持 CMP 操作系統(tǒng)內(nèi)核的調(diào)度系統(tǒng)盡量使得每個(gè)進(jìn)程一直在固定的 CPU 上執(zhí)行,這樣可 以提高 Cache 的命中率;但是如果某個(gè) CPU 的就緒隊(duì)列過(guò)長(zhǎng),不斷的進(jìn)程切換反而造成 Cache命中率的下降,而且還造成其他CPU不能充分發(fā)揮效能。無(wú)論當(dāng)前CPU是繁忙或空閑,時(shí)鐘中斷每隔一段時(shí)間都會(huì)啟動(dòng)一次以平衡負(fù)載。當(dāng)然,一旦當(dāng)前CPU 發(fā)現(xiàn)自己的就緒隊(duì)列為空時(shí),也會(huì)主動(dòng)進(jìn)行負(fù)載平衡。為了進(jìn)行 有效的負(fù)載平衡,操作 系統(tǒng)內(nèi)核根據(jù)系統(tǒng)結(jié)構(gòu) 的特點(diǎn),引入調(diào)度域 (struct sched_domain)的概念將全體CPU 一層一層地劃分成不同的區(qū)域,每個(gè)調(diào)度
15、域中的 CPU分成 若干個(gè) CPU 組, 且滿足任一 CPU 惟一存在于一個(gè)組 中。每個(gè) CPU 屬于一個(gè)基本的調(diào)度域(該域至少包括本 CPU),但是CPU同時(shí)還屬于一個(gè)或多個(gè)更大的調(diào)度域。CPU的多個(gè)調(diào)度域通過(guò)構(gòu)成一個(gè)單向鏈表, 且必須滿足: 1.父調(diào)度域是子調(diào)度域的超集; 2.每個(gè) CPU 的最 高層調(diào)度域必須包括系統(tǒng)中的全部處理器。例如在一個(gè)支持超線程的CMP 系統(tǒng)中,每個(gè)邏輯CPU的基本調(diào)度域包含所在傳統(tǒng)物理CPU上的全部的邏輯 CPU,基本域的每個(gè) CPU分組包含一個(gè)邏輯 CPU ;基本調(diào)度域的父調(diào)度域是這個(gè)系統(tǒng)的最高層調(diào)度域,它包含系統(tǒng)中 所有的邏輯CPU,該域的每個(gè) CPU分組包
16、含一個(gè)物理 CPU上的全部邏輯 CPU。對(duì)于 CMP 系統(tǒng),每個(gè)芯片上的多個(gè)核天然地構(gòu)成一層調(diào)度域。一個(gè)單芯片CMP 系統(tǒng)和一個(gè)普通 SMP 系統(tǒng)的基本調(diào)度域的差別僅在于 CMP 基本調(diào)度域的 CPU 組包含的對(duì)象是一個(gè)“CPU核”,而SMP基本調(diào)度域的 CPU組包含的是一個(gè)傳統(tǒng)的物理CPU。對(duì)于像支持超線程和多核 SMP 這樣復(fù)雜的 CMP 系統(tǒng),必須 增加一個(gè)基于芯片層面的新調(diào)度域。進(jìn)行負(fù)載平衡時(shí),從當(dāng)前 CPU 的基本調(diào)度域出發(fā),遍歷所有的調(diào)度域。如果某個(gè)域有一段 時(shí)間沒(méi)有進(jìn)行過(guò)負(fù)載平衡,先尋找域中負(fù)載最大的 CPU 組( CPU 組的 負(fù)載等于組中所有 CPU的負(fù)載之和),然后尋找組中
17、最繁忙的CPU (該CPU的負(fù)載超過(guò)本 CPU至少25%),更新雙方的負(fù)載記錄, 確定需要遷移的進(jìn)程數(shù) 為源 CPU 負(fù)載與本 CPU 負(fù)載之差的一半 (經(jīng) 過(guò)更新后的值) ,然后按照從 expired 隊(duì)列到 active 隊(duì)列、 從低優(yōu)先級(jí)進(jìn)程到高優(yōu)先級(jí)進(jìn)程 的順序進(jìn)行遷移,但實(shí)際上真正執(zhí)行遷移的進(jìn)程往往少于計(jì)劃遷移的數(shù)目。中斷處理傳統(tǒng)的單處理器通常都采用一個(gè)外部中斷控制器來(lái)解決外部設(shè)備到CPU 的通信,對(duì)于多處理器系統(tǒng),處理器之間也需要通過(guò)中斷方式進(jìn)行通信,對(duì)于CMP 而言,多個(gè)處理器之間的中斷控制器 (本地中斷控制器, 簡(jiǎn)稱本地控制器) 也需要和處理器一起封裝到芯片內(nèi)部。此 外,還需要
18、一個(gè)全局的中斷控制器 (簡(jiǎn)稱全局控制器) 負(fù)責(zé)各個(gè)處理器內(nèi)核之間的中斷分配, 也要設(shè)計(jì)在芯片內(nèi)部。1.中斷分配全局中斷控制器擔(dān)負(fù)著把來(lái)自外部設(shè)備的中斷請(qǐng)求提交和分配給片內(nèi)各CPU 的任務(wù)。對(duì)于每一個(gè)中斷向量, 可以采用靜態(tài)或動(dòng)態(tài)兩種不同模式之一。 如果某個(gè)中斷向量是靜態(tài)分配的, 則控制器把這種中斷請(qǐng)求提交給預(yù)設(shè)的一個(gè)或多個(gè)CPU ;動(dòng)態(tài)模式則可以發(fā)送給所有 CPU,或者隨機(jī)地發(fā)送給某個(gè)處理器。本地控制器處理本處理器內(nèi)部產(chǎn)生的中斷請(qǐng)求、 來(lái)自外部中斷控制器的中斷請(qǐng)求以及其他處 理器發(fā)送過(guò)來(lái)的中斷請(qǐng)求。2.處理器間中斷在 CMP 系統(tǒng)中,芯片內(nèi)部一個(gè)處理器常常要有目標(biāo)地向系統(tǒng)中的其他處理器發(fā)出中斷
19、請(qǐng)求, 這種中斷被稱為處理器間中斷 (IPI, Inter Processor Interrupt) 。 IPI 至少應(yīng)該包含以下兩種:重新調(diào)度”中斷。當(dāng)前CPU可以發(fā)送該中斷來(lái)指示目標(biāo) CPU可能需要一次進(jìn)程調(diào)度,至于 目標(biāo) CPU 在處理完該中斷以后是否進(jìn)行進(jìn)程調(diào)度,那得要看事先或者在處理中斷的過(guò)程中 是否把當(dāng)前進(jìn)程設(shè)置為需要調(diào)度。“請(qǐng)求執(zhí)行 ”中斷。這個(gè)中斷被用來(lái)請(qǐng)求目標(biāo) CPU 執(zhí)行一個(gè)指定的函數(shù)。之所以要通過(guò) IPI 請(qǐng)其他 CPU 執(zhí)行,是因?yàn)槟硞€(gè)函數(shù)必須由目標(biāo) CPU 才能完成,而不能由別的 CPU 代替。 比如某個(gè)處理器改變了內(nèi)存中某個(gè)頁(yè)面映射目錄或頁(yè)面映射表的內(nèi)容,從而可能引
20、起其他處理器的 TLB 與其不一致時(shí), 就向系統(tǒng)中正在使 用這個(gè)映射表的處理器發(fā)送這個(gè)中斷, 請(qǐng)它 們自己執(zhí)行代碼,廢棄各自 TLB 的內(nèi)容。3. 時(shí)鐘中斷在所有中斷請(qǐng)求中, 時(shí)鐘中斷扮演著特殊的重要角色, 每一個(gè)處理器都有自身的時(shí)鐘發(fā)生器。 在系統(tǒng)初始化階段, 系統(tǒng)先設(shè)置一個(gè)外部時(shí)鐘中斷源供所有 CPU 共 享, 并且以此基準(zhǔn)測(cè)算 各個(gè) CPU 的運(yùn)算速度,并校準(zhǔn)自身的時(shí)鐘中斷發(fā)生間隔。由于各處理器設(shè)計(jì)完全一致,所 有 CPU 都有基本相同的時(shí)鐘脈沖周期,為了不讓所有處理器都在同一時(shí)刻發(fā)生時(shí)鐘中斷, 操作系統(tǒng)應(yīng)該使各個(gè) CPU 的時(shí)鐘中斷在相位上相互錯(cuò)開(kāi),把這些中斷均勻地分布在時(shí)鐘中 斷的周
21、期中。同步與互斥技術(shù)在多任務(wù)系統(tǒng)中, 不同的任務(wù)可能需要同時(shí)訪問(wèn)某些共享變量和共享資源,形成了競(jìng)爭(zhēng)的關(guān)系。這就需要系統(tǒng)提供同步與互斥機(jī)制,使得這些共享變量和共享資源同一時(shí)刻只能被一個(gè)任務(wù)以獨(dú)占的方式訪問(wèn)。 傳統(tǒng)單處理器系統(tǒng)中在宏觀上是并行, 微觀上, 由于只有一個(gè)處 理器,同一時(shí)刻只能執(zhí)行一個(gè)任務(wù),同步和互斥的問(wèn)題相對(duì)比較容易解決,而 CMP 的操作系統(tǒng)在運(yùn)行時(shí), 同一時(shí)刻有可能有多個(gè)任務(wù)執(zhí)行, 傳統(tǒng)的方法有時(shí)不能滿足這種特定的情 況,需要引入新的機(jī)制。同步和互斥機(jī)制需要底層硬件提供“讀-修改 -寫(xiě)”類型的訪存原子操作。這樣的操作能夠讓CPU 從主存儲(chǔ)器中讀取一個(gè)值,修改之,再將修改過(guò)的值保存到存儲(chǔ)器的相同位置中。整個(gè)過(guò)程是一次完整的總線交易, 不能被其他 CPU 內(nèi)核的訪存操作所打斷。 “讀-修改 -寫(xiě)”類型 的原子操作有多種實(shí)現(xiàn)方式, 最常見(jiàn)的包括 test_and_set, swap, load-linked/store-conditional 等方式。Test_and_set 指令從主存儲(chǔ)器中讀取一個(gè)值 (通常是一個(gè)字節(jié)或一個(gè)字) ,將它和 0 比較并根 據(jù)比較的結(jié)果設(shè)置條件碼,最后將 1 無(wú)條件地存放到存儲(chǔ)器的相應(yīng)單元。一旦一條test_and_set指令開(kāi)始了它的總線周期,那么任何其
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新型食用菌保健品區(qū)域總代銷售與售后服務(wù)合同3篇
- 二零二五年度環(huán)保節(jié)能產(chǎn)品推廣合同4篇
- 2025年陶瓷原料質(zhì)量檢測(cè)與認(rèn)證合同2篇
- 2025年度門禁系統(tǒng)設(shè)備租賃與運(yùn)營(yíng)維護(hù)協(xié)議4篇
- 二手車交易市場(chǎng)租賃合同范本2024年適用
- 二零二五年度辦公樓窗簾節(jié)能改造承包合同4篇
- 2025年度智慧停車場(chǎng)設(shè)計(jì)與運(yùn)營(yíng)服務(wù)合同4篇
- 2025年文化中心場(chǎng)地租賃合同終止及合作開(kāi)發(fā)意向書(shū)3篇
- 天津市應(yīng)急保障2025年度專用車輛租賃合同2篇
- 二零二五年度土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同流轉(zhuǎn)規(guī)范版
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛(ài)指南
- 腰椎間盤(pán)的診斷證明書(shū)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論