欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

進(jìn)程、線(xiàn)程和上下文切換-創(chuàng)新互聯(lián)

進(jìn)程是什么?

在龍陵等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷(xiāo),成都外貿(mào)網(wǎng)站制作,龍陵網(wǎng)站建設(shè)費(fèi)用合理。

狹義定義:進(jìn)程是正在運(yùn)行的程序的實(shí)例(an instance of a computer program that is being executed)。

廣義定義:進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是基本的分配單元,也是基本的執(zhí)行單元。

進(jìn)程的概念主要有兩點(diǎn):第一,進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,一般情況下,包括文本區(qū)域(textregion)、數(shù)據(jù)區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過(guò)程調(diào)用的指令和本地變量。第二,進(jìn)程是一個(gè)“執(zhí)行中的程序”。程序是一個(gè)沒(méi)有生命的實(shí)體,只有處理器賦予程序生命時(shí)(操作系統(tǒng)執(zhí)行之),它才能成為一個(gè)活動(dòng)的實(shí)體,我們稱(chēng)其為進(jìn)程。[3]

進(jìn)程是操作系統(tǒng)中最基本、重要的概念。是多道程序系統(tǒng)出現(xiàn)后,為了刻畫(huà)系統(tǒng)內(nèi)部出現(xiàn)的動(dòng)態(tài)情況,描述系統(tǒng)內(nèi)部各道程序的活動(dòng)規(guī)律引進(jìn)的一個(gè)概念,所有多道程序設(shè)計(jì)操作系統(tǒng)都建立在進(jìn)程的基礎(chǔ)上。

特征

動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序在多道程序系統(tǒng)中的一次執(zhí)行過(guò)程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡的。

并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行

獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;

異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)

結(jié)構(gòu)特征:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。

多個(gè)不同的進(jìn)程可以包含相同的程序:一個(gè)程序在不同的數(shù)據(jù)集里就構(gòu)成不同的進(jìn)程,能得到不同的結(jié)果;但是執(zhí)行過(guò)程中,程序不能發(fā)生改變。

線(xiàn)程是什么?

線(xiàn)程,有時(shí)被稱(chēng)為輕量級(jí)進(jìn)程(LightweightProcess,LWP),是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線(xiàn)程由線(xiàn)程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。另外,線(xiàn)程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線(xiàn)程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)兒在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線(xiàn)程共享進(jìn)程所擁有的全部資源。一個(gè)線(xiàn)程可以創(chuàng)建和撤消另一個(gè)線(xiàn)程,同一進(jìn)程中的多個(gè)線(xiàn)程之間可以并發(fā)執(zhí)行。由于線(xiàn)程之間的相互制約,致使線(xiàn)程在運(yùn)行中呈現(xiàn)出間斷性。線(xiàn)程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。就緒狀態(tài)是指線(xiàn)程具備運(yùn)行的所有條件,邏輯上可以運(yùn)行,在等待處理機(jī);運(yùn)行狀態(tài)是指線(xiàn)程占有處理機(jī)正在運(yùn)行;阻塞狀態(tài)是指線(xiàn)程在等待一個(gè)事件(如某個(gè)信號(hào)量),邏輯上不可執(zhí)行。每一個(gè)程序都至少有一個(gè)線(xiàn)程,若程序只有一個(gè)線(xiàn)程,那就是程序本身。

特點(diǎn)

在多線(xiàn)程O(píng)S中,通常是在一個(gè)進(jìn)程中包括多個(gè)線(xiàn)程,每個(gè)線(xiàn)程都是作為利用CPU的基本單位,是花費(fèi)最小開(kāi)銷(xiāo)的實(shí)體。線(xiàn)程具有以下屬性。

1)輕型實(shí)體

線(xiàn)程中的實(shí)體基本上不擁有系統(tǒng)資源,只是有一點(diǎn)必不可少的、能保證獨(dú)立運(yùn)行的資源。

線(xiàn)程的實(shí)體包括程序、數(shù)據(jù)和TCB。線(xiàn)程是動(dòng)態(tài)概念,它的動(dòng)態(tài)特性由線(xiàn)程控制塊TCB(Thread Control Block)描述。TCB包括以下信息:

(1)線(xiàn)程狀態(tài)。

(2)當(dāng)線(xiàn)程不運(yùn)行時(shí),被保存的現(xiàn)場(chǎng)資源。

(3)一組執(zhí)行堆棧。

(4)存放每個(gè)線(xiàn)程的局部變量主存區(qū)。

(5)訪(fǎng)問(wèn)同一個(gè)進(jìn)程中的主存和其它資源。

用于指示被執(zhí)行指令序列的程序計(jì)數(shù)器、保留局部變量、少數(shù)狀態(tài)參數(shù)和返回地址等的一組寄存器和堆棧。

2)獨(dú)立調(diào)度和分派的基本單位。

在多線(xiàn)程O(píng)S中,線(xiàn)程是能獨(dú)立運(yùn)行的基本單位,因而也是獨(dú)立調(diào)度和分派的基本單位。由于線(xiàn)程很“輕”,故線(xiàn)程的切換非常迅速且開(kāi)銷(xiāo)小(在同一進(jìn)程中的)。

3)可并發(fā)執(zhí)行。

在一個(gè)進(jìn)程中的多個(gè)線(xiàn)程之間,可以并發(fā)執(zhí)行,甚至允許在一個(gè)進(jìn)程中所有線(xiàn)程都能并發(fā)執(zhí)行;同樣,不同進(jìn)程中的線(xiàn)程也能并發(fā)執(zhí)行,充分利用和發(fā)揮了處理機(jī)與外圍設(shè)備并行工作的能力。

4)共享進(jìn)程資源。

在同一進(jìn)程中的各個(gè)線(xiàn)程,都可以共享該進(jìn)程所擁有的資源,這首先表現(xiàn)在:所有線(xiàn)程都具有相同的地址空間(進(jìn)程的地址空間),這意味著,線(xiàn)程可以訪(fǎng)問(wèn)該地址空間的每一個(gè)虛地址;此外,還可以訪(fǎng)問(wèn)進(jìn)程所擁有的已打開(kāi)文件、定時(shí)器、信號(hào)量機(jī)構(gòu)等。由于同一個(gè)進(jìn)程內(nèi)的線(xiàn)程共享內(nèi)存和文件,所以線(xiàn)程之間互相通信不必調(diào)用內(nèi)核。

進(jìn)程和線(xiàn)程之間的關(guān)系?

1、一個(gè)線(xiàn)程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線(xiàn)程,但至少有一個(gè)線(xiàn)程(通常說(shuō)的主線(xiàn)程)。
2、資源分配給進(jìn)程,同一進(jìn)程的所有線(xiàn)程共享該進(jìn)程的所有資源。
3、線(xiàn)程在執(zhí)行過(guò)程中,需要協(xié)作同步。不同進(jìn)程的線(xiàn)程間要利用消息通信的辦法實(shí)現(xiàn)同步。
4、處理機(jī)分給線(xiàn)程,即真正在處理機(jī)上運(yùn)行的是線(xiàn)程。
5、線(xiàn)程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體。
從三個(gè)角度來(lái)剖析二者之間的區(qū)別
1、調(diào)度:線(xiàn)程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位。
2、并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線(xiàn)程之間也可以并發(fā)執(zhí)行。
3、擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線(xiàn)程不擁有系統(tǒng)資源,但可以訪(fǎng)問(wèn)隸屬于進(jìn)程的資源。

什么是守護(hù)進(jìn)程?

在linux或者unix操作系統(tǒng)中,守護(hù)進(jìn)程(Daemon)是一種運(yùn)行在后臺(tái)的特殊進(jìn)程,它獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。由于在linux中,每個(gè)系統(tǒng)與用戶(hù)進(jìn)行交流的界面稱(chēng)為終端,每一個(gè)從此終端開(kāi)始運(yùn)行的進(jìn)程都會(huì)依附于這個(gè)終端,這個(gè)終端被稱(chēng)為這些進(jìn)程的控制終端,當(dāng)控制終端被關(guān)閉的時(shí)候,相應(yīng)的進(jìn)程都會(huì)自動(dòng)關(guān)閉。但是守護(hù)進(jìn)程卻能突破這種限制,它脫離于終端并且在后臺(tái)運(yùn)行,并且它脫離終端的目的是為了避免進(jìn)程在運(yùn)行的過(guò)程中的信息在任何終端中顯示并且進(jìn)程也不會(huì)被任何終端所產(chǎn)生的終端信息所打斷。它從被執(zhí)行的時(shí)候開(kāi)始運(yùn)轉(zhuǎn),直到整個(gè)系統(tǒng)關(guān)閉才退出。

上下文切換

上下文切換(Context Switch),也稱(chēng)為PCB,性質(zhì)為環(huán)境切換。

上下文切換,有時(shí)也稱(chēng)做進(jìn)程切換或任務(wù)切換,是指CPU從一個(gè)進(jìn)程或線(xiàn)程切換到另一個(gè)進(jìn)程或線(xiàn)程。

在操作系統(tǒng)中,CPU切換到另一個(gè)進(jìn)程需要保存當(dāng)前進(jìn)程的狀態(tài)并恢復(fù)另一個(gè)進(jìn)程的狀態(tài):當(dāng)前運(yùn)行任務(wù)轉(zhuǎn)為就緒(或者掛起、刪除)狀態(tài),另一個(gè)被選定的就緒任務(wù)成為當(dāng)前任務(wù)。上下文切換包括保存當(dāng)前任務(wù)的運(yùn)行環(huán)境,恢復(fù)將要運(yùn)行任務(wù)的運(yùn)行環(huán)境。

進(jìn)程上下文用進(jìn)程的PCB(進(jìn)程控制塊,也稱(chēng)為PCB,即任務(wù)控制塊)表示,它包括進(jìn)程狀態(tài),CPU寄存器的值等。

通常通過(guò)執(zhí)行一個(gè)狀態(tài)保存來(lái)保存CPU當(dāng)前狀態(tài),然后執(zhí)行一個(gè)狀態(tài)恢復(fù)重新開(kāi)始運(yùn)行。

在上下文切換過(guò)程中,CPU會(huì)停止處理當(dāng)前運(yùn)行的程序,并保存當(dāng)前程序運(yùn)行的具體位置以便之后繼續(xù)運(yùn)行。從這個(gè)角度來(lái)看,上下文切換有點(diǎn)像我們同時(shí)閱讀幾本書(shū),在來(lái)回切換書(shū)本的同時(shí)我們需要記住每本書(shū)當(dāng)前讀到的頁(yè)碼。在程序中,上下文切換過(guò)程中的“頁(yè)碼”信息是保存在進(jìn)程控制塊(PCB)中的。PCB還經(jīng)常被稱(chēng)作“切換幀”(switchframe)。“頁(yè)碼”信息會(huì)一直保存到CPU的內(nèi)存中,直到他們被再次使用。

在三種情況下可能會(huì)發(fā)生上下文切換:中斷處理,多任務(wù)處理,用戶(hù)態(tài)切換。在中斷處理中,其他程序”打斷”了當(dāng)前正在運(yùn)行的程序。當(dāng)CPU接收到中斷請(qǐng)求時(shí),會(huì)在正在運(yùn)行的程序和發(fā)起中斷請(qǐng)求的程序之間進(jìn)行一次上下文切換。在多任務(wù)處理中,CPU會(huì)在不同程序之間來(lái)回切換,每個(gè)程序都有相應(yīng)的處理時(shí)間片,CPU在兩個(gè)時(shí)間片的間隔中進(jìn)行上下文切換。對(duì)于一些操作系統(tǒng),當(dāng)進(jìn)行用戶(hù)態(tài)切換時(shí)也會(huì)進(jìn)行一次上下文切換,雖然這不是必須的。

操作系統(tǒng)或者計(jì)算機(jī)硬件都支持上下文切換。一些現(xiàn)代操作系統(tǒng)通過(guò)系統(tǒng)本身來(lái)控制上下文切換,整個(gè)切換過(guò)程中并不依賴(lài)于硬件的支持,這樣做可以讓操作系統(tǒng)保存更多的上下文切換信息

上下文切換的消耗

上下文切換通常是計(jì)算密集型的。也就是說(shuō),它需要相當(dāng)可觀的處理器時(shí)間,在每秒幾十上百次的切換中,每次切換都需要納秒量級(jí)的時(shí)間。所以,上下文切換對(duì)系統(tǒng)來(lái)說(shuō)意味著消耗大量的 CPU 時(shí)間,事實(shí)上,可能是操作系統(tǒng)中時(shí)間消耗大的操作。

性能影響:

上下文切換會(huì)對(duì)性能造成負(fù)面影響。一些上下文切換相對(duì)其他切換而言更加昂貴;其中一個(gè)更昂貴的上下文切換是跨核上下文切換(Cross-Core Context Switch)。一個(gè)線(xiàn)程可以運(yùn)行在一個(gè)專(zhuān)用處理器上,也可以跨處理器。由單個(gè)處理器服務(wù)的線(xiàn)程都有處理器關(guān)聯(lián)(Processor Affinity),這樣會(huì)更加有效。在另一個(gè)處理器內(nèi)核搶占和調(diào)度線(xiàn)程會(huì)引起緩存丟失,作為緩存丟失和過(guò)度上下文切換的結(jié)果要訪(fǎng)問(wèn)本地內(nèi)存。總之,這稱(chēng)為“跨核上下文切換”。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)標(biāo)題:進(jìn)程、線(xiàn)程和上下文切換-創(chuàng)新互聯(lián)
瀏覽路徑:http://chinadenli.net/article26/dhoscg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google定制網(wǎng)站建站公司動(dòng)態(tài)網(wǎng)站服務(wù)器托管面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司