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

正文內(nèi)容

[工學(xué)]操作系統(tǒng)復(fù)習(xí)-展示頁

2025-01-23 15:01本頁面
  

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