




已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章進(jìn)程 線程與作業(yè) 2 1多道程序設(shè)計(jì)Multi programming2 2進(jìn)程的引入Process2 3線程與輕進(jìn)程Threadandlight weightedprocess2 4作業(yè)Job Activeobjects 2 1多道程序設(shè)計(jì) 2 1 1單道程序設(shè)計(jì)的缺點(diǎn)2 1 2多道程序設(shè)計(jì)的提出2 1 3多道程序設(shè)計(jì)的問題 Multi programming 多道程序設(shè)計(jì)目標(biāo) 提高系統(tǒng)效率 吞吐量 2 1 1單道程序設(shè)計(jì)的缺點(diǎn) 處理機(jī)利用率低設(shè)備利用率低內(nèi)存利用率低 運(yùn)行程序A CPU 設(shè)備1 運(yùn)行程序A t t1 t2 t5 t6 設(shè)備2 2 1 2多道程序設(shè)計(jì)的提出 CPU 設(shè)備1 程序A t t1 t2 t5 t6 設(shè)備2 程序B 提高處理機(jī) 設(shè)備 內(nèi)存等各種資源的利用率 從而提高系統(tǒng)效率 程序A t3 t4 2 1 2多道程序設(shè)計(jì)的提出 Cont 增加同時(shí)運(yùn)行程序的道數(shù)可以提高資源利用率 從而提高系統(tǒng)效率 但道數(shù)應(yīng)與系統(tǒng)資源數(shù)量相當(dāng) 道數(shù)過少 系統(tǒng)資源利用率低 道數(shù)過多 系統(tǒng)開銷 systemoverhead 增大 程序響應(yīng)速度下降 2 1 3多道程序設(shè)計(jì)的問題 處理機(jī)資源的管理程序個(gè)數(shù) 處理機(jī)個(gè)數(shù) 如何分配 存儲(chǔ)資源的管理地址空間的相對(duì)獨(dú)立性 共享性內(nèi)存 外存 swapspace 的分配與去配設(shè)備資源管理分配策略IO控制去 去 2 2進(jìn)程的引入 2 2 1進(jìn)程的概念2 2 2進(jìn)程狀態(tài)及狀態(tài)轉(zhuǎn)換2 2 3進(jìn)程控制塊2 2 4進(jìn)程的組成與上下文2 2 5進(jìn)程的隊(duì)列 2 2 6進(jìn)程的類型與特征2 2 7進(jìn)程間相互聯(lián)系與相互作用2 2 8進(jìn)程的創(chuàng)建與撤銷2 2 9進(jìn)程與程序間的聯(lián)系與差別 多道系統(tǒng)中的程序 推進(jìn) 暫停 推進(jìn) 暫停 暫停 保存現(xiàn)場 PSW PC 寄存器 推進(jìn) 恢復(fù)現(xiàn)場 寄存器 PSW PC 暫停原因 1 自身原因 等待資源 啟動(dòng)IO 2 剝奪CPU 給其它程序運(yùn)行機(jī)會(huì) 2 2進(jìn)程的引入 Cont 2 2 1進(jìn)程的概念 定義 可參與并發(fā)執(zhí)行的程序稱為進(jìn)程 進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于一個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng) 定義強(qiáng)調(diào)兩個(gè)方面 動(dòng)態(tài) 執(zhí)行中的程序 并發(fā) 可與其他進(jìn)程同時(shí)執(zhí)行 并發(fā)vs 并行 并發(fā) concurrent宏觀同時(shí) 交替執(zhí)行 不要求多個(gè)CPU并行 parallel微觀同時(shí) 要求多個(gè)CPU 并行算法 2 2 2進(jìn)程狀態(tài)及狀態(tài)轉(zhuǎn)換 2 2 2 1進(jìn)程狀態(tài) 基本狀態(tài) 運(yùn)行態(tài) RUN 占有CPU正在向前推進(jìn)就緒態(tài) READY 可以運(yùn)行 但未得到CPU等待態(tài) WAIT 等待某一事件發(fā)生2 2 2 2狀態(tài)轉(zhuǎn)換就緒 運(yùn)行 獲得處理機(jī)運(yùn)行 就緒 剝奪處理機(jī)運(yùn)行 等待 申請(qǐng)資源未得到 啟動(dòng)IO等待 就緒 得到資源 IO中斷 就緒 等待 運(yùn)行 獲得處理機(jī) 剝奪處理機(jī) 等待事件 事件發(fā)生 2 2 2 2進(jìn)程狀態(tài)轉(zhuǎn)換圖 KeepinMind 進(jìn)程狀態(tài)轉(zhuǎn)換由操作系統(tǒng)完成 對(duì)用戶是透明的 進(jìn)程在其生存期內(nèi)經(jīng)過多次狀態(tài)轉(zhuǎn)換 體現(xiàn)了進(jìn)程的動(dòng)態(tài)性和并發(fā)性 2 2 3進(jìn)程控制塊 PCB 標(biāo)志進(jìn)程存在的數(shù)據(jù)結(jié)構(gòu) 其中保存系統(tǒng)管理進(jìn)程所需的全部信息PCB內(nèi)容 不同系統(tǒng)不盡相同 進(jìn)程標(biāo)識(shí) pid 家族聯(lián)系進(jìn)程狀態(tài)地址信息現(xiàn)場信息打開文件調(diào)度參數(shù)消息指針?biāo)鶎儆脩?uid 隊(duì)列指針 ProcessControlBlock 2 2 4進(jìn)程的組成與上下文 進(jìn)程的組成進(jìn)程控制塊 processcontrolblock 建立進(jìn)程 建立PCB撤銷PCB 撤銷進(jìn)程程序代碼 code 數(shù)據(jù) data 堆棧 stack heap 棧 保存返回點(diǎn) 參數(shù) 返回值 局部變量堆 動(dòng)態(tài)變量 2 2 4進(jìn)程的組成與上下文 進(jìn)程的表記 PCB 程序 PCB 代碼 數(shù)據(jù) 堆棧 表記1 表記2 系統(tǒng)空間 用戶空間 定義 進(jìn)程的程序 代碼和數(shù)據(jù) 稱為進(jìn)程影像 ProcessImage 2 2 4進(jìn)程的組成與上下文 進(jìn)程上下文 processcontext 進(jìn)程的物理實(shí)體與支持進(jìn)程運(yùn)行的物理環(huán)境統(tǒng)稱為進(jìn)程上下文PCB 程序系統(tǒng)環(huán)境 地址空間 系統(tǒng)棧 打開文件表 上下文切換 contextswitch 由一個(gè)進(jìn)程的上下文轉(zhuǎn)到另外一個(gè)進(jìn)程的上下文系統(tǒng)開銷 systemoverhead 運(yùn)行操作系統(tǒng)程序完成系統(tǒng)管理工作所花費(fèi)的時(shí)間和空間 2 2 5進(jìn)程的隊(duì)列 1 就緒隊(duì)列 系統(tǒng)一個(gè)或若干個(gè) 根據(jù)調(diào)度算法確定 2 等待隊(duì)列 每個(gè)等待事件一個(gè)3 運(yùn)行指示字 每個(gè)處理機(jī)一個(gè) PCB構(gòu)成的隊(duì)列 不一定FIFO 單向或雙向 進(jìn)程隊(duì)列模型 等待隊(duì)列1 等待隊(duì)列2 等待隊(duì)列n CPU 創(chuàng)建 完成 時(shí)間片用完 等待事件1 等待事件2 等待事件n 事件1發(fā)生 事件2發(fā)生 事件n發(fā)生 2 2 6進(jìn)程的類型與特征 進(jìn)程類型系統(tǒng)進(jìn)程運(yùn)行操作系統(tǒng)程序 完成系統(tǒng)管理 服務(wù) 功能 例如 UNIX 0 sched 1 init用戶進(jìn)程運(yùn)行用戶 應(yīng)用 程序 為用戶服務(wù) 例如 UNIXvi shell cc 2 2 6進(jìn)程的類型與特征 Cont 進(jìn)程的特征并發(fā)性 可以與其它進(jìn)程一道向前推進(jìn) 動(dòng)態(tài)性 動(dòng)態(tài)產(chǎn)生 消亡 生存期內(nèi)狀態(tài)動(dòng)態(tài)變化 獨(dú)立性 一個(gè)進(jìn)程是可以調(diào)度的基本單位 交往性 同時(shí)運(yùn)行的進(jìn)程可能發(fā)生相互作用 異步性 進(jìn)程以各自獨(dú)立 不可預(yù)知的速度向前推進(jìn) 結(jié)構(gòu)性 每個(gè)進(jìn)程有一個(gè)PCB 2 2 7進(jìn)程間相互聯(lián)系與相互作用 相互聯(lián)系相關(guān)進(jìn)程同一家族的進(jìn)程可以共享文件 需要相互通訊 協(xié)調(diào)推進(jìn)速度 父進(jìn)程可以監(jiān)視子進(jìn)程 子進(jìn)程完成父進(jìn)程交給的任務(wù) 無關(guān)進(jìn)程沒有邏輯關(guān)系 同時(shí)執(zhí)行的進(jìn)程 有資源競爭關(guān)系 互斥 死鎖 餓死 2 2 7進(jìn)程間相互聯(lián)系與相互作用 相互作用 1 直接相互作用 發(fā)生在相關(guān)進(jìn)程之間 2 間接相互作用 發(fā)生在任何進(jìn)程之間 R P2 P1 sync send receive P1 P2 hold wait 2 2 8進(jìn)程的創(chuàng)建與撤銷 進(jìn)程的創(chuàng)建建立PCB 分配內(nèi)存 加載程序 入就緒鏈UNIX pid fork exec prog args 進(jìn)程的撤銷去配資源 撤銷PCB 通知父進(jìn)程UNIX exit vs kill除初始進(jìn)程外 其它進(jìn)程由 父 進(jìn)程創(chuàng)建 并形成進(jìn)程家族 考慮生滅的進(jìn)程狀態(tài)轉(zhuǎn)換圖 初創(chuàng) 終止 創(chuàng)建 結(jié)束 2 2 9進(jìn)程與程序的聯(lián)系與差別 進(jìn)程與程序的聯(lián)系進(jìn)程包括一個(gè)程序進(jìn)程存在的目的就是執(zhí)行這個(gè)程序進(jìn)程與程序的差別程序靜態(tài) 進(jìn)程動(dòng)態(tài)程序可長期保存 進(jìn)程有生存期一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程 一個(gè)進(jìn)程只能執(zhí)行一個(gè)程序 2 3線程與輕進(jìn)程 2 3 1線程的引入2 3 2線程的概念2 3 3線程的結(jié)構(gòu)2 3 4線程控制塊2 3 5線程的實(shí)現(xiàn)2 3 6線程的應(yīng)用2 3 7Java線程 ThreadLight weightedprocess 2 3 1線程的引入 進(jìn)程切換上下文涉及內(nèi)容多 開銷大 笨重 PCB 程序系統(tǒng)環(huán)境 地址空間 系統(tǒng)棧 打開文件表 相關(guān)進(jìn)程之間耦合關(guān)系差解決方案Multi threading同一進(jìn)程中包含多個(gè)線程上下文只涉及寄存器和用戶棧 切換速度快相關(guān)線程之間通訊方便 快捷 2 3 2線程的概念 進(jìn)程中一個(gè)相對(duì)獨(dú)立的執(zhí)行流 進(jìn)程vs 線程進(jìn)程是資源分配單位線程是執(zhí)行單位多線程優(yōu)點(diǎn)切換速度快 地址空間不變 lightweighted 系統(tǒng)開銷小通訊容易 共享數(shù)據(jù)空間 2 3 3線程結(jié)構(gòu) 多進(jìn)程結(jié)構(gòu) 用戶視圖 內(nèi)存 靜態(tài)數(shù)據(jù) 程序代碼 棧 寄存器 進(jìn)程 動(dòng)態(tài)堆 內(nèi)存 2 3 3線程結(jié)構(gòu) 靜態(tài)數(shù)據(jù) 程序代碼 寄存器 寄存器 線程1 線程2 進(jìn)程 動(dòng)態(tài)堆 內(nèi)存 多線程結(jié)構(gòu) 用戶視圖 棧 棧 2 3 3線程結(jié)構(gòu) 另一種表示 textsegment datasegment Programcounter Task 2 3 4線程控制塊 TCB Threadcontrolblock 標(biāo)志線程存在的數(shù)據(jù)結(jié)構(gòu) 其中包含對(duì)線程管理需要的全部信息 內(nèi)容線程標(biāo)識(shí)線程狀態(tài)調(diào)度參數(shù)現(xiàn)場 通用寄存器 PC SP 鏈接指針存放位置用戶級(jí)線程 目態(tài)空間 運(yùn)行時(shí)系統(tǒng) 核心級(jí)線程 系統(tǒng)空間 2 3 5線程的實(shí)現(xiàn) 2 3 1用戶級(jí)別線程User levelthread2 3 2核心級(jí)別線程Kernel levelthread2 3 3混合線程Hybridapproach 2 3 5 1用戶級(jí)別線程 實(shí)現(xiàn)方法 基于library函數(shù) 系統(tǒng)不可見線程創(chuàng)建 撤銷 狀態(tài)轉(zhuǎn)換在目態(tài)完成TCB在用戶空間 每個(gè)進(jìn)程一個(gè)系統(tǒng)棧優(yōu)點(diǎn) 不依賴于操作系統(tǒng) 調(diào)度靈活同一進(jìn)程中多線程切換速度快 不需進(jìn)入操作系統(tǒng) 缺點(diǎn) 同一進(jìn)程中多個(gè)線程不能真正并行一個(gè)線程進(jìn)入系統(tǒng)受阻 進(jìn)程中其它線程不能執(zhí)行 2 3 5 1用戶級(jí)別線程 運(yùn)行系統(tǒng) TCB 進(jìn)程 線程 核心棧 進(jìn)程表 用戶空間 系統(tǒng)空間 2 3 5 2核心級(jí)別線程 實(shí)現(xiàn)方法 基于系統(tǒng)調(diào)用創(chuàng)建 撤銷 狀態(tài)轉(zhuǎn)換由操作系統(tǒng)完成優(yōu)點(diǎn) 同一進(jìn)程內(nèi)多線程可以并行執(zhí)行一線程進(jìn)入核心等待 其它線程仍可執(zhí)行缺點(diǎn) 系統(tǒng)開銷大 同一進(jìn)程內(nèi)多線程切換速度慢調(diào)度算法不能靈活控制 2 3 5 2核心級(jí)別線程 進(jìn)程 線程 核心棧 進(jìn)程表 用戶空間 系統(tǒng)空間 TCB 2 3 5 3混合線程 Solaris例子Userlevelthread 由Lib程序支持 創(chuàng)建 調(diào)度 Lightweightedprocess LWP 由Lib程序支持每個(gè)task至少一個(gè)LWP用戶級(jí)別線程與LWP可以多對(duì)多LWP對(duì)操作系統(tǒng)可見只有與LWP相聯(lián)系的用戶線程向前推進(jìn)Kernellevelthread 由kernel支持每個(gè)LWP與唯一一個(gè)核心線程對(duì)應(yīng)核心線程可與CPU多對(duì)多 可對(duì)一 2 3 5 3混合線程 Solaris CPU task1 task2 task3 kernel Userlevelthread Lightweightprocess Kernelthread 2 3 6線程的應(yīng)用 內(nèi)在的多控制流 需要共享數(shù)據(jù)生產(chǎn) 消費(fèi)問題多線程優(yōu)于多進(jìn)程快100倍 提高處理機(jī)與設(shè)備的并行性多處理機(jī)環(huán)境提高處理機(jī)利用率 加快進(jìn)程推進(jìn)速度 2 3 6線程的應(yīng)用 例子 Word字處理 不同代碼 交互編輯 T1 詞法檢查 T2 定時(shí)保存 T3 HTTPserver 相同代碼 對(duì)每個(gè)http請(qǐng)求 popup一個(gè)線程 2 4作業(yè) Job 作業(yè)概念用戶要求計(jì)算機(jī)系統(tǒng)為其完成的計(jì)算任務(wù)集合 作業(yè)步 jobstep 作業(yè)處理過程中一個(gè)相對(duì)獨(dú)立的步驟一般一個(gè)作業(yè)步可由一個(gè)進(jìn)程完成某些作業(yè)步之間可以并行作業(yè)分類批處理作業(yè)交互式作業(yè) 2 4 1批處理作業(yè) 作業(yè)控制語言 JCL 描述批處理作業(yè)控制意圖的語言作業(yè)說明書 JCL語句的序列 一般一特殊符號(hào)起始 JOBJ1 FORTN LINK EXEC ENDJOB作業(yè)控制程序解釋并處理作業(yè)說明書的程序作業(yè)控制進(jìn)程執(zhí)行作業(yè)控制程序的進(jìn)程 作業(yè)控制進(jìn)程 讀入作業(yè)內(nèi)容 釋放輸入井空間 順取作業(yè)控制語句 是結(jié)束語句 執(zhí)行該作業(yè)步 可能創(chuàng)建子進(jìn)程 申請(qǐng)輸出井空間 輸出作業(yè)結(jié)果 進(jìn)程自我終止 F T 2 4 2交互式作業(yè) 帳戶管理 etc passwd文件 用戶名 口令 用戶根目錄 同組用戶 余額 創(chuàng)建與撤銷創(chuàng)建 用戶提供 用戶名 口令 資金 系統(tǒng)操作員建立 根目錄 usr zhang 填寫passwd文件 撤銷 刪除該用戶目錄及所有文件在passwd文件中清除對(duì)應(yīng)entry 2 4 2交互式作業(yè) 注冊(cè)與注銷注冊(cè) logon 用戶名password 使用 注銷 顯式注銷 logoff隱式注銷 如5分鐘無輸入命令 命令解釋程序 提示符 讀入終端命令 分析 Logout 內(nèi)部命令 處理 建立子進(jìn)程 后臺(tái)命令 等子進(jìn)程結(jié)束 輸出子進(jìn)程號(hào) 記帳 T F T F F T 小結(jié) 作業(yè) 進(jìn)程 線程 作業(yè)與進(jìn)程作業(yè)進(jìn)入內(nèi)存后變?yōu)檫M(jìn)程一個(gè)作業(yè)通常與多個(gè)進(jìn)程相對(duì)應(yīng)進(jìn)程與線程一個(gè)進(jìn)程一般包含多個(gè)線程 至少包含一個(gè)線程不支持多線程的系統(tǒng) 可視為單線程進(jìn)程 2 5 1Java線程 Java線程四種基本狀態(tài)New 新建的線程Runnable 可運(yùn)行狀態(tài)Blocked 封鎖狀態(tài)Dead 終止?fàn)顟B(tài) Java線程 Java線程狀態(tài)之間的轉(zhuǎn)換關(guān)系圖 Sleep Suspend IO Runnable Blocked Dead New Start Stop Resume JAVA線程與JVM Java線程是由Java虛擬機(jī)JVM支持的JVM位于操作系統(tǒng)之上Java線程與操作系統(tǒng)線程之間的對(duì)應(yīng)關(guān)系由JVM確定對(duì)于WindowsNT的JVM Java線程與操作系統(tǒng)線程具有一對(duì)一關(guān)系 對(duì)于Solaris的JVM 其對(duì)應(yīng)關(guān)系為多對(duì)多 2 5 2Linux進(jìn)程與線程 進(jìn)程與線程在系統(tǒng)內(nèi)部具有統(tǒng)一的表示進(jìn)程與線程的差別通過與fork不同的另外一個(gè)系統(tǒng)調(diào)用clone體現(xiàn)出來Clone系統(tǒng)調(diào)用的形式pid clone function stack ptr sharing flag arg Sharing flag CLONE VM CLONE FILES CLONE SIGHAND CLONE PID 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南軟件職業(yè)技術(shù)大學(xué)《內(nèi)部控制理論與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川財(cái)經(jīng)職業(yè)學(xué)院《播音發(fā)聲學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古大學(xué)《機(jī)器學(xué)習(xí)與深度學(xué)習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北警官學(xué)院《倉儲(chǔ)管理與庫存控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海工藝美術(shù)職業(yè)學(xué)院《冶金質(zhì)量分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安海棠職業(yè)學(xué)院《礦山裝備及自動(dòng)化》2023-2024學(xué)年第二學(xué)期期末試卷
- 塔里木大學(xué)《控制工程基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年電子體重秤項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年形狀記憶合金項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 銷售人員系統(tǒng)培訓(xùn)
- 00510秘書實(shí)務(wù)-自考整合版
- 護(hù)理研究中的偏倚及控制
- 小學(xué)生的齲齒預(yù)防ppt課件
- [復(fù)習(xí)]邊坡客土吹附施工方案
- 沖壓試題庫及答案文檔
- 管理人員責(zé)任追究制度
- 自動(dòng)旋轉(zhuǎn)門PLC控制
- 電影場記表(雙機(jī)位)
- 畢設(shè)高密電法探測及數(shù)據(jù)處理解釋
- 華為保密制度范文
- 凍庫溫度記錄表
評(píng)論
0/150
提交評(píng)論