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

正文內(nèi)容

linux基礎(chǔ)教程第2章-在線瀏覽

2024-11-05 16:31本頁(yè)面
  

【正文】 門(mén)的作業(yè)隊(duì)列中等待進(jìn)入內(nèi)存執(zhí)行,要經(jīng)過(guò)一次宏觀調(diào)度,由外存進(jìn)入內(nèi)存,以進(jìn)程的形式運(yùn)行。任何一個(gè)進(jìn)程,都存在于內(nèi)存中,并且是已經(jīng)開(kāi)始運(yùn)行的動(dòng)態(tài)實(shí)體。它存在于系統(tǒng)的內(nèi)存中,是操作系統(tǒng)可感知、可控制的動(dòng)態(tài)實(shí)體,是系統(tǒng)分配各種資源、進(jìn)行調(diào)度的基本單位。在多道系統(tǒng)中,處理機(jī)在多個(gè)進(jìn)程之間來(lái)回切換,每個(gè)進(jìn)程都會(huì)在暫停、運(yùn)行這兩種狀態(tài)之間來(lái)回轉(zhuǎn)換。 進(jìn)程切換現(xiàn)場(chǎng)稱(chēng)為進(jìn)程上下文 (context),包含了一個(gè)進(jìn)程所具有的全部信息,一般包括:進(jìn)程控制塊( Process Control Block, PCB)、有關(guān)程序段和相應(yīng)的數(shù)據(jù)集,具體組成見(jiàn)圖 。一般來(lái)講, PCB記錄著進(jìn)程的所有資料,是全部或部分常駐內(nèi)存的,PCB記錄著程序段和數(shù)據(jù)集的地址指針,通過(guò)這些指針,就可以得到具體的指令和數(shù)據(jù)。 圖 進(jìn)程描述數(shù)據(jù)關(guān)系示意圖(進(jìn)程上下文) 2. Linux的 PCB Linux系統(tǒng)的進(jìn)程控制塊 PCB用一個(gè)稱(chēng)為 taskstruct的結(jié)構(gòu)體來(lái)描述。這些描述信息包括:進(jìn)程號(hào)、用戶(hù)和組標(biāo)識(shí)以及描述進(jìn)程家族關(guān)系的連接信息。 ② 用戶(hù)和組標(biāo)識(shí)( user and group identifier) Linux系統(tǒng)中有四類(lèi)不同的用戶(hù)和組標(biāo)識(shí),主要用來(lái)控制進(jìn)程對(duì)系統(tǒng)文件的訪問(wèn)權(quán)限,實(shí)現(xiàn)系統(tǒng)資源的安全訪問(wèn)。 ③ 連接信息( Links) Linux系統(tǒng)中的進(jìn)程之間形成樹(shù)狀的家族關(guān)系,連接信息記錄某個(gè)進(jìn)程的父進(jìn)程、兄弟進(jìn)程(具有相同父進(jìn)程的進(jìn)程)以及子進(jìn)程的信息,描述一個(gè)進(jìn)程在整個(gè)家族系統(tǒng)中的具體位置。 ① 進(jìn)程當(dāng)前狀態(tài) 進(jìn)程的生命周期中,總是不停地在各種狀態(tài)之間轉(zhuǎn)換,有關(guān)進(jìn)程的狀態(tài)及轉(zhuǎn)換規(guī)則,在下一小節(jié)討論。 ③ 記時(shí)信息 包括時(shí)間和定時(shí)器,給出進(jìn)程占有和利用 CPU的情況,是調(diào)度的依據(jù),也是進(jìn)行統(tǒng)計(jì)、分析以及記費(fèi)的依據(jù)。Linux支持典型的 UNIX進(jìn)程間通信機(jī)制 —— 信號(hào)、管道,也支持 System Ⅴ 通信機(jī)制 —— 共享內(nèi)存、信號(hào)量和消息隊(duì)列。通過(guò)這些資料,進(jìn)程就可以得到運(yùn)行需要的相關(guān)程序段以及必要的數(shù)據(jù)。相關(guān)程序段和數(shù)據(jù)集以及處理機(jī)現(xiàn)場(chǎng)(或處理機(jī)狀態(tài))都必須保存。 taskstruct是 Linux系統(tǒng)的進(jìn)程控制塊( PCB),通過(guò)對(duì) PCB的操作,系統(tǒng)為進(jìn)程分配資源并進(jìn)行調(diào)度,最終完成進(jìn)程的創(chuàng)建和撤銷(xiāo)。如果這個(gè)進(jìn)程要進(jìn)入運(yùn)行,首先根據(jù)其中的 CPU現(xiàn)場(chǎng)信息來(lái)恢復(fù)運(yùn)行現(xiàn)場(chǎng),然后根據(jù)資源信息獲取對(duì)應(yīng)的程序段和數(shù)據(jù)集,接著上次的位置開(kāi)始執(zhí)行,同時(shí)通過(guò) PCB中的通信信息和其他進(jìn)程協(xié)同工作。 1. 進(jìn)程的基本狀態(tài) 在分時(shí)系統(tǒng)中,一個(gè)進(jìn)程擁有了所需要的全部資源,就可以開(kāi)始執(zhí)行,當(dāng)分配的時(shí)間片結(jié)束,讓出 CPU資源,這種只要能夠占有 CPU就能進(jìn)入執(zhí)行的狀態(tài)稱(chēng)為就緒狀態(tài)。等待狀態(tài)、就緒狀態(tài)和執(zhí)行狀態(tài)是一個(gè)進(jìn)程所具有的最基本的三種狀態(tài),見(jiàn)圖 。 表 Linux系統(tǒng)( — )進(jìn)程狀態(tài)表 進(jìn)程狀態(tài) 值 說(shuō)明 TASKRUNNING 0 運(yùn)行態(tài) TASKINTERRUPTIBLE 1 等待態(tài),可中斷 TASKUNINTERRUPTIBLE 2 等待態(tài),不可中斷 TASKZOMBIE 4 僵死態(tài) TASKSTOPPED 8 暫停態(tài) TASKSWAPPING 16 交換態(tài)( ) TASKEXCLUSIVE 32 獨(dú)占態(tài) (1) 運(yùn)行狀態(tài)( running) Linux系統(tǒng)中的運(yùn)行狀態(tài)實(shí)際包含了上述基本狀態(tài)中的執(zhí)行和就緒兩種狀態(tài),進(jìn)程到底是正在運(yùn)行還是處于就緒狀態(tài)準(zhǔn)備運(yùn)行,要靠當(dāng)前是否占有 CPU資源來(lái)區(qū)分。處于這種狀態(tài)的進(jìn)程都在等待某個(gè)事件或某個(gè)資源,可中斷等待狀態(tài)的進(jìn)程可以被信號(hào)喚醒而進(jìn)入就緒狀態(tài)等待調(diào)度,而不可中斷等待狀態(tài)的進(jìn)程是因?yàn)橛布Y源無(wú)法滿(mǎn)足,不能被信號(hào)喚醒,必須等到所等待的資源得到之后由特定的方式喚醒。 (4) 暫停狀態(tài) 處于暫停狀態(tài)的進(jìn)程 , 一般都是由運(yùn)行狀態(tài)轉(zhuǎn)換而來(lái) , 等待某種特殊處理 。 (5) 交換狀態(tài) 處于交換狀態(tài)的進(jìn)程正在執(zhí)行內(nèi)存 、 外存的交換工作 。 (6) 獨(dú)占狀態(tài) 它應(yīng)該是等待狀態(tài)的一種,處于獨(dú)占狀態(tài)的進(jìn)程位于等待隊(duì)列中,當(dāng)?shù)却氖录l(fā)生時(shí),只有處于這種狀態(tài)的進(jìn)程被喚醒,其他處于可中斷和不可中斷等待狀態(tài)的進(jìn)程則繼續(xù)等待。 來(lái)看 Linux系統(tǒng)進(jìn)程的狀態(tài)轉(zhuǎn)換情況。見(jiàn)圖 。從圖的左下方開(kāi)始看,系統(tǒng)在某種特定的情況下,響應(yīng)某個(gè)要求,首先分配各種資源,創(chuàng)建一個(gè)新的進(jìn)程,進(jìn)程進(jìn)入就緒隊(duì)列。這樣,進(jìn)程的整個(gè)生命周期中,大致的轉(zhuǎn)換路徑總是沿著三個(gè)閉合回路進(jìn)行。進(jìn)程進(jìn)入就緒態(tài),放入可執(zhí)行隊(duì)列等待,一旦被調(diào)度函數(shù)選中,就切換現(xiàn)場(chǎng),進(jìn)入運(yùn)行狀態(tài),等自己的時(shí)間片耗盡之后,馬上保護(hù)現(xiàn)場(chǎng),讓出 CPU,轉(zhuǎn)入就緒狀態(tài),等待新的調(diào)度。處于執(zhí)行狀態(tài)的進(jìn)程,有時(shí)需要等待某個(gè)事件或某種資源的發(fā)生,這時(shí),繼續(xù)占有 CPU也無(wú)法開(kāi)展工作,就轉(zhuǎn)入等待狀態(tài), CPU由下一個(gè)被調(diào)度的進(jìn)程占有。 執(zhí)行狀態(tài)、暫停狀態(tài)和就緒狀態(tài)構(gòu)成第三個(gè)回路。 一個(gè)處于執(zhí)行狀態(tài)的進(jìn)程調(diào)用退出函數(shù) exit之后,進(jìn)程就會(huì)進(jìn)入僵死狀態(tài),這種狀態(tài)下,進(jìn)程釋放了PCB之外的所有系統(tǒng)資源。 僵死進(jìn)程的父進(jìn)程通過(guò) PCB了解到該進(jìn)程所處的狀態(tài)后,采取相應(yīng)的處理措施,回收 PCB,這個(gè)進(jìn)程就完成了它的使命,從僵死走向徹底消亡,上圖右上方的虛箭頭表示了這種結(jié)局。 進(jìn)程狀態(tài)之間的轉(zhuǎn)換轉(zhuǎn)換通常由三種不同的方式控制:進(jìn)程控制原語(yǔ)、系統(tǒng)核心函數(shù)(比如調(diào)度)、和外部事件發(fā)生(比如中斷)。用于進(jìn)程控制的原語(yǔ)有:創(chuàng)建原語(yǔ)、撤銷(xiāo)原語(yǔ)、阻塞原語(yǔ)、喚醒原語(yǔ)等。進(jìn)程創(chuàng)建原語(yǔ)的主要任務(wù)是形成進(jìn)程的 PCB, 因此,調(diào)用者必須提供有關(guān)的參數(shù),例如進(jìn)程名、進(jìn)程優(yōu)先級(jí)、進(jìn)程正文段起始地址、資源清單等。進(jìn)程撤銷(xiāo)原語(yǔ)根據(jù)調(diào)用者提供的信息,找到指定的進(jìn)程,回收其占用的資源和 PCB。阻塞原語(yǔ)主要完成保護(hù) CPU現(xiàn)場(chǎng)的工作, 即首先中斷處理機(jī)保存該進(jìn)程的 CPU現(xiàn)場(chǎng),然后把被阻塞的進(jìn)程置為等待狀態(tài),插入到相應(yīng)的等待隊(duì)列,最后轉(zhuǎn)入進(jìn)程調(diào)度程序,從就緒隊(duì)列中選擇一個(gè)進(jìn)程投入運(yùn)行。 進(jìn)程控制原語(yǔ)由系統(tǒng)執(zhí)行。 進(jìn)程約束 現(xiàn)代操作系統(tǒng)中,程序并發(fā)執(zhí)行,多個(gè)進(jìn)程各自獨(dú)立地運(yùn)行,同時(shí)競(jìng)爭(zhēng)和共享系統(tǒng)中有限的資源,這種競(jìng)爭(zhēng)與合作構(gòu)成了系統(tǒng)進(jìn)程之間的約束關(guān)系。 比較簡(jiǎn)單的情況,兩進(jìn)程共享一個(gè)長(zhǎng)度為 N( N0)的有界緩沖區(qū),一個(gè)進(jìn)程 Pp往緩沖區(qū)中送數(shù)據(jù),是生產(chǎn)者,另一個(gè)進(jìn)程 Pc從緩沖區(qū)中讀取數(shù)據(jù),是消費(fèi)者,如圖 ,下面來(lái)討論它們間的約束關(guān)系。這種不允許多個(gè)并發(fā)進(jìn)程交叉執(zhí)行的資源稱(chēng)為臨界資源,臨界的程序段資源稱(chēng)為臨界
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1