版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、主要內(nèi)容:主要內(nèi)容: n進(jìn)程的定義和屬性進(jìn)程的定義和屬性 n進(jìn)程的狀態(tài)和轉(zhuǎn)換進(jìn)程的狀態(tài)和轉(zhuǎn)換 n進(jìn)程的描述和組成進(jìn)程的描述和組成 n進(jìn)程切換與模式切換進(jìn)程切換與模式切換 n進(jìn)程的控制和管理進(jìn)程的控制和管理 進(jìn)程是操作系統(tǒng)中最基本、重要的概念進(jìn)程是操作系統(tǒng)中最基本、重要的概念 是多道程序系統(tǒng)出現(xiàn)后,為了刻畫系統(tǒng)內(nèi)部出現(xiàn)是多道程序系統(tǒng)出現(xiàn)后,為了刻畫系統(tǒng)內(nèi)部出現(xiàn) 的動(dòng)態(tài)情況,描述系統(tǒng)內(nèi)部各道程序的活動(dòng)規(guī)律的動(dòng)態(tài)情況,描述系統(tǒng)內(nèi)部各道程序的活動(dòng)規(guī)律 引進(jìn)的一個(gè)概念引進(jìn)的一個(gè)概念,所有多道程序設(shè)計(jì)操作系統(tǒng)都建所有多道程序設(shè)計(jì)操作系統(tǒng)都建 立在進(jìn)程的基礎(chǔ)上。立在進(jìn)程的基礎(chǔ)上。 從理論角度看,進(jìn)程是對正在
2、運(yùn)行的程序過程的抽 象; 從實(shí)現(xiàn)角度看,進(jìn)程是一種數(shù)據(jù)結(jié)構(gòu),目的在于清 晰地刻劃動(dòng)態(tài)系統(tǒng)的內(nèi)在規(guī)律,有效管理和調(diào)度進(jìn) 入計(jì)算機(jī)系統(tǒng)主存儲器運(yùn)行的程序。 *對于單任務(wù)的操作系統(tǒng)而言,由于任何時(shí)候內(nèi)存中 只有一道程序(計(jì)算活動(dòng)) ,而不是兩道或兩道以上 的程序(計(jì)算活動(dòng))在運(yùn)行,程序(計(jì)算)運(yùn)行的藍(lán) 本(程序)只有一個(gè),程序與計(jì)算之間具有一對一的 關(guān)系,將依照藍(lán)本(程序)進(jìn)行的計(jì)算活動(dòng)稱為程序 (與藍(lán)本叫法相同)并無明顯不妥之處。 *但是在多任務(wù)的操作系統(tǒng)環(huán)境下,內(nèi)存中可以同時(shí)但是在多任務(wù)的操作系統(tǒng)環(huán)境下,內(nèi)存中可以同時(shí) 存在兩道或兩道以上的程序(計(jì)算活動(dòng))在運(yùn)行,如存在兩道或兩道以上的程序(計(jì)算
3、活動(dòng))在運(yùn)行,如 果每道程序(計(jì)算)運(yùn)行的藍(lán)本(程序)互不相同,果每道程序(計(jì)算)運(yùn)行的藍(lán)本(程序)互不相同, 則仍以程序(藍(lán)本)的名字呼喚每個(gè)計(jì)算并無明顯不則仍以程序(藍(lán)本)的名字呼喚每個(gè)計(jì)算并無明顯不 妥。但是,如果有某兩道程序(計(jì)算)運(yùn)行的藍(lán)本(妥。但是,如果有某兩道程序(計(jì)算)運(yùn)行的藍(lán)本( 程序、步驟)相同,只是加工處理的數(shù)據(jù)(原料)不程序、步驟)相同,只是加工處理的數(shù)據(jù)(原料)不 同,則稱這兩個(gè)計(jì)算是一個(gè)程序或兩個(gè)程序均自相矛同,則稱這兩個(gè)計(jì)算是一個(gè)程序或兩個(gè)程序均自相矛 盾。因?yàn)閱栴}的實(shí)質(zhì)是一個(gè)程序(藍(lán)本)對應(yīng)了兩個(gè)盾。因?yàn)閱栴}的實(shí)質(zhì)是一個(gè)程序(藍(lán)本)對應(yīng)了兩個(gè) 或多個(gè)計(jì)算,程序與
4、計(jì)算之間出現(xiàn)了一對多的關(guān)系?;蚨鄠€(gè)計(jì)算,程序與計(jì)算之間出現(xiàn)了一對多的關(guān)系。 以以“程序程序”稱呼稱呼“計(jì)算計(jì)算”產(chǎn)生了混淆,由此提出了產(chǎn)生了混淆,由此提出了“ 進(jìn)程進(jìn)程”這個(gè)名詞來稱呼這個(gè)名詞來稱呼“計(jì)算計(jì)算”。 1.1.操作系統(tǒng)為什么要引入進(jìn)程概念操作系統(tǒng)為什么要引入進(jìn)程概念? ? 一是刻畫系統(tǒng)的動(dòng)態(tài)性,發(fā)揮系統(tǒng)的并發(fā)性,提高資源利用 率。在多道程序設(shè)計(jì)環(huán)境下,程序可以并發(fā)執(zhí)行,一個(gè)程序 的任意兩條指令之間都可能發(fā)生隨機(jī)事件而引發(fā)程序切換。 因而,每個(gè)程序的執(zhí)行都可能不是連續(xù)的而是走走停停。 二是它能解決系統(tǒng)的“共享性”,正確描述程序的執(zhí)行狀態(tài)。 幾個(gè)概念: (1)“可再入可再入”程序程序-
5、是指能被多個(gè)程序同時(shí)調(diào)用的程序。是指能被多個(gè)程序同時(shí)調(diào)用的程序。 (2)“可再用可再用”程序程序-被調(diào)用過程中自身會(huì)被修改,在調(diào)被調(diào)用過程中自身會(huì)被修改,在調(diào) 用它的程序退出之前不允許其他程序來調(diào)用它。用它的程序退出之前不允許其他程序來調(diào)用它。 (3)“可再入可再入”程序具有的性質(zhì)程序具有的性質(zhì):它是純代碼,即它在執(zhí)行 中自身不被改變;調(diào)用它的各程序應(yīng)提供工作區(qū),因此, “可再入”程序可被多個(gè)程序同時(shí)調(diào)用。 “可再入” 程序舉例 編譯程序P編譯源程序甲,從A點(diǎn)開始工作,執(zhí)行到B點(diǎn)時(shí)需 將信息記到磁盤上,且程序P在B點(diǎn)等待磁盤傳輸。 為提高系統(tǒng)效率,利用編譯程序的“可再入”性,讓編譯程 序P再為
6、源程序乙進(jìn)行編譯,仍從A點(diǎn)開始工作。 現(xiàn)在怎樣來描述編譯程序P的狀態(tài)呢? 稱它為在B點(diǎn)等待磁盤傳輸狀態(tài),還是稱它為正在從A點(diǎn)開 始執(zhí)行的狀態(tài)? 把編譯程序P,與服務(wù)對象聯(lián)系起來,P為甲服務(wù)就說構(gòu)成進(jìn) 程P甲,P為乙服務(wù)則構(gòu)成進(jìn)程P乙。 兩個(gè)進(jìn)程雖共享程序P,但它們可同時(shí)執(zhí)行且彼此按各自的 速度獨(dú)立執(zhí)行??梢姵绦蚺c計(jì)算(程序的執(zhí)行)不再一一對應(yīng), 進(jìn)程是一個(gè)既能用來共享資源,又能描述程序并發(fā)執(zhí)行過程 的一個(gè)基本單位。 2.進(jìn)程的概念進(jìn)程的概念 進(jìn)程進(jìn)程(process)是一個(gè)可并發(fā)執(zhí)行的具有獨(dú)立功能的程序關(guān)于 某個(gè)數(shù)據(jù)集合的一次執(zhí)行過程,也是操作系統(tǒng)進(jìn)行資源分配 和保護(hù)的基本單位。 有些系統(tǒng)稱進(jìn)
7、程為“任務(wù)”(task)或“活動(dòng)”(active)。 3.進(jìn)程的屬性進(jìn)程的屬性 (進(jìn)程與程序比較進(jìn)程與程序比較) (1)結(jié)構(gòu)性:結(jié)構(gòu)性:進(jìn)程包含了數(shù)據(jù)集合和運(yùn)行于其上的程序。每個(gè) 進(jìn)程至少包含三個(gè)組成要素:程序塊、數(shù)據(jù)塊和進(jìn)程控制塊。 (2)共享性共享性:同一程序運(yùn)行于不同數(shù)據(jù)集合上時(shí),構(gòu)成不同的 進(jìn)程。多個(gè)不同的進(jìn)程可以共享相同的程序,所以進(jìn)程和程 序不是一一對應(yīng)的。 (函數(shù)的遞歸調(diào)用也是不同數(shù)據(jù)共享相同 函數(shù),在這一點(diǎn)上類似于進(jìn)程,但不相同,因?yàn)楹瘮?shù)不是進(jìn)程) (3)動(dòng)態(tài)性:動(dòng)態(tài)性:進(jìn)程由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消 亡。程序是一組有序指令序列,作為一種系統(tǒng)資源是永久存 在的。 (
8、4)獨(dú)立性:獨(dú)立性:進(jìn)程是系統(tǒng)中資源分配和保護(hù)的基本單位,也是 系統(tǒng)調(diào)度的獨(dú)立單位(單線程進(jìn)程)。 (5)制約性制約性:并發(fā)進(jìn)程之間存在著制約關(guān)系,進(jìn)程在進(jìn)行的關(guān) 鍵點(diǎn)上需要相互等待或互通消息,以保證程序執(zhí)行的可再現(xiàn) 性和計(jì)算結(jié)果的唯一性。 (6)并發(fā)性:并發(fā)性:在一個(gè)單處理器系統(tǒng)環(huán)境下,各個(gè)進(jìn)程輪流占用 處理器 。 1.1.三態(tài)模型三態(tài)模型 (1)(1)進(jìn)程的三種基本狀態(tài)進(jìn)程的三種基本狀態(tài) 一個(gè)進(jìn)程從創(chuàng)建而產(chǎn)生至撤銷而消亡的整個(gè)生命周期,可用一 組狀態(tài)加以刻劃,按進(jìn)程在執(zhí)行過程中的狀況至少定義三種不 同的進(jìn)程狀態(tài): 運(yùn)行態(tài)(運(yùn)行態(tài)(runningrunning):進(jìn)程占有處理器正在運(yùn)行。 就
9、緒態(tài)(就緒態(tài)(readyready):進(jìn)程具備運(yùn)行條件,等待系統(tǒng)分配處理器 以便運(yùn)行。 等待態(tài)(等待態(tài)(waitwait):又稱為阻塞(blocked)態(tài)或睡眠(sleep) 態(tài),進(jìn)程不具備運(yùn)行條件,正在等待某個(gè)事件的完成。 通常,當(dāng)一個(gè)進(jìn)程創(chuàng)建后,就處于就緒狀態(tài)。每個(gè)進(jìn)程在執(zhí)行 過程中,任一時(shí)刻當(dāng)且僅當(dāng)處于上述三種狀態(tài)之一。在一個(gè)進(jìn) 程執(zhí)行過程中,它的狀態(tài)將會(huì)發(fā)生變化。 (2)引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因 運(yùn)行態(tài)運(yùn)行態(tài)等待態(tài):等待態(tài):等待使用資源或某事件發(fā)生 ; 等待態(tài)等待態(tài)就緒態(tài):就緒態(tài):資源得到滿足或事件發(fā)生 ; 運(yùn)行態(tài)運(yùn)行態(tài)就緒態(tài)就緒態(tài):運(yùn)行時(shí)間片到;出現(xiàn)有更高
10、優(yōu)先權(quán)進(jìn)程。 就緒態(tài)就緒態(tài)運(yùn)行態(tài)運(yùn)行態(tài):CPU空閑時(shí)選擇一個(gè)就緒進(jìn)程。 運(yùn)行態(tài)運(yùn)行態(tài) 就緒態(tài)就緒態(tài)等待態(tài)等待態(tài) 選中 落選 出現(xiàn)等待事件 等待事件結(jié)束 進(jìn)程三態(tài)模型及其狀態(tài)轉(zhuǎn)換 2.2.五態(tài)模型五態(tài)模型 五態(tài)模型在三態(tài)模型的基礎(chǔ)上,引進(jìn)了新建態(tài)和終止 態(tài)。 新建態(tài)新建態(tài)-對應(yīng)進(jìn)程剛被創(chuàng)建的狀態(tài)。對應(yīng)進(jìn)程剛被創(chuàng)建的狀態(tài)。為一個(gè)新進(jìn) 程創(chuàng)建必要的管理信息,它并沒有被提交執(zhí)行,而是 在等待操作系統(tǒng)完成創(chuàng)建進(jìn)程的必要操作。 終止態(tài)終止態(tài)-進(jìn)程的終止。進(jìn)程的終止。首先,等待操作系統(tǒng)進(jìn) 行善后,然后,退出主存。進(jìn)入終止態(tài)的進(jìn)程不再執(zhí) 行,但依然臨時(shí)保留在系統(tǒng)中等待善后。一旦其他進(jìn) 程完成了對終止態(tài)進(jìn)程的信
11、息抽取之后,系統(tǒng)將刪除 該進(jìn)程。 運(yùn)行態(tài) 就緒態(tài)等待態(tài) 選 中落 選 出現(xiàn)等待事件 等待事件結(jié)束 新建態(tài)終止態(tài) 進(jìn)程五態(tài)模型及其轉(zhuǎn)換進(jìn)程五態(tài)模型及其轉(zhuǎn)換 進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因 NULLNULL新建態(tài):新建態(tài):創(chuàng)建一個(gè)子進(jìn)程。創(chuàng)建一個(gè)子進(jìn)程。 新建態(tài)新建態(tài)就緒態(tài)就緒態(tài):系統(tǒng)完成了進(jìn)程創(chuàng)建操作,且當(dāng)前系統(tǒng)的系統(tǒng)完成了進(jìn)程創(chuàng)建操作,且當(dāng)前系統(tǒng)的 性能和內(nèi)存的容量均允許。性能和內(nèi)存的容量均允許。 運(yùn)行態(tài)運(yùn)行態(tài)終止態(tài)終止態(tài):一個(gè)進(jìn)程到達(dá)自然結(jié)束點(diǎn),或出現(xiàn)了無法一個(gè)進(jìn)程到達(dá)自然結(jié)束點(diǎn),或出現(xiàn)了無法 克服的錯(cuò)誤,或被操作系統(tǒng)所終結(jié),或被其他有終止權(quán)的進(jìn)程克服的錯(cuò)誤,或被操作系統(tǒng)所終結(jié)
12、,或被其他有終止權(quán)的進(jìn)程 所終結(jié)。所終結(jié)。 終止態(tài)終止態(tài)NULLNULL:完成善后操作。完成善后操作。 就緒態(tài)就緒態(tài)終止態(tài):終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。 等待態(tài)等待態(tài)終止態(tài):終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。 3.3.具有掛起功能系統(tǒng)的進(jìn)程狀態(tài)及其轉(zhuǎn)換具有掛起功能系統(tǒng)的進(jìn)程狀態(tài)及其轉(zhuǎn)換 (1)為什么要有“掛起”狀態(tài)? 由于進(jìn)程的不斷創(chuàng)建,系統(tǒng)資源已不能滿足進(jìn)程運(yùn)行的要求,由于進(jìn)程的不斷創(chuàng)建,系統(tǒng)資源已不能滿足進(jìn)程運(yùn)行的要求, 就必須把某些進(jìn)程掛起(就必須把某些進(jìn)程掛起(suspendsuspend),對換
13、到磁盤鏡像區(qū)中,),對換到磁盤鏡像區(qū)中, 暫時(shí)不參與進(jìn)程調(diào)度,起到平滑系統(tǒng)操作負(fù)荷的目的。暫時(shí)不參與進(jìn)程調(diào)度,起到平滑系統(tǒng)操作負(fù)荷的目的。 (2)引起進(jìn)程掛起的主要原因 系統(tǒng)中的進(jìn)程均處于等待狀態(tài),需要把一些阻塞進(jìn)程對換出系統(tǒng)中的進(jìn)程均處于等待狀態(tài),需要把一些阻塞進(jìn)程對換出 去,騰出足夠內(nèi)存裝入就緒進(jìn)程運(yùn)行。去,騰出足夠內(nèi)存裝入就緒進(jìn)程運(yùn)行。 進(jìn)程競爭資源,導(dǎo)致系統(tǒng)資源不足,負(fù)荷過重,需要掛起部進(jìn)程競爭資源,導(dǎo)致系統(tǒng)資源不足,負(fù)荷過重,需要掛起部 分進(jìn)程以調(diào)整系統(tǒng)負(fù)荷分進(jìn)程以調(diào)整系統(tǒng)負(fù)荷, ,保證系統(tǒng)的實(shí)時(shí)性或讓系統(tǒng)正常運(yùn)行。保證系統(tǒng)的實(shí)時(shí)性或讓系統(tǒng)正常運(yùn)行。 定期執(zhí)行的進(jìn)程(如審計(jì)、監(jiān)控、記
14、賬程序)對換出去,以定期執(zhí)行的進(jìn)程(如審計(jì)、監(jiān)控、記賬程序)對換出去,以 減輕系統(tǒng)負(fù)荷。減輕系統(tǒng)負(fù)荷。 用戶要求掛起自己的進(jìn)程,以便進(jìn)行某些調(diào)試、檢查和改正。用戶要求掛起自己的進(jìn)程,以便進(jìn)行某些調(diào)試、檢查和改正。 父進(jìn)程要求掛起后代進(jìn)程,以進(jìn)行某些檢查和改正。父進(jìn)程要求掛起后代進(jìn)程,以進(jìn)行某些檢查和改正。 操作系統(tǒng)需要掛起某些進(jìn)程,檢查運(yùn)行中資源使用情況,以操作系統(tǒng)需要掛起某些進(jìn)程,檢查運(yùn)行中資源使用情況,以 改善系統(tǒng)性能改善系統(tǒng)性能; ;或當(dāng)系統(tǒng)出現(xiàn)故障或某些功能受到破壞時(shí),需或當(dāng)系統(tǒng)出現(xiàn)故障或某些功能受到破壞時(shí),需 要掛起某些進(jìn)程以排除故障。要掛起某些進(jìn)程以排除故障。 (3)(3)進(jìn)程增加
15、的兩個(gè)新狀態(tài)進(jìn)程增加的兩個(gè)新狀態(tài) 掛起就緒態(tài)(掛起就緒態(tài)(ready suspendready suspend):表明進(jìn)程具備運(yùn)行條件但目):表明進(jìn)程具備運(yùn)行條件但目 前在輔助存儲器中,當(dāng)它被對換到主存才能被調(diào)度執(zhí)行。前在輔助存儲器中,當(dāng)它被對換到主存才能被調(diào)度執(zhí)行。 掛起等待態(tài)(掛起等待態(tài)(blocked suspendblocked suspend):表明進(jìn)程正在等待某一個(gè)):表明進(jìn)程正在等待某一個(gè) 事件且在輔助存儲器中。事件且在輔助存儲器中。 掛起 等待事件結(jié)束 出現(xiàn)等 待事件 解除 掛起 掛起 落選 選中 運(yùn)行態(tài) 就緒態(tài) 等待事件結(jié)束 終止態(tài) 新建態(tài) 掛起就緒 態(tài) 解除 掛起 掛起 掛
16、起等待 態(tài) 等待態(tài) 提交 提交 具有掛起功能的進(jìn)程狀態(tài)及轉(zhuǎn)換 (4)(4)引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因引起進(jìn)程狀態(tài)轉(zhuǎn)換的具體原因 等待態(tài)等待態(tài)掛起等待態(tài):掛起等待態(tài):當(dāng)前不存在就緒進(jìn)程,至少一個(gè)等待 態(tài)進(jìn)程將被對換出去成為掛起等待態(tài); 掛起等待態(tài)掛起等待態(tài)掛起就緒態(tài):掛起就緒態(tài):引起進(jìn)程等待的事件發(fā)生之后, 相應(yīng)的掛起等待態(tài)進(jìn)程將轉(zhuǎn)換為掛起就緒態(tài)。 掛起就緒態(tài)掛起就緒態(tài)就緒態(tài):就緒態(tài):內(nèi)存中沒有就緒態(tài)進(jìn)程,或掛起就緒 態(tài)進(jìn)程具有比就緒態(tài)進(jìn)程更高的優(yōu)先級,將把掛起就緒態(tài)進(jìn) 程轉(zhuǎn)換成就緒態(tài)。 就緒態(tài)就緒態(tài)掛起就緒態(tài):掛起就緒態(tài):系統(tǒng)根據(jù)當(dāng)前資源狀況和性能要求, 決定把就緒態(tài)進(jìn)程對換出去成為掛起就緒態(tài)
17、。 掛起等待態(tài)掛起等待態(tài)等待態(tài):等待態(tài):當(dāng)一個(gè)進(jìn)程等待一個(gè)事件時(shí),原則上 不需要把它調(diào)入內(nèi)存。但是,當(dāng)一個(gè)進(jìn)程退出后,主存已經(jīng) 有了足夠的自由空間,而某個(gè)掛起等待態(tài)進(jìn)程具有較高的優(yōu) 先級并且操作系統(tǒng)已經(jīng)得知導(dǎo)致它阻塞的事件即將結(jié)束,便 可能發(fā)生這一狀態(tài)變化。 運(yùn)行態(tài)運(yùn)行態(tài)掛起就緒態(tài):掛起就緒態(tài):當(dāng)一個(gè)高優(yōu)先級掛起等待進(jìn)程的等待 事件結(jié)束后,它將搶占CPU,而此時(shí)主存不夠,從而可能導(dǎo)致 正在運(yùn)行的進(jìn)程轉(zhuǎn)化為掛起就緒態(tài)。運(yùn)行態(tài)的進(jìn)程也可以自 己掛起自己。 新建態(tài)新建態(tài)掛起就緒態(tài):掛起就緒態(tài):根據(jù)系統(tǒng)當(dāng)前資源狀況和性能要求, 可以將新建進(jìn)程對換出去成為掛起就緒態(tài)。 注意:掛起的進(jìn)程將不參與低級調(diào)度直
18、到它們被對注意:掛起的進(jìn)程將不參與低級調(diào)度直到它們被對 換進(jìn)主存。換進(jìn)主存。 (5)掛起進(jìn)程具有如下特征掛起進(jìn)程具有如下特征 該進(jìn)程不能立即被執(zhí)行。 掛起進(jìn)程可能會(huì)等待事件,但所等待事件是獨(dú)立于掛起條件的, 事件結(jié)束并不能導(dǎo)致進(jìn)程具備執(zhí)行條件。 進(jìn)程進(jìn)入掛起狀態(tài)是由于操作系統(tǒng)、父進(jìn)程或進(jìn)程本身阻止它 的運(yùn)行。 結(jié)束進(jìn)程掛起狀態(tài)的命令只能通過操作系統(tǒng)或父進(jìn)程發(fā)出。 進(jìn)程映像的組成進(jìn)程映像的組成 進(jìn)程映像即進(jìn)程實(shí)體,主要包括: 進(jìn)程程序塊:即被執(zhí)行的程序,規(guī)定了進(jìn)程一次運(yùn)行應(yīng)完成的 功能。通常它是純代碼,可被多個(gè)進(jìn)程共享。 進(jìn)程數(shù)據(jù)塊:是進(jìn)程的私有地址空間,存放各種私有數(shù)據(jù),用 戶棧也要在數(shù)據(jù)塊中
19、開辟,用以函數(shù)調(diào)用時(shí)存放棧幀、局部變 量等參數(shù)。 系統(tǒng)核心棧:每一個(gè)進(jìn)程都將捆綁一個(gè)核心堆棧,進(jìn)程在核心 態(tài)工作時(shí)使用,用來保存中斷/異常現(xiàn)場,保護(hù)函數(shù)調(diào)用返回的 參數(shù)和返回地址。 進(jìn)程控制塊:每一個(gè)進(jìn)程都將捆綁一個(gè)進(jìn)程控制塊,用來存儲 進(jìn)程的標(biāo)志信息、現(xiàn)場信息和控制信息。進(jìn)程創(chuàng)建時(shí)建立進(jìn)程 控制塊,進(jìn)程撤銷時(shí)回收進(jìn)程控制塊,進(jìn)程控制塊與進(jìn)程一一 對應(yīng)。 總結(jié): 進(jìn)程有四個(gè)要素組成:進(jìn)程控制塊、程序塊、數(shù)據(jù)塊、核心棧。 如果只具有前三個(gè)要素,而共享內(nèi)存空間,則稱為“用戶線 程”; 如果完全沒有用戶空間,則稱為“內(nèi)核線程”。 進(jìn)程上下文(進(jìn)程上下文(contextcontext)-操作系統(tǒng)中把進(jìn)
20、程物理實(shí)體和支持 進(jìn)程運(yùn)行的環(huán)境合稱為進(jìn)程上下文(進(jìn)程上下文(contextcontext)。 當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理器時(shí),新老進(jìn)程隨之發(fā)生上下文 切換。 進(jìn)程的運(yùn)行被認(rèn)為是在上下文中執(zhí)行。 (2)(2)進(jìn)程上下文的三個(gè)組成部分進(jìn)程上下文的三個(gè)組成部分 用戶級上下文用戶級上下文(user-level-context)(user-level-context):由用戶進(jìn)程的正文(程 序塊)、數(shù)據(jù)塊(含共享數(shù)據(jù)塊)和用戶堆棧組成。它們占用進(jìn) 程的虛擬地址空間。 寄存器上下文寄存器上下文(register-level-context):由程序狀態(tài)字(PSW) 指令計(jì)數(shù)器、控制寄存器、通用寄存器、棧指
21、針等組成。 系統(tǒng)級上下文系統(tǒng)級上下文(system-level-context)(system-level-context):包括進(jìn)程控制塊、內(nèi) 存管理信息、核心棧等組成。 2.2.進(jìn)程控制塊進(jìn)程控制塊 每個(gè)進(jìn)程都有一個(gè)也只有一個(gè)進(jìn)程控制塊PCB(Process Control Block) 進(jìn)程控制塊PCB是操作系統(tǒng)用于記錄和刻劃進(jìn)程狀態(tài)及有關(guān)信 息的數(shù)據(jù)結(jié)構(gòu),也是操作系統(tǒng)掌握進(jìn)程的唯一資料結(jié)構(gòu),是操 作系統(tǒng)控制和管理進(jìn)程的主要依據(jù)。它包括了進(jìn)程執(zhí)行時(shí)的情 況,以及進(jìn)程讓出處理器后所處的狀態(tài)、斷點(diǎn)等信息。 進(jìn)程控制塊包含三類信息:標(biāo)識信息、現(xiàn)場信息、控制信息 標(biāo)識信息:用于唯一地標(biāo)識一個(gè)進(jìn)程
22、,常常分為由用戶使用 的外部標(biāo)識符和被系統(tǒng)使用的內(nèi)部標(biāo)識號。幾乎所有操作系統(tǒng) 中進(jìn)程都被賦予一個(gè)唯一的、內(nèi)部使用的數(shù)值型的進(jìn)程號,操 作系統(tǒng)的其他控制表可以通過進(jìn)程號來交叉引用進(jìn)程控制表。 常用的標(biāo)識信息有進(jìn)程標(biāo)識符、父進(jìn)程的標(biāo)識符、用戶進(jìn)程名、 用戶組名等。 現(xiàn)場信息:用于保留進(jìn)程運(yùn)行時(shí)存放在處理器現(xiàn)場中的各種信 息,進(jìn)程讓出處理器時(shí)必須把處理器現(xiàn)場信息保存到PCB中, 當(dāng)該進(jìn)程重新恢復(fù)運(yùn)行時(shí)也應(yīng)恢復(fù)處理器現(xiàn)場?,F(xiàn)場信息包括: 通用寄存器內(nèi)容、控制寄存器(如PSW寄存器的)內(nèi)容、用戶 堆棧指針、系統(tǒng)堆棧指針等。 控制信息:常用的控制信息包括: 1)進(jìn)程調(diào)度相關(guān)信息,如進(jìn)程狀態(tài)、等待事件和等待
23、原因、 進(jìn)程優(yōu)先級、隊(duì)列指引元等; 2)進(jìn)程組成信息,如正文段指針、數(shù)據(jù)段指針; 3)進(jìn)程間通信相關(guān)信息,如消息隊(duì)列指針、信號量等互斥和 同步機(jī)制; 4)進(jìn)程在二級(輔助)存儲器內(nèi)的地址信息; 5)CPU資源的占用和使用信息,如時(shí)間片余量、進(jìn)程己占用 CPU的時(shí)間、進(jìn)程己執(zhí)行時(shí)間總和,記帳信息; 6)進(jìn)程特權(quán)信息,如在內(nèi)存訪問權(quán)限和處理器狀態(tài)方面的特 權(quán); 7)資源清單,包括進(jìn)程所需全部資源、已經(jīng)分得的資源,如 主存資源、I/O設(shè)備、打開文件表等。 進(jìn)程控制塊的集合事實(shí)上定義了一個(gè)操作系統(tǒng)的當(dāng)前狀態(tài)。進(jìn)程控制塊的集合事實(shí)上定義了一個(gè)操作系統(tǒng)的當(dāng)前狀態(tài)。 進(jìn)程控制塊的使用權(quán)或修改權(quán)均屬于操作系統(tǒng)
24、程序,包括調(diào)度進(jìn)程控制塊的使用權(quán)或修改權(quán)均屬于操作系統(tǒng)程序,包括調(diào)度 程序、資源分配程序、中斷處理程序、性能監(jiān)視和分析程序等。程序、資源分配程序、中斷處理程序、性能監(jiān)視和分析程序等。 操作系統(tǒng)是根據(jù)操作系統(tǒng)是根據(jù)PCBPCB來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。 3.進(jìn)程隊(duì)列及其管理 處于同一狀態(tài)的所有PCB鏈接在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程隊(duì)列 (Process Queues)。 進(jìn)程隊(duì)列有三種組織方式:線性方式、鏈接方式、索引方式 (1)線性方式:操作系統(tǒng)根據(jù)系統(tǒng)內(nèi)進(jìn)程的最大數(shù)目,靜態(tài) 地分配主存中地某塊空間,所有進(jìn)程的PCB都組織在一個(gè)線性 表里。 (2)鏈接
25、方式:通過PCB中的鏈接指針將其鏈接成隊(duì)列。 單向鏈接:在每一個(gè)PCB中設(shè)置一個(gè)鏈接指針,指出本隊(duì) 列中緊隨其后的下一個(gè)PCB在PCB表中的編號或者地址。 雙向鏈接時(shí):在每一個(gè)PCB中設(shè)置兩個(gè)鏈接指針,前向鏈 接指針指出本隊(duì)列中上一個(gè)PCB在PCB表中的編號或者地 址;后向鏈接指針指出本隊(duì)列中緊隨其后的下一個(gè)PCB在 PCB表中的編號或者地址。 為了標(biāo)志和識別隊(duì)列,每一個(gè)隊(duì)列均設(shè)置隊(duì)列標(biāo)志,存放于內(nèi)核空 間里。 單向鏈接的隊(duì)列標(biāo)志指針指向隊(duì)列中第一個(gè)PCB在PCB表中的編 號或者地址; 雙向鏈接的前向隊(duì)列標(biāo)志指針指向隊(duì)列中第一個(gè)PCB在PCB表中 的編號或者地址;后向隊(duì)列標(biāo)志指針隊(duì)列中最后一個(gè)
26、PCB在PCB表 中的編號或者地址; P99,圖2.14 不同狀態(tài)的進(jìn)程可以排成不同的隊(duì)列,如運(yùn)行隊(duì)列、就緒隊(duì)列、等 待隊(duì)列: 運(yùn)行隊(duì)列只有一個(gè)進(jìn)程; 就緒隊(duì)列可以按照優(yōu)先級或者先進(jìn)先出的原則排隊(duì),也可以按 照進(jìn)程優(yōu)先級的高低分成多個(gè)就緒隊(duì)列; 等待隊(duì)列通常有多個(gè),對應(yīng)不同的等待狀態(tài); 還可以將空閑PCB鏈接成自由隊(duì)列以便使用。 一個(gè)進(jìn)程從所在隊(duì)列退出的事件叫做出隊(duì);一個(gè)進(jìn)程排入指定隊(duì)列 的事件叫做入隊(duì)。 處理器調(diào)度中管理進(jìn)程出隊(duì)入隊(duì)的模塊叫做隊(duì)列管理模塊。 (3)索引方式:是線性方式的一種改進(jìn)。 利用索引表記錄不同狀態(tài)的PCB地址,系統(tǒng)建立若干索引表; 狀態(tài)相同的PCB組織在同一張索引表中,
27、每個(gè)索引表的表目 中存放PCB在PCB表中的編號或者地址; 各索引表在主存中的起始地址放在內(nèi)核的專用指針單元里。 P99,圖2.15 Linux進(jìn)程鏈表(略)。 進(jìn)程上下文切換 中斷(異常)是激活操作系統(tǒng)的唯一方法,它暫時(shí)中止當(dāng)前運(yùn) 行進(jìn)程的執(zhí)行,把處理器切換到操作系統(tǒng)的控制之下。當(dāng)操作 系統(tǒng)獲得了處理器的控制權(quán)之后,它就可以實(shí)現(xiàn)進(jìn)程切換,所 以,進(jìn)程切換必定在核心態(tài)而不是用戶態(tài)下發(fā)生。 進(jìn)程切換是讓處于運(yùn)行態(tài)的進(jìn)程中斷運(yùn)行,讓出處理器,這時(shí) 要做一次進(jìn)程上下文切換、即保存老進(jìn)程狀態(tài)而裝入被保護(hù)了 的新進(jìn)程的狀態(tài),以便新進(jìn)程運(yùn)行。 進(jìn)程切換時(shí),一個(gè)進(jìn)程讓出處理器,其寄存器上下文將被保 存到系統(tǒng)
28、級上下文的相應(yīng)的現(xiàn)場信息位置,這時(shí)內(nèi)核就把這些 信息壓入系統(tǒng)棧的一個(gè)上下文層。當(dāng)內(nèi)核處理中斷返回,或一 個(gè)進(jìn)程完成其系統(tǒng)調(diào)用返回用戶態(tài),或內(nèi)核進(jìn)行上下文切換時(shí), 內(nèi)核就從系統(tǒng)棧彈出一個(gè)上下文層。因此,上下文的切換總會(huì) 引起上下文的壓入和彈出堆棧。 允許發(fā)生進(jìn)程上下文切換的四種情況允許發(fā)生進(jìn)程上下文切換的四種情況 (1)當(dāng)進(jìn)程進(jìn)入等待態(tài)時(shí); (2)當(dāng)進(jìn)程完成其系統(tǒng)調(diào)用返回用戶態(tài),但不是最有資格獲得 CPU時(shí); (3)當(dāng)內(nèi)核完成中斷處理,進(jìn)程返回用戶態(tài)但不是最有資格獲 得CPU時(shí); (4)當(dāng)進(jìn)程執(zhí)行結(jié)束時(shí)。 進(jìn)程切換的步驟進(jìn)程切換的步驟 保存被中斷進(jìn)程的處理器現(xiàn)場信息。保存被中斷進(jìn)程的處理器現(xiàn)場信
29、息。 修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等。修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等。 把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊(duì)列。把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊(duì)列。 選擇下一個(gè)占有處理器運(yùn)行的進(jìn)程。選擇下一個(gè)占有處理器運(yùn)行的進(jìn)程。 修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息。修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息。 根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護(hù)信根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護(hù)信 息。息。 根據(jù)被選中進(jìn)程的上下文信息恢復(fù)處理器現(xiàn)場根據(jù)被選中進(jìn)程的上下文信息恢復(fù)處理器現(xiàn)場。 注意,注意,一般情況下,一般情況下,用戶態(tài)到核心態(tài)或者核心態(tài)到用用
30、戶態(tài)到核心態(tài)或者核心態(tài)到用 戶態(tài)的轉(zhuǎn)變是戶態(tài)的轉(zhuǎn)變是CPUCPU模式的改變,而不是進(jìn)程上下文切模式的改變,而不是進(jìn)程上下文切 換。換。 2. 2. 進(jìn)程上下文切換的時(shí)機(jī)進(jìn)程上下文切換的時(shí)機(jī) 進(jìn)程在運(yùn)行過程中執(zhí)行系統(tǒng)調(diào)用,產(chǎn)生中斷或者異常時(shí),操 作系統(tǒng)從當(dāng)前進(jìn)程手里獲得CPU控制權(quán),此后進(jìn)程切換可以在 任意時(shí)刻開始。 系統(tǒng)發(fā)現(xiàn)當(dāng)前進(jìn)程的時(shí)間片耗盡,或者執(zhí)行一個(gè)阻塞式系統(tǒng) 調(diào)用,都會(huì)導(dǎo)致當(dāng)前進(jìn)程讓出處理器,請求重新調(diào)度,內(nèi)核轉(zhuǎn) 向低級調(diào)度程序運(yùn)行,當(dāng)?shù)图壵{(diào)度程序選中新的就緒進(jìn)程之后, 就會(huì)執(zhí)行進(jìn)程上下文切換。 注意:低級調(diào)度和進(jìn)程切換并不一定總是連續(xù)發(fā)生!低級調(diào)度和進(jìn)程切換并不一定總是連續(xù)發(fā)生!
31、在中斷處理程序工作期間,來了一個(gè)更高優(yōu)先級的中斷,在中斷處理程序工作期間,來了一個(gè)更高優(yōu)先級的中斷, 當(dāng)這個(gè)高優(yōu)先級中斷處理結(jié)束后,不會(huì)馬上進(jìn)行進(jìn)程切換;當(dāng)這個(gè)高優(yōu)先級中斷處理結(jié)束后,不會(huì)馬上進(jìn)行進(jìn)程切換; 在各種原語操作、現(xiàn)場保護(hù)和恢復(fù)過程中,即使發(fā)生請?jiān)诟鞣N原語操作、現(xiàn)場保護(hù)和恢復(fù)過程中,即使發(fā)生請 求低級調(diào)度的事件,也不能立刻執(zhí)行低級調(diào)度和進(jìn)行進(jìn)程求低級調(diào)度的事件,也不能立刻執(zhí)行低級調(diào)度和進(jìn)行進(jìn)程 切換。切換。 在不能夠立刻進(jìn)行調(diào)度和切換的情況下,系統(tǒng)采用置請求調(diào)在不能夠立刻進(jìn)行調(diào)度和切換的情況下,系統(tǒng)采用置請求調(diào) 度,延遲至敏感性操作完成之后才進(jìn)行低級調(diào)度和進(jìn)程切換。度,延遲至敏感性操
32、作完成之后才進(jìn)行低級調(diào)度和進(jìn)程切換。 3. 3. 處理器模式切換處理器模式切換 當(dāng)中斷發(fā)生的時(shí)候,暫時(shí)中斷正在執(zhí)行的用戶進(jìn)程,把進(jìn)程從 用戶狀態(tài)切換到內(nèi)核狀態(tài),去執(zhí)行操作系統(tǒng)例行程序以獲得服 務(wù),這就是一次模式切換。此時(shí),該進(jìn)程仍在自己的上下文中 執(zhí)行,僅僅模式變了。內(nèi)核在被中斷了的進(jìn)程的上下文中對這 個(gè)中斷事件作處理,即使該中斷事件可能不是此進(jìn)程引起的。 被中斷的進(jìn)程可以是正在用戶態(tài)下執(zhí)行的,也可以是正在核心 態(tài)下執(zhí)行的,內(nèi)核都要保留足夠信息以便在后來能恢復(fù)被中斷 了的進(jìn)程執(zhí)行。 模式切換的步驟模式切換的步驟 保存被中斷進(jìn)程的處理器現(xiàn)場信息。 把用戶狀態(tài)切換到內(nèi)核狀態(tài),以便執(zhí)行中斷處理程序。
33、 如果處理中斷,可以根據(jù)規(guī)定的中斷級別設(shè)置中斷屏蔽位。 根據(jù)系統(tǒng)調(diào)用號或者中斷號,從系統(tǒng)調(diào)用表或者中斷入口地 址表中找到系統(tǒng)服務(wù)程序或者中斷處理程序的地址。 模式切換和進(jìn)程切換的聯(lián)系與區(qū)別模式切換和進(jìn)程切換的聯(lián)系與區(qū)別 模式切換不一定會(huì)引起進(jìn)程狀態(tài)的轉(zhuǎn)換,也不一定 引起進(jìn)程切換。 在完成系統(tǒng)調(diào)用服務(wù)或者中斷處理之后,可通過模 式切換來恢復(fù)被中斷進(jìn)程的運(yùn)行。 CPU上所執(zhí)行的進(jìn)程在任意時(shí)刻必須處在三個(gè)活動(dòng)范 圍之內(nèi): 用戶空間中,處于進(jìn)程上下文,用戶進(jìn)程在運(yùn)行, 使用用戶棧; 內(nèi)核空間中,處于進(jìn)程上下文,內(nèi)核代表某進(jìn)程 在運(yùn)行,使用核心棧 內(nèi)核空間中,處于中斷上下文,與進(jìn)程無關(guān),中 斷服務(wù)程序正
34、在處理特定的中斷。(Intel x86不 提供中斷專用棧,使用核心棧)。 P102 Unix/Linux的進(jìn)程切換與模式切換 中斷是激活操作系統(tǒng)的唯一途徑. 在核心態(tài)下,處理機(jī)執(zhí)行用戶程序指令,在核心態(tài)下,處理機(jī)執(zhí) 行操作系統(tǒng)內(nèi)核代碼.在計(jì)算機(jī)中,有一些操作需要委托操作系 統(tǒng)代為執(zhí)行,一些操作用戶程序可以自行完成. 可以將操作系統(tǒng)比做國家行政機(jī)構(gòu)(如法庭等職能部門),用戶 程序比做百姓、公民,有一些事情百姓可自己做主辦理,如衣食 住行;另有一些事情必須通過國家行政機(jī)關(guān)辦理,如打官司、辦 理身份證等.事情在國家行政機(jī)關(guān)辦理的過程相當(dāng)于處于核心 態(tài),百姓自己辦理的部分相當(dāng)于處于用戶態(tài). 喚醒 核心
35、態(tài)運(yùn)行 系統(tǒng)調(diào)用 或中斷(隱 含模式切 換) 模式切換 用戶態(tài)運(yùn)行 等待狀態(tài)就緒狀態(tài) 發(fā)生事件調(diào)度進(jìn)程 中斷、中斷 返回 允許的上下 文切換 進(jìn)程上下文切換和模式切換 處理器管理的一個(gè)主要工作是對進(jìn)程的控制,包括:處理器管理的一個(gè)主要工作是對進(jìn)程的控制,包括:創(chuàng)建進(jìn)程、創(chuàng)建進(jìn)程、 阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、終止進(jìn)程和撤銷阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、終止進(jìn)程和撤銷 進(jìn)程進(jìn)程等。等。 這些控制和管理功能是由這些控制和管理功能是由操作系統(tǒng)中的原語來實(shí)現(xiàn)的。操作系統(tǒng)中的原語來實(shí)現(xiàn)的。 原語原語(Primitive)(Primitive)是在核心態(tài)下運(yùn)行、完成系統(tǒng)特定功能的不
36、可分割過程。 原語和機(jī)器指令類似,其特點(diǎn)是執(zhí)行過程中不允許被中斷, 是一個(gè)不可分割的基本單位,原語的執(zhí)行是順序的而不可能是 并發(fā)的。 一種原語的實(shí)現(xiàn)方法是以系統(tǒng)調(diào)用方式提供原語接口,且采 用屏蔽中斷的方式來實(shí)現(xiàn)原語功能,以保證原語操作不被打斷 的特性。 原語和系統(tǒng)調(diào)用都使用訪管指令實(shí)現(xiàn),具有相同的調(diào) 用形式,但 原語由內(nèi)核實(shí)現(xiàn),系統(tǒng)調(diào)用由系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器 實(shí)現(xiàn); 原語不可中斷,系統(tǒng)調(diào)用執(zhí)行時(shí)允許被中斷,甚至有 些操作系統(tǒng)中系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器在用戶態(tài)運(yùn)行。 通常情況下,原語提供給系統(tǒng)進(jìn)程或系統(tǒng)服務(wù)器使用 (反之決不會(huì)形成調(diào)用關(guān)系),系統(tǒng)進(jìn)程或系統(tǒng)服務(wù) 器提供系統(tǒng)調(diào)用給系統(tǒng)程序(和用戶)使用
37、,系統(tǒng)程 序提供高層功能給用戶使用。 部分進(jìn)程控制原語:部分進(jìn)程控制原語: 1.1.進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建 (1)(1)進(jìn)程創(chuàng)建的事件來源進(jìn)程創(chuàng)建的事件來源 提交一個(gè)批處理作業(yè)。 在終端上一個(gè)交互式作業(yè)登錄。 操作系統(tǒng)創(chuàng)建一個(gè)服務(wù)進(jìn)程。 存在的進(jìn)程創(chuàng)建(孵化(spawn)新的進(jìn)程。 生成其它進(jìn)程的進(jìn)程稱父進(jìn)程(Parent Process), 被生成進(jìn)程稱子進(jìn)程(Child Process)、即一個(gè)父進(jìn) 程可以創(chuàng)建子進(jìn)程,從而形成樹形結(jié)構(gòu)。 (2)進(jìn)程的創(chuàng)建過程 在主進(jìn)程表中增加一項(xiàng),并從PCB池中取一個(gè)空白PCB。 為新進(jìn)程的進(jìn)程映像分配地址空間。傳遞環(huán)境變量,構(gòu)造共 享地址空間。 為新進(jìn)程分配資源,除內(nèi)存空間外,還有其他各種資源。 查找輔存,找到進(jìn)程正文段并裝入到進(jìn)程地址空間的正文區(qū)。 初始化進(jìn)程控制塊(如狀態(tài)、PSW、棧等),為新進(jìn)程分配 進(jìn)程標(biāo)識符。 把進(jìn)程加入就緒進(jìn)程隊(duì)列,或直接將進(jìn)程投入運(yùn)行。 通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)控程序。 實(shí)例實(shí)例 P104,Unix/Linux進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建 Linux fork( ) 創(chuàng)建子進(jìn)程但父子進(jìn)程不共享內(nèi)容 Linux clone( ) 允許定義父子進(jìn)程共享的內(nèi)容 Li
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年區(qū)塊鏈技術(shù)研究與應(yīng)用合同
- 個(gè)性化證券投資建議服務(wù)合同版B版
- 2025年度光伏發(fā)電項(xiàng)目出渣車輛勞務(wù)分包合同范本4篇
- 2025版事業(yè)單位勞動(dòng)合同書(2025年度)-試用期管理細(xì)則3篇
- 2025年度個(gè)人股權(quán)托管與退出合同4篇
- 2025年度大產(chǎn)權(quán)房屋買賣合同解除合同3篇
- 2025版美發(fā)店設(shè)備采購合同范本集錦
- 二零二五版定制門窗行業(yè)國際市場開拓合同4篇
- 二零二五版建筑廢棄物資源化利用與處理工程承包合同3篇
- 2025年度教育培訓(xùn)代銷合同模板4篇
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 心肺復(fù)蘇課件2024
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊》專題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 全國身份證前六位、區(qū)號、郵編-編碼大全
- 2024-2025學(xué)年福建省廈門市第一中學(xué)高一(上)適應(yīng)性訓(xùn)練物理試卷(10月)(含答案)
- 《零售學(xué)第二版教學(xué)》課件
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年四年級下學(xué)期期末數(shù)學(xué)試卷
- 房地產(chǎn)行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- MOOC 數(shù)字電路與系統(tǒng)-大連理工大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論