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

正文內容

[工學]操作系統(tǒng)復習-展示頁

2025-01-23 15:01本頁面
  

【正文】 種,為了區(qū)別阻塞等待進程和不同的阻塞隊列,管程中設置了不同的條件變量,將因為不同事件阻塞的進程組織在不同的隊列中,如下圖。信號量具有累加功能,當信號量為負數(shù)時,其絕對值表示等待在該信號量上的阻塞進程數(shù)。 用管程實現(xiàn)同步 ? 用管程實現(xiàn)進程同步,是指在管程中要設置一對同步操作原語,例如 , wait(或 block) 和 signal(或 wakeup)。 ? 典型地,當一個進程調用管程中的過程時,首先檢查管程中是否有其他的活躍進程,如果有,則阻塞調用進程,直到管程內的進程離開管程。 用管程實現(xiàn)互斥 ? 當幾個進程調用某個管程時,僅允許一個進程進入管程,其他進程必須等待。 begin … end。 begin … /* 一組過程定義 */ end。 begin … end。 /* 變量說明 */ c :condition。 ? 進程可在任何需要的地方調用管程中的過程,但不能在管程外直接訪問管程內的數(shù)據結構。 ? 管程有自己的名字,管程中的各個過程可以帶有自己的形式參數(shù),與過程調用一樣進行參數(shù)替換執(zhí)行。 管程的結構 ? 管程是由過程、變量及數(shù)據結構等組成的集合。 ? 目前已有很多程序設計語言支持管程機制,如并發(fā) Pascal、 Pascal_Plus、 Modula Modula Java等,并且還作為程序庫提供服務。應用程序可以利用線程庫來設計多線程程序,該線程庫包含各種用于管理用戶級線程的例程,如用于創(chuàng)建和撤消線程的例程、用于線程間傳遞消息和數(shù)據的例程、線程調度例程,以及保護和恢復線程上下文的例程等,如圖 (a)所示。 線程的類型 ? 用戶級線程和內核級線程 ? 用戶級線程的創(chuàng)建、撤消及切換等操作全部由支持線程的應用程序完成,內核并不知道線程的存在。 ? 由于同一進程中的多個線程具有相同的地址空間 ,使它們之間的同步和通信也比較容易 。 進程與線程 系統(tǒng)開銷 ? 操作系統(tǒng)管理進程的開銷顯著地大于管理線程所需的開銷 。 ? 線程除了擁有很少的私有資源以外 , 不能申請系統(tǒng)資源 , 可以共享其所屬進程的資源 。 ? 引入線程以后,可以在一個文件服務進程中設置多個服務線程,當?shù)谝粋€線程阻塞時,文件服務進程中的第二個線程可以繼續(xù)運行;當?shù)诙€線程阻塞時,第三個線程可以繼續(xù)執(zhí)行,從而顯著地提高了文件服務的質量和系統(tǒng)吞吐量。 進程與線程 并發(fā) ? 進程之間可以并發(fā)執(zhí)行 ? 同屬于一個進程的多個線程之間,亦可并發(fā)執(zhí)行 ? 因而使操作系統(tǒng)具有更好的并發(fā)性,從而能更有效地使用系統(tǒng)資源和提高系統(tǒng)吞吐量。 ? 引入線程的操作系統(tǒng)中 , 線程是獨立調度的基本單位 , 進程是資源擁有的基本單位 , 從而可以顯著地提高系統(tǒng)的并發(fā)程度 。例如 , Java虛擬機是一個單進程 、 多線程的運行環(huán)境 , Windows系列操作系統(tǒng)和 Linux操作系統(tǒng)都采用了多進程 、 多線程技術 。 進程與線程 ? 傳統(tǒng)操作系統(tǒng)中 , 一個進程可以創(chuàng)建一個線程 , 如 MS DOS就是一個單用戶 、 單進程 、 單線程的操作系統(tǒng) , UNIX是一個多用戶 、 多進程 、 單線程的操作系統(tǒng) 。 (Finish), 當線程執(zhí)行完畢 , 釋放其私有資源 。 2. 阻塞 (Block), 當線程需要等待某事件時 , 它將被阻塞 , 釋放處理機執(zhí)行其它線程 。 對線程的操作 ? 一個進程可以創(chuàng)建和撤消一個或多個線程 , 同一進程中的多個線程可以并發(fā)執(zhí)行 。 ? 一般不具有掛起狀態(tài),因為線程共享進程的資源,包括存儲空間,如果掛起一個進程,其所屬的全部進程必將被掛起。 線程的狀態(tài) ? 進程中的所有線程共享該進程的狀態(tài)。 ? 線程自身基本上不擁有系統(tǒng)資源 , 只擁有少許運行中必不可少的私有資源 。 這樣 , 就產生了線程的概念 。 ? 實現(xiàn):將進程的資源申請和調度屬性分開 。故,系統(tǒng)中同時存在的進程數(shù)目不宜過多,進程切換的頻率也不宜過高,而這也就限制了并發(fā)度的進一步提高。 ? 進程的兩個基本屬性: ( 1) 進程是一個擁有資源的獨立單位; ( 2) 進程同時又是一個可以獨立調度的基本單位 。 線程 多線程 ? 操作系統(tǒng)中引入進程的目的是 , 為了描述和實現(xiàn)多個程序的并發(fā)執(zhí)行 , 以改善資源利用率及提高系統(tǒng)的吞吐量 。 ? 為什么還需要引入線程呢 ? 這是為了減少程序并發(fā)執(zhí)行時系統(tǒng)所付出的額外開銷 , 使操作系統(tǒng)具有更好的并發(fā)性 。 系統(tǒng)為進程進行的操作 ? 創(chuàng)建進程 、撤消進程 、進程切換 ? 進程作為資源的擁有者和系統(tǒng)的調度對象,需要花費系統(tǒng)較大的額外開銷。 由進程到線程 ? 目標:既能提高進程并發(fā)度 , 又能降低系統(tǒng)的額外開銷 。 即進程作為資源的申請和擁有者 , 但不作為調度的基本單位 。 ? 線程是進程中的一個實體 , 是獨立調度和分派的基本單位 。 線程可與同屬一個進程的其它線程共享進程的全部資源 。 ? 線程具有三種基本狀態(tài):就緒、執(zhí)行和阻塞。而單獨掛起某進程中的一個線程,必然會影響同一進程中的其它線程的執(zhí)行,這是沒有任何意義的。 ? 對線程的操作包括: 1. 派生 (Spawn), 當系統(tǒng)創(chuàng)建一個進程時 , 同時也為該進程派生一個線程 , 同一進程中的線程可以再派生其它線程 。 對線程的操作 (Unblock), 當線程的阻塞事件發(fā)生 , 其狀態(tài)轉換為就緒 , 并插入到就緒隊列 , 等待調度執(zhí)行 。 ? 注意 , 線程阻塞不一定會引起整個進程的阻塞 , 否則 , 引入線程帶來的并發(fā)性就不會提高 。 ? 現(xiàn)代操作系統(tǒng)和軟件設計大多支持多線程運行 。 進程與線程 調度 ? 傳統(tǒng)操作系統(tǒng)中 , 進程既是擁有資源的基本單位 ,又是獨立調度的基本單位 。 ? 同一進程中的線程間切換不會引起進程切換 , 但當一個進程中的線程切換到另一進程中的線程時 ,將會引起進程切換 。 進程與線程 并發(fā) 例如 ? 在一個未引入線程的單處理機操作系統(tǒng)中,若僅設置一個文件服務進程,當它由于某種原因而被阻塞時,便沒有其它的文件服務進程來提供服務。 進程與線程 擁有資源 ? 進程是擁有資源的獨立單位 , 它有權申請系統(tǒng)的各類資源 。 即 , 進程的代碼段 、 數(shù)據段以及系統(tǒng)資源 , 如已打開的文件 、 I/ O設備等 , 都可被其內的所有線程共享 。 ? 進程切換的開銷也遠大于線程切換的開銷 。 ? 有些類型的線程切換 、 同步和通信都無需操作系統(tǒng)內核的干預 。 ? 一些數(shù)據庫管理系統(tǒng),如 Informix即支持用戶級線程。 互斥與同步解決方法之四:管程 ? 管程是一種在程序設計級控制進程互斥與同步的機制,具有信號量的功能,且更容易使用和控制。 ? 利用管程可以鎖定任何對象,尤其是鏈表型數(shù)據結構,可以鎖定整個鏈表,或鏈表中的某個元素。典型的管程包括三個部分 : ① 對局部于管程的共享數(shù)據結構的說明; ②對該數(shù)據結構進行操作的一組過程; ③對該數(shù)據結構初始化的語句。 管程的使用 ? 管程本身被作為一種臨界區(qū),因此,實現(xiàn)管程時,需要考慮互斥、同步和控制變量等問題。 type name = monitor /* 管程命名 */ var i : integer。 procedure P1(x)。 procedure P2(x)。 procedure Pn(x)。 begin /* 初始化語句 */ end。即任何時刻,管程中只能有一個活躍進程。 ? 管程的互斥操作通常由編譯程序支持,編譯時自動為每個管程建立一個初值為 1 的互斥信號量。 ? 注意,這里的 wait和 signal與作用于信號量的wait和 signal不同,后者作用于信號量。這里的 wait和 signal作用于條件變量,條件變量不具有累加功能,如果管程中的進程發(fā)出了一個信號量,卻沒有在對應的條件變量上阻塞等待,則該信號量沒有作用,會被丟失。 ? 當一個進程利用管程申請資源而未能滿足時,將調用 wait 原語阻塞自己,并進入相應阻塞隊列。 互斥與同步解決方法之五:消息傳遞 進程通信的方式 ? 進程之間的通信內容包含兩種類型:控制信息與大批量數(shù)據。 發(fā)送進程 接收進程 郵件服務器 接收進程 發(fā)送進程 終端用戶 郵件 郵件 發(fā)送進程 接收進程 郵件服務器 接收進程 發(fā)送進程 終端用戶 郵件 圖 電子郵件的發(fā)送與接收過程 常用的進程通信機制 ? 基于共享存儲區(qū)方式 ? 消息傳遞方式 ? 郵箱機制 基于共享存儲區(qū)方式 ? 生產者 /消費者問題:生產者與消費者通過共享緩沖區(qū),實現(xiàn)數(shù)據傳遞。 ? 這里的共享數(shù)據區(qū)屬于每個互相通信進程的組成部份。 ? 對于遠程通信來說,每臺計算機擁有各自的私有內存區(qū),不易實現(xiàn)共享存儲區(qū)的訪問。 程序員設計程序時 , 利用程序指令設置共享存儲區(qū) , 并處理通信進程之間的同步等問題 , 操作系統(tǒng)只需提供共享存儲區(qū) 。 進程在通信前向系統(tǒng)申請共享存儲區(qū)中的一個分區(qū) 。 該方式下 , 通信進程之間的同步與互斥訪問共享存儲區(qū)可以由操作系統(tǒng)實現(xiàn) 。 ? 即,當發(fā)送進程調用 Send
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1