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

正文內(nèi)容

[管理學(xué)]第二章處理機(jī)管理-資料下載頁

2025-01-14 22:13本頁面
  

【正文】 自主行為,是一個同步事件 。 (1)進(jìn)程阻塞的步驟 ? 停止進(jìn)程執(zhí)行 , 保存現(xiàn)場信息到 PCB 。 ? 修改 PCB的有關(guān)內(nèi)容 , 如進(jìn)程狀態(tài)由運(yùn)行改為阻塞等 。 ? 把修改狀態(tài)后的 PCB加入相應(yīng)阻塞進(jìn)程隊(duì)列 。 ? 轉(zhuǎn)入進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程運(yùn)行 。 五、進(jìn)程的控制 (7) (2)進(jìn)程喚醒的步驟 ? 從相應(yīng)阻塞進(jìn)程隊(duì)列中取出 PCB。 ? 修改 PCB有關(guān)信息 , 如進(jìn)程狀態(tài)改為就緒等 。 ? 把修改后 PCB加入有關(guān)就緒進(jìn)程隊(duì)列 。 在 UNIX/Linux中 , 與進(jìn)程的阻塞與喚醒相關(guān)的原語主要有:sleep( ) 、 pause( 暫停并等信號 ) 、 wait( 等待子進(jìn)程暫?;蚪K止 ) 和 kill( 發(fā)信號 ) 。 在 Windows2021/XP中 , 處理器調(diào)度對象為線程 , 系統(tǒng)調(diào)用 SuspendThread用來 掛起 線程 ,ResumeThread用來 激活 線程 。 五、進(jìn)程的控制 (8) (1)進(jìn)程撤銷的主要原因 ? 進(jìn)程正常運(yùn)行結(jié)束 。 ? 進(jìn)程在用戶態(tài)下執(zhí)行了特權(quán)指令 。 ? 進(jìn)程執(zhí)行了非法指令 。 ? 進(jìn)程運(yùn)行時(shí)間超越了分給的最大時(shí)間段 。 ? 進(jìn)程等待時(shí)間超越了設(shè)定的最大等待時(shí)間 。 ? 進(jìn)程申請的內(nèi)存超過了系統(tǒng)能提供最大量 。 ? 越界錯誤 。 ? 對共享內(nèi)存區(qū)的非法使用 。 ? 算術(shù)錯誤 , 如除零和操作數(shù)溢出 。 正常 異常 終止 五、進(jìn)程的控制 (9) ? 嚴(yán)重的輸入輸出錯誤 。 ? 操作員或操作系統(tǒng)干預(yù) 。 ? 父進(jìn)程撤銷其子進(jìn)程 。 ? 父進(jìn)程撤銷 。 ? 操作系統(tǒng)終止 。 (2)撤銷原語終止進(jìn)程具體步驟 ? 根據(jù)撤銷進(jìn)程標(biāo)識號 , 從相應(yīng)隊(duì)列中找到它的 PCB; ? 將該進(jìn)程擁有的資源歸還給父進(jìn)程或操作系統(tǒng); ? 若該進(jìn)程擁有子進(jìn)程 , 應(yīng)先撤銷它的所有子孫進(jìn)程; ? 將撤銷進(jìn)程的 PCB歸還到 PCB池 。 五、進(jìn)程的控制 (10) (1)掛起原語執(zhí)行過程 如下:檢查要被掛起進(jìn)程的狀態(tài),若處于活動就緒態(tài)就修改為掛起就緒,若處于阻塞態(tài),則修改為掛起阻塞。 被掛起進(jìn)程 PCB的非常駐部分要交換到磁盤對換區(qū) 。 (2)激活原語主要工作 :把進(jìn)程 PCB非常駐部分調(diào)進(jìn)內(nèi)存,修改它的狀態(tài),掛起等待態(tài)改為等待態(tài),掛起就緒態(tài)改為就緒態(tài),排入相應(yīng)隊(duì)列中。掛起原語既可由進(jìn)程自己也可由其他進(jìn)程調(diào)用,但激活原語卻只能由其他進(jìn)程調(diào)用。 主要內(nèi)容: ? 引入多線程技術(shù)的動機(jī) ? 多線程環(huán)境中的進(jìn)程和線程 ? 線程的實(shí)現(xiàn) 一、引入多線程技術(shù)的動機(jī) (1) 在傳統(tǒng)的操作系統(tǒng)中, 進(jìn)程 是系統(tǒng)進(jìn)行 資源分配 的基本單位,同時(shí),進(jìn)程也是 處理器調(diào)度 的基本單位,進(jìn)程在任一時(shí)刻只有 一個執(zhí)行控制流 ,通常將這種結(jié)構(gòu)的進(jìn)程稱 單線程(結(jié)構(gòu))進(jìn)程( Single Threaded Process) 。 考察一個 文件服務(wù)器 的例子。在單線程(結(jié)構(gòu))進(jìn)程運(yùn)行模式下,當(dāng)它接受一個文件服務(wù)請求后,由于等待磁盤傳輸而經(jīng)常被阻塞。假如改變單線程(結(jié)構(gòu))進(jìn)程運(yùn)行模式,磁盤傳輸時(shí)不阻塞,利用磁盤傳輸?shù)臅r(shí)間可繼續(xù)接受新的文件服務(wù)請求并進(jìn)行處理,再加上處理不同的請求時(shí)要訪問同一個共享磁盤緩沖區(qū),緩沖區(qū)中的程序和數(shù)據(jù)可能同時(shí)滿足不同的請求,因而文件服務(wù)器的效率和性能可以提高。 一、引入多線程技術(shù)的動機(jī) (2) 1.(單線程)進(jìn)程給并發(fā)程序設(shè)計(jì)效率帶來新問題 ? 進(jìn)程 切換開銷 大 ? 進(jìn)程 通信代價(jià) 大 , 每次通信均要涉及通信進(jìn)程之間或通信進(jìn)程與操作系統(tǒng)之間的信息傳遞 。 ? 進(jìn)程之間的 并發(fā)性粒度 較粗 , 并發(fā)度不高 , 過多的進(jìn)程切換和通信延遲使得細(xì)粒度的并發(fā)得不償失 。 ? 不適合 并行計(jì)算和分布并行計(jì)算 的要求 ? 不適合 客戶 /服務(wù)器 計(jì)算的要求 。 一、引入多線程技術(shù)的動機(jī) (3) ( 結(jié)構(gòu) ) 進(jìn)程 ( Multiple Threaded Process) 多線程 ( 結(jié)構(gòu) ) 進(jìn)程 是在同一進(jìn)程中設(shè)計(jì)出 多條控制流( 每一個 控制流 稱為一個 線程 ) , 多條控制流之間可以并行執(zhí)行;多控制流切換不需要通過進(jìn)程調(diào)度;多控制流之間還可以通過內(nèi)存區(qū)直接通信 , 降低通信開銷 。 這就是并發(fā)多線程程序設(shè)計(jì) 。 操作系統(tǒng)中 引入進(jìn)程的目的 是為了使多個程序并發(fā)執(zhí)行 ,以改善 資源使用率 和提高 系統(tǒng)效率 , 操作系統(tǒng)中再 引入線程 ,則是為了減少程序并發(fā)執(zhí)行時(shí)所付出的 時(shí)空開銷 , 使得并發(fā)粒度更細(xì) 、 并發(fā)性 更好 。 一、引入多線程技術(shù)的動機(jī) (4) 把進(jìn)程的兩項(xiàng)功能 “ 獨(dú)立分配資源 ” 與 “ 被 調(diào)度分派執(zhí)行 ” 分離開來: 進(jìn)程 作為系統(tǒng)資源分配和保護(hù)的獨(dú)立單位; 線程 作為系統(tǒng)調(diào)度和分派的基本單位 , 會被頻繁地調(diào)度和切換 , 在這種指導(dǎo)思想下 , 產(chǎn)生了線程的概念 。 實(shí)例 傳統(tǒng)的操作系統(tǒng)一般只支持單線程 ( 結(jié)構(gòu) ) 進(jìn)程 , 如傳統(tǒng)的 UNIX支持多用戶進(jìn)程 , 每個進(jìn)程也是單線程的 。 目前很多操作系統(tǒng)都支持多線程 ( 結(jié)構(gòu) ) 進(jìn)程 , 如 Solaris、 Mach、SVR OS/390、 OS/ WindowsNT、 Chorus等 。 在程序設(shè)計(jì)語言及應(yīng)用系統(tǒng)中也引入了線程技術(shù) 二、多線程環(huán)境中的進(jìn)程與線程 (1) 一個進(jìn)程的結(jié)構(gòu)可以劃分成兩個部分:對資源的管理和實(shí)際的指令執(zhí)行序列 。 進(jìn)程控制塊 進(jìn) 程 用戶地址空間 用戶棧 核心棧 管理者 執(zhí)行序列 單線程進(jìn)程 (模型 ) 用戶 地址空間 進(jìn)程 控制塊 用戶棧 核心棧 單線程進(jìn)程的內(nèi)存布局和運(yùn)行 二、多線程環(huán)境中的進(jìn)程與線程 (2) 線程進(jìn)程模型 : 用戶堆棧 系統(tǒng)堆棧 執(zhí)行控制 進(jìn) 程 進(jìn)程控制塊 用戶地址空間 共 享 執(zhí)行序列 管理者 執(zhí)行序列 用戶堆棧 系統(tǒng)堆棧 執(zhí)行控制 管理和執(zhí)行相分離的進(jìn)程模型 二、多線程環(huán)境中的進(jìn)程與線程 (3) 多線程進(jìn)程模型 用戶 地址空間 進(jìn)程 控制塊 線程控制塊 系統(tǒng) 堆棧 用戶 堆棧 線程 1 線程控制塊 系統(tǒng) 堆棧 用戶 堆棧 線程 N 多線程進(jìn)程的內(nèi)存布局 二、多線程環(huán)境中的進(jìn)程與線程 (4) 在多線程進(jìn)程中,每個 線程 具有 獨(dú)立堆棧 、 現(xiàn)場信息 和其它 狀態(tài)信息 與 線程控制塊 TCB( Thread Control Block)。 一個進(jìn)程中的所有線程共享其所屬進(jìn)程擁有的資源,它們駐留在相同的地址空間,可以存取相同的數(shù)據(jù)。 多線程環(huán)境中的進(jìn)程: 進(jìn)程是操作系統(tǒng)中進(jìn)行保護(hù)和資源分配的基本單位。它具有: ? 虛擬地址空間 , 用來容納進(jìn)程的映像; ? 存取保護(hù)機(jī)制 , 對處理器 、 其他 (通信的 )進(jìn)程 、 文件和 I/O資源等的存取保護(hù) 。 傳統(tǒng)進(jìn)程原先所承擔(dān)的 控制流執(zhí)行任務(wù) 交給稱作 線程 的部分完成。 二、多線程環(huán)境中的進(jìn)程與線程 (5) (1)線程 是操作系統(tǒng) 進(jìn)程 中能夠 獨(dú)立執(zhí)行 的 實(shí)體(控制流) ,是處理器調(diào)度和分派的基本單位。線程是進(jìn)程的組成部分,每個進(jìn)程內(nèi)允許包含多個并發(fā)執(zhí)行的實(shí)體(控制流),這就是多線程。 同一進(jìn)程中的所有線程共享進(jìn)程獲得的主存空間和資源,但不擁有資源。 (2)線程主要組成 ? 線程的狀態(tài)(運(yùn)行、就緒、等待 … ); ? 線程上下文 ( 用于存儲現(xiàn)場信息 ) 。 ? 用戶和核心棧 ? 主存存儲區(qū) ( 存儲局部變量 ) TCB 用戶棧 核心棧 二、多線程環(huán)境中的進(jìn)程與線程 (6) (3)線程的主要 特性 ? 并行性 :同一進(jìn)程的多個線程可在一個 /多個處理器上并發(fā)或并行地執(zhí)行。 ? 共享性 :同一進(jìn)程中的所有線程共享進(jìn)程的資源 , 且駐留在進(jìn)程的同一個主存地址空間中 , 可以訪問相同的數(shù)據(jù) 。 ? 動態(tài)性 :線程由創(chuàng)建而產(chǎn)生 , 由撤消而消亡 , 有其生命周期 。 每個進(jìn)程被創(chuàng)建時(shí) , 至少同時(shí)為其創(chuàng)建一個線程 , 需要時(shí)線程可以再創(chuàng)建其它線程 。 ? 結(jié)構(gòu)性 :線程具有唯一的 標(biāo)識符和線程控制塊 , 其中包含調(diào)度所需的一切私有信息 。 二、多線程環(huán)境中的進(jìn)程與線程 (7) 進(jìn)程 可以劃分為兩個部分: 資源集合 和 線程集合 。進(jìn)程要支撐線程運(yùn)行,為線程提供地址空間和各種資源, 它封裝了管理信息 ,包括對指令代碼、全局?jǐn)?shù)據(jù)和 I/O狀態(tài)數(shù)據(jù)等共享部分的管理。線程封裝了執(zhí)行信息 ,包括對 CPU寄存器、執(zhí)行棧(用戶棧、內(nèi)核棧 ) 和局部變量、過程調(diào)用參數(shù)、返回值等線程私有部分的管理。 進(jìn) 程 地址空間 線 程 1 共 享 空 間 線 程 2 線 程 n 線 程 二、多線程環(huán)境中的進(jìn)程與線程 (8) 線程 也可以稱為 輕量進(jìn)程 LWP( LightWeight Process) 。 日常生活例子:某大廈的 裝潢工程 可作為一個 “ 進(jìn)程 ” 運(yùn)行 , 下有許多 工程隊(duì) , 如 瓦工隊(duì) 、 木工隊(duì) 、 水電工隊(duì) 、 油漆工隊(duì) 等 , 每個 工程隊(duì) 作為一個 “ 線程 ” 運(yùn)行 。 “ 進(jìn)程 ” 負(fù)責(zé)采購資源 ( 原料 ) 和 工程管理 , 有原料時(shí)這些工程隊(duì)可以按進(jìn)度齊頭并進(jìn)同時(shí)工作 ( 多線程并行執(zhí)行 ) , 以加快裝潢進(jìn)度 。 缺少原料時(shí) , 如缺少水泥 、 木料 、 水管 、 油漆之一時(shí) , 相應(yīng)工程隊(duì)等待 ( 線程被阻塞 ) , 而可以調(diào)度其他工程隊(duì) ( 線程 ) 工作 。 二、多線程環(huán)境中的進(jìn)程與線程 (9) 線程的基本狀態(tài)有: 運(yùn)行 、 就緒 和 阻塞 , 線程的狀態(tài)轉(zhuǎn)換也類似于進(jìn)程 。 ? 掛起狀態(tài) 對線程是沒有意義的 , 如果進(jìn)程掛起后被對換出主存 , 則它的所有線程因共享了進(jìn)程的地址空間 , 也必須全部對換出去 。 類似地 , 進(jìn)程的終止會導(dǎo)致所有線程的終止 。 ? 線程阻塞 時(shí),有的 OS做法是線程所在進(jìn)程也轉(zhuǎn)換為阻塞態(tài);而有些 OS則是:如果存在另外一個處于就緒態(tài)的線程,則調(diào)度該線程處于運(yùn)行狀態(tài),否則進(jìn)程才轉(zhuǎn)換為阻塞態(tài)。 ? 多線程進(jìn)程的狀態(tài) 不必劃分過細(xì),如 Windows操作系統(tǒng)中僅把進(jìn)程分成 可運(yùn)行 和 不可運(yùn)行狀態(tài) ,掛起狀態(tài)屬于不可運(yùn)行狀態(tài)。 二、多線程環(huán)境中的進(jìn)程與線程 (10) (庫 ) ? 多線程技術(shù) 利用 線程包 (庫 )提供線程原語集來支持多線程運(yùn)行 ,有的操作系統(tǒng)直接支持多線程 , 而有的操作系統(tǒng)不支持多線程 。 ? 線程包 (庫 )可分成 兩種 :用戶空間中運(yùn)行的線程包 (庫 )和內(nèi)核中運(yùn)行的線程包 (庫 )。 線程包至少提供以下功能原語: 孵化 、 封鎖 、 活化 、 結(jié)束 、 通信 、 同步 、 互斥 、 切換 、 調(diào)度 線程包 (庫 )提供一組 API, 支持應(yīng)用程序創(chuàng)建 、 調(diào)度 、 撤銷和管理線程的運(yùn)行 。 基本線程控制原語: ? 孵化 ( Spawn) : 又稱創(chuàng)建線程 。 當(dāng)一個進(jìn)程被生成后 , 該進(jìn)程的一個線程也被創(chuàng)建 。 此后 , 該進(jìn)程中的一個線程可以孵化同一進(jìn)程中的其它線程 。 ? 封鎖 ( Block) : 又稱線程阻塞或等待 。 ? 活化 ( Unblock) : 又稱恢復(fù)線程 。 當(dāng)被阻塞線程等待的事件發(fā)生時(shí) , 線程變成就緒態(tài)或相應(yīng)狀態(tài) 。 ? 結(jié)束 ( Finish) : 又稱撤銷線程 。 二、多線程環(huán)境中的進(jìn)程與線程 (11) 二、多線程環(huán)境中的進(jìn)程與線程 (12) ? 用戶空間運(yùn)行的線程包 OS內(nèi)核對線程包(庫)不可見,內(nèi)核管理的是一般的單線程進(jìn)程。 ? 優(yōu)點(diǎn) 是:減少內(nèi)核態(tài)和用戶態(tài)之間的切換。 ? 缺點(diǎn) 是:當(dāng)線程執(zhí)行一個系統(tǒng)調(diào)用時(shí),不僅該線程被阻塞,而且進(jìn)程內(nèi)的所有線程會被阻塞,不能充分利用多處理器的優(yōu)點(diǎn)。 二、多線程環(huán)境中的進(jìn)程與線程 (13) ? 內(nèi)核中運(yùn)行的線程包 是通過內(nèi)核來管理線程包(庫)的。內(nèi)核中不但要保存進(jìn)程的數(shù)據(jù)結(jié)構(gòu),也要建立和維護(hù)線程的數(shù)據(jù)結(jié)構(gòu)及保存每個線程的入口,線程管理的所有工作由內(nèi)核來實(shí)現(xiàn)。 ? 優(yōu)點(diǎn) :能夠調(diào)度同一進(jìn)程中的多個線程同時(shí)在處理器上并行執(zhí)行,若進(jìn)程中的一個線程被阻塞了,內(nèi)核能調(diào)度同一進(jìn)程的其他線程占有處理器運(yùn)行,也可以調(diào)度其他進(jìn)程中的線程運(yùn)行。 ? 缺點(diǎn) :在同一進(jìn)程中,控制權(quán)從一個線程傳送到另一個線程時(shí)需要用戶態(tài) 內(nèi)核態(tài) 用戶態(tài)的模式切換,系統(tǒng)開銷大。 二、多線程環(huán)境中的進(jìn)程與線程 (14) 線程的實(shí)現(xiàn)分三類 : 用戶級線程 ULT( User Level Thread) 內(nèi)核級線程 KLT( Kernel Leve
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1