日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下有四个作业优先级,第一次作业:对Linux系统分析

發(fā)布時間:2023/12/10 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下有四个作业优先级,第一次作业:对Linux系统分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.操作系統(tǒng)的組成

1.無進程的內(nèi)核

在一些操作系統(tǒng)當(dāng)中操作系統(tǒng)的內(nèi)核在所有的進程之外執(zhí)行。也就是說操作系統(tǒng)有自己的內(nèi)存區(qū)域和系統(tǒng)棧,當(dāng)進程發(fā)生 ???? 中斷,陷阱或系統(tǒng)調(diào)用時,此進程的上下文環(huán)境被保存在系統(tǒng)棧中,控制權(quán)轉(zhuǎn)移給內(nèi)核。操作系統(tǒng)執(zhí)行完畢后,恢復(fù)進程的上? ??? ?下文,此進程繼續(xù)執(zhí)行,或者保存該進程的上下文環(huán)境,然后指派另一進程執(zhí)行。

2.在用戶進程中執(zhí)行

在操作系統(tǒng)管理的n個進程映像中,不僅僅有進程控制塊,用戶棧和用戶專有數(shù)據(jù)空間,還有內(nèi)核棧和所有進程共享著的操作系統(tǒng)代碼。

當(dāng)發(fā)生一個中斷,陷阱或是系統(tǒng)調(diào)用時,處理器置于內(nèi)核態(tài),控制權(quán)交給操作系統(tǒng)處理,并將此進程上下文環(huán)境保存起來進行模式切換。當(dāng)中斷完成后,恢復(fù)進程繼續(xù)執(zhí)行或是將控制權(quán)交給進程切換例程進行進程切換,這樣進程中斷并恢復(fù)執(zhí)行的過程中只需要進行模式切換而不需要進行進程切換,從而減少開銷。

3.基于進程的操作系統(tǒng)

把操作系統(tǒng)作為一組普通的系統(tǒng)進程來執(zhí)行,既當(dāng)一個進程發(fā)生中斷,陷阱或是系統(tǒng)調(diào)用時,處理器轉(zhuǎn)變?yōu)閮?nèi)核態(tài),進程切換例程切換至系統(tǒng)進程,并保存用戶進程的上下文執(zhí)行環(huán)境,也就是說,內(nèi)核函數(shù)被組織成獨立的進程。當(dāng)終端結(jié)束時,恢復(fù)用戶進程繼續(xù)執(zhí)行,處理器轉(zhuǎn)變?yōu)橛脩魬B(tài),由進程切換例程將系統(tǒng)進程切換為用戶進程,或是將控制權(quán)交給分派器執(zhí)行下一進程。

二.進程狀態(tài)的轉(zhuǎn)換

1. Linux進程狀態(tài)有:

TASK_RUNNING : 就緒態(tài)或者運行態(tài),進程就緒可以運行,但是不一定正在占有CPU,對應(yīng)進程狀態(tài)的R

TASK_INTERRUPTIBLE:睡眠態(tài),但是進程處于淺度睡眠,可以響應(yīng)信號,一般是進程主動sleep進入的狀態(tài),對應(yīng)進程狀態(tài)S

TASK_UNINTERRUPTIBLE:睡眠態(tài),深度睡眠,不響應(yīng)信號,典型場景是進程獲取信號量阻塞,對應(yīng)進程狀態(tài)D

TASK_ZOMBIE:僵尸態(tài),進程已退出或者結(jié)束,但是父進程還不知道,沒有回收時的狀態(tài),對應(yīng)進程狀態(tài)Z

TASK_STOPED:停止,調(diào)試狀態(tài),對應(yīng)進程狀態(tài)T

2. 進程調(diào)度時機:

進程調(diào)度會引起進程狀態(tài)轉(zhuǎn)換,由上圖可知如下情況會觸發(fā)調(diào)度,進程終止或進程睡眠時主動exit或sleep釋放CPU;淺度睡眠的進程被CFS調(diào)度選中喚醒,深度睡眠進程由于信號量,鎖等的釋放而被喚醒;進程收到信號量等;還有一種最常見的中斷,異常。

三.進程是如何調(diào)度的

無論是在批處理系統(tǒng)還是分時系統(tǒng)中,用戶進程數(shù)一般都多于處理機數(shù)、這將導(dǎo)致它們互相爭奪處理機。另外,系統(tǒng)進程也同樣需要使用處理機。這就要求進程調(diào)度程序按一定的策略,動態(tài)地把處理機分配給處于就緒隊列中的某一個進程,以使之執(zhí)行。

操作系統(tǒng)的常見進程調(diào)度算法:

1.先來先服務(wù) (FCFS,first come first served)

在所有調(diào)度算法中,最簡單的是非搶占式的FCFS算法。

算法原理:進程按照它們請求CPU的順序使用CPU.就像你買東西去排隊,誰第一個排,誰就先被執(zhí)行,在它執(zhí)行的過程中,不會中斷它。當(dāng)其他人也想進入內(nèi)存被執(zhí)行,就要排隊等著,如果在執(zhí)行過程中出現(xiàn)一些事,他現(xiàn)在不想排隊了,下一個排隊的就補上。此時如果他又想排隊了,只能站到隊尾去。

算法優(yōu)點:易于理解且實現(xiàn)簡單,只需要一個隊列(FIFO),且相當(dāng)公平

算法缺點:比較有利于長進程,而不利于短進程,有利于CPU 繁忙的進程,而不利于I/O 繁忙的進程

2.最短作業(yè)優(yōu)先(SJF, Shortest Job First)

短作業(yè)優(yōu)先(SJF, Shortest Job First)又稱為“短進程優(yōu)先”SPN(Shortest Process Next);這是對FCFS算法的改進,其目標(biāo)是減少平均周轉(zhuǎn)時間。

算法原理:對預(yù)計執(zhí)行時間短的進程優(yōu)先分派處理機。通常后來的短進程不搶先正在執(zhí)行的進程。

算法優(yōu)點:相比FCFS 算法,該算法可改善平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間,縮短進程的等待時間,提高系統(tǒng)的吞吐量。

算法缺點:對長進程非常不利,可能長時間得不到執(zhí)行,且未能依據(jù)進程的緊迫程度來劃分執(zhí)行的優(yōu)先級,以及難以準(zhǔn)確估計進程的執(zhí)行時間,從而影響調(diào)度性能。

3.最高響應(yīng)比優(yōu)先法(HRRN,Highest Response Ratio Next)

最高響應(yīng)比優(yōu)先法(HRRN,Highest Response Ratio Next)是對FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個作業(yè)的等待時間而未考慮執(zhí)行時間的長短,而SJF方式只考慮執(zhí)行時間而未考慮等待時間的長短。因此,這兩種調(diào)度算法在某些極端情況下會帶來某些不便。HRN調(diào)度策略同時考慮每個作業(yè)的等待時間長短和估計需要的執(zhí)行時間長短,從中選出響應(yīng)比最高的作業(yè)投入執(zhí)行。這樣,即使是長作業(yè),隨著它等待時間的增加,W / T也就隨著增加,也就有機會獲得調(diào)度執(zhí)行。這種算法是介于FCFS和SJF之間的一種折中算法。

算法原理:響應(yīng)比R定義如下: R =(W+T)/T = 1+W/T

其中T為該作業(yè)估計需要的執(zhí)行時間,W為作業(yè)在后備狀態(tài)隊列中的等待時間。每當(dāng)要進行作業(yè)調(diào)度時,系統(tǒng)計算每個作業(yè)的響應(yīng)比,選擇其中R最大者投入執(zhí)行。

算法優(yōu)點:由于長作業(yè)也有機會投入運行,在同一時間內(nèi)處理的作業(yè)數(shù)顯然要少于SJF法,從而采用HRRN方式時其吞吐量將小于采用SJF 法時的吞吐量。

算法缺點:由于每次調(diào)度前要計算響應(yīng)比,系統(tǒng)開銷也要相應(yīng)增加。

4.時間片輪轉(zhuǎn)算法(RR,Round-Robin)

該算法采用剝奪策略。時間片輪轉(zhuǎn)調(diào)度是一種最古老,最簡單,最公平且使用最廣的算法,又稱RR調(diào)度。每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間。

算法原理:讓就緒進程以FCFS 的方式按時間片輪流使用CPU 的調(diào)度方式,即將系統(tǒng)中所有的就緒進程按照FCFS 原則,排成一個隊列,每次調(diào)度時將CPU 分派給隊首進程,讓其執(zhí)行一個時間片,時間片的長度從幾個ms 到幾百ms。在一個時間片結(jié)束時,發(fā)生時鐘中斷,調(diào)度程序據(jù)此暫停當(dāng)前進程的執(zhí)行,將其送到就緒隊列的末尾,并通過上下文切換執(zhí)行當(dāng)前的隊首進程,進程可以未使用完一個時間片,就出讓CPU(如阻塞)。

算法優(yōu)點:時間片輪轉(zhuǎn)調(diào)度算法的特點是簡單易行、平均響應(yīng)時間短。

算法缺點:不利于處理緊急作業(yè)。在時間片輪轉(zhuǎn)算法中,時間片的大小對系統(tǒng)性能的影響很大,因此時間片的大小應(yīng)選擇恰當(dāng)

怎樣確定時間片的大小:

1、系統(tǒng)對響應(yīng)時間的要求

2、就緒隊列中進程的數(shù)目

3、系統(tǒng)的處理能力

5.多級反饋隊列(Multilevel Feedback Queue)

多級反饋隊列調(diào)度算法是一種CPU處理機調(diào)度算法,UNIX操作系統(tǒng)采取的便是這種調(diào)度算法。

多級反饋隊列調(diào)度算法描述:

1、進程在進入待調(diào)度的隊列等待時,首先進入優(yōu)先級最高的Q1等待。

2、首先調(diào)度優(yōu)先級高的隊列中的進程。若高優(yōu)先級中隊列中已沒有調(diào)度的進程,則調(diào)度次優(yōu)先級隊列中的進程。例如:Q1,Q2,Q3三個隊列,只有在Q1中沒有進程等待時才去調(diào)度Q2,同理,只有Q1,Q2都為空時才會去調(diào)度Q3。

3、對于同一個隊列中的各個進程,按照時間片輪轉(zhuǎn)法調(diào)度。比如Q1隊列的時間片為N,那么Q1中的作業(yè)在經(jīng)歷了N個時間片后若還沒有完成,則進入Q2隊列等待,若Q2的時間片用完后作業(yè)還不能完成,一直進入下一級隊列,直至完成。

4、在低優(yōu)先級的隊列中的進程在運行時,又有新到達(dá)的作業(yè),那么在運行完這個時間片后,CPU馬上分配給新到達(dá)的作業(yè)(搶占式)。

在多級反饋隊列調(diào)度算法中,如果規(guī)定第一個隊列的時間片略大于多數(shù)人機交互所需之處理時間時,便能夠較好的滿足各種類型用戶的需要。

四.我對Linux操作系統(tǒng)進程模型的看法

我認(rèn)為操作系統(tǒng)是用戶和計算機之間的界面. 一方面操作系統(tǒng)管理著所有計算機系統(tǒng)資源, 另一方面操作系統(tǒng)為用戶提供了一個抽象概念上的計算機. 在操作系統(tǒng)的幫助下, 用戶使用計算機時, 避免了對計算機系統(tǒng)硬件的直接操作.

對計算機系統(tǒng)而言,操作系統(tǒng)的對所有系統(tǒng)資源進行管理的程序的集合。

原文:https://www.cnblogs.com/zhouzhenghong/p/8977268.html

總結(jié)

以上是生活随笔為你收集整理的linux下有四个作业优先级,第一次作业:对Linux系统分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。