1. 程序和執行緒
程序的概念包含兩個特點:
分派的單元通常被稱作執行緒或輕量級程序,而擁有資料所有權的單位通常仍稱作程序或任務。
多執行緒在多執行緒環境中,程序被定義成資源分派的單位和乙個被保護的單位,與程序相關聯的有:
在乙個程序中,可能有乙個或多個執行緒,每個執行緒有:
使用者級和核心級執行緒
2.對稱多處理
關鍵的設計問題:
3. 微核心
微核心的基本原理是,只有最基本的作業系統功能才能放在核心中。
外部子系統包括裝置驅動程式、檔案系統、虛存管理程式、視窗系統和安全服務。
微核心組織結構的優點:一致介面,可擴充套件性、靈活性、可移植性、可靠性、分布式系統支援、對物件導向作業系統的支援
微核心的乙個潛在缺點是效能問題。
微核心設計
微核心必須包括直接依賴於硬體的功能,以及那些支援服務程式和應用程式在使用者態下執行的功能,這些功能通常可分為以下幾類:
低階儲存管理、程序間通訊(ipc)以及i/o和中斷管理。
用於支援核心外部的頁面排程和虛存管理的三個微核心操作:
重新整理:程序可以**授權給別的程序或對映到靈位的程序的任何頁
微核心作業系統中程序之間或執行緒之間進行通訊的基本形式是訊息。
微核心可以識別中斷但不處理中斷,它產生一條訊息給與該中斷相關聯的使用者級程序。
把中斷轉成訊息的工作必須由微核心完成。
作業系統導論第10章 多處理器排程(高階)
前置知識 併發 考慮到快取完成了所有工作以提供一致性,程式 或os本身 在訪問共享資料時是否需要擔心一些事情?不幸的是,答案是肯定的。當跨cpu訪問 特別是更新 共享資料項或結構時,應該使用互斥原語 例如鎖 來保證正確性 其他方法 例如構建無鎖資料結構 很複雜,只能偶爾使用 例如,假設有乙個共享佇列...
作業系統(3) 多處理器程式設計 從入門到放棄
入門 理解多執行緒 三個放棄 原子性 有序性 可見性 程序與執行緒的區別 執行緒的建立 include include include void mythread void arg intmain int argc,char ar 執行結果 可以看到,執行緒建立後,可能立即執行,也可能處於就緒狀態,...
GPU程式設計和流式多處理器(七)
將第二個運算 加,最小或最大值 應用於中間結果和第三個運算數。通過引用內建變數threadidx,blockidx,blockdim和griddim,訪問許多特殊暫存器。這些偽變數將在3節中詳細介紹,它們是3維結構,分別指定執行緒id,塊id,執行緒數和塊數。除此之外,另乙個特殊暫存器,sm的時鐘暫...