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

正文內(nèi)容

進(jìn)程管理經(jīng)典培訓(xùn)講義-全文預(yù)覽

  

【正文】 rue。 while (flag[1]) if(turn==l) { flag[0] = false。但是,由于 P1比 P2的優(yōu)先級(jí)低,它將永遠(yuǎn)不會(huì)被調(diào)度執(zhí)行。 ? 可能發(fā)生死鎖現(xiàn)象。 ② 缺點(diǎn): ? 使用了忙等待。進(jìn)程離開(kāi)臨界區(qū)時(shí),它把 bolt重置為 0,允許另一個(gè)進(jìn)程進(jìn)入臨界區(qū)。 臨界區(qū) exchange (keyi, bolt)。 用 exchange指令實(shí)現(xiàn)互斥舉例: const int n = / * 進(jìn)程數(shù) * / int bolt。 memory=register。 parbegin (P⑴ , P⑵ ? , P(n))。 用 testset指令實(shí)現(xiàn)互斥舉例: const int n = / * 進(jìn)程數(shù) * / int bolt。 } else return false。這幾個(gè)動(dòng)作在一個(gè)指令周期中執(zhí)行,不會(huì)受到其它指令的干擾。進(jìn)程可以通過(guò)下面的方法實(shí)現(xiàn)互斥。當(dāng)進(jìn)程用完臨界資源時(shí),要開(kāi)放臨界區(qū),以便其它進(jìn)程進(jìn)入。我們把訪問(wèn)臨界資源的代碼段稱為臨界區(qū)。例如打印機(jī)、磁帶機(jī)等硬件設(shè)備和變量、隊(duì)列等數(shù)據(jù)結(jié)構(gòu),如果有多個(gè)進(jìn)程同時(shí)去使用這類資源就會(huì)造成混亂。另外,還有一些進(jìn)程由于共享某一公有資源,而這類資源對(duì)于不同的進(jìn)程必須交叉使用,如打印機(jī),當(dāng)一個(gè)進(jìn)程正在使用時(shí),另一個(gè)進(jìn)程必須等待,這就產(chǎn)生間接制約關(guān) 系。執(zhí)行時(shí),首先找到被喚醒進(jìn)程的 內(nèi)部標(biāo)識(shí) ,讓該進(jìn)程脫離阻塞隊(duì)列,將現(xiàn)行狀態(tài)改變?yōu)榫途w狀態(tài),然后插入就緒隊(duì)列等待調(diào)度運(yùn)行。其實(shí)現(xiàn)過(guò)程是:首先中斷 CPU,停止進(jìn)程運(yùn)行, 將 CPU 的現(xiàn)行狀態(tài)存放到 PCB 的 CPU 狀態(tài)保護(hù)區(qū)中,然后將該進(jìn)程置阻塞狀態(tài),并把它插入到等待隊(duì)列中。撤銷原語(yǔ)的實(shí)現(xiàn)過(guò)程是:根據(jù)提供的欲被撤銷進(jìn)程的名字,在 PCB 鏈中查找對(duì)應(yīng)的 PCB,若找不到要撤銷的進(jìn)程的名字或該進(jìn)程尚未停止,則轉(zhuǎn)入異常終止處理程序,否則從 PCB 鏈中撤銷該進(jìn)程及其所有子孫進(jìn)程 (因?yàn)閮H撤銷該進(jìn)程 可能導(dǎo)致其子進(jìn)程與進(jìn)程家族隔離開(kāi)來(lái),而成為難以控制的進(jìn)程 );檢查此進(jìn)程是否有等待讀取的消息,有則釋放所有緩沖區(qū),最后釋放該進(jìn)程的工作空間和 PCB 空間,以及其它資源。所以,創(chuàng)建一個(gè)新進(jìn)程的過(guò)程是:首先申請(qǐng) PCB空間,根據(jù)建立的進(jìn)程名字查找 PCB表,若找到了則非正常終止 (即已有同名進(jìn)程 ),否則,申請(qǐng)分配一塊 PCB 空間;其次,為新進(jìn)程分配資源,若進(jìn)程的程序或數(shù)據(jù)不在內(nèi)存中,則應(yīng)將它們從外存調(diào)入分配的內(nèi)存中;然后把有關(guān)信息 (如進(jìn)程名字、信號(hào)量和狀態(tài)位等 )分別填入 PCB 的相應(yīng)欄目中;最后把 PCB 插入到就緒隊(duì)列中。 原語(yǔ)是操作系統(tǒng)核心(不是由進(jìn)程而是由一組程序模塊所組成)的一個(gè)組成部分,并且常駐內(nèi)存,通常在管態(tài)下執(zhí)行。 進(jìn)程的控制通常由原語(yǔ)完成。 2 進(jìn)程控制 進(jìn)程有由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡的生命周期,因此操作系統(tǒng)要有對(duì)進(jìn)程生命周期的各個(gè)環(huán)節(jié)進(jìn)行控制的功能,這就是進(jìn)程控制。 ② 系統(tǒng)進(jìn)程之間的關(guān)系由操作系統(tǒng)自己負(fù)責(zé), 這樣有利于增加系統(tǒng)的并行性,提高資源的利用率;用戶進(jìn)程之間的關(guān)系主要由用戶自己負(fù)責(zé),為了便于用戶管理自己的任務(wù),操作系統(tǒng)提供一套簡(jiǎn)便的任務(wù)調(diào)用命令作為協(xié)調(diào)手段,并 在用戶區(qū)根據(jù)用戶作業(yè)的性質(zhì)(是單任務(wù)還是多任務(wù))裝入相應(yīng)的任務(wù)調(diào)度程序 。 ⑤ 進(jìn)程具有異步性(不確定性)。 ③ 進(jìn)程具有結(jié)構(gòu)特性。 ② 進(jìn)程具有并發(fā)性。 ① 進(jìn)程具有動(dòng)態(tài)性。按鏈接方式組織 PCB的情況如圖 6。目前常用的 PCB的組織方式有以下三種: ① 線性表方式:不論進(jìn)程的狀態(tài)如何,將所有的 PCB 連續(xù)地存放在內(nèi)存的系統(tǒng)區(qū)。它用于將處于同一狀態(tài)的進(jìn)程鏈接成一個(gè)隊(duì)列,在該單元中存放下一進(jìn)程 PCB首址。 ⑥ 資源清單。一般根據(jù)進(jìn)程的輕重緩急程度為進(jìn)程指定一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)用優(yōu)先數(shù)表示。指出 進(jìn)程的程序和數(shù)據(jù)部分在內(nèi)存或外存中的物理位置。進(jìn)程標(biāo)識(shí)名,通常用字母和數(shù)字組成的“串”表示,進(jìn)程標(biāo)識(shí)數(shù)則是在一定數(shù)值范圍內(nèi)的進(jìn)程編號(hào)。 進(jìn)程控制塊是進(jìn)程存在的惟一標(biāo)志,它跟蹤程序執(zhí)行的情況,表明了進(jìn)程在當(dāng)前時(shí)刻的狀態(tài)以及與其它進(jìn)程和資源的關(guān)系。處于靜止阻塞狀態(tài)的進(jìn)程,若用激活原語(yǔ)激活后,該進(jìn)程將轉(zhuǎn)變?yōu)榛顒?dòng)阻塞狀態(tài)。當(dāng)進(jìn)程處于未被掛起的阻塞狀態(tài)時(shí),稱它是處于活動(dòng)阻塞狀態(tài),當(dāng)用掛起原語(yǔ)將它掛起后,進(jìn)程便轉(zhuǎn)變?yōu)殪o止阻塞狀態(tài),處于靜止阻塞狀態(tài)的進(jìn)程在其所期待的事件出現(xiàn)后,將從靜止阻塞變?yōu)殪o止就緒。 引入掛起狀態(tài)后,又將增加從掛起狀態(tài)(又稱為靜止?fàn)顟B(tài))到非掛起狀態(tài)(又稱為活動(dòng)狀態(tài))的轉(zhuǎn)換:或者相反。于是,正在運(yùn)行的進(jìn)程就由運(yùn)行狀態(tài)變?yōu)榫途w狀態(tài)。即阻塞進(jìn)程的 I/O請(qǐng)求完成時(shí),發(fā)生此狀態(tài)變遷。即運(yùn)行進(jìn)程遇 I/O請(qǐng)求時(shí),發(fā)生此狀態(tài)變遷。即就緒狀態(tài)的進(jìn)程,一旦被調(diào)度進(jìn)程選中,獲 得 CPU,便發(fā)生此 狀態(tài) 變遷。 I/O 完成 時(shí)間片完 進(jìn)程調(diào)度 I/O 請(qǐng)求 圖 3 進(jìn)程狀態(tài)變遷圖 ① 就緒 → 運(yùn)行。等待 CPU 的狀態(tài)。 ② 阻塞狀態(tài)。運(yùn)行中的進(jìn)程具有三種基本狀態(tài):運(yùn)行、阻塞、就緒,這三種狀態(tài)構(gòu)成了最簡(jiǎn)單的進(jìn)程生命周期模型,進(jìn)程在其生命周期內(nèi)處于這三種狀態(tài)之一,其狀態(tài)將隨著自身的推進(jìn)和外界環(huán)境的變化而變化,由一種狀態(tài)變遷到另一種狀態(tài)。 上述這些從不同角度對(duì)進(jìn)程所做的解釋或所下的定義,有些是近似的,有些則側(cè)重某一方面,這說(shuō)明進(jìn)程這一概念尚未完全統(tǒng)一,但長(zhǎng)期以來(lái)卻巳廣泛而成功地用于許多系統(tǒng)之中,成為構(gòu)造操作系統(tǒng)的不可缺少的強(qiáng)有力的工具。 中國(guó)最大的管理資源中心 33 ② 一個(gè)進(jìn)程是一系列逐一執(zhí)行的操作,而操作的確切含義則有賴于我們以何種詳盡程度來(lái)描述進(jìn)程( )。在這種情況下,程序這 個(gè)靜態(tài)概念已經(jīng)不能如實(shí)地反映程序活動(dòng)的這些特征。為了準(zhǔn)確地描述程序的執(zhí)行過(guò)程,設(shè)計(jì)出高質(zhì)量的操作系統(tǒng),就不能再用靜態(tài)的觀點(diǎn),而應(yīng)該用動(dòng)態(tài)的觀點(diǎn)來(lái)刻畫程序。因此,每個(gè)可以并發(fā)執(zhí)行的程序段,都可能會(huì)因外界條件的限制而不能運(yùn)行,被迫處于阻塞狀態(tài)。 ① 直接制約關(guān)系通常是在彼此之間有邏輯關(guān)系的兩個(gè)并發(fā)執(zhí)行的程序之間發(fā)生的,一般是由于各個(gè)程序段要求共享信息引起的。像上例中的觀察者與報(bào)告者程序,它們各自完成獨(dú)立的工作,通過(guò)共享變量 n 又建立了相互依賴與制約關(guān)系。如前所述,程序在順序執(zhí)行時(shí),程序和“計(jì)算”之間保持一一對(duì)應(yīng)的關(guān)系,但在并發(fā)執(zhí)行時(shí),一個(gè)并發(fā)程序可為多個(gè)用戶作業(yè)調(diào)用,而使該程序處于多個(gè)“執(zhí)行”過(guò)程中,從而形成了多個(gè)“計(jì)算”,這就是說(shuō),多個(gè)“計(jì)算’可能是在不同數(shù)據(jù)集上執(zhí)行同一程序,所以程序和“計(jì)算”不再一一對(duì)應(yīng)。 ② 失去封閉性 程序在并發(fā)執(zhí)行時(shí), 多個(gè)程序共享系統(tǒng)中的所有資源,因此這些資源的使用狀態(tài)將由多個(gè)程序改變,使程序運(yùn)行失去了封閉性。 void observer(void) { while (1) { ? n=n+1; remainder of observer; } } void reporter(void) { while(TRUE) { ? print(n); n=0; remainder of reporter; } } void main( ) 中國(guó)最大的管理資源中心 31 { parbegin(observer( ),reporter( ))。在一條單向行駛的公路上經(jīng)常有卡車通過(guò)。此外從圖中可以看出: I2 與 Cl、 I3 與 C2 與 P I4 與 C3 與 中國(guó)最大的管理資源中心 30 P2是重疊的。例如:輸入程序在完成第 i 個(gè)程序的輸入操作后,計(jì)算程序在對(duì)第 i 個(gè)程序進(jìn)行計(jì)算的同時(shí),可再啟動(dòng)輸入程序,進(jìn)行第 i+1 個(gè)程序的輸入操作,這就使得第 i+1 個(gè)程序 的輸入操作和第 i 個(gè)程序的計(jì)算操作能并發(fā)執(zhí)行。 程序的并發(fā)執(zhí)行及其特性 現(xiàn)代計(jì)算機(jī)在 物理 設(shè) 計(jì)和邏輯設(shè)計(jì)中采用并行操作技術(shù),使多種硬件設(shè)備能并行工作。 所謂順序性指的是 程序的各部分能夠嚴(yán)格地按程序所確定的邏輯次序順序地執(zhí)行。 ③ 結(jié)果無(wú)關(guān)性。除了人為的干預(yù)造成機(jī)器暫時(shí)停頓外,前一動(dòng)作的結(jié)束就意味著后一動(dòng)作的開(kāi)始。在單道環(huán)境下,每一程序的這三個(gè)程序只能是一個(gè)接一個(gè)地順序執(zhí)行,也就是輸入、計(jì)算和打印三者串行工作,并且前一個(gè)程序結(jié)束后,才能執(zhí)行下一個(gè)程序。掌握進(jìn)程通信、死鎖的概念 及其解決方法,了解 Linux中進(jìn)程的實(shí)現(xiàn)技術(shù)。 程序的并發(fā)執(zhí)行是在多道程序環(huán)境下完成的,而在單道程序工作環(huán)境中,程序是順序執(zhí)行的。在單 CPU條件下同時(shí)運(yùn)行幾道程序,從宏觀上看,這幾道程序是同時(shí)向前推進(jìn),但從微觀上觀察則是由單 CPU 按照時(shí)間段輪流執(zhí)行每個(gè)程序的一小段,使每個(gè)程序都運(yùn)行到程序的開(kāi)始與結(jié)束之間的某一處。在我們使用計(jì)算機(jī)運(yùn)行程序的時(shí)候,時(shí)常會(huì)一邊聽(tīng)著光盤上的音樂(lè),一邊從網(wǎng)上下載著軟件,一邊還編輯著文本文件。 中國(guó)最大的管理資源中心 28 進(jìn)程管理 操作系統(tǒng)中最核心的概念是進(jìn)程,進(jìn)程是對(duì)正在運(yùn)行的程序的一種抽象,是資源分配和獨(dú)立運(yùn)行的基本單位,操作系統(tǒng)的所有內(nèi)容都是圍繞進(jìn)程展開(kāi)的,操作系統(tǒng)的四大特征也是基于進(jìn)程而形成的。 1 進(jìn)程的概念 程序的并發(fā)執(zhí)行 現(xiàn)在所有的計(jì)算機(jī)都能同時(shí)做幾件事情。如果這幾道程序同時(shí)在不同的 CPU 上執(zhí)行,則稱之為“并行”,如果它們分時(shí)地運(yùn)行在同一個(gè) CPU 上則稱之為“并發(fā)”。因此,邏輯上的并行稱為“并發(fā)”。 讀者應(yīng)重點(diǎn)掌握進(jìn)程及線程的概念及其狀態(tài)轉(zhuǎn)換,實(shí)現(xiàn)進(jìn)程同步與互斥的方法以及進(jìn)程的各種調(diào)度策略。 假設(shè)系統(tǒng)中有 2個(gè)程序,而每個(gè)程序都由三個(gè)程序段 I、C、 P 組成,其中, I 表示從輸入機(jī)上讀入程序的信息, C 表示執(zhí)行程序的計(jì)算過(guò)程, P 表示在打印機(jī)上打印出程序的計(jì)算結(jié)果。當(dāng)順序程序在 CPU 上執(zhí)行時(shí), CPU嚴(yán)格地順序執(zhí)行程序規(guī)定的動(dòng)作,每個(gè)動(dòng)作都必須在前一動(dòng)作結(jié)束后才能開(kāi)始。程序在執(zhí)行過(guò)程中,獨(dú)占全部資源,除了初始狀態(tài)外,只有程序本身規(guī)定的動(dòng)作才能改變這些資源的狀態(tài)。 上述特點(diǎn)概括起來(lái)就是程序的順序性、封閉性和可再現(xiàn)性。這給程序的調(diào)試帶來(lái)了很大的方便。 對(duì)于任何一個(gè)程序 i,其輸入操作 Ii、計(jì)算操作 Ci、打印操作 Pi這三者必須順序執(zhí)行,但對(duì) n 個(gè)程序來(lái)說(shuō),則有可能并發(fā)執(zhí)行。這說(shuō)明有些操作必須在其它操作之后執(zhí)行,另外有些操作卻可以并行地執(zhí)行。 設(shè)有觀察者和報(bào)告者并行工作。 int n=0。這就 使 并發(fā)執(zhí)行的程序具有 執(zhí)行 — 暫停 — 執(zhí)行的活動(dòng)規(guī)律。通常把計(jì)算機(jī)執(zhí)行程序的活動(dòng),稱為“計(jì)算”,顯 然,“計(jì)算”是一個(gè)動(dòng)態(tài)的概念。系統(tǒng)中各個(gè)并發(fā)程序的活動(dòng)都有一定的獨(dú)立性,它們分別提供一種用戶或系統(tǒng)功能,如各用戶作業(yè)的活動(dòng)各提供一種用戶需要的功能,它們之間相互獨(dú)立,而又有相互依賴和制約關(guān)系。程序之間的 制約關(guān)系有兩種:直接制約關(guān)系和間接制約關(guān)系。 正是因?yàn)樵谶@些可以并發(fā)執(zhí)行的程序段 之間,存在著某種相互制約的關(guān)系,所以每個(gè)程序段的運(yùn)行都與運(yùn)行環(huán)境密切相關(guān),它不僅要受到其它程序段活動(dòng)的制約,而且還要依賴當(dāng)時(shí)系統(tǒng)資源的分配情況。因此,必須從變化的角度,動(dòng)態(tài)地分析研究這些可以并發(fā)執(zhí)行的程序段,真實(shí)地反映出系統(tǒng)的獨(dú)立性、并發(fā) 性、動(dòng)態(tài)性和相互制約性。總之,程序活動(dòng)不再處于一個(gè)封閉系統(tǒng)中,而出現(xiàn)了許多新的特征,即:獨(dú)立性、并發(fā)性、動(dòng)態(tài)性和相互制約性。但是,迄今為止,對(duì)這一概念尚無(wú)一個(gè)非常確切的、令人滿意的、統(tǒng)一的定義,不同的人,站在不同的角度,對(duì)進(jìn)程進(jìn)行了不同的描述,下面列舉幾個(gè)操作系統(tǒng)的權(quán)威人士對(duì)“ 進(jìn)程”所下的定義: ① 行為的一個(gè)規(guī)則叫做程序,程序在 CPU上執(zhí)行時(shí)所發(fā)生的活動(dòng)稱為進(jìn)程( Dijkstra)。 ⑤ 一個(gè)進(jìn)程是由偽 CPU 執(zhí)行的一個(gè)程序( )。由于進(jìn)程執(zhí)行時(shí)的間斷性,決定了進(jìn)程可能具 有多種狀態(tài)。在單 CPU系統(tǒng)中,只有一個(gè)進(jìn)程處于運(yùn)行狀態(tài);在多 CPU系統(tǒng)中,可以有多個(gè)進(jìn)程處于運(yùn)行狀態(tài)。 ③ 就緒狀態(tài)。 進(jìn)程的各個(gè)狀態(tài)變遷如圖 3。進(jìn)程調(diào)度程序根據(jù)調(diào)度算法把 CPU 分配給某個(gè)就緒進(jìn)程,建立該進(jìn)程運(yùn)行狀態(tài)標(biāo)記,并把控制轉(zhuǎn)到該進(jìn)程,把它由就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài),這樣進(jìn)程就投入運(yùn)行。如,運(yùn)行中的進(jìn)程需要等待文件的輸入,系統(tǒng)便自動(dòng)轉(zhuǎn)入系統(tǒng)控制程序,進(jìn)行文件輸入,在文件輸入過(guò)程中,該進(jìn)程進(jìn)入阻塞狀態(tài),而系統(tǒng)將控制轉(zhuǎn)給進(jìn)程調(diào)度程序,進(jìn)程調(diào)度程序根據(jù)調(diào)度算法把 CPU分配給處于就緒狀態(tài)的其它進(jìn)程。僅當(dāng)進(jìn)程調(diào)度程序把 CPU 再次分配給它時(shí),才可恢復(fù)曾被中斷的現(xiàn)場(chǎng)繼續(xù)運(yùn)行。一個(gè)正在運(yùn)行的進(jìn)程
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1