自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux內(nèi)核2.6的進(jìn)程調(diào)度系統(tǒng)介紹

系統(tǒng) Linux
Linux是多任務(wù)搶占操作系統(tǒng),多任務(wù)就是指多個(gè)進(jìn)程間通過(guò)分時(shí)切換來(lái)并發(fā)執(zhí)行。非搶占的系統(tǒng)是對(duì)每個(gè)進(jìn)程而言,除非時(shí)間片用完或主動(dòng)放棄否則不會(huì)被剝奪CPU,主動(dòng)放棄包括調(diào)用一些調(diào)度的系統(tǒng)調(diào)用(比如sched_yield)或者調(diào)用IO等阻塞操作。

  Linux是多任務(wù)搶占操作系統(tǒng),多任務(wù)就是指多個(gè)進(jìn)程間通過(guò)分時(shí)切換來(lái)并發(fā)執(zhí)行。非搶占的系統(tǒng)是對(duì)每個(gè)進(jìn)程而言,除非時(shí)間片用完或主動(dòng)放棄否則不會(huì)被剝奪CPU,主動(dòng)放棄包括調(diào)用一些調(diào)度的系統(tǒng)調(diào)用(比如sched_yield)或者調(diào)用IO等阻塞操作。搶占式系統(tǒng)表示即使當(dāng)前進(jìn)程沒有用完時(shí)間片,也沒有主動(dòng)放棄CPU,如果調(diào)度系統(tǒng)發(fā)現(xiàn)有更高動(dòng)態(tài)優(yōu)先級(jí)的進(jìn)程,則強(qiáng)制剝奪當(dāng)前進(jìn)程的CPU,選擇更高動(dòng)態(tài)優(yōu)先級(jí)的進(jìn)程執(zhí)行。

  調(diào)度系統(tǒng)什么時(shí)候查看是否有更高優(yōu)先級(jí)的進(jìn)程呢?有這些情況:①時(shí)鐘中斷處理程序(Linux2.6的系統(tǒng)時(shí)鐘頻率默認(rèn)是1000HZ,即每1ms調(diào)用一次時(shí)鐘中斷處理程序,具體系統(tǒng)配置的時(shí)鐘頻率可以通過(guò)cat/boot/config-*|grep"^CONFIG_HZ="來(lái)獲取)。如果是多核處理器,則每個(gè)CPU都會(huì)執(zhí)行時(shí)鐘中斷處理程序(其他中斷處理程序只會(huì)映射到某個(gè)CPU上執(zhí)行);②其他一些中斷處理程序,會(huì)讓某個(gè)CPU執(zhí)行調(diào)度程序;③當(dāng)前進(jìn)程阻塞、睡眠等主動(dòng)放棄處理器;④當(dāng)前進(jìn)程用完時(shí)間片;⑤創(chuàng)建了新進(jìn)程;⑥執(zhí)行一些調(diào)度相關(guān)的系統(tǒng)調(diào)用,比如改變進(jìn)程的靜態(tài)優(yōu)先級(jí)等。

  內(nèi)核2.6的進(jìn)程調(diào)度策略一共有三種:SCHED_NORMAL,SCHED_FIFO和SCHED_RR.其中SCHED_NORMAL用于普通進(jìn)程的調(diào)度,后兩種用于實(shí)時(shí)進(jìn)程的調(diào)度。

  Linux的進(jìn)程有的屬于IO消耗型進(jìn)程,有的屬于處理器消耗型進(jìn)程。IO消耗型進(jìn)程希望獲得更多的處理器響應(yīng)機(jī)會(huì),每次響應(yīng)不需要很長(zhǎng)時(shí)間;處理器消耗型進(jìn)程則相反。調(diào)度程序通常在系統(tǒng)響應(yīng)速度和***系統(tǒng)吞吐量之間尋求平衡。

  Linux進(jìn)程的靜態(tài)優(yōu)先級(jí)。靜態(tài)優(yōu)先級(jí)分為兩個(gè)范圍:0~99是實(shí)時(shí)進(jìn)程的靜態(tài)優(yōu)先級(jí)(值越大優(yōu)先級(jí)越高),100~139是普通進(jìn)程的靜態(tài)優(yōu)先級(jí)(通過(guò)nice值表示,-20~19,值越大優(yōu)先級(jí)越低)。

  首先介紹普通進(jìn)程的調(diào)度策略。Linux采用稱為完全公平調(diào)度算法的調(diào)度策略(CFS),每個(gè)CPU都有個(gè)可運(yùn)行隊(duì)列,多個(gè)處理器的可運(yùn)行隊(duì)列會(huì)在調(diào)度時(shí)進(jìn)行隊(duì)列的平衡處理。對(duì)某個(gè)處理器而言,應(yīng)該選取哪個(gè)進(jìn)程投入執(zhí)行是調(diào)度的核心問題,CFS根據(jù)當(dāng)前可運(yùn)行隊(duì)列中普通進(jìn)程的靜態(tài)優(yōu)先級(jí)給每個(gè)進(jìn)程分配處理器使用比,確定周期時(shí)間T(T的選取和可運(yùn)行進(jìn)程個(gè)數(shù)相關(guān),默認(rèn)是20ms,這個(gè)時(shí)間T是用來(lái)控制進(jìn)程切換頻率的,如果太小會(huì)導(dǎo)致進(jìn)程很快完成當(dāng)前分配的處理比,而重新分配處理比,重新調(diào)度)。調(diào)度時(shí)計(jì)算虛擬運(yùn)行時(shí)間,這個(gè)時(shí)間很關(guān)鍵,因?yàn)檎{(diào)度系統(tǒng)就是選擇最小虛擬運(yùn)行時(shí)間的進(jìn)程投入執(zhí)行。

  虛擬運(yùn)行時(shí)間是指每個(gè)進(jìn)程的實(shí)際運(yùn)行時(shí)間標(biāo)準(zhǔn)化后的時(shí)間,這個(gè)時(shí)間是相對(duì)的,可以理解為實(shí)際時(shí)間處理處理器使用比。調(diào)度思想是這樣的,每個(gè)進(jìn)程已經(jīng)分配好處理器使用比了,調(diào)度系統(tǒng)希望各個(gè)進(jìn)程差不多同時(shí)用完這個(gè)使用比,而不是有的進(jìn)程很早完成,有的進(jìn)程很晚完成。那么各個(gè)進(jìn)程的完成的程度就是調(diào)度的依據(jù),總是選擇完成比最小的進(jìn)程投入運(yùn)行。

  如果一個(gè)進(jìn)程阻塞了,其他進(jìn)程運(yùn)行了一段時(shí)間,顯然這個(gè)阻塞進(jìn)程的完成比最小,那么當(dāng)它醒過(guò)來(lái)的時(shí)候,會(huì)導(dǎo)致很長(zhǎng)一段時(shí)間都只運(yùn)行這個(gè)進(jìn)程,所以在喚醒時(shí)會(huì)將完成比調(diào)整為當(dāng)前可運(yùn)行隊(duì)列中完成比的最小值。新建的進(jìn)程會(huì)根據(jù)優(yōu)先級(jí)計(jì)算一個(gè)完成比,而不是簡(jiǎn)單的完成比賦為0.

  再介紹實(shí)時(shí)進(jìn)程的調(diào)度。SCHED_FIFO策略很簡(jiǎn)單,就是選取***靜態(tài)優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程投入運(yùn)行,并且直到進(jìn)程運(yùn)行完成或被更高優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程搶占。SCHED_RR是帶時(shí)間片的SCHED_FIFO.內(nèi)核不為實(shí)時(shí)進(jìn)程計(jì)算動(dòng)態(tài)優(yōu)先級(jí)。

責(zé)任編輯:黃丹 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2011-01-14 13:05:25

Linux內(nèi)核嵌入式

2012-07-30 14:13:11

Linux 2.6內(nèi)核嵌入式

2011-02-28 10:31:02

Linux 2.6內(nèi)核

2009-04-11 15:22:24

Linux 2.6內(nèi)核應(yīng)用

2009-12-11 09:42:54

Linux內(nèi)核源碼進(jìn)程調(diào)度

2009-12-11 09:47:23

Linux內(nèi)核源碼進(jìn)程調(diào)度

2009-12-17 14:34:24

Linux系統(tǒng)內(nèi)核

2010-01-13 09:58:42

2018-05-30 13:42:39

2021-12-15 15:03:51

Linux內(nèi)核調(diào)度

2011-01-14 13:30:39

2010-01-28 10:11:13

Linux 2.6公平調(diào)度器

2009-09-16 08:40:53

linux進(jìn)程調(diào)度linuxlinux操作系統(tǒng)

2023-05-08 12:03:14

Linux內(nèi)核進(jìn)程

2010-02-02 11:00:03

Linux 2.6內(nèi)核

2010-03-08 15:10:57

2011-01-04 18:15:21

2013-10-31 14:09:14

Linux內(nèi)核

2017-01-13 15:39:29

Linux進(jìn)程基礎(chǔ)介紹

2023-11-26 18:54:29

Linux調(diào)度器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)