版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章進(jìn)程管理本章學(xué)習(xí)目標(biāo)本章主要介紹進(jìn)程的概念、狀態(tài)、構(gòu)成以及Linux進(jìn)程的相關(guān)知識(shí)。掌握進(jìn)程的概念掌握進(jìn)程的描述、狀態(tài)及轉(zhuǎn)換理解進(jìn)程的特征了解Linux進(jìn)程的描述及進(jìn)程通信掌握進(jìn)程的同步與互斥,并能靈活運(yùn)用理解線(xiàn)程的概念及特征第2章進(jìn)程管理1
教學(xué)內(nèi)容
2.1進(jìn)程的基本概念2.2進(jìn)程的描述2.3進(jìn)程控制2.4進(jìn)程的同步與互斥2.5進(jìn)程同步問(wèn)題舉例2.6進(jìn)程通信2.7線(xiàn)程
本章小結(jié)
22.1進(jìn)程的基本概念
2.1.1程序的順序執(zhí)行及其特征1.程序的順序執(zhí)行
程序是人們要計(jì)算機(jī)完成的一些指令序列,是一個(gè)按嚴(yán)格次序、順序執(zhí)行的操作序列,是一個(gè)靜態(tài)的概念。我們把一個(gè)具有獨(dú)立功能的程序獨(dú)占處理機(jī),直到最后結(jié)束的過(guò)程稱(chēng)為程序的順序執(zhí)行。2.程序順序執(zhí)行時(shí)的特征(1)順序性。(2)封閉性。(3)可再現(xiàn)性。第2章進(jìn)程管理32.1.2程序的并發(fā)執(zhí)行及其特征1.并發(fā)執(zhí)行的概念
所謂程序的并發(fā)性,是指多道程序在同一時(shí)間間隔內(nèi)同時(shí)發(fā)生。程序的并發(fā)執(zhí)行可總結(jié)為:一組在邏輯上互相獨(dú)立的程序或程序段在執(zhí)行過(guò)程中,其執(zhí)行時(shí)間在客觀上互相重疊,即一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開(kāi)始的一種執(zhí)行方式。第2章進(jìn)程管理42.程序并發(fā)執(zhí)行時(shí)的特征(1)間斷性程序在并發(fā)執(zhí)行時(shí),由于它們共享系統(tǒng)資源,以及為完成同一項(xiàng)任務(wù)而相互合作,致使這些并發(fā)執(zhí)行的程序之間,形成了相互制約的關(guān)系。相互制約將導(dǎo)致并發(fā)程序具有“執(zhí)行——暫停——執(zhí)行”這種間斷性的活動(dòng)規(guī)律。(2)失去封閉性某程序在執(zhí)行時(shí),必然會(huì)受到其它程序的影響。(3)不可再現(xiàn)性在并發(fā)環(huán)境下,同一個(gè)程序執(zhí)行多次,執(zhí)行的過(guò)程可能不同。用程序作為描述其執(zhí)行過(guò)程以及共享資源的基本單位是不合適的。因此引入了進(jìn)程作為描述程序的執(zhí)行過(guò)程、共享資源的基本單位。第2章進(jìn)程管理52.1.3進(jìn)程的定義與特征1.進(jìn)程的定義人們對(duì)進(jìn)程下過(guò)許多定義。現(xiàn)列舉其中的幾種:(1)進(jìn)程是程序的一次執(zhí)行。(2)進(jìn)程是可以和別的進(jìn)程并發(fā)執(zhí)行的計(jì)算。(3)進(jìn)程就是一個(gè)程序在給定活動(dòng)空間和初始條件下,在一個(gè)處理機(jī)上的執(zhí)行過(guò)程。(4)進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過(guò)程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位(5)進(jìn)程是動(dòng)態(tài)的,有生命周期的活動(dòng)。內(nèi)核可以創(chuàng)建一個(gè)進(jìn)程,最終將由內(nèi)核終止該進(jìn)程使其消亡。第2章進(jìn)程管理6進(jìn)程和程序之間的關(guān)系
進(jìn)程和程序是兩個(gè)完全不同的概念,但又有密切的聯(lián)系。它們之間的主要區(qū)別是:(1)程序是靜態(tài)的概念,;而進(jìn)程則是程序的一次執(zhí)行過(guò)程。它是動(dòng)態(tài)的概念。(2)進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的單位,能與其它進(jìn)程并發(fā)執(zhí)行;而程序是不能作為一個(gè)獨(dú)立運(yùn)行的單位而并發(fā)執(zhí)行的。(3)程序和進(jìn)程無(wú)一一對(duì)應(yīng)的關(guān)系。(4)各個(gè)進(jìn)程在并發(fā)執(zhí)行過(guò)程中會(huì)產(chǎn)生相互制約關(guān)系,而程序本身是靜態(tài)的,不存在這種異步特征。第2章進(jìn)程管理72.進(jìn)程的特征從進(jìn)程與程序的區(qū)別可以看出,進(jìn)程具有如下特征:(1)動(dòng)態(tài)性動(dòng)態(tài)性是進(jìn)程最基本的特性。進(jìn)程由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,以及因撤消而消亡。(2)并發(fā)性這是指多個(gè)進(jìn)程實(shí)體,同存于內(nèi)存中,能在一段時(shí)間段內(nèi)同時(shí)執(zhí)行。并發(fā)性是進(jìn)程的重要特征,同時(shí)也是操作系統(tǒng)的重要特征。提高并發(fā)性,可以提高系統(tǒng)的效率。(3)獨(dú)立性進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。(4)異步性這是指進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn);或者說(shuō),進(jìn)程按異步方式運(yùn)行。(5)結(jié)構(gòu)特征從結(jié)構(gòu)上看,進(jìn)程實(shí)體是由程序段、數(shù)據(jù)段及進(jìn)程控制塊三部分組成,也稱(chēng)這三部分為進(jìn)程映像。第2章進(jìn)程管理82.1.4進(jìn)程的基本狀態(tài)及轉(zhuǎn)換1.進(jìn)程的三個(gè)基本狀態(tài)進(jìn)程通常至少有三種基本狀態(tài):(1)就緒狀態(tài)(ready)進(jìn)程運(yùn)行所需的外部條件滿(mǎn)足,但因?yàn)槠渌M(jìn)程已占用CPU,所以暫時(shí)不能運(yùn)行。(2)執(zhí)行狀態(tài)(running)外部條件滿(mǎn)足,進(jìn)程已獲得CPU,其程序正在執(zhí)行。在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)行狀態(tài)。(3)阻塞狀態(tài)(blocked)進(jìn)程因等待某種事件發(fā)生,而暫時(shí)不能運(yùn)行的狀態(tài),稱(chēng)為阻塞狀態(tài),也稱(chēng)為等待狀態(tài)。系統(tǒng)中處于這種狀態(tài)的進(jìn)程可能有多個(gè),通常將它們排成一個(gè)隊(duì)列,也有的系統(tǒng)則根據(jù)阻塞原因的不同將這些進(jìn)程排成多個(gè)隊(duì)列。第2章進(jìn)程管理92.進(jìn)程狀態(tài)的轉(zhuǎn)換
對(duì)于一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)之后,該進(jìn)程便可執(zhí)行,相應(yīng)地,它由就緒態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。正在執(zhí)行的進(jìn)程也稱(chēng)為當(dāng)前進(jìn)程,如果因分配給它的時(shí)間片已用完而被暫停執(zhí)行時(shí),該進(jìn)程便由執(zhí)行狀態(tài)又回到就緒狀態(tài);一個(gè)處在執(zhí)行狀態(tài)的進(jìn)程,如果因發(fā)生某事件而使進(jìn)程的執(zhí)行受阻,使之無(wú)法繼續(xù)執(zhí)行,該進(jìn)程將由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。一個(gè)處于阻塞狀態(tài)的進(jìn)程,當(dāng)它所需的外部事件滿(mǎn)足,它應(yīng)由阻塞狀態(tài)變?yōu)榫途w狀態(tài)。第2章進(jìn)程管理10程執(zhí)行完成或撤消阻塞狀態(tài)就緒狀態(tài)調(diào)度用片間時(shí)進(jìn)程創(chuàng)建進(jìn)等待某事件發(fā)生如I/O請(qǐng)求外部事件發(fā)生圖2-1進(jìn)程的基本狀態(tài)及轉(zhuǎn)換圖完第2章進(jìn)程管理113.引入掛起狀態(tài)時(shí)的進(jìn)程狀態(tài)
所謂掛起狀態(tài),實(shí)際上就是一種靜止的狀態(tài)。一個(gè)進(jìn)程被掛起后,不管它是否在就緒狀態(tài),系統(tǒng)都不分配給它處理機(jī)。在引入掛起狀態(tài)后,進(jìn)程之間的狀態(tài)轉(zhuǎn)換除了四種基本狀態(tài)轉(zhuǎn)換以外,又增加了以下幾種:(1)活動(dòng)就緒——靜止就緒。(2)活動(dòng)阻塞——靜止阻塞。(3)靜止就緒——活動(dòng)就緒。(4)靜止阻塞——活動(dòng)阻塞。第2章進(jìn)程管理12執(zhí)行外部事件滿(mǎn)足外掛起激活掛起掛激活活動(dòng)就緒靜止就緒活動(dòng)阻塞靜止阻塞調(diào)度圖2-2具有掛起狀態(tài)的進(jìn)程狀態(tài)轉(zhuǎn)換等部事件外待起部條件滿(mǎn)足完成或撤消第2章進(jìn)程管理132.1.5Linux進(jìn)程的狀態(tài)
Linux系統(tǒng)的一個(gè)任務(wù)總體上有以下幾種狀態(tài):(1)運(yùn)行狀態(tài)(running)該狀態(tài)對(duì)應(yīng)state取值為T(mén)ASK_RUNNING。(2)等待狀態(tài)(waiting)(3)中斷處理狀態(tài)(interruptroutine)此狀態(tài)對(duì)應(yīng)state取值TASK_RUNNING。(4)系統(tǒng)調(diào)用期間(systemcall)此狀態(tài)對(duì)應(yīng)state取值TASK_RUNNING。(5)從系統(tǒng)調(diào)用返回(returnfromsystemcall)第2章進(jìn)程管理14(6)就緒態(tài)(ready)處于此狀態(tài)的進(jìn)程正在競(jìng)爭(zhēng)處理機(jī),但此刻處理機(jī)正在為另一個(gè)進(jìn)程服務(wù)。此狀態(tài)對(duì)應(yīng)state取值TASK_RUNNING。Linux系統(tǒng)內(nèi)核在進(jìn)程控制塊中用state成員描述進(jìn)程當(dāng)前的狀態(tài),并明確定義了5種進(jìn)程狀態(tài)。它們分別是:(1)TASK-RUNNING狀態(tài),Linux系統(tǒng)中的運(yùn)行狀態(tài)實(shí)際包含了上述基本狀態(tài)中的執(zhí)行和就緒兩種狀態(tài)。(2)TASK-INTERRUPTIBLE狀態(tài),可中斷的等待態(tài)。進(jìn)程正在等待某些事件。(3)TASK-UNINTERRUPTIBLE狀態(tài),等待態(tài),不可中斷。(4)TASK-ZOMBIE狀態(tài),僵死態(tài)。(5)TASK-STOPPED狀態(tài),暫停態(tài)。第2章進(jìn)程管理15
Linux任務(wù)狀態(tài)轉(zhuǎn)換圖
運(yùn)行態(tài)從系統(tǒng)調(diào)用返回中斷例程系統(tǒng)調(diào)用等待就緒調(diào)度中斷用戶(hù)態(tài)系統(tǒng)態(tài)圖2-3Linux任務(wù)狀態(tài)轉(zhuǎn)換圖2.2進(jìn)程的描述進(jìn)程實(shí)體通常是由程序、數(shù)據(jù)集合和PCB這三部分構(gòu)成,也稱(chēng)為“進(jìn)程映象”。
PCB程序部分?jǐn)?shù)據(jù)集合第2章進(jìn)程管理17圖2-4進(jìn)程的一般組成模型2.2.1進(jìn)程控制塊PCB
PCB集中反映一個(gè)進(jìn)程的動(dòng)態(tài)特征,當(dāng)系統(tǒng)創(chuàng)建了一個(gè)新進(jìn)程時(shí),就為它建立一個(gè)PCB;當(dāng)進(jìn)程終止后,系統(tǒng)回收其PCB,該進(jìn)程在系統(tǒng)中就不存在了。所以,PCB是進(jìn)程存在的惟一標(biāo)志??梢园凑展δ軐CB分成四個(gè)組成部分:進(jìn)程標(biāo)識(shí)符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息、進(jìn)程控制信息。第2章進(jìn)程管理181.進(jìn)程標(biāo)識(shí)符進(jìn)程標(biāo)識(shí)符用于惟一地標(biāo)識(shí)一個(gè)進(jìn)程。一個(gè)進(jìn)程通常有兩種標(biāo)識(shí)符:(1)進(jìn)程內(nèi)部標(biāo)識(shí)符。(2)進(jìn)程外部標(biāo)識(shí)符。2.處理機(jī)狀態(tài):由各種寄存器中的內(nèi)容組成。3.進(jìn)程調(diào)度信息(1)進(jìn)程狀態(tài)。(2)進(jìn)程優(yōu)先級(jí)。(3)進(jìn)程調(diào)度所需要的其它信息。(4)事件,或阻塞原因。4.進(jìn)程控制信息,包括:(1)程序和數(shù)據(jù)的地址;(2)進(jìn)程同步和通信機(jī)制;(3)資源清單;(4)鏈接指針。第2章進(jìn)程管理192.2.2進(jìn)程控制塊的組織方式各進(jìn)程的PCB有如下幾種組織方式:線(xiàn)性方式、鏈接方式和索引方式。1.線(xiàn)性方式將各進(jìn)程的PCB依次放入一個(gè)表中,結(jié)構(gòu)如下圖所示。PCB1PCB2PCB3……PCBn-1PCBn第2章進(jìn)程管理20圖2-5PCB的線(xiàn)性組織方式2.鏈接方式鏈接方式是經(jīng)常采用的方式。其原理是:按照進(jìn)程的不同狀態(tài)分別將其放在不同的隊(duì)列。Linux操作系統(tǒng)就是應(yīng)用這種進(jìn)程控制塊組織方式。運(yùn)行隊(duì)列指針就緒隊(duì)列指針PCBPCBPCB0阻塞隊(duì)列1指針阻塞隊(duì)列2指針PCB0PCBPCBPCB0PCBPCBPCB0圖2-6PCB鏈接隊(duì)列示意圖第2章進(jìn)程管理213.索引方式系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài)建立幾張索引表。阻塞索引表就緒索引表執(zhí)行指針就緒表指針阻塞表指針PCB1PCB2PCB3PCB4PCB5PCB6PCB7圖2-7PCB索引結(jié)構(gòu)示意圖第2章進(jìn)程管理222.2.3Linux進(jìn)程的PCBLinux系統(tǒng)中的進(jìn)程稱(chēng)為任務(wù)。該系統(tǒng)的進(jìn)程控制塊PCB用一個(gè)稱(chēng)為task-struct的結(jié)構(gòu)體來(lái)描述,Linux系統(tǒng)PCB包含以下信息:1.進(jìn)程描述信息(1)進(jìn)程標(biāo)識(shí)號(hào)(pid,processidentifier)(2)用戶(hù)和組標(biāo)識(shí)(userandgroupidentifier)(3)連接信息(Links)2.進(jìn)程控制信息(1)進(jìn)程當(dāng)前狀態(tài)(2)調(diào)度信息(3)記時(shí)信息(4)通信信息第2章進(jìn)程管理23Linux支持典型的UNIX進(jìn)程間通信機(jī)制——信號(hào)、管道,也支持SystemⅤ通信機(jī)制——共享內(nèi)存、信號(hào)量和消息隊(duì)列。3.進(jìn)程資源信息記錄了與該進(jìn)程有關(guān)的存儲(chǔ)器的各種地址和資料、文件系統(tǒng)以及打開(kāi)文件的信息等等。4.CPU現(xiàn)場(chǎng)信息第2章進(jìn)程管理242.3進(jìn)程控制所謂進(jìn)程控制,就是系統(tǒng)使用一引起具有特定功能的程序段來(lái)創(chuàng)建、撤消進(jìn)程以及完成進(jìn)程各狀態(tài)間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實(shí)現(xiàn)資源共享的目的。原語(yǔ):把系統(tǒng)態(tài)下執(zhí)行的某些具有特定功能并且不可被中斷的程序段稱(chēng)為原語(yǔ)。原語(yǔ)的特點(diǎn)是:系統(tǒng)程序、不可被中斷。系統(tǒng)在創(chuàng)建、撤消一個(gè)進(jìn)程以及要改變進(jìn)程的狀態(tài)時(shí),都要調(diào)用相應(yīng)的程序段來(lái)完成這些功能。用于進(jìn)程控制的原語(yǔ)有:創(chuàng)建原語(yǔ)、撤消原語(yǔ)、阻塞原語(yǔ)、喚醒原語(yǔ)等。第2章進(jìn)程管理252.3.1進(jìn)程的創(chuàng)建與終止1.進(jìn)程的創(chuàng)建導(dǎo)致進(jìn)程創(chuàng)建的事件有:用戶(hù)登錄、作業(yè)調(diào)度、為用戶(hù)提供服務(wù)等。創(chuàng)建原語(yǔ)Creat(),通過(guò)下述步驟創(chuàng)建一個(gè)進(jìn)程。(1)申請(qǐng)空白PCB。(2)為新進(jìn)程分配資源。(3)初始化進(jìn)程控制塊。(4)將新建進(jìn)程插入就緒態(tài)隊(duì)列。2.進(jìn)程的終止過(guò)程在進(jìn)程中,操作系統(tǒng)調(diào)用進(jìn)程終止原語(yǔ),終止本進(jìn)程。過(guò)程如下:(1)根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB隊(duì)列中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài)。。(2)若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,該進(jìn)程被終止后應(yīng)重新進(jìn)程調(diào)度。(3)檢查該進(jìn)程有無(wú)子孫進(jìn)程,若有,則應(yīng)將其所有子孫進(jìn)程終止。(4)釋放終止的進(jìn)程所占有的資源,將其歸還它的父進(jìn)程或者系統(tǒng)。(5)將被終止的進(jìn)程從它的PCB隊(duì)列中移出。第2章進(jìn)程管理263.進(jìn)程阻塞與進(jìn)程喚醒
進(jìn)程狀態(tài)的轉(zhuǎn)換需要通過(guò)進(jìn)程之間的同步或通信機(jī)構(gòu)來(lái)實(shí)現(xiàn),也可直接使用“阻塞原語(yǔ)”和“喚醒原語(yǔ)”來(lái)實(shí)現(xiàn)。(1)進(jìn)程的阻塞當(dāng)一個(gè)進(jìn)程所等待的某一事件尚未發(fā)生時(shí),該進(jìn)程調(diào)用阻塞原語(yǔ)block()將自己阻塞,轉(zhuǎn)換為等待狀態(tài)。(2)進(jìn)程的喚醒處于等待狀態(tài)的進(jìn)程,只有當(dāng)該進(jìn)程所等待的外部事件發(fā)生時(shí),才由發(fā)生該事件的進(jìn)程調(diào)用喚醒原語(yǔ)wakeup()將它喚醒。第2章進(jìn)程管理272.3.2幾個(gè)相關(guān)的Linux系統(tǒng)調(diào)用
在Linux系統(tǒng)中,系統(tǒng)向用戶(hù)提供了一些對(duì)進(jìn)程進(jìn)行控制的系統(tǒng)調(diào)用。常用的有:1.fork()系統(tǒng)調(diào)用
Linux利用fork()系統(tǒng)調(diào)用創(chuàng)建一個(gè)新進(jìn)程。2.Exec系統(tǒng)調(diào)用利用exec系統(tǒng)調(diào)用執(zhí)行另一個(gè)程序。3.exit()系統(tǒng)調(diào)用父進(jìn)程在創(chuàng)建子進(jìn)程時(shí),應(yīng)在進(jìn)程的末尾寫(xiě)一條exit,使子進(jìn)程自我終止。4.wait系統(tǒng)調(diào)用將調(diào)用進(jìn)程掛起,直至其子進(jìn)程因暫?;蚪K止而發(fā)來(lái)軟中斷信號(hào)為止。第2章進(jìn)程管理282.3.3進(jìn)程的阻塞與喚醒
實(shí)現(xiàn)進(jìn)程的執(zhí)行狀態(tài)到等待狀態(tài),又由等待狀態(tài)到就緒狀態(tài)轉(zhuǎn)換的兩種原語(yǔ),分別為阻塞原語(yǔ)與喚醒原語(yǔ)。入口保存該進(jìn)程的CPU現(xiàn)場(chǎng)字置該進(jìn)程的狀態(tài)阻塞進(jìn)程PCB進(jìn)入等待隊(duì)列轉(zhuǎn)進(jìn)程調(diào)度入口從等待隊(duì)列取被喚醒進(jìn)程將被喚醒進(jìn)程置為就緒態(tài)被喚醒進(jìn)程插入就緒隊(duì)列轉(zhuǎn)進(jìn)程調(diào)度或返回圖2-8阻塞原語(yǔ)的實(shí)現(xiàn)圖2-9喚醒原語(yǔ)的實(shí)現(xiàn)第2章進(jìn)程管理292.4進(jìn)程的同步與互斥2.4.1臨界資源的概念1.臨界資源
兩個(gè)或兩個(gè)以上的進(jìn)程不能同時(shí)使用的資源為臨界資源。臨界資源可能是一些獨(dú)占設(shè)備,如打印機(jī)、磁帶機(jī)等;也可能是一些共享變量、表格、鏈表等。第2章進(jìn)程管理302.臨界區(qū)每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段代碼稱(chēng)為臨界區(qū)。在臨界區(qū)前面增加一段用于進(jìn)行檢查的代碼,把這段代碼稱(chēng)為進(jìn)入?yún)^(qū);相應(yīng)地,在臨界區(qū)后面再加一段用于退出臨界區(qū)的代碼,稱(chēng)為退出區(qū)。進(jìn)程中除去上述進(jìn)入?yún)^(qū)和退出區(qū),其它部分的代碼,稱(chēng)為剩余區(qū)。這樣,可將一個(gè)訪問(wèn)臨界資源的進(jìn)程描述如下:repeat進(jìn)入?yún)^(qū);臨界區(qū);退出區(qū);剩余區(qū);untilfalse;第2章進(jìn)程管理312.4.2進(jìn)程的互斥與同步1.同步與互斥的概念所謂進(jìn)程互斥,是指多個(gè)進(jìn)程不能同時(shí)使用同一個(gè)臨界資源CR。即兩個(gè)或兩個(gè)以上的進(jìn)程必須互斥地使用臨界資源,或不能同時(shí)進(jìn)入臨界區(qū)CS。兩個(gè)邏輯上完全獨(dú)立、毫無(wú)關(guān)系的進(jìn)程,由于競(jìng)爭(zhēng)同一個(gè)資源而相互制約,就稱(chēng)為進(jìn)程的互斥。所謂進(jìn)程同步,是指有協(xié)作關(guān)系的進(jìn)程之間,要不斷地調(diào)整它們之間的相對(duì)速度或執(zhí)行過(guò)程,以保證臨界資源的合理利用和進(jìn)程的順利執(zhí)行。實(shí)現(xiàn)進(jìn)程同步的機(jī)制稱(chēng)為進(jìn)程同步機(jī)制。2.同步機(jī)制應(yīng)遵循的規(guī)則所有同步機(jī)制都應(yīng)遵循下列準(zhǔn)則:(1)空閑讓進(jìn)。(2)忙則等待。(3)有限等待。(4)讓權(quán)等待。第2章進(jìn)程管理322.4.3鎖機(jī)制
實(shí)現(xiàn)互斥的一種軟件是采用鎖機(jī)制,即提供一對(duì)上鎖(Lock)和開(kāi)鎖(UnLock)原語(yǔ),以及一個(gè)鎖變量w(或者是鎖位1個(gè)bit)。加鎖及解鎖原語(yǔ)可描述如下:加鎖原語(yǔ):Lockw:L:ifw=1thengotoLElsew:=1開(kāi)鎖原語(yǔ):UnLockw:w:=0;第2章進(jìn)程管理332.4.4信號(hào)量機(jī)制
申請(qǐng)和釋放臨界資源的兩個(gè)原語(yǔ)操作:wait操作和signal操作,有時(shí)也稱(chēng)為P操作和V操作。信號(hào)量(Semaphore),也叫做信號(hào)燈,它是在信號(hào)量同步機(jī)制中用于實(shí)現(xiàn)進(jìn)程的同步和互斥的有效數(shù)據(jù)結(jié)構(gòu)。我們可以為每類(lèi)資源設(shè)置一個(gè)信號(hào)量。它有多種類(lèi)型的數(shù)據(jù)結(jié)構(gòu),即:整型信號(hào)量、記錄型信號(hào)量、AND型信號(hào)量及信號(hào)量集等。第2章進(jìn)程管理341.整型信號(hào)量
整型信號(hào)量的數(shù)值表示當(dāng)前系統(tǒng)中可用的該類(lèi)臨界資源的數(shù)量。如設(shè)置整型信號(hào)量s,則s的值意義為:s>0,則s的值表示系統(tǒng)中空閑的該類(lèi)臨界資源的個(gè)數(shù);s=0,則表示系統(tǒng)中該類(lèi)臨界資源剛好全部被占用,而且沒(méi)有進(jìn)程在等待該臨界資源;s<0,則s的絕對(duì)值表示系統(tǒng)中的進(jìn)程等待該類(lèi)臨界資源的個(gè)數(shù);第2章進(jìn)程管理352.記錄型信號(hào)量
記錄型信號(hào)量的數(shù)據(jù)結(jié)構(gòu)由兩部分構(gòu)成。例如:定義記錄型信號(hào)量S,則:s的值表示系統(tǒng)中可用的該類(lèi)臨界資源的數(shù)量,而L為進(jìn)程鏈表指針,指向等待該類(lèi)資源的PCB隊(duì)列。設(shè)變量S為記錄型信號(hào)量,則wait(S)操作和signal(S)操作的流程如下圖所示:第2章進(jìn)程管理36Wati(S)是Wati(S)s=s-1申請(qǐng)到資源本進(jìn)程繼續(xù)本進(jìn)程入阻塞隊(duì)列s≥0否轉(zhuǎn)進(jìn)程調(diào)度圖2-10Wait操作原語(yǔ)流是signal(S)s=s+1喚醒一阻塞態(tài)進(jìn)程s≤0否圖2-11signal操作原語(yǔ)流釋放該類(lèi)資源本進(jìn)程繼續(xù)第2章進(jìn)程管理37申請(qǐng)臨界資源的原語(yǔ)wait操作可描述為:procedurewait(S)varS:semaphore;begins:=s-1;ifs≥0then本進(jìn)程繼續(xù);else{將本進(jìn)程放入阻塞態(tài)隊(duì)列;轉(zhuǎn)進(jìn)程調(diào)度;}end釋放臨界資源的原語(yǔ)signal操作可描述為:proceduresignal(S)varS:semaphore;begins:=s+1;ifs≤0then喚醒指針L所指的阻塞態(tài)進(jìn)程;end
第2章進(jìn)程管理383.AND型信號(hào)量
AND同步機(jī)制的基本思想是:將進(jìn)程在整個(gè)運(yùn)行過(guò)程中需要的所有資源,一次性全部地分配給進(jìn)程,待進(jìn)程使用完成后再一起釋放。只要有一個(gè)資源尚未能分配給進(jìn)程,其它所有可能分配的資源,也不能分配給它。也稱(chēng)為AND同步。AND型信號(hào)量集機(jī)制可描述如下:第2章進(jìn)程管理39Swait(S1,S2,…,Sn)ifSi≥1and…andSn≥1thenfori:=1tondoSi:=Si-1;endforelse將該進(jìn)程放入阻塞態(tài)隊(duì)列;endifSsignal(S1,S2,…,Sn)fori:=1tondoSi=Si+1;喚醒所有因Si不滿(mǎn)足而進(jìn)入阻塞隊(duì)列的進(jìn)程;endfor;第2章進(jìn)程管理404.信號(hào)量集
信號(hào)量集機(jī)制的基本思想是:在AND型信號(hào)量集的基礎(chǔ)上進(jìn)行擴(kuò)充,進(jìn)程對(duì)信號(hào)量Si的測(cè)試值為ti(用于信號(hào)量的判斷,即Si>=ti,表示資源數(shù)量低于ti時(shí),便不予分配),占用值為di(用于信號(hào)量的增減,即Si=Si-d1和Si=Si+d1)Swait(S1,t1,d1;...;Sn,tn,dn);Ssignal(S1,d1;...;Sn,dn);一般“信號(hào)量集”的幾種特定情況:(1)Swait(S,d,d)表示每次申請(qǐng)d個(gè)資源,當(dāng)少于d個(gè)時(shí),便不分配;(2)Swait(S,1,1)表示互斥信號(hào)量;(3)Swait(S,1,0)作為一個(gè)可控開(kāi)關(guān)(當(dāng)S≥1時(shí),允許多個(gè)進(jìn)程進(jìn)入臨界區(qū);當(dāng)S=0時(shí),禁止任何進(jìn)程進(jìn)入臨界區(qū));(4)“信號(hào)量集”未必成對(duì)使用Swait和Ssignal。如:一起申請(qǐng),但可以不一起釋放。第2章進(jìn)程管理412.5進(jìn)程同步問(wèn)題舉例
2.5.1生產(chǎn)者—消費(fèi)者問(wèn)題1.問(wèn)題的描述
有一批生產(chǎn)者進(jìn)程在生產(chǎn)產(chǎn)品,并將這些產(chǎn)品提供給消費(fèi)者進(jìn)程去消費(fèi)。為方便生產(chǎn)者進(jìn)程與消費(fèi)者進(jìn)程能并發(fā)執(zhí)行,在兩者之間設(shè)置了一個(gè)具有n個(gè)緩沖區(qū)的緩沖池,生產(chǎn)者進(jìn)程將它所生產(chǎn)的產(chǎn)品放入一個(gè)緩沖區(qū)中;消費(fèi)者進(jìn)程可從一個(gè)緩沖區(qū)中取走產(chǎn)品去消費(fèi)。第2章進(jìn)程管理42012……i………n-2n-1假設(shè)初始情況下緩沖池為空,即counter=0。為在生產(chǎn)者—消費(fèi)者問(wèn)題中實(shí)現(xiàn)各進(jìn)程的同步,可設(shè)下列信號(hào)量:(假設(shè)初始情況下沒(méi)有進(jìn)程使用緩沖池,且緩沖池中各緩沖區(qū)都是空的。)mutex:互斥使用緩沖池信號(hào)量,由于初始情況下無(wú)進(jìn)程使用緩沖池,故初值mutex=1;empty:使用緩沖池中空緩沖區(qū)的信號(hào)量,由于初始情況下所有緩沖區(qū)為空,故初值empty=n;full:使用緩沖池中滿(mǎn)緩沖區(qū)的信號(hào)量,由于初始情況下沒(méi)有緩沖區(qū)存放產(chǎn)品,故初值full=0。設(shè)開(kāi)始時(shí)生產(chǎn)者進(jìn)程存放產(chǎn)品和消費(fèi)者進(jìn)程取產(chǎn)品時(shí),都從第0號(hào)緩沖區(qū)開(kāi)始,并設(shè)這些生產(chǎn)者和消費(fèi)者地位相當(dāng),只要緩沖池未滿(mǎn),生產(chǎn)者便可將消息送入緩沖池;只要緩沖池未空,消費(fèi)者便可從緩沖池中取走一個(gè)消息。第2章進(jìn)程管理43inout圖2-12生產(chǎn)者—消費(fèi)者問(wèn)題中的緩沖池算法及程序Varmutex,empty,full:semaphore∶=1,n,0;/*定義信號(hào)量并賦初值*/buffer:array[0,…,n-1]ofitem;in,out:integer∶=0,0;/*定義存取指針的初始位置*/beginparbegin生產(chǎn)者進(jìn)程proceduer:beginrepeat…生產(chǎn)一件產(chǎn)品;…wait(empty);wait(mutex);將產(chǎn)品放入下一個(gè)緩沖區(qū);in∶=(in+1)modn;signal(mutex);signal(full);untilfalse;end第2章進(jìn)程管理44消費(fèi)者進(jìn)程consumer:beginrepeatwait(full);wait(mutex);從下一個(gè)緩沖區(qū)中取走一件產(chǎn)品;out∶=(out+1)modn;signal(mutex);signal(empty);消費(fèi)這件產(chǎn)品;untilfalse;endparendend第2章進(jìn)程管理454.在生產(chǎn)者—消費(fèi)者問(wèn)題中應(yīng)注意:
(1)在每個(gè)程序中用于實(shí)現(xiàn)互斥的wait(mutex)和signal(mutex)必須成對(duì)地出現(xiàn)。(2)對(duì)資源信號(hào)量empty和full的wait和signal操作,同樣需要成對(duì)地出現(xiàn),但它們分別處于不同的進(jìn)程中,這樣保證生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程的同步及交替執(zhí)行。(3)在每個(gè)進(jìn)程中,多個(gè)wait操作順序不能顛倒,而signal操作的次序是無(wú)關(guān)緊要的。第2章進(jìn)程管理462.5.2讀者—寫(xiě)者問(wèn)題
1.問(wèn)題的提出一文件F可以被多個(gè)并發(fā)進(jìn)程共享,將這些訪問(wèn)該文件的進(jìn)程按訪問(wèn)方式分為兩類(lèi):一類(lèi)只能讀共享對(duì)象的內(nèi)容,把這類(lèi)進(jìn)程稱(chēng)為讀進(jìn)程或讀者;另一類(lèi)進(jìn)程則要更新(寫(xiě))共享對(duì)象文件F,將這些進(jìn)程稱(chēng)為寫(xiě)進(jìn)程或?qū)懻摺T囉肳ait、Signal操作解決各進(jìn)程間的同步問(wèn)題。2.問(wèn)題的分析顯然,多個(gè)讀者同時(shí)讀一個(gè)共享對(duì)象是可以的,然而一個(gè)寫(xiě)者不能與其它任何讀者或?qū)懻咄瑫r(shí)共享該文件。亦即:在使用共享文件時(shí),一個(gè)寫(xiě)進(jìn)程與其它所有進(jìn)程都是互斥的。但多個(gè)讀進(jìn)程之間不存在互斥的現(xiàn)象。如圖2-13所示。第2章進(jìn)程管理47共享文件F寫(xiě)進(jìn)程W讀進(jìn)程R1讀進(jìn)程Rn…圖2-13讀者—寫(xiě)者問(wèn)題設(shè)讀進(jìn)程為reader,寫(xiě)進(jìn)程為writer。為實(shí)現(xiàn)reader與writer進(jìn)程間的同步與互斥,設(shè)如下變量及信號(hào)量:wmutex:互斥使用該共享文件信號(hào)量。如:寫(xiě)進(jìn)程write與讀進(jìn)程reader在使用文件時(shí)是互斥的;共享文件只有一個(gè),設(shè)初始情況未被使用,則初值為1。readcount:整型變量,表示正在讀的進(jìn)程個(gè)數(shù)。初值為0。該變量屬臨界資源。rmutex:計(jì)數(shù)器readcount的信號(hào)量。因?yàn)閞eadcount是一個(gè)可被多個(gè)reader進(jìn)程訪問(wèn)的臨界資源,為此設(shè)一信號(hào)量。設(shè)初始狀態(tài)下無(wú)進(jìn)程讀和寫(xiě),故rmutex的初值設(shè)為1。第2章進(jìn)程管理48
由于多個(gè)進(jìn)程可以同時(shí)讀,因此只要有一個(gè)reader進(jìn)程在讀,其它reader進(jìn)程便不必申請(qǐng)?jiān)摴蚕砦募?,直接讀即可;若無(wú)文件在讀,則第一個(gè)讀文件的進(jìn)程必須做申請(qǐng)?jiān)撐募牟僮?。只要有read進(jìn)程在執(zhí)行,則不允許writer進(jìn)程去寫(xiě)。因此,僅當(dāng)readcount=0,即無(wú)reader進(jìn)程在讀時(shí),reader進(jìn)程才需要執(zhí)行wait(wmutex)操作。若wait(wmutex)操作成功,reader進(jìn)程便可去讀,相應(yīng)地,做readcount+1操作。同理,僅當(dāng)reader進(jìn)程在執(zhí)行了readcount減1操作后其值為0時(shí),才須執(zhí)行signal(wmutex)操作,以便讓writer進(jìn)程寫(xiě)。第2章進(jìn)程管理493.算法及程序
讀者—寫(xiě)者問(wèn)題可描述如下:Var:rmutex,wmutex:semaphore:=1,1;Readcount:integer:=0;beginparbegin讀者進(jìn)程:Reader:beginrepeatwait(rmutex);ifreadcount=0thenwait(wmutex);readcount:=Readcount+1;signal(rmutex);第2章進(jìn)程管理50…進(jìn)行讀操作;…wait(rmutex);readcount:=readcount-1;ifreadcount=0thensignal(wmutex);signal(rmutex);untilfalse;end寫(xiě)者進(jìn)程:writer:beginrepeatwait(wmutex);執(zhí)行寫(xiě)操作;signal(wmutex);untilfalse;endparendend第2章進(jìn)程管理514.注意事項(xiàng)及提示(1)對(duì)于寫(xiě)進(jìn)程,共享文件是臨界資源;而對(duì)于讀進(jìn)程,該文件不是臨界資源。(2)整型變量readcount是臨界資源,所以在使用前后要進(jìn)行Wait、Signal操作。第2章進(jìn)程管理522.5.3哲學(xué)家進(jìn)餐問(wèn)題1.問(wèn)題的提出
設(shè)有5個(gè)哲學(xué)家圍坐在一張圓桌前吃飯。桌上有5只筷子,在每人之間放一只。哲學(xué)家要吃飯時(shí),只有分別從左、右兩邊都拿到筷子時(shí),才能吃飯。如果筷子已在他人手上,則該哲學(xué)家必須等待到他人吃完后才能拿到筷子;任何一個(gè)哲學(xué)家在自己未拿到兩只筷子吃飯之前,決不放下自己手里的筷子。試描述5位哲學(xué)家吃飯的進(jìn)程。第2章進(jìn)程管理53圖2-14哲學(xué)家就餐餐問(wèn)題第2章進(jìn)程管理542.問(wèn)題分析
放在桌子上的筷子是臨界資源,在一段時(shí)間內(nèi)只允許一位哲學(xué)家使用。為了實(shí)現(xiàn)對(duì)筷子的互斥使用,可以為每一只筷子設(shè)置一個(gè)信號(hào)量,由這五個(gè)信號(hào)量構(gòu)成信號(hào)量數(shù)組:Varchopstick:array[0,…,4]ofsemaphore;設(shè)初始條件下,所有哲學(xué)家都未吃,故所有信號(hào)量均被初始化為1。3.實(shí)現(xiàn)方法
假設(shè)每一位哲學(xué)家拿筷子的方法都是:先拿起左邊的筷子,再拿起右邊的筷子,則第i位哲學(xué)家的活動(dòng)可描述為:第2章進(jìn)程管理55Pi()beginVarchopstick:array[0,…,4]ofmaphore=[1,1,1,1,1];repeat wait(chopstick[i]); wait(chopstick[(i+1)mod5]); eat;… signal(chopstick[i]); signal(chopstick[(i+1)mod5]); think;untilfalse;end第2章進(jìn)程管理56以上算法存在一個(gè)問(wèn)題:假設(shè)5個(gè)哲學(xué)家同時(shí)拿起左邊的筷子,那么再去拿右邊的筷子時(shí),就會(huì)產(chǎn)生死鎖。下面給出幾種解決方法。(1)至多只允許有四位哲學(xué)家同時(shí)去拿左邊的筷子,最終能保證至少有一位哲學(xué)家能夠進(jìn)餐,并在用畢時(shí)能釋放出他用過(guò)的兩只筷子,從而使更多的哲學(xué)家能夠進(jìn)餐。(2)僅當(dāng)哲學(xué)家的左、右兩只筷子均可用時(shí),才允許他拿起筷子進(jìn)餐。(3)規(guī)定奇數(shù)號(hào)哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號(hào)哲學(xué)家則相反。最后總會(huì)有一位哲學(xué)家能獲得兩只筷子而進(jìn)餐。具體程序段參看實(shí)訓(xùn)教材。第2章進(jìn)程管理574.不產(chǎn)生死鎖的哲學(xué)家就餐問(wèn)題算法2.6進(jìn)程通信
進(jìn)程間的信息交換稱(chēng)為進(jìn)程通信。通常,進(jìn)程間的通信分為兩種:控制信息的傳送與大量信息的傳送。將進(jìn)程間控制信息的交換稱(chēng)為低級(jí)通信,而把進(jìn)程之間大批量數(shù)據(jù)的交換稱(chēng)為高級(jí)通信。進(jìn)程的互斥與同步為低級(jí)通信方式,相應(yīng)地,也稱(chēng)wait、signal操作為低級(jí)的通信原語(yǔ)。僅通過(guò)P、V操作或鎖的方法是無(wú)法實(shí)現(xiàn)進(jìn)程的高級(jí)通信的。高級(jí)通信方式可分為三大類(lèi):共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)和管道通信系統(tǒng)。第2章進(jìn)程管理582.6.1共享存儲(chǔ)器系統(tǒng)1.共享存儲(chǔ)器系統(tǒng)的類(lèi)型(1)基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式在這種通信方式中,要使各進(jìn)程共用某些數(shù)據(jù)結(jié)構(gòu),借以實(shí)現(xiàn)各進(jìn)程間的信息交換。如在生產(chǎn)者—消費(fèi)者問(wèn)題中,就是用有界緩沖區(qū)這種數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)通信的。這種通信方式是低效的,只適用于傳遞相對(duì)少量的數(shù)據(jù)。(2)基于共享存儲(chǔ)區(qū)的通信方式。在存儲(chǔ)器中劃出了一塊共享存儲(chǔ)區(qū),各進(jìn)程可通過(guò)對(duì)共享存儲(chǔ)區(qū)中的數(shù)據(jù)的讀或?qū)憗?lái)實(shí)現(xiàn)通信。第2章進(jìn)程管理592.Linux共享存儲(chǔ)區(qū)通信的實(shí)現(xiàn)(1)共享存儲(chǔ)區(qū)的建立利用系統(tǒng)調(diào)用shmget()建立一塊共享存儲(chǔ)區(qū)。該系統(tǒng)調(diào)用將返回該共享存儲(chǔ)區(qū)的描述符shmid;若尚未建立,便為進(jìn)程建立一個(gè)指定大小的共享存儲(chǔ)區(qū)。(2)共享存儲(chǔ)區(qū)的操縱可以用shmctl()系統(tǒng)調(diào)用對(duì)共享存儲(chǔ)區(qū)的狀態(tài)信息進(jìn)行查詢(xún),如其長(zhǎng)度、所連接的進(jìn)程數(shù)、創(chuàng)建者標(biāo)識(shí)符等;也可設(shè)置或修改其屬性,如共享存儲(chǔ)區(qū)的許可權(quán)、當(dāng)前連接的進(jìn)程計(jì)數(shù)等;還可用來(lái)對(duì)共享存儲(chǔ)區(qū)加鎖或解鎖,以及修改共享存儲(chǔ)區(qū)標(biāo)識(shí)符等。3.共享存儲(chǔ)區(qū)的附接與斷開(kāi)
在進(jìn)程已經(jīng)建立了共享存儲(chǔ)區(qū)或已獲得了其描述符后,還須利用系統(tǒng)調(diào)用shmat()將該共享存儲(chǔ)區(qū)附接到用戶(hù)給定的某個(gè)進(jìn)程的虛地址shmaddr上,并指定該存儲(chǔ)區(qū)的訪問(wèn)屬性,即指明該區(qū)是只讀,還是可讀可寫(xiě)。此后,此共享存儲(chǔ)區(qū)便成為該進(jìn)程虛地址空間的一部分。進(jìn)程可采取與對(duì)其它虛地址空間一樣的存取方法來(lái)訪問(wèn)。當(dāng)進(jìn)程不再需要該共享存儲(chǔ)區(qū)時(shí),再利用系統(tǒng)調(diào)用shmdt()把該區(qū)與進(jìn)程斷開(kāi)。4.幾個(gè)相關(guān)系統(tǒng)調(diào)用共享存儲(chǔ)區(qū)通信中常用的系統(tǒng)調(diào)用:(1)shmget(key,size,flag):功能:獲得一個(gè)共享存儲(chǔ)區(qū),若成功,其返回值為該共享存儲(chǔ)區(qū)的描述符。(2)shmat(id,addr,flag)從邏輯上將一個(gè)共享存儲(chǔ)區(qū)附接到進(jìn)程的虛擬地址空間上。(3)shmdt(addr):把一個(gè)共享存儲(chǔ)區(qū)從指定進(jìn)程的虛地址空間斷開(kāi)。(4)shmctl(id,cmd,buf)對(duì)與共享存儲(chǔ)區(qū)關(guān)聯(lián)的各種參數(shù)進(jìn)行操作,從而對(duì)共享存儲(chǔ)區(qū)進(jìn)行控制。第2章進(jìn)程管理622.6.2消息傳遞系統(tǒng)
在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換,是以格式化的消息(message)為單位的。程序員直接利用系統(tǒng)提供的一組通信命令進(jìn)行通信。因?qū)崿F(xiàn)方式的不同分為直接通信方式和間接通信方式。間接通信方式又稱(chēng)為信箱通信方式。信箱是一種數(shù)據(jù)結(jié)構(gòu),邏輯上可分為兩部分:信箱頭和信箱體。信箱頭包含箱體的結(jié)構(gòu)信息,信箱體由多個(gè)格子構(gòu)成。信箱通信一般是進(jìn)程之間的雙向通信。第2章進(jìn)程管理631.直接通信方式這種通信是固定在一對(duì)進(jìn)程之間。用來(lái)發(fā)送和接收消息。兩條原語(yǔ)的形式如下:send(B,message);發(fā)送一個(gè)消息給接收進(jìn)程B;receive(A,message);接收進(jìn)程A發(fā)來(lái)的消息;通常情況下,接收進(jìn)程可與多個(gè)發(fā)送進(jìn)程通信,因此,它不可能事先指定發(fā)送進(jìn)程。對(duì)于這樣的應(yīng)用,在接收進(jìn)程接收消息的原語(yǔ)中的源進(jìn)程參數(shù),是完成通信后的返回值,接收原語(yǔ)可表示為:receive(id,message);其中,id為接收消息進(jìn)程的標(biāo)識(shí)符。2.間接通信方式間接通信方式又稱(chēng)為信箱通信方式。信箱是一種數(shù)據(jù)結(jié)構(gòu),邏輯上可分為兩部分:信箱頭和信箱體。信箱頭包含箱體的結(jié)構(gòu)信息,信箱體由多個(gè)格子構(gòu)成,它實(shí)際上就是一個(gè)有界緩沖池。信箱通信一般是進(jìn)程之間的雙向通信。如圖2-15所示。
信箱體sendreceivereceivesend進(jìn)程B信箱頭圖2-15進(jìn)程的信箱通信方式進(jìn)程A3.消息緩沖隊(duì)列通信機(jī)制
(1)消息緩沖隊(duì)列通信機(jī)制中所用的主要數(shù)據(jù)結(jié)構(gòu)是消息緩沖區(qū)。在設(shè)置消息緩沖隊(duì)列時(shí),還應(yīng)添加用于對(duì)消息隊(duì)列進(jìn)行操作和實(shí)現(xiàn)同步的信號(hào)量,并將它們存入進(jìn)程的PCB中。
當(dāng)一個(gè)發(fā)送進(jìn)程要發(fā)送消息時(shí),便形成一個(gè)消息,并發(fā)送給指定的接收進(jìn)程。接收進(jìn)程將所有的消息緩沖區(qū)鏈成一個(gè)隊(duì)列,其隊(duì)列首由接收進(jìn)程PCB中的隊(duì)列隊(duì)首指針mq來(lái)指出。
(2)發(fā)送原語(yǔ)(3)接收原語(yǔ)接收進(jìn)程調(diào)用接收原語(yǔ),從自己的消息緩沖隊(duì)列中,選取第一個(gè)消息緩沖區(qū),并將其中的數(shù)據(jù)復(fù)制到指定的消息接收區(qū)內(nèi)。發(fā)送進(jìn)程在發(fā)送消息之前,應(yīng)先在自己的內(nèi)存空間設(shè)置一發(fā)送區(qū),然后調(diào)用發(fā)送原語(yǔ),把消息發(fā)送給接收進(jìn)程。4.Linux系統(tǒng)關(guān)于消息傳遞的相關(guān)系統(tǒng)調(diào)用
(1)msgget(key,flag):功能:獲得一個(gè)消息的描述符,該描述符指定一個(gè)消息隊(duì)列以便用于其他系統(tǒng)調(diào)用。(2)msgsnd(id,msgp,size,flag);功能:發(fā)送一消息。(3)msgrcv(id,msgp,size,type,flag)功能:接受一消息。(4)msgctl(id,cmd,buf):功能:查詢(xún)一個(gè)消息描述符的狀態(tài),設(shè)置它的狀態(tài)及刪除一個(gè)消息描述符。
2.6.3管道通信系統(tǒng)
所謂管道,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)進(jìn)程,以實(shí)現(xiàn)他們之間通信的一個(gè)共享文件,又名pipe文件。為了協(xié)調(diào)雙方的通信,管道機(jī)制必須提供以下三方面的協(xié)調(diào)能力:(1)互斥,即當(dāng)一個(gè)進(jìn)程正在對(duì)pipe執(zhí)行讀/寫(xiě)操作時(shí),其它(另一)進(jìn)程必須等待。(2)同步,指當(dāng)讀寫(xiě)進(jìn)程使用pipe時(shí),需要同步使用。(3)確定對(duì)方是否存在,只有確定了對(duì)方已存在時(shí),才能進(jìn)行通信。第2章進(jìn)程管理692.6.4信號(hào)通信機(jī)制
1.信號(hào)的基本概念每個(gè)信號(hào)都對(duì)應(yīng)一個(gè)正整數(shù)常量,即信號(hào)編號(hào)。信號(hào)機(jī)制具有以下三方面的功能:(1)發(fā)送信號(hào)。發(fā)送信號(hào)的程序用系統(tǒng)調(diào)用kill()實(shí)現(xiàn);(2)預(yù)置對(duì)信號(hào)的處理方式。接收信號(hào)的程序用signal()來(lái)實(shí)現(xiàn)預(yù)置處理方式;(3)收受信號(hào)的進(jìn)程按事先的規(guī)定完成對(duì)相應(yīng)事件的處理。
第2章進(jìn)程管理702.信號(hào)的發(fā)送
信號(hào)的發(fā)送,是指由發(fā)送進(jìn)程把信號(hào)送到指定進(jìn)程的信號(hào)域的某一位上。進(jìn)程用kill()向一個(gè)進(jìn)程或一組進(jìn)程發(fā)送一個(gè)信號(hào)。3.信號(hào)的處理
對(duì)軟中斷信號(hào)的處理分三種情況進(jìn)行:(1)如果進(jìn)程收到的軟中斷是一個(gè)已決定要忽略的信號(hào)(function=1),進(jìn)程不做任何處理便立即返回;(2)進(jìn)程收到軟中斷后便退出(function=0);(3)執(zhí)行用戶(hù)設(shè)置的軟中斷處理程序。4.相關(guān)的Linux系統(tǒng)調(diào)用(1)kill()功能:向一個(gè)或一組進(jìn)程發(fā)送一個(gè)軟中斷信號(hào)。(2)signal()功能:預(yù)置對(duì)信號(hào)的處理方式,允許調(diào)用進(jìn)程控制軟中斷信號(hào)。第2章進(jìn)程管理722.7線(xiàn)程
線(xiàn)程是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。2.7.1線(xiàn)程的基本概念線(xiàn)程(thead)是進(jìn)程中執(zhí)行運(yùn)算的最小單位,亦即執(zhí)行處理機(jī)調(diào)度的基本單位。在引入線(xiàn)程的操作系統(tǒng)中,可以在一個(gè)進(jìn)程內(nèi)部進(jìn)行線(xiàn)程切換,現(xiàn)場(chǎng)保護(hù)工作量小。線(xiàn)程與進(jìn)程的比較:(1)進(jìn)程是資源分配的基本單位。同一進(jìn)程的所有線(xiàn)程共享該進(jìn)程的所有資源。(2)線(xiàn)程是分配處理機(jī)的基本單位,它與資源分配無(wú)關(guān)。(3)一個(gè)線(xiàn)程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線(xiàn)程,但至少有一個(gè)線(xiàn)程。(4)線(xiàn)程在執(zhí)行過(guò)程中,需要協(xié)作同步。第2章進(jìn)程管理732.7.2線(xiàn)程的狀態(tài)與轉(zhuǎn)換操作
線(xiàn)程有3種基本狀態(tài),即執(zhí)行、阻塞和就緒。針對(duì)線(xiàn)程的3種基本狀態(tài),存在5種基本操作來(lái)轉(zhuǎn)換線(xiàn)程的狀態(tài)。它們是:1.派生(spawn)2.調(diào)度(schedule)3.阻塞(Block)4.激活(unblock)5.結(jié)束(Finish)第2章進(jìn)程管理742.7.3引入線(xiàn)程的好處
引入線(xiàn)程的好處有以下幾點(diǎn):1.易于調(diào)度。2.提高了系統(tǒng)的效率。3.創(chuàng)建一個(gè)線(xiàn)程比創(chuàng)建一個(gè)進(jìn)程花費(fèi)的開(kāi)銷(xiāo)少,創(chuàng)建速度快。4.有利于發(fā)揮多處理器的功能,提高進(jìn)程的并行性。第2章進(jìn)程管理752.7.4多線(xiàn)程的實(shí)現(xiàn)
多線(xiàn)程機(jī)制是指操作系統(tǒng)支持在一個(gè)進(jìn)程內(nèi)執(zhí)行多個(gè)線(xiàn)程的能力。多種系統(tǒng)支持多線(xiàn)程實(shí)現(xiàn)的方式并不完全相同。1.用戶(hù)級(jí)線(xiàn)程用戶(hù)級(jí)線(xiàn)程是由用戶(hù)應(yīng)用程序建立的,并由用戶(hù)應(yīng)用程序負(fù)責(zé)對(duì)這些線(xiàn)程進(jìn)行調(diào)度和管理,操作系統(tǒng)內(nèi)核并不知道有用戶(hù)級(jí)線(xiàn)程的存在,只對(duì)進(jìn)程進(jìn)行管理。2.內(nèi)核級(jí)線(xiàn)程內(nèi)核級(jí)線(xiàn)程簡(jiǎn)稱(chēng)為KLT,通常也稱(chēng)為“純KLT”方法。內(nèi)核級(jí)線(xiàn)程中所有線(xiàn)程的創(chuàng)建、調(diào)度和管理全部由操作系統(tǒng)內(nèi)核負(fù)責(zé)完成。
3.用戶(hù)級(jí)線(xiàn)程與核心態(tài)線(xiàn)程相結(jié)合的模式由于用戶(hù)級(jí)線(xiàn)程和內(nèi)核級(jí)線(xiàn)程各有其特色,因此,如果將兩種方法結(jié)合起來(lái),則可吸取兩者的優(yōu)點(diǎn)。將兩種方法結(jié)合起來(lái)的系統(tǒng)稱(chēng)為多線(xiàn)程的操作系統(tǒng)。內(nèi)核支持多線(xiàn)程的建立、調(diào)度和管理。同時(shí)系統(tǒng)中又提供使用線(xiàn)程庫(kù),允許用戶(hù)應(yīng)用程序建立、調(diào)度和管理用戶(hù)級(jí)線(xiàn)程。本章小結(jié)
進(jìn)程是操作系統(tǒng)中的一個(gè)非常重要的概念。進(jìn)程是程序的一次執(zhí)行,同時(shí)它也是操作系統(tǒng)進(jìn)行資源分配的單位。進(jìn)程具有一些特征,是與程序有根本區(qū)別的概念。進(jìn)程具有動(dòng)態(tài)性、并發(fā)性、異步性、獨(dú)立性的特性。反映進(jìn)程動(dòng)態(tài)性的是進(jìn)程狀態(tài)的變化。進(jìn)程從創(chuàng)建到被撤消,要經(jīng)過(guò)一些具有生命狀態(tài)的活動(dòng)。進(jìn)程的三個(gè)基本狀態(tài)包括阻塞、就緒、執(zhí)行,除此之外,不同的操作系統(tǒng)還具有其它一些狀態(tài)。進(jìn)程的狀態(tài)轉(zhuǎn)換由相應(yīng)的原語(yǔ)來(lái)完成。進(jìn)程的并發(fā)執(zhí)行是指,在同一時(shí)間間隔內(nèi)多個(gè)進(jìn)程同時(shí)發(fā)生。進(jìn)程的并發(fā)特性反映在進(jìn)程對(duì)資源的競(jìng)爭(zhēng)以及由資源競(jìng)爭(zhēng)所引起的對(duì)進(jìn)程執(zhí)行速度的制約。我們可以通過(guò)提高進(jìn)程的并發(fā)性,來(lái)提高整個(gè)系統(tǒng)的效率。第2章進(jìn)程管理78進(jìn)程上下文由以下部分組成:進(jìn)程控制塊、正文段、數(shù)據(jù)段以及各種寄存器和堆棧中的值。進(jìn)程控制塊PCB是進(jìn)程存在的惟一標(biāo)志,它包含進(jìn)程的運(yùn)行信息和程序的控制信息。進(jìn)程控制塊在內(nèi)存中的組織方式有:線(xiàn)性方式、鏈接方式和索引方式。對(duì)于Linux系統(tǒng),我們可以通過(guò)幾個(gè)常用的進(jìn)程創(chuàng)建和控制的系統(tǒng)調(diào)用,實(shí)現(xiàn)對(duì)進(jìn)程的控制。第2章進(jìn)程管理79不能被多個(gè)進(jìn)程同時(shí)使用的資源稱(chēng)為臨界資源。將每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段代碼稱(chēng)為臨界區(qū)。多個(gè)進(jìn)程不能同時(shí)進(jìn)入同一個(gè)臨界區(qū),叫做進(jìn)程之間的互斥;多個(gè)進(jìn)程在使用臨界資源時(shí),表現(xiàn)出來(lái)的相互協(xié)調(diào)、相互合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過(guò)程稱(chēng)為進(jìn)程間的同步。具有同步關(guān)系的一組并發(fā)進(jìn)程稱(chēng)為合作進(jìn)程。實(shí)現(xiàn)進(jìn)程的互斥和同步,可以用鎖或P、V操作來(lái)實(shí)現(xiàn)。P操作是申請(qǐng)臨界資源的原語(yǔ)操作,也稱(chēng)為wait操作;V操作是釋放臨界資源的原語(yǔ)操作,也稱(chēng)為signal操作。信號(hào)量是P、V操作的對(duì)象。第2章進(jìn)程管理80
進(jìn)程通信可包括低級(jí)通信和高級(jí)通信。對(duì)于進(jìn)程進(jìn)行控制的通信是低級(jí)通信;傳遞大量數(shù)據(jù)的通信稱(chēng)為高級(jí)通信。高級(jí)通信包括:共享存儲(chǔ)器系統(tǒng)、消息傳遞系統(tǒng)和管道通信系統(tǒng)。與進(jìn)程概念密切相關(guān)的概念是線(xiàn)程。線(xiàn)程可看成是進(jìn)程中指令的不同執(zhí)行路線(xiàn),它是為了提高操作系統(tǒng)的執(zhí)行效率而引入的。線(xiàn)程又稱(chēng)為輕型進(jìn)程,在有線(xiàn)程的操作系統(tǒng)中,它是操作系統(tǒng)分配處理機(jī)的基本單位,而進(jìn)程是分配資源的基本單位。線(xiàn)程分為兩類(lèi):用戶(hù)線(xiàn)程和內(nèi)核線(xiàn)程。第2章進(jìn)程管理81安全閥基本知識(shí)如果壓力容器(設(shè)備/管線(xiàn)等)壓力超過(guò)設(shè)計(jì)壓力…1.盡可能避免超壓現(xiàn)象堵塞(BLOCKED)火災(zāi)(FIRE)熱泄放(THERMALRELIEF)如何避免事故的發(fā)生?2.使用安全泄壓設(shè)施爆破片安全閥如何避免事故的發(fā)生?01安全閥的作用就是過(guò)壓保護(hù)!一切有過(guò)壓可能的設(shè)施都需要安全閥的保護(hù)!這里的壓力可以在200KG以上,也可以在1KG以下!設(shè)定壓力(setpressure)安全閥起跳壓力背壓(backpressure)安全閥出口壓力超壓(overpressure)表示安全閥開(kāi)啟后至全開(kāi)期間入口積聚的壓力.幾個(gè)壓力概念彈簧式先導(dǎo)式重力板式先導(dǎo)+重力板典型應(yīng)用電站鍋爐典型應(yīng)用長(zhǎng)輸管線(xiàn)典型應(yīng)用罐區(qū)安全閥的主要類(lèi)型02不同類(lèi)型安全閥的優(yōu)缺點(diǎn)結(jié)構(gòu)簡(jiǎn)單,可靠性高適用范圍廣價(jià)格經(jīng)濟(jì)對(duì)介質(zhì)不過(guò)分挑剔彈簧式安全閥的優(yōu)點(diǎn)預(yù)漏--由于閥座密封力隨介質(zhì)壓力的升高而降低,所以會(huì)有預(yù)漏現(xiàn)象--在未達(dá)到安全閥設(shè)定點(diǎn)前,就有少量介質(zhì)泄出.100%SEATINGFORCE75502505075100%SETPRESSURE彈簧式安全閥的缺點(diǎn)過(guò)大的入口壓力降會(huì)造成閥門(mén)的頻跳,縮短閥門(mén)使用壽命.ChatterDiscGuideDiscHolderNozzle彈簧式安全閥的缺點(diǎn)彈簧式安全閥的缺點(diǎn)=10090807060500102030405010%OVERPRESSURE%BUILT-UPBACKPRESSURE%RATEDCAPACITY普通產(chǎn)品平衡背壓能力差.在普通產(chǎn)品基礎(chǔ)上加裝波紋管,使其平衡背壓的能力有所增強(qiáng).能夠使閥芯內(nèi)件與高溫/腐蝕性介質(zhì)相隔離.平衡波紋管彈簧式安全閥的優(yōu)點(diǎn)優(yōu)異的閥座密封性能,閥座密封力隨介質(zhì)操作壓力的升高而升高,可使系統(tǒng)在較高運(yùn)行壓力下高效能地工作.ResilientSeatP1P1P2先導(dǎo)式安全閥的優(yōu)點(diǎn)平衡背壓能力優(yōu)秀有突開(kāi)型/調(diào)節(jié)型兩種動(dòng)作特性可遠(yuǎn)傳取壓先導(dǎo)式安全閥的優(yōu)點(diǎn)對(duì)介質(zhì)比較挑剃,不適用于較臟/較粘稠的介質(zhì),此類(lèi)介質(zhì)會(huì)堵塞引壓管及導(dǎo)閥內(nèi)腔.成本較高.先導(dǎo)式安全閥的缺點(diǎn)重力板式產(chǎn)品的優(yōu)點(diǎn)目前低壓儲(chǔ)罐呼吸閥/緊急泄放閥的主力產(chǎn)品.結(jié)構(gòu)簡(jiǎn)單.價(jià)格經(jīng)濟(jì).重力板式產(chǎn)品的缺點(diǎn)不可現(xiàn)場(chǎng)調(diào)節(jié)設(shè)定值.閥座密封性差,并有較嚴(yán)重的預(yù)漏.受背壓影響大.需要很高的超壓以達(dá)到全開(kāi).不適用于深冷/粘稠工況.幾個(gè)常用規(guī)范ASMEsectionI-動(dòng)力鍋爐(FiredVessel)ASMEsectionVIII-非受火容器(UnfiredVessel)API2000-低壓安全閥設(shè)計(jì)(LowpressurePRV)API520-火災(zāi)工況計(jì)算與選型(FireSizing)API526-閥門(mén)尺寸(ValveDimension)API527-閥座密封(SeatTightness)介質(zhì)狀態(tài)(氣/液/氣液雙相).氣態(tài)介質(zhì)的分子量&Cp/Cv值.液態(tài)介質(zhì)的比重/黏度.安全閥泄放量要求.設(shè)定壓力.背壓.泄放溫度安全閥不以連接尺寸作為選型報(bào)價(jià)依據(jù)!如何提供高質(zhì)量的詢(xún)價(jià)?彈簧安全閥的結(jié)構(gòu)彈簧安全閥起跳曲線(xiàn)彈簧安全閥結(jié)構(gòu)彈簧安全閥結(jié)構(gòu)導(dǎo)壓管活塞密封活塞導(dǎo)向不平衡移動(dòng)副(活塞)導(dǎo)管導(dǎo)閥彈性閥座P1P1P2先導(dǎo)式安全閥結(jié)構(gòu)先導(dǎo)式安全閥的工作原理頻跳安全閥的頻跳是一種閥門(mén)高頻反復(fù)開(kāi)啟關(guān)閉的現(xiàn)象。安全閥頻跳時(shí),一般來(lái)說(shuō)密封面只打開(kāi)其全啟高度的幾分只一或十幾分之一,然后迅速回座并再次起跳。頻跳時(shí),閥瓣和噴嘴的密封面不斷高頻撞擊會(huì)造成密封面的嚴(yán)重?fù)p傷。如果頻跳現(xiàn)象進(jìn)一步加劇還有可能造成閥體內(nèi)部其他部分甚至系統(tǒng)的損傷。安全閥工作不正常的因素頻跳后果1、導(dǎo)向平面由于反復(fù)高頻磨擦造成表面劃傷或局部材料疲勞實(shí)效。2、密封面由于高頻碰撞造成損傷。3、由于高頻振顫造成彈簧實(shí)效。4、由頻跳所帶來(lái)的閥門(mén)及管道振顫可能會(huì)破壞焊接材料和系統(tǒng)上其他設(shè)備。5、由于安全閥在頻跳時(shí)無(wú)法達(dá)到需要的排放量,系統(tǒng)壓力有可能繼續(xù)升壓并超過(guò)最大允許工作壓力。安全閥工作不正常的因素A、系統(tǒng)壓力在通過(guò)閥門(mén)與系統(tǒng)之間的連接管時(shí)壓力下降超過(guò)3%。當(dāng)閥門(mén)處于關(guān)閉狀態(tài)時(shí),閥門(mén)入口處的壓力是相對(duì)穩(wěn)定的。閥門(mén)入口壓力與系統(tǒng)壓力相同。當(dāng)系統(tǒng)壓力達(dá)到安全閥的起跳壓力時(shí),閥門(mén)迅速打開(kāi)并開(kāi)始泄壓。但是由于閥門(mén)與系統(tǒng)之間的連接管設(shè)計(jì)不當(dāng),造成連接管內(nèi)局部壓力下降過(guò)快超過(guò)3%,是閥門(mén)入口處壓力迅速下降到回座壓力而導(dǎo)致閥門(mén)關(guān)閉。因此安全閥開(kāi)啟后沒(méi)有達(dá)到完全排放,系統(tǒng)壓力仍然很高,所以閥門(mén)會(huì)再次起跳并重復(fù)上述過(guò)程,既發(fā)生頻跳。導(dǎo)致頻跳的原因?qū)е陆庸軌航蹈哂?%的原因1、閥門(mén)與系統(tǒng)間的連接管內(nèi)徑小于閥門(mén)入口管內(nèi)徑。2、存在嚴(yán)重的渦流現(xiàn)象。3、連接管過(guò)長(zhǎng)而且沒(méi)有作相應(yīng)的補(bǔ)償(使用內(nèi)徑較大的管道)。4、連接管過(guò)于復(fù)雜(拐彎過(guò)多甚至在該管上開(kāi)口用作它途。在一般情況下安全閥入口處不允許安裝其他閥門(mén)。)導(dǎo)致頻跳的原因B、閥門(mén)的調(diào)節(jié)環(huán)位置設(shè)置不當(dāng)。安全閥擁有噴嘴環(huán)和導(dǎo)向環(huán)。這兩個(gè)環(huán)的位置直接影響安全閥的起跳和回座過(guò)程。如果噴嘴環(huán)的位置過(guò)低或?qū)颦h(huán)的位置過(guò)高,則閥門(mén)起跳后介質(zhì)的作用力無(wú)法在閥瓣座和調(diào)節(jié)環(huán)所構(gòu)成的空間內(nèi)產(chǎn)生足夠的托舉力使閥門(mén)保持排放狀態(tài),從而導(dǎo)致閥門(mén)迅速回座。但是系統(tǒng)壓力仍然保持較高水平,因此回座后閥門(mén)會(huì)很快再次起跳。導(dǎo)致頻跳的原因C、安全閥的額定排量遠(yuǎn)遠(yuǎn)大于所需排量。
由于所選的安全閥的喉徑面積遠(yuǎn)遠(yuǎn)大于所需,安全閥排放時(shí)過(guò)大的排量導(dǎo)致壓力容器內(nèi)局部壓力下降過(guò)快,而系統(tǒng)本身的超壓狀態(tài)沒(méi)有得到緩解,使安全閥不得不再次起跳頻跳的原因閥門(mén)拒跳:當(dāng)系統(tǒng)壓力達(dá)到安全閥的起跳壓力時(shí),閥門(mén)不起跳的現(xiàn)象。安全閥工作不正常的因素1、閥門(mén)整定壓力過(guò)高。2、閥門(mén)內(nèi)落入大量雜質(zhì)從而使閥辦座和導(dǎo)套間卡死或摩擦力過(guò)大。3、彈簧之間夾入雜物使彈簧無(wú)法被正常壓縮。4、閥門(mén)安裝不當(dāng),使閥門(mén)垂直度超過(guò)極限范圍(正負(fù)兩度)從而使閥桿組件在起跳過(guò)程中受阻。5、排氣管道沒(méi)有被可靠支撐或由于管道受熱膨脹移位從而對(duì)閥體產(chǎn)生扭轉(zhuǎn)力,導(dǎo)致閥體內(nèi)機(jī)構(gòu)發(fā)生偏心而卡死。安全閥拒跳的原因閥門(mén)不回座或回座比過(guò)大:安全閥正常起跳后長(zhǎng)時(shí)間無(wú)法回座,閥門(mén)保持排放狀態(tài)的現(xiàn)象。安全閥工作不正常的因素1、閥門(mén)上下調(diào)整環(huán)的位置設(shè)置不當(dāng)。2、排氣管道設(shè)計(jì)不當(dāng)造成排氣不暢,由于排氣管道過(guò)小、拐彎過(guò)多或被堵塞,使排放的蒸汽無(wú)法迅速排出而在排氣管和閥體內(nèi)積累,這時(shí)背壓會(huì)作用在閥門(mén)內(nèi)部機(jī)構(gòu)上并產(chǎn)生抑制閥門(mén)關(guān)閉的趨勢(shì)。3、閥門(mén)內(nèi)落入大量雜質(zhì)從而使閥瓣座和導(dǎo)套之間卡死后摩擦力過(guò)大。安全閥不回座或回座比過(guò)大的因素:4、彈簧之間夾入雜物從而使彈簧被正常壓縮后無(wú)法恢復(fù)。5、由于對(duì)閥門(mén)排放時(shí)的排放反力計(jì)算不足,從而在排放時(shí)閥體受力扭曲損壞內(nèi)部零件導(dǎo)致卡死。6、閥桿螺母(位于閥桿頂端)的定位銷(xiāo)脫落。在閥門(mén)排放時(shí)由于振動(dòng)使該螺母下滑使閥桿組件回落受阻。安全閥不回座或回座比過(guò)大的因素:7、由于彈簧壓緊螺栓的鎖緊螺母松脫,在閥門(mén)排放時(shí)由于振動(dòng)時(shí)彈簧壓緊螺栓松動(dòng)上滑導(dǎo)致閥門(mén)的設(shè)定起跳值不斷減小。
8、閥門(mén)安裝不當(dāng),使閥門(mén)垂直度超過(guò)極限范圍(正負(fù)兩度)從而使閥桿組件在回落過(guò)程中受阻。
9、閥門(mén)的密封面中有雜質(zhì),造成閥門(mén)無(wú)法正常關(guān)閉。
10、鎖緊螺母沒(méi)有鎖緊,由于管道震動(dòng)下環(huán)向上運(yùn)動(dòng),上平面高于密封面,閥門(mén)回座時(shí)無(wú)法密封安全閥不回座或回座比過(guò)大的因素:謝謝觀看癌基因與抑癌基因oncogene&tumorsuppressorgene24135基因突變概述.癌基因和抗癌基因的概念.癌基因的分類(lèi).癌基因產(chǎn)物的作用.癌基因激活的機(jī)理主要內(nèi)容疾?。?/p>
——是人體某一層面或各層面形態(tài)和功能(包括其物質(zhì)基礎(chǔ)——代謝)的異常,歸根結(jié)底是某些特定蛋白質(zhì)結(jié)構(gòu)或功能的變異,而這些蛋白質(zhì)又是細(xì)胞核中相應(yīng)基因借助細(xì)胞受體和細(xì)胞中信號(hào)轉(zhuǎn)導(dǎo)分子接收信號(hào)后作出應(yīng)答(表達(dá))的產(chǎn)物。TranscriptionTranslationReplicationDNARNAProtein中心法規(guī)Whatisgene?基因:
—是遺傳信息的載體
—是一段特定的DNA序列(片段)
—是編碼RNA或蛋白質(zhì)的一段DNA片段
—是由編碼序列和調(diào)控序列組成的一段DNA片段基因主宰生物體的命運(yùn):微效基因的變異——生物體對(duì)生存環(huán)境的敏感度變化關(guān)鍵關(guān)鍵基因的變異——生物體疾病——死亡所以才有:“人類(lèi)所有疾病均可視為基因病”之說(shuō)注:如果外傷如燒傷、骨折等也算疾病的話(huà),外傷應(yīng)該無(wú)法歸入基因病的行列。Genopathy問(wèn):兩個(gè)不相干的人,如果他們患得同一疾病,致病基因是否相同?再問(wèn):同卵雙生的孿生兄弟,他們患病的機(jī)會(huì)是否一樣,命運(yùn)是否相同?┯┯┯┯
ATGC
TACG
┷┷┷┷┯┯┯┯┯
ATAGC
TATCG
┷┷┷┷┷┯┯┯┯
ATGC
TACG
┷┷┷┷┯┯┯
AGC
TCG
┷┷┷┯┯┯┯
ACGC
TGCG
┷┷┷┷┯┯┯┯
ATGC
TACG
┷┷┷┷增添缺失替換DNA分子(復(fù)制)中發(fā)生堿基對(duì)的______、______
和
,而引起的
的改變。替換增添缺失基因結(jié)構(gòu)基因變異的概念:英語(yǔ)句子中的一個(gè)字母的改變,可能導(dǎo)致句子的意思發(fā)生怎樣的變化?可能導(dǎo)致句子的意思不變、變化不大或完全改變THECATSATONTHEMATTHECATSITONTHEMATTHEHATSATONTHEMATTHECATONTHEMAT同理:替換、增添、缺失堿基對(duì),可能會(huì)使性狀不變、變化不大或完全改變。基因的結(jié)構(gòu)改變,一定會(huì)引起性狀的改變??原句:1.基因多態(tài)性與致病突變基因變異與疾病的關(guān)系2.單基因病、多基因病3.疾病易感基因
基因多態(tài)性polymorphism是指DNA序列在群體中的變異性(差異性)在人群中的發(fā)生概率>1%(SNP&CNP)<1%的變異概率叫做突變基因多態(tài)性特定的基因多態(tài)性與疾病相關(guān)時(shí),可用致病突變加以描述SNP:散在單個(gè)堿基的不同,單個(gè)堿基的缺失、插入和置換。
CNP:DNA片段拷貝數(shù)變異,包括缺失、插入和重復(fù)等。同義突變、錯(cuò)義突變、無(wú)義突變、移碼突變
致病突變生殖細(xì)胞基因突變將突變的遺傳信息傳給下一代(代代相傳),即遺傳性疾病。體細(xì)胞基因突變局部形成突變細(xì)胞群(腫瘤)。受精卵分裂基因突變的原因物理因素化學(xué)因素生物因素基因突變的原因(誘發(fā)因素)紫外線(xiàn)、輻射等堿基類(lèi)似物5BU/疊氮胸苷等病毒和某些細(xì)菌等自發(fā)突變DNA復(fù)制過(guò)程中堿基配對(duì)出現(xiàn)誤差。UV使相鄰的胸腺嘧啶產(chǎn)生胸腺嘧啶二聚體,DNA復(fù)制時(shí)二聚體對(duì)應(yīng)鏈空缺,堿基隨機(jī)添補(bǔ)發(fā)生突變。胸腺嘧啶二聚體胸腺嘧啶胸腺嘧啶紫外線(xiàn)誘變物理誘變(physicalinduction)
5溴尿嘧啶(5BU)與T類(lèi)似,多為酮式構(gòu)型。間期細(xì)胞用酮式5BU處理,5BU能插入DNA取代T與A配對(duì);插入DNA后異構(gòu)成烯醇式5BU與G配對(duì)。兩次DNA復(fù)制后,使A/T轉(zhuǎn)換成G/C,發(fā)生堿基轉(zhuǎn)換,產(chǎn)生基因突變?;瘜W(xué)誘變(chemicalinduction)堿基類(lèi)似物(baseanalogues)誘變AT5-BUA5-BUAAT5-BU5-BU(烯醇式)
(酮式)GGC1.生物變異的根本來(lái)源,為生物進(jìn)化提供了最初的原始材料,能使生物的性狀出現(xiàn)差別,以適應(yīng)不同的外界環(huán)境,是生物進(jìn)化的重要因素之一。2.致病突變是導(dǎo)致人類(lèi)遺傳病的病變基礎(chǔ)?;蛲蛔兊囊饬x概述:腫瘤細(xì)胞惡性增殖特性(一)腫瘤細(xì)胞失去了生長(zhǎng)調(diào)節(jié)的反饋抑制正常細(xì)胞受損,一旦恢復(fù)原狀,細(xì)胞就會(huì)停止增殖,但是腫瘤細(xì)胞不受這一反饋機(jī)制抑制。(二)腫瘤細(xì)胞失去了細(xì)胞分裂的接觸抑制。正常細(xì)胞體外培養(yǎng),相鄰細(xì)胞相接觸,長(zhǎng)在一起,細(xì)胞就會(huì)停止增殖,而腫瘤細(xì)胞生長(zhǎng)滿(mǎn)培養(yǎng)皿后,細(xì)胞可以重疊起生長(zhǎng)。(三)腫瘤細(xì)胞表現(xiàn)出比正常細(xì)胞更低的營(yíng)養(yǎng)要求。(四)腫瘤細(xì)胞生長(zhǎng)有一種自分泌作用,自己分泌生長(zhǎng)需要的生長(zhǎng)因子和調(diào)控信號(hào),促進(jìn)自身的惡性增殖。Whatisoncogene?癌基因——是基因組內(nèi)正常存在的基因,其編碼產(chǎn)物通常作為正調(diào)控信號(hào),促進(jìn)細(xì)胞的增殖和生長(zhǎng)。癌基因的突變或表達(dá)異常是細(xì)胞惡性轉(zhuǎn)化(癌變)的重要原因。——凡是能編碼生長(zhǎng)因子、生長(zhǎng)因子受體、細(xì)胞內(nèi)信號(hào)轉(zhuǎn)導(dǎo)分子以及與生長(zhǎng)有關(guān)的轉(zhuǎn)錄調(diào)節(jié)因子等的基因。如何發(fā)現(xiàn)癌基因的呢?11910年,洛克菲勒研究院一個(gè)年輕的研究員Rous發(fā)現(xiàn),雞肉瘤細(xì)胞裂解物在通過(guò)除菌濾器以后,注射到正常雞體內(nèi),可以引起肉瘤,首次提出雞肉瘤可能是由病毒引起的。0.2m孔徑細(xì)菌過(guò)不去但病毒可以通過(guò)從病毒癌基因到細(xì)胞原癌基因的研究歷程:Roussarcomavirus,RSVthefirstcancer-causingretrovirus1958年,Stewart和Eddy分離出一種病毒,注射到小鼠體內(nèi)可以引起肝臟、腎臟、乳腺、胸腺、腎上腺等多種組織器官的腫瘤,因而把這種病毒稱(chēng)為多瘤病毒。50年代末、60年代初,癌病毒研究成了一個(gè)極具想像力的研究領(lǐng)域,主流科學(xué)家開(kāi)始進(jìn)入癌病毒研究領(lǐng)域polyomavirus這期間,Temin發(fā)現(xiàn)RSV有不同亞型,且引起細(xì)胞惡變程度不同,推測(cè)RNA病毒將其遺傳信息傳遞給了正常細(xì)胞的DNA。這與Crick提出的中心法則是相違背的讓事實(shí)屈從于理論還是堅(jiān)持基于實(shí)驗(yàn)的結(jié)果?VSTemin發(fā)現(xiàn)逆轉(zhuǎn)錄酶,1975年獲諾貝爾獎(jiǎng)TeminCrickTemin的實(shí)驗(yàn)設(shè)計(jì):實(shí)驗(yàn)設(shè)計(jì)簡(jiǎn)單而巧妙:將合成DNA所需的“原料”,即A、T、C、G四種脫氧核苷酸,與破壞了外殼的RSV一起在體外40℃的條件下溫育一段時(shí)間結(jié)果在試管里獲得了一種新合成的大分子,它不能被RNA酶破壞,但卻可以被DNA酶所分解,證明這種新合成的大分子是DNA用RNA酶預(yù)先破壞RSV的RNA,再重復(fù)上述的試驗(yàn),則不能獲得這種大分子,說(shuō)明這個(gè)DNA大分子是以RSV的RNA為模板合成的1969年,一個(gè)日本學(xué)者里子水谷來(lái)到Temin的實(shí)驗(yàn)室,這是一個(gè)非常擅長(zhǎng)實(shí)驗(yàn)的年輕科學(xué)家。按Temin的設(shè)想,他們開(kāi)始尋找RSV中存在“逆轉(zhuǎn)錄酶”的證據(jù)DNA
RNA
ProteinTranscriptionTranslationReplicationReplicationRe-Transcription修正中心法規(guī)據(jù)說(shuō),1975年Temin因發(fā)現(xiàn)逆轉(zhuǎn)錄酶而獲諾貝爾獎(jiǎng)時(shí),Bishop懊惱不已,因?yàn)樵缭?969年他就認(rèn)為T(mén)emin的RNADNA的“前病毒理論”有可能是正確的,并且也進(jìn)行了一些實(shí)驗(yàn),但不久由于資深同事的規(guī)勸而放棄了這方面的努力。但Bishop馬上意識(shí)到:逆轉(zhuǎn)錄酶的發(fā)現(xiàn)為逆轉(zhuǎn)錄病毒致癌的研究提供了一條新途徑。一個(gè)RSV,三個(gè)諾貝爾獎(jiǎng)!??!1989年,UCSF的Bishop和Varmus根據(jù)逆轉(zhuǎn)錄病毒的復(fù)制機(jī)制發(fā)現(xiàn)了細(xì)胞癌基因,并獲諾貝爾獎(jiǎng)。Cellularoncogene啟示:Perutz說(shuō):“科學(xué)創(chuàng)造如同藝術(shù)創(chuàng)造一樣,都不可能通過(guò)精心組織而產(chǎn)生”Bishop說(shuō):“許多人引以為豪的是一天工作16小時(shí),工作安排要以分秒計(jì)……可是工作狂是思考的大敵,而思考則是科學(xué)發(fā)現(xiàn)的關(guān)鍵”P(pán)erutzsharedthe1962NobelPrizeforChemistrywithJohnKendrew,fortheirstudiesofthestructuresofhemoglobinandglobularproteins科學(xué)的本質(zhì)和藝術(shù)一樣,都需要直覺(jué)和想像力請(qǐng)給自己一些思考的時(shí)間吧!癌基因的分類(lèi)目前對(duì)癌基因尚無(wú)統(tǒng)一分類(lèi)的方法,一般有下面3種分類(lèi)方法:一、按結(jié)構(gòu)特點(diǎn)分(6)類(lèi)(一)src癌基因家族(二)ras癌基因家族(三)sis癌基因家族(四)myc癌基因家族(五)myb癌基因家族(六)其它:如fos,erb-A等。三、按細(xì)胞增殖調(diào)控蛋白特性分成(4)類(lèi)(一)生長(zhǎng)因子(二)受體類(lèi)(三)細(xì)胞內(nèi)信號(hào)轉(zhuǎn)換器(四)細(xì)胞核因子二、按產(chǎn)物功能分(8)類(lèi)(一)生長(zhǎng)因子類(lèi)(二)酪氨酸蛋白激酶(三)膜相關(guān)G蛋白(四)受體,無(wú)蛋白激酶活性(五)胞質(zhì)絲氨酸-蘇氨酸蛋白激酶(六)胞質(zhì)調(diào)控因子(七)核反式調(diào)控因子(八)其它:db1、bcl-2癌基因產(chǎn)物參與信號(hào)轉(zhuǎn)導(dǎo)
胞外信號(hào)作用于膜表面受體→胞內(nèi)信使物質(zhì)的生成便意味著胞外信號(hào)跨膜傳遞的完成。胞內(nèi)信使至少有:cAMP(環(huán)磷酸腺苷)IP3(三磷酸肌醇)PG(前列腺素)cGMP(環(huán)磷酸鳥(niǎo)苷)DG(二?;视停〤a2+(鈣離子)CAM(鈣調(diào)素)主要機(jī)制是通過(guò)蛋白激酶活化引起底物蛋白一連串磷酸化的生物信號(hào)反應(yīng)過(guò)程,跨膜機(jī)制涉及到:(一)質(zhì)膜上cAMP信使系統(tǒng)(二)質(zhì)膜上肌醇脂質(zhì)系統(tǒng)這兩個(gè)系統(tǒng)都是由受體鳥(niǎo)苷酸調(diào)節(jié)蛋白(GTP-regulatoryprotein,G蛋白)和效應(yīng)酶(腺苷酸環(huán)化酶磷脂酶等)組成,有相似的信號(hào)轉(zhuǎn)導(dǎo)過(guò)程:即受體活化后引起GTP與不同G蛋白結(jié)合活化和抑制效應(yīng)酶從而影響胞內(nèi)信使產(chǎn)生而發(fā)生不同的調(diào)控效應(yīng)。(三)受體操縱的離子通道系統(tǒng)(四)受體酪氨酸蛋白激酶的轉(zhuǎn)導(dǎo)
(一)獲得性基因病
(acquiredgeneticdisease)例如:病毒感染激活原癌基因癌基因活化的機(jī)制
(二)染色體易位和重排使無(wú)活性的原癌基因轉(zhuǎn)位至強(qiáng)啟動(dòng)子或增強(qiáng)子附近而被活化。與基因脆性位點(diǎn)相關(guān)。(三)基因擴(kuò)增(四)點(diǎn)突變?nèi)?、癌基因的產(chǎn)物與功能(一)癌基因產(chǎn)物作用的一般特點(diǎn)1.目前發(fā)現(xiàn)c-onc均為結(jié)構(gòu)基因.2.癌基因產(chǎn)物可分布在膜質(zhì)核也可分泌至胞外.(二)癌基因產(chǎn)物分類(lèi)1.細(xì)胞外生長(zhǎng)因子:TGF-b2.跨膜生長(zhǎng)因子受體:MAPK3.細(xì)胞內(nèi)信號(hào)轉(zhuǎn)導(dǎo)分子:Gprotein/Ras4.核內(nèi)轉(zhuǎn)錄因子
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品記錄與數(shù)據(jù)管理要求培訓(xùn)課件
- 福建省2024八年級(jí)數(shù)學(xué)上冊(cè)第11章數(shù)的開(kāi)方期末復(fù)習(xí)課件新版華東師大版
- 水彩梅花課件教學(xué)課件
- 糖尿病日宣傳活動(dòng)總結(jié)
- 車(chē)間事故應(yīng)急處理
- 剖腹產(chǎn)產(chǎn)后護(hù)理超詳細(xì)
- 好玩的梯子說(shuō)課稿
- 安全教育在走廊和樓梯上
- 旅游規(guī)劃品牌授權(quán)準(zhǔn)則
- 商品砼合同書(shū)
- 運(yùn)用PDCA提高患者身份識(shí)別正確率課件
- 生而為贏-新東方英語(yǔ)背誦美文30篇
- 居住外地離退休人員聯(lián)系服務(wù)工作制度(試行)
- 培養(yǎng)學(xué)生自主學(xué)習(xí)能力(精編課件)
- LED照明基礎(chǔ)知識(shí)介紹幻燈片
- 基礎(chǔ)樂(lè)理 《節(jié)拍節(jié)奏》課件
- DB15T 1394-2018 軟件工程項(xiàng)目?jī)r(jià)格測(cè)算規(guī)范
- 領(lǐng)導(dǎo)干部要樹(shù)立正確的政績(jī)觀課件
- 郭墅中心小學(xué)四年級(jí)上冊(cè)朗文課外閱讀試題與答案
- 高熱驚厥的急救培訓(xùn)課件
- 選科分班(家長(zhǎng))演示稿課件
評(píng)論
0/150
提交評(píng)論