mùlù jìn chéng diào dù de gài niàn wú lùn shì zài pī chǔlǐ xì tǒng hái shì fēn shí xì tǒng zhōng , yòng hù jìn chéng shù yī bān dū duō yú chǔlǐ jī shù 、 zhè jiāng dǎo zhì tā men hù xiāng zhēng duó chǔlǐ jī 。 lìng wài , xì tǒng jìn chéng yě tóng yàng xū yào shǐ yòng chǔlǐ jī 。 zhè jiù yào qiú jìn chéng diào dù chéng xù 'àn yī dìng de cè lüè , dòng tài dì bǎ chǔlǐ jī fēn pèijǐ chǔyú jiù xù duì liè zhōng de mǒu yī gè jìn chéng , yǐ shǐ zhī zhí xíng 。 jìn chéng diào dù dídí fēn jí gāo jí 、 zhōng jí hé dī jí diào dù zuò yè cóng tí jiāo kāi shǐ zhí dào wán chéng , wǎng wǎng yào jīng lì xià shù sān jí diào dù :
gāo jí diào dù : (high-levelscheduling) yòu chēng wéi zuò yè diào dù , tā jué dìng bǎ hòu bèi zuò yè diào rù nèi cún yùn xíng ;
dī jí diào dù : (low-levelscheduling) yòu chēng wéi jìn chéng diào dù , tā jué dìng bǎ jiù xù duì liè de mǒu jìn chéng huò dé cpu;
zhōng jí diào dù : (intermediate-levelscheduling) yòu chēng wéi zài xū nǐ cún chǔ qì zhōng yǐn rù , zài nèi 、 wài cún duì huàn qū jìn xíng jìn chéng duì huàn 。 jìn chéng diào dù fāng shì jìn chéng diào dù yòu yǐ xià liǎng zhǒng jī běn fāng shì :
fēi bō duó fāng shì
fēn pài chéng xù yī dàn bǎ chǔlǐ jī fēn pèijǐ mǒu jìn chéng hòu biàn ràng tā yī zhí yùn xíng xià qù , zhí dào jìn chéng wán chéng huò fā shēng mǒu shì jiàn 'ér zǔsè shí , cái bǎ chǔlǐ jī fēn pèijǐ lìng yī gè jìn chéng 。
bō duó fāng shì
dāng yī gè jìn chéng zhèng zài yùn xíng shí , xì tǒng kě yǐ jī yú mǒu zhǒng yuán zé , bō duó yǐ fēn pèijǐ tā de chǔlǐ jī , jiāng zhī fēn pèijǐ qí tā jìn chéng 。 bō duó yuán zé yòu : yōu xiān quán yuán zé 、 duǎn jìn chéng 、 yōu xiān yuán zé 、 shí jiān piàn yuán zé 。
lì rú , yòu sān gè jìn chéng p1、 p2、 p3 xiān hòu dào dá , tā men fēn bié xū yào 20、 4 hé 2 gè dān wèi shí jiān yùn xíng wán bì 。
jiǎ rú tā men jiù 'àn p1、 p2、 p3 de shùn xù zhí xíng , qiě bù kě bō duó , zé sān jìn chéng gè zì de zhōu zhuǎn shí jiān fēn bié wéi 20、 24、
26 gè dān wèi shí jiān , píng jūn zhōu zhuǎn shí jiān shì 23.33 gè shí jiān dān wèi 。
jiǎ rú yòng shí jiān piàn yuán zé de bō duó diào dù fāng shì , kě dé dào :
kě jiàn : p1、 p2、 p3 de zhōu zhuǎn shí jiān fēn bié wéi 26、 10、 6 gè dān wèi shí jiān , píng jūn zhōu zhuǎn shí jiān wéi 14 gè dān wèi shí jiān 。
héng liàng jìn chéng diào dù xìng néng de zhǐ biāo yòu : zhōu zhuǎn shí jiān 、 xiǎng yìng shí jiān 、 cpu-i/o zhí xíng qī 。 jìn chéng diào dù suàn fǎ xiān jìn xiān chū suàn fǎ
suàn fǎ zǒng shì bǎ chǔlǐ jī fēn pèijǐ zuì xiān jìn rù jiù xù duì liè de jìn chéng , yī gè jìn chéng yī dàn fēn dé chǔlǐ jī , biàn yī zhí zhí xíng xià qù , zhí dào gāi jìn chéng wán chéng huò zǔsè shí , cái shì fàng chǔlǐ jī 。
lì rú , yòu sān gè jìn chéng p1、 p2 hé p3 xiān hòu jìn rù jiù xù duì liè , tā men de zhí xíng qī fēn bié shì 21、 6 hé 3 gè dān wèi shí jiān ,
zhí xíng qíng kuàng rú xià tú :
duì yú p1、 p2、 p3 de zhōu zhuǎn shí jiān wéi 21、 27、 30, píng jūn zhōu zhuǎn shí jiān wéi 26。
kě jiàn , fifo suàn fǎ fú wù zhì liàng bù jiā , róng yì yǐn qǐ zuò yè yòng hù bù mǎn , cháng zuò wéi yī zhǒng fǔ zhù diào dù suàn fǎ 。
zuì duǎn cpu yùn xíng qī yōu xiān diào dù suàn fǎ (scbf--shortestcpuburstfirst)
gāi suàn fǎ cóng jiù xù duì liè zhòngxuǎn chū “ xià yī gè cpu zhí xíng qī ” zuì duǎn de jìn chéng , wéi zhī fēn pèi chǔlǐ jī 。
lì rú , zài jiù xù duì liè zhōng yòu sì gè jìn chéng p1、 p2、 p3 hé p4, tā men de xià yī gè zhí xíng qī fēn bié shì 16、 12、 4 hé 3 gè dān wèi shí jiān , zhí xíng qíng kuàng rú xià tú :
p1、 p2、 p3 hé p4 de zhōu zhuǎn shí jiān fēn bié wéi 35、 19、 7、 3, píng jūn zhōu zhuǎn shí jiān wéi 16。
gāi suàn fǎ suī kě huò dé jiào hǎo de diào dù xìng néng , dàn nán yǐ zhǔn què dì zhī dào xià yī gè cpu zhí xíng qī , ér zhǐ néng gēn jù měi yī gè jìn chéng de zhí xíng lì shǐ lái yù cè 。
lún zhuǎn fǎ
qián jǐ zhǒng suàn fǎ zhù yào yòng yú pī chǔlǐ xì tǒng zhōng , bù néng zuò wéi fēn shí xì tǒng zhōng de zhù diào dù suàn fǎ , zài fēn shí xì tǒng zhōng , dū cǎi yòng shí jiān piàn lún zhuǎn fǎ 。
jiǎn dān lún zhuǎn fǎ : xì tǒng jiāng suǒ yòu jiù xù jìn chéng 'àn fifo guī zé pái duì , àn yī dìng de shí jiān jiàngé bǎ chǔlǐ jī fēn pèijǐ duì liè zhōng de jìn chéng 。 zhè yàng , jiù xù duì liè zhōng suǒ yòu jìn chéng jūn kě huò dé yī gè shí jiān piàn de chǔlǐ jī 'ér yùn xíng 。
duō jí duì liè fāng fǎ : jiāng xì tǒng zhōng suǒ yòu jìn chéng fēn chéng ruò gān lèi , měi lèi wéi yī jí 。
duō jí fǎn kuì duì liè
duō jí fǎn kuì duì liè fāng shì shì zài xì tǒng zhōng shè zhì duō gè jiù xù duì liè , bìng fù yú gè duì liè yǐ bù tóng de yōu xiān quán 。 jìn chéng diào dù de shí xiàn yǐn qǐ jìn chéng diào dù de yuán yīn
zhèng zài zhí xíng de jìn chéng zhí xíng wán bì huò yīn fā shēng mǒu shì jiàn 'ér bù néng zài jì xù zhí xíng ;
zhí xíng zhōng de jìn chéng yīn tí chū i/o qǐng qiú 'ér zàn tíng zhí xíng ;
zài jìn chéng tōng xìn huò tóng bù guò chéng zhōng zhí xíng liǎo mǒu zhǒng yuán yǔ cāo zuò rú p cāo zuò 、 zǔsè 、 guà qǐ yuán yǔ děng ;
zài kě bō duó shì diào dù zhōng , yòu bǐ dāng qián jìn chéng yōu xiān quán gèng gāo de jìn chéng jìn rù jiù xù duì liè ;
zài shí jiān piàn lún zhuǎn fǎ zhōng , shí jiān piàn wán ;
△ tōng cháng xì tǒng shì 'àn xiān lái xiān fú wù huò yōu xiān quán xíng shì lái zǔ zhì diào dù duì liè 。
jìn chéng diào dù suàn fǎ
qí zhōng , rq wéi jiù xù duì liè zhǐ zhēn , ep wéi yùn xíng duì liè zhǐ zhēn 。 jìn chéng diào dù de gōng néng jìn chéng diào dù de jù tǐ gōng néng kě zǒng jié wéi rú xià jǐ diǎn :
(1) jì lù xì tǒng zhōng suǒ yòu jìn chéng de zhí xíng qíng kuàng
zuò wéi jìn chéng diào dù de zhǔn bèi , jìn chéng guǎn lǐ mó kuài bì xū jiāng xì tǒng zhōng gè jìn chéng de zhí xíng qíng kuàng hé zhuàng tài tè zhēng jì lù zài gè jìn chéng de pcb biǎo zhōng 。 bìng qiě , gēn jù gè jìn chéng de zhuàng tài tè zhēng hé zī yuán xū qiú děng 、 jìn chéng guǎn lǐ mó kuài hái jiāng gè jìn chéng de pcb biǎo pái chéng xiāng yìng de duì liè bìng jìn xíng dòng tài duì liè zhuǎn jiē 。 jìn chéng diào dù mó kuài tōng guò pcb biàn huà lái zhǎng wò xì tǒng zhōng cún zài de suǒ yòu jìn chéng de zhí xíng qíng kuàng hé zhuàng tài tè zhēng , bìng zài shìdàng de shí jī cóng jiù xù duì liè zhòngxuǎn zé chū yī gè jìn chéng zhàn jù chǔlǐ jī 。
(2) xuǎn zé zhàn yòu chǔlǐ jī de jìn chéng
jìn chéng diào dù de zhù yào gōng néng shì 'àn zhào yī dìng de cè lüè xuǎn zé héng gè chù yú jiù xù zhuàng tài de jìn chéng , shǐ qí huò dé chǔlǐ jī zhí xíng 。 gēn jù bù tóng de xì tǒng shè jì mùdì , yòu gè zhǒng gè yàng de xuǎn zé cè lüè , lì rú xì tǒng kāi xiāo jiào shǎo de jìng tài yōu xiān shù diào dù fǎ , shì hé yú fēn shí xì tǒng de lún zhuǎn fǎ (roundrolin) hé duō jí hù kuì lún zhuǎn fǎ (roundrobinwithmultip1efeedback) děng 。 zhè xiē xuǎn zé cè lüè jué dìng liǎo diào dù suàn fǎ de xìng néng 。
(3) jìn xíng jìn chéng shàng xià wén qiē huàn
héng gè jìn chéng de shàng xià wén (context) bāo kuò jìn chéng de zhuàng tài 、 yòu guān biàn liàng hé shù jù jié gòu de zhí 、 jī qì jì cún qì de zhí hé pcb yǐ jí yòu guān chéng xù 、 shù jù děng 。 yī gè jìn chéng de zhí xíng shì zài jìn chéng de shàng xià wén zhōng zhí xíng 。 dāng zhèng zài zhí xíng de jìn chéng yóu yú mǒu zhǒng yuán yīn yào ràng chū chǔlǐ jī shí , xì tǒng yào zuò jìn chéng shàng xià wén qiē huàn , yǐ shǐ lìng yī gè jìn chéng dé yǐ zhí xíng 。 dāng jìn xíng shàng xià wén qiē huàn shí diǎn tǒng yào shǒu xiān jiǎn chá shì fǒu yǔn xǔ zuò shàng xià wén qiē huàn ( zài yòu xiē qíng kuàng xià , shàng xià wén qiē huàn shì bù yǔn xǔ de , lì rú xì tǒng zhèng zài zhí xíng mǒu gè bù yǔn xǔ zhōng duàn de yuán yǔ shí )。 rán hòu , xì tǒng yào bǎo liú yòu guān bèi qiē huàn jìn chéng de zú gòu xìn xī , yǐ biàn yǐ hòu qiē huàn huí gāi jìn chéng shí , shùn lì huī fù gāi jìn chéng de zhí xíng 。 zài xì tǒng bǎo liú liǎo cpu xiàn chǎng zhī hòu , diào dù chéng xù xuǎn zé yī gè xīn de chǔyú jiù xù zhuàng tài de jìn chéng 、 bìng zhuāng pèi gāi jìn chéng de shàng xià wén , shǐ cpu de kòng zhì quán zhǎng wò zài bèi xuǎn zhōng jìn chéng shǒu zhōng 。 jìn chéng diào dù de shí jī jìn chéng diào dù fā shēng zài shénme shí jī ní ? zhè yǔ yǐn qǐ jìn chéng diào dù de yuán yīn yǐ jí jìn chéng diào dù de fāng shì yòu guān 。
yǐn qǐ jìn chéng diào dù de yuán yīn yòu yǐ xià jǐ lèi ,
(1) zhèng zài zhí xíng de jìn chéng zhí xíng wán bì 。 zhè shí , rú guǒ bù xuǎn zé xīn de jiù xù jìn chéng zhí xíng , jiāng làng fèi chǔlǐ jī zī yuán 。
(2) zhí xíng zhōng jìn chéng zì jǐ diào yòng zǔsè yuán yǔ jiāng bái jǐ zǔsè qǐ lái jìn rù shuì mián děng zhuàng tài 。
(3) zhí xíng zhōng jìn chéng diào yòng liǎo p yuán yǔ cāo zuò , cóng 'ér yīn zī yuán bù zú 'ér bèi zǔsè ; huò diào yòng liǎo v yuán yǔ cāo zuò jī huó liǎo děng dài zī yuán de jìn chéng duì liè 。
(4) zhí xíng zhōng jìn chéng tí chū i/o qǐng qiú hòu bèi zǔsè 。
(5) zài fēn shí xì tǒng zhōng shí jiān piàn yǐ jīng yòng wán 。
(6) zài zhí xíng wán xì tǒng diào yòng děng xì tǒng chéng xù hòu fǎn huí yòng hù jìn chéng shí , zhè shí kě kàn zuò xì tǒng jìn chéng zhí xíng wán bì , cóng 'ér kě diào dù xuǎn zé yī xīn de yòng hù jìn chéng zhí xíng 。
yǐ shàng dōushì zài kě bō duó fāng shì xià de yǐn qǐ jìn chéng diào dù de yuán yīn 。 zài cpu zhí xíng fāng shì shì kě bō duó shí . hái yòu
(7) jiù xù duì liè zhōng de mǒu jìn chéng de yōu xiān jí biàn dé gāo yú dāng qián zhí xíng jìn chéng de yōu xiān jí , cóng 'ér yě jiāng yǐn fā jìn chéng diào dù 。
liǎng zhǒng zhàn yòng cpu de fāng shì :
kě bō duó shì ( kě qiǎng zhàn shì preemptive): jiù xù duì liè zhōng yī dàn yòu yōu xiān jí gāo yú dāng qián zhí xíng jìn chéng yōu xiān jí de jìn chéng cún zài shí , biàn lì jí fā shēng jìn chéng diào dù , zhuǎn ràng chǔlǐ jī 。
bù kě bō duó shì ( bù kě qiǎng zhàn shì non_preemptive): jí shǐ zài jiù xù duì liè cún zài yòu yōu xiān jí gāo yǔ dāng qián zhí xíng jìn chéng shí , dāng qián jìn chéng réng jiāng zhàn yòng chǔlǐ jī zhī dào gāi jìn chéng zì jǐ yīn diào yòng yuán yǔ cāo zuò huò děng dài i/o 'ér jìn rù zǔsè 、 shuì mián zhuàng tài , huò shí jiān piàn yòng wán shí cái chóngxīn fā shēng diào dù ràng chū chǔlǐ jī 。 jìn chéng diào dù de shàng xià wén qiē huàn jìn chéng shàng xià wén yóu zhèng wén duàn 、 shù jù duàn 、 yìng jiàn jì cún qì de nèi róng yǐ jí yòu guān shù jù jié gòu děng zǔ chéng 。 yìng jiàn jì cún qì zhù yào bāo kuò cún fàng cpu jiāng yào zhí xíng de xià tiáo zhǐ lìng xū nǐ dì zhǐ de chéng xù jì shù qì pc, zhǐ chū jī qì yǔ jìn chéng xiāng guān lián de yìng jiàn zhuàng tài de chǔlǐ jī zhuàng tài jì cún qì ps, cún fàng guò chéng diào yòng ( huò xì tǒng diào yòng ) shí suǒ chuán dì cān shù de tōng yòng jì cún qì r yǐ jí duī zhàn zhǐ zhēn jì cún qì s děng 。 shù jù jié gòu zé bāo kuò pcb děng zài nèi de suǒ yòu yǔ zhí xíng gāi jìn chéng yòu guān de guǎn lǐ hé kòng zhì yòng biǎo gé 、 shù zǔ 、 liàn děng 。 zài fā shēng jìn chéng diào dù shí xì tǒng yào zuò jìn chéng shàng xià wén qiē huàn 。
zài jìn chéng ( shàng xià wén ) zhōng qiē huàn de bù zhòu
n bǎo cún chǔlǐ qì de shàng xià wén , bāo kuò chéng xù jì shù qì hé qí tā jì cún qì
n yòng xīn zhuàng tài hé qí tā xiāng guān xìn xī gēngxīn zhèng zài yùn xíng jìn chéng de pcb
n bǎ yuán lái de jìn chéng yí zhì hé shì de duì liè - jiù xù 、 zǔsè
n xuǎn zé lìng yī gè yào zhí xíng de jìn chéng
n gēngxīn bèi xuǎn zhōng jìn chéng de pcb
n cóng bèi xuǎn zhōng jìn chéng zhōng zhòng zhuāng rù
cpu shàng xià wén jìn chéng diào dù de xìng néng píng jià jìn chéng diào dù suī rán shì zài xì tǒng nèi bù de dī jí diào dù , dàn jìn chéng diào dù de yōu liè zhí jiē yǐng xiǎng zuò yè diào dù de xìng néng 。 nà me , zěn yàng píng jià jìn chéng diào dù de yōu liè ní ? fǎn yìng zuò yè diào dù yōu liè de zhōu zhuǎn shí jiān hé píng jūn zhōu zhuǎn shí jiān zhǐ zài mǒu zhǒng chéng dù shàng fǎn yìng liǎo jìn chéng diào dù de xìng néng , lì rú , qí zhí xíng shí jiān bù fēn zhōng shí jì shàng bāo hán yòu jìn chéng děng dài ( bāo kuò jiù xù zhuàng tài shí de děng dài ) shí jiān , ér jìn chéng děng dài shí jiān de duō shǎo shì yào yǐ kào jìn chéng diào dù cè lüè hé děng dài shì jiàn hé shí fā shēng děng lái jué dìng de 。 yīn cǐ , jìn chéng diào dù xìng néng de shāng liàng shì cāo zuò xì tǒng shè jì de yī gè zhòng yào zhǐ biāo 。
wǒ men shuō jìn chéng diào dù xìng néng de héng liàng fāng fǎ kě fēn wéi dìng xíng hé dìng liàng liǎng zhǒng 。 zài dìng xíng héng liàng fāng miàn , shǒu xiān shì diào dù de kě kào zhù 。 bāo kuò yī cì jìn chéng diào dù shì fǒu kě néng yǐn qǐ shù jù jié gòu de pò huài děng 。 zhè yào qiú wǒ men duì diào dù shí jī de xuǎn zé hé bǎo cún cpu xiàn chǎng shí fēn jǐn shèn 。 lìng wài , jiǎn jié xìng yě shì héng liàng jìn chéng diào dù de yī gè zhòng yào zhǐ biāo , yóu yú diào dù chéng xù de zhí xíng shè jí dào duō gè jìn chéng hé bì xū jìn xíng shàng xià wén qiē huàn , rú guǒ diào dù chéng xù guò yú fán suǒ hé fù zá , jiāng huì hào qù jiào dà de xì tǒng kāi xiāo 。 zhè zài yòng hù jìn chéng diào yòng xì tǒng diào yòng jiào duō de qíng kuàng xià , jiāng huì zào chéng xiǎng yìng shí jiān dà fú dù zēng jiā 。
jìn chéng diào dù de dìng liàng píng jià bāo kuò cpu de lì yòng shuài píng jià 、 jìn chéng zài jiù xù duì liè zhōng de děng dài shí jiān yǔ zhí xíng shí jiān zhī bǐ děng 。 shí jì shàng yóu yú jìn chéng jìn rù jiù xù duì liè de suí jī mó xíng hěn nán què dìng , ér qiě jìn chéng shàng xià wén qiē huàn děng yě jiāng yǐng xiǎng jìn chéng de zhí xíng xiàolǜ , ll 'ér duì jìn chéng diào dù jìn xíng jiě xī shì hěn kùn nán de 。 yī bān qíng kuàng xià , dà duō lì yòng mó nǐ huò cè shì xì tǒng xiǎng yìng shí jiān de fāng fǎ lái píng jià jìn chéng diào dù de xìng néng 。 shí shí xì tǒng de jìn chéng diào dù shí shí xì tǒng yǔ qí tā cāo zuò xì tǒng bù tóng zài yú jì suàn jī yào néng jí shí xiǎng yìng wài bù shì jiàn de qǐng qiú , zài guī dìng de yán gé shí jiān nèi wán chéng duì gāi shì jiàn de chǔlǐ , bìng kòng zhì suǒ yòu shí shí shè bèi hé shí shí rèn wù xié diào yī zhì dì gōng zuò , duì yú duì shí jiān yào qiú yán gé xìng de bù tóng , shí shí xì tǒng yòu fēn wéi yìng shí shí xì tǒng hé ruǎn shí shí xì tǒng , qí zhōng yìng shí shí xì tǒng shì zhǐ zhè zhǒng shí xiàn de yào qiú shì jué duì de , rèn hé yī gè shí shí rèn wù dōunéng gòu zài shí xiàn zhī qián wán chéng ; ér ruǎn shí shí xì tǒng de yào qiú jiù méi yòu zhè me yán gé , yǔn xǔ 'ǒu 'ěr yòu shí shí rèn wù bù mǎn zú shí xiàn de yào qiú . shí shí xì tǒng yī bān yòng yú qiàn rù shì de xì tǒng zhōng , fēn wéi shí shí guò chéng kòng zhì hé shí shí tōng xìn chǔlǐ , qí zhōng shí shí guò chéng kòng zhì zhù yào yòng yú gōng yè kòng zhì , jūn shì kòng zhì lǐng yù ; shí shì tōng xìn yòng yú diàn xìn , yínháng , fēi jī dìng piào děng lǐng yù , zhèng shì yóu yú zài zhè xiē tè shū lǐng yù de yùn yòng shǐ dé shí shí cāo zuò xì tǒng shè jì shí zhù yào zhuī qiú de shì : duì wài bù qǐng qiú zài yán gé shí jiān fàn wéi nèi zuò chū fǎn yìng , yòu gāo kě kào xìng hé wán bèi xìng . wéi dá dào shí jiān yào qiú , jìn chéng de diào dù cè lüè jiù xiǎn dé yóu wéi zhòng yào .
1. jī yú yōu xiān jí de jìn chéng diào dù
zuì jiǎn dān zuì zhí guān de jìn chéng diào dù cè lüè shì jī yú yōu xiān jí de diào dù , duō shù shí shí xì tǒng cǎi yòng jī yú yōu xiān jí de diào dù , měi gè jìn chéng gēn jù tā zhòng yào chéng dù de bù tóng bèi fù yú bù tóng de yōu xiān jí , diào dù qì zài měi cì diào dù shí , zǒng xuǎn zé yōu xiān jí zuì gāo de jìn chéng kāi shǐ zhí xíng .
shǒu xiān yào kǎo lǜ de wèn tí shì rú hé fēn pèi yōu xiān jí , duì yú jìn chéng yōu xiān jí de fēn pèi kě yǐ cǎi yòng jìng tài hé dòng tài liǎng zhǒng fāng shì , jìng tài yōu xiān jí diào dù suàn fǎ : zhè zhǒng diào dù suàn fǎ gěi nà xiē xì tǒng zhōng dé dào yùn xíng de suǒ yòu jìn chéng dū jìng tài dì fēn pèi yī gè yōu xiān jí . jìng tài yōu xiān jí de fēn pèi kě yǐ gēn jù yìng yòng de shǔ xìng lái jìn xíng , bǐ rú jìn chéng de zhōu qī , yòng hù yōu xiān jí , huò zhě qí tā de yù xiān què dìng de cè lüè . dān diào shuài suàn fǎ (rm) diào dù suàn fǎ shì yī zhǒng diǎn xíng de jìng tài yōu xiān jí diào dù suàn fǎ , tā gēn jù jìn chéng de zhí xíng zhōu qī de cháng duǎn lái jué dìng diào dù yōu xiān jí , nà xiē jù yòu xiǎo de zhí xíng zhōu qī de jìn chéng jù yòu jiào gāo de yōu xiān jí . dòng tài yōu xiān jí diào dù suàn fǎ : zhè zhǒng diào dù suàn fǎ gēn jù jìn chéng de zī yuán xū qiú lái dòng tài dì fēn pèi jìn chéng de yōu xiān jí , qí mùdì jiù shì zài zī yuán fēn pèi hé diào dù shí yòu gèng dà de líng huó xìng . zài shí shí xì tǒng zhōng , zuì zǎo qī xiàn yōu xiān suàn fǎ (edf) suàn fǎ shì shǐ yòng zuì duō de yī zhǒng dòng tài yōu xiān jí diào dù suàn fǎ , gāi suàn fǎ gěi jiù xù duì liè zhōng de gè gè jìn chéng gēn jù tā men de jié zhǐ qī xiàn (deadline) lái fēn pèi yōu xiān jí , jù yòu zuì jìn de jié zhǐ qī xiàn de jìn chéng jù yòu zuì gāo de yōu xiān jí .
fēn pèi hǎo yōu xiān jí zhī hòu xià yī gè yào kǎo lǜ de wèn tí shì hé shí ràng gāo yōu xiān jí jìn chéng zhǎng wò cpu de shǐ yòng quán , zhè qǔ jué yú cāo zuò xì tǒng de nèi hé , yòu bù kě qiǎng zhàn shì hé kě qiǎng zhàn shì liǎng zhǒng .
bù kě qiǎng zhàn shì nèi hé yào qiú měi gè jìn chéng zì wǒ fàng qì cpu de suǒ yòu quán , gè gè jìn chéng bǐ cǐ hé zuò gòng xiǎng yī gè cpu. yì bù shì jiàn hái shì yóu zhōng duàn fú wù lái chù lǐ . zhōng duàn fú wù kě yǐ shǐ yī gè gāo yōu xiān jí de jìn chéng yóu guà qǐ zhuàng tài biàn wéi jiù xù zhuàng tài . dàn zhōng duàn fú wù yǐ hòu kòng zhì quán hái shì huí dào yuán lái bèi zhōng duàn liǎo de nà gè jìn chéng , zhí dào gāi jìn chéng zhù dòng fàng qì cpu de shǐ yòng quán shí , nà gè gāo yōu xiān jí de jìn chéng cái néng huò dé cpu de shǐ yòng quán . zhè jiù chū xiàn liǎo xiǎng yìng shí jiān de wèn tí , gāo yōu xiān jí de jìn chéng yǐ jīng jìn rù liǎo jiù xù zhuàng tài dàn bù néng zhí xíng , zhè yàng jìn chéng de xiǎng yìng shí jiān biàn dé bù zài què dìng zhè yǔ shí shí xì tǒng de yào qiú bù fú , yīn cǐ yī bān de shí shí cāo zuò xì tǒng dōuyào qiú shì kě qiǎng zhàn shì de nèi hé , dāng yī gè yùn xíng zhe de jìn chéng shǐ yī gè bǐ tā yōu xiān jí gāo de jìn chéng jìn rù liǎo jiù xù tài , dāng qián jìn chéng de cpu shǐ yòng quán jiù bèi bō duó liǎo , huò zhě shuō bèi guà qǐ liǎo , nà gè gāo yōu xiān jí de jìn chéng lì kè dé dào liǎo cpu de kòng zhì quán , rú guǒ shì zhōng duàn fú wù zǐ chéng xù shǐ yī gè gāo yōu xiān jí de jìn chéng jìn rù jiù xù tài , zhōng duàn wán chéng shí , zhōng duàn liǎo de jìn chéng bèi guà qǐ , yōu xiān jí gāo de nà gè jìn chéng kāi shǐ yùn xíng . zài zhè zhǒng nèi hé shè zhì xià , duō gè jìn chéng kě néng chǔyú bìng fā de zhuàng tài , zhè jiù chū xiàn liǎo duō gè jìn chéng gòng xiǎng zī yuán de qíng kuàng , yīn cǐ wǒ men xū yào shè zhì xìn hào liàng lái bǎo zhèng lín jiè zī yuán de zhèng què shǐ yòng , rèn hé yī gè xiǎng shǐ yòng lín jiè zī yuán de jìn chéng zài jìn rù lín jiè qū zhī qián bì xū yōng yòu shǐ yòng lín jiè zī yuán de xìn hào liàng , fǒu zé bù kě yǐ zhí xíng lín jiè qū dài mǎ .
zhè yàng jī yú yōu xiān jí de kě qiǎng zhàn shì jìn chéng diào dù cè lüè jiù jī běn jià gòu wán chéng , dàn cǐ shí réng rán yòu xì tǒng bēng kuì de wēi xiǎn , jiǎ shè xì tǒng zhōng yòu 3 gè jìn chéng , fēn bié wéi p1, p2 hé p3.p1 de yōu xiān quán gāo yú p2, ér p2 de yōu xiān quán gāo yú p3. qià zài cǐ shí p1 hé p2 yīn mǒu zhǒng yuán yīn bèi zǔsè , zhè shí hòu xì tǒng diào dù p3 zhí xíng .p3 zhí xíng yī duàn shí jiān hòu , p1 bèi huàn xǐng . yóu yú cǎi qǔ de shì pbp de diào dù cè lüè , yīn cǐ p1 qiǎng zhàn p3 de cpu, p1 zhí xíng .p1 zhí xíng yī duàn shí jiān hòu yào jìn rù lín jiè qū , dàn cǐ shí p3 zhàn yòu cǐ lín jiè zī yuán de xìn hào liàng . yīn cǐ p1 bèi zǔsè , chǔyú děng dài zhuàng tài , děng dài p3 shì fàng cǐ xìn hào liàng . jīng guò zhè me yī duàn shí jiān hòu , p2 cǐ shí cǐ kè chǔyú jiù xù zhuàng tài . yīn cǐ xì tǒng diào dù p2 zhí xíng . rú guǒ p3 zài p2 de zhí xíng qī jiān yī zhí méi yòu néng gòu bèi diào dù zhí xíng de huà , nà p1 hé p3 jiāng yī zhí děng dào p2 zhí xíng wán hòu cái néng zhí xíng , p1 gèng yào děng dào p3 shì fàng tā suǒ bǎ chí de xìn hào liàng cái néng zhí xíng ; ér zhè duàn shí jiān wán quán yòu kě néng chāo chū p1 de deadline, shǐ dé p1 bēng kuì . wǒ men kàn dào zài zhè gè guò chéng zhōng , yóu yú lín jiè zī yuán de shǐ yòng wèn tí shǐ dé yōu xiān jí dī de jìn chéng xiān yú yōu xiān jí gāo de jìn chéng xiān zhí xíng , zhè jiù chū xiàn liǎo yōu xiān jí fǎn zhuǎn de wèn tí , cóng 'ér zào chéng liǎo xì tǒng bēng kuì , duì yú zhè gè wèn tí kě yǐ cǎi yòng yōu xiān jí jì chéng de bàn fǎ lái jìn xíng jiě jué . zài yōu xiān jí jì chéng fāng 'àn zhōng , dāng gāo yōu xiān jí jìn chéng zài děng dài dī yōu xiān jí de jìn chéng zhàn yòu de xìn hào liàng shí , ràng dī yōu xiān jí jìn chéng jì chéng gāo yōu xiān jí jìn chéng de yōu xiān jí , jí bǎ dī yōu xiān jí jìn chéng de yōu xiān quán tí gāo dào gāo yōu xiān jí jìn chéng de yōu xiān jí ; dāng dī yōu xiān jí jìn chéng shì fàng gāo yōu xiān jí jìn chéng děng dài de xìn hào liàng shí , lì jí bǎ qí yōu xiān quán jiàng dī dào yuán lái de yōu xiān quán . cǎi yòng zhè zhǒng fāng fǎ kě yǐ yòu xiào dì jiě jué shàng miàn suǒ shù de yōu xiān quán fǎn zhuǎn de wèn tí . dāng gāo yōu xiān jí jìn chéng p1 xiǎng yào jìn rù lín jiè qū shí , yóu yú dī yōu xiān jí jìn chéng p3 zhàn yòu zhè gè lín jiè zī yuán de xìn hào liàng , dǎo zhì p1 bèi zǔsè . zhè shí hòu , xì tǒng bǎ p3 de yōu xiān quán shēng dào p1 de yōu xiān quán , cǐ shí yōu xiān quán chǔyú p1 hé p3 zhī jiān de jìn chéng p2, jí shǐ chǔyú jiù xù zhuàng tài yě bù kě yǐ bèi diào dù zhí xíng , yīn wéi cǐ shí p3 de yōu xiān quán yǐ jīng gāo yú p2, suǒ yǐ p3 cǐ shí bèi diào dù zhí xíng . dāng p3 shì fàng p1 xū yào de xìn hào liàng shí , xì tǒng lì jí bǎ p3 de yōu xiān quán jiàng dào yuán lái de gāo dù , lái bǎo zhèng p1 hé p2 zhèng cháng yòu xù zhí xíng . mù qián , yòu xǔ duō shí shí xì tǒng shì cǎi yòng zhè zhǒng fāng fǎ lái fáng zhǐ yōu xiān jí fǎn zhuǎn de , rú vxworks.
2. jī yú bǐ lì gòng xiǎng de jìn chéng diào dù
suī rán jī yú yōu xiān jí de diào dù jiǎn dān 'ér qiě yì yú shí xiàn , shì mù qián shǐ yòng zuì guǎng fàn de shí shí xì tǒng de jìn chéng diào dù cè lüè , dàn duì yú yī xiē ruǎn shí shí xì tǒng 'ér yán zhè zhǒng fāng fǎ bù zài shì yòng , bǐ rú shí shí duō méi tǐ huì yì , zài zhè zhǒng qíng kuàng xià wǒ men kě yǐ xuǎn zé jī yú gòng xiǎng de jìn chéng diào dù suàn fǎ , qí jī běn sī xiǎng jiù shì 'àn zhào yī dìng de quán zhòng ( bǐ lì ) duì yī zǔ xū yào diào dù de jìn chéng jìn xíng diào dù , ràng tā men de zhí xíng shí jiān yǔ tā men de quán zhòng wán quán chéng zhèng bǐ . wǒ men kě yǐ tōng guò liǎng zhǒng fāng fǎ lái shí xiàn bǐ lì gòng xiǎng diào dù suàn fǎ : dì yī zhǒng fāng fǎ shì tiáojié gè gè jiù xù jìn chéng chū xiàn zài diào dù duì liè duì shǒu de pín shuài , bìng diào dù duì shǒu de jìn chéng zhí xíng ; dì 'èr zhǒng zuò fǎ jiù shì zhú cì diào dù jiù xù duì liè zhōng de gè gè jìn chéng tóu rù yùn xíng , dàn gēn jù fēn pèi de quán zhòng tiáojié fēn pèi gè měi gè jìn chéng de yùn xíng shí jiān piàn . bǐ lì gòng xiǎng diào dù suàn fǎ de yī gè wèn tí jiù shì tā méi yòu dìng yì rèn hé yōu xiān jí de gài niàn ; suǒ yòu de jìn chéng dū gēn jù tā men shēn qǐng de bǐ lì gòng xiǎng cpu zī yuán , dāng xì tǒng chǔyú guò zài zhuàng tài shí , suǒ yòu de jìn chéng de zhí xíng dū huì 'àn bǐ lì dì biàn màn . suǒ yǐ wèile bǎo zhèng xì tǒng zhōng shí shí jìn chéng néng gòu huò dé yī dìng de cpu chǔlǐ shí jiān , yī bān cǎi yòng yī zhǒng dòng tài tiáojié jìn chéng quán zhòng de fāng fǎ .
3. jī yú shí jiān de jìn chéng diào dù
duì yú nà xiē jù yòu wěn dìng , yǐ zhī shū rù de jiǎn dān xì tǒng , kě yǐ shǐ yòng shí jiān qū dòng de diào dù suàn fǎ , tā néng gòu wéi shù jù chǔlǐ tí gōng hěn hǎo de yù cè xìng . zhè zhǒng diào dù suàn fǎ běn zhì shàng shì yī zhǒng shè jì shí jiù què dìng xià lái de lí xiàn de jìng tài diào dù fāng fǎ . zài xì tǒng de shè jì jiē duàn , zài míng què xì tǒng zhōng suǒ yòu de chǔlǐ qíng kuàng xià , duì yú gè gè jìn chéng de kāi shǐ , qiē huàn , yǐ jí jié shù shí jiān děng jiù shì xiān zuò chū míng què de 'ān pái hé shè jì . zhè zhǒng diào dù suàn fǎ shì hé yú nà xiē hěn xiǎo de qiàn rù shì xì tǒng , zì kòng xì tǒng , chuán gǎn qì děng yìng yòng huán jìng . zhè zhǒng diào dù suàn fǎ de yōu diǎn shì jìn chéng de zhí xíng yòu hěn hǎo de kě yù cè xìng , dàn zuì dà de quē diǎn shì quē fá líng huó xìng , bìng qiě huì chū xiàn yòu jìn chéng xū yào bèi zhí xíng 'ér cpu què bǎo chí kòngxián de qíng kuàng .
duì yú bù tóng yào qiú xià de shí shí xì tǒng kě yǐ cǎi yòng bù tóng de jìn chéng diào dù cè lüè lái jìn xíng shè jì , yě kě yǐ jiāng zhè xiē fāng fǎ jìn xíng zōng hé zhī hòu dé dào gèng shì hé de diào dù cè lüè . linux jìn chéng diào dù yuán lǐ yī 、 jìn chéng diào dù yǐ jù
diào dù chéng xù yùn xíng shí , yào zài suǒ yòu kě yùn xíng zhuàng tài de jìn chéng zhòngxuǎn zé zuì zhí dé yùn xíng de jìn chéng tóu rù yùn xíng 。 xuǎn zé jìn chéng de yǐ jù shì shénme ní ? zài měi gè jìn chéng de task_struct jié gòu zhōng yòu yǐ xià sì xiàng : policy、 priority、 counter、 rt_priority。 zhè sì xiàng shì xuǎn zé jìn chéng de yǐ jù 。 qí zhōng , policy shì jìn chéng de diào dù cè lüè , yòng lái qū fēn shí shí jìn chéng hé pǔ tōng jìn chéng , shí shí jìn chéng yōu xiān yú pǔ tōng jìn chéng yùn xíng ; priority shì jìn chéng ( bāo kuò shí shí hé pǔ tōng ) de jìng tài yōu xiān jí ; counter shì jìn chéng shèng yú de shí jiān piàn , tā de qǐ shǐ zhí jiù shì priority de zhí ; yóu yú counter zài hòu miàn jì suàn yī gè chǔyú kě yùn xíng zhuàng tài de jìn chéng zhí dé yùn xíng de chéng dù goodness shí qǐ zhòng yào zuò yòng , yīn cǐ , counter yě kě yǐ kàn zuò shì jìn chéng de dòng tài yōu xiān jí 。 rt_priority shì shí shí jìn chéng tè yòu de , yòng yú shí shí jìn chéng jiān de xuǎn zé 。
linux yòng hán shù goodness() lái héng liàng yī gè chǔyú kě yùn xíng zhuàng tài de jìn chéng zhí dé yùn xíng de chéng dù 。 gāi hán shù zōng hé liǎo yǐ shàng tí dào de sì xiàng , hái jié hé liǎo yī xiē qí tā de yīn sù , gěi měi gè chǔyú kě yùn xíng zhuàng tài de jìn chéng fù yú yī gè quán zhí (weight), diào dù chéng xù yǐ zhè gè quán zhí zuò wéi xuǎn zé jìn chéng de wéi yī yǐ jù 。 guān yú goodness() de qíng kuàng zài hòu miàn jiāng huì xiáng xì fēn xī 。
èr 、 linux nèi hé de sān zhǒng diào dù fāng fǎ :
1, sched_other fēn shí diào dù cè lüè ,
2, sched_fifo shí shí diào dù cè lüè , xiān dào xiān fú wù
3, sched_rr shí shí diào dù cè lüè , shí jiān piàn lún zhuǎn
shí shí jìn chéng jiāng dé dào yōu xiān diào yòng , shí shí jìn chéng gēn jù shí shí yōu xiān jí jué dìng diào dù quán zhí , fēn shí jìn chéng zé tōng guò nice hé counter zhí jué dìng quán zhí , nice yuè xiǎo , counter yuè dà , bèi diào dù de gàilǜ yuè dà , yě jiù shì céng jīng shǐ yòng liǎo cpu zuì shǎo de jìn chéng jiāng huì dé dào yōu xiān diào dù 。
shced_rr hé sched_fifo de bù tóng :
dāng cǎi yòng shced_rr cè lüè de jìn chéng de shí jiān piàn yòng wán , xì tǒng jiāng chóngxīn fēn pèi shí jiān piàn , bìng zhì yú jiù xù duì liè wěi 。 fàng zài duì liè wěi bǎo zhèng liǎo suǒ yòu jù yòu xiāng tóng yōu xiān jí de rr rèn wù de diào dù gōng píng 。
sched_fifo yī dàn zhàn yòng cpu zé yī zhí yùn xíng 。 yī zhí yùn xíng zhí dào yòu gèng gāo yōu xiān jí rèn wù dào dá huò zì jǐ fàng qì 。
rú guǒ yòu xiāng tóng yōu xiān jí de shí shí jìn chéng ( gēn jù yōu xiān jí jì suàn de diào dù quán zhí shì yī yàng de ) yǐ jīng zhǔn bèi hǎo , fifo shí bì xū děng dài gāi jìn chéng zhù dòng fàng qì hòu cái kě yǐ yùn xíng zhè gè yōu xiān jí xiāng tóng de rèn wù 。 ér rr kě yǐ ràng měi gè rèn wù dū zhí xíng yī duàn shí jiān 。
xiāng tóng diǎn :
rr hé fifo dū zhǐ yòng yú shí shí rèn wù 。
chuàng jiàn shí yōu xiān jí dà yú 0(1-99)。
àn zhào kě qiǎng zhàn yōu xiān jí diào dù suàn fǎ jìn xíng 。
jiù xù tài de shí shí rèn wù lì jí qiǎng zhàn fēi shí shí rèn wù 。
suǒ yòu rèn wù dū cǎi yòng linux fēn shí diào dù cè lüè shí 。
1, chuàng jiàn rèn wù zhǐ dìng cǎi yòng fēn shí diào dù cè lüè , bìng zhǐ dìng yōu xiān jí nice zhí (-20~19)。
2, jiāng gēn jù měi gè rèn wù de nice zhí què dìng zài cpu shàng de zhí xíng shí jiān (counter)。
3, rú guǒ méi yòu děng dài zī yuán , zé jiāng gāi rèn wù jiā rù dào jiù xù duì liè zhōng 。
4, diào dù chéng xù biàn lì jiù xù duì liè zhōng de rèn wù , tōng guò duì měi gè rèn wù dòng tài yōu xiān jí de jì suàn (counter+20-nice) jiēguǒ , xuǎn zé jì suàn jiēguǒ zuì dà de yī gè qù yùn xíng , dāng zhè gè shí jiān piàn yòng wán hòu (counter jiǎn zhì 0) huò zhě zhù dòng fàng qì cpu shí , gāi rèn wù jiāng bèi fàng zài jiù xù duì liè mò wěi ( shí jiān piàn yòng wán ) huò děng dài duì liè ( yīn děng dài zī yuán 'ér fàng qì cpu) zhōng 。
5, cǐ shí diào dù chéng xù chóngfù shàng miàn jì suàn guò chéng , zhuǎn dào dì 4 bù 。
6, dāng diào dù chéng xù fā xiàn suǒ yòu jiù xù rèn wù jì suàn suǒ dé de quán zhí dū wéi bù dà yú 0 shí , chóngfù dì 2 bù 。
suǒ yòu rèn wù dū cǎi yòng fifo shí ,
1, chuàng jiàn jìn chéng shí zhǐ dìng cǎi yòng fifo, bìng shè zhì shí shí yōu xiān jí rt_priority(1-99)。
2, rú guǒ méi yòu děng dài zī yuán , zé jiāng gāi rèn wù jiā rù dào jiù xù duì liè zhōng 。
3, diào dù chéng xù biàn lì jiù xù duì liè , gēn jù shí shí yōu xiān jí jì suàn diào dù quán zhí (1000+rt_priority), xuǎn zé quán zhí zuì gāo de rèn wù shǐ yòng cpu, gāi fifo rèn wù jiāng yī zhí zhàn yòu cpu zhí dào yòu yōu xiān jí gèng gāo de rèn wù jiù xù ( jí shǐ yōu xiān jí xiāng tóng yě bù xíng ) huò zhě zhù dòng fàng qì ( děng dài zī yuán )。
4, diào dù chéng xù fā xiàn yòu yōu xiān jí gèng gāo de rèn wù dào dá ( gāo yōu xiān jí rèn wù kě néng bèi zhōng duàn huò dìng shí qì rèn wù huàn xǐng , zài huò bèi dāng qián yùn xíng de rèn wù huàn xǐng , děng děng ), zé diào dù chéng xù lì jí zài dāng qián rèn wù duī zhàn zhōng bǎo cún dāng qián cpu jì cún qì de suǒ yòu shù jù , chóngxīn cóng gāo yōu xiān jí rèn wù de duī zhàn zhōng jiā zài jì cún qì shù jù dào cpu, cǐ shí gāo yōu xiān jí de rèn wù kāi shǐ yùn xíng 。 chóngfù dì 3 bù 。
5, rú guǒ dāng qián rèn wù yīn děng dài zī yuán 'ér zhù dòng fàng qì cpu shǐ yòng quán , zé gāi rèn wù jiāng cóng jiù xù duì liè zhōng shān chú , jiā rù děng dài duì liè , cǐ shí chóngfù dì 3 bù 。
suǒ yòu rèn wù dū cǎi yòng rr diào dù cè lüè shí
1, chuàng jiàn rèn wù shí zhǐ dìng diào dù cān shù wéi rr, bìng shè zhì rèn wù de shí shí yōu xiān jí hé nice zhí (nice zhí jiāng huì zhuǎn huàn wéi gāi rèn wù de shí jiān piàn de cháng dù )。
2, rú guǒ méi yòu děng dài zī yuán , zé jiāng gāi rèn wù jiā rù dào jiù xù duì liè zhōng 。
3, diào dù chéng xù biàn lì jiù xù duì liè , gēn jù shí shí yōu xiān jí jì suàn diào dù quán zhí (1000+rt_priority), xuǎn zé quán zhí zuì gāo de rèn wù shǐ yòng cpu。
4, rú guǒ jiù xù duì liè zhōng de rr rèn wù shí jiān piàn wéi 0, zé huì gēn jù nice zhí shè zhì gāi rèn wù de shí jiān piàn , tóng shí jiāng gāi rèn wù fàng rù jiù xù duì liè de mò wěi 。 chóngfù bù zhòu 3。
5, dāng qián rèn wù yóu yú děng dài zī yuán 'ér zhù dòng tuì chū cpu, zé qí jiā rù děng dài duì liè zhōng 。 chóngfù bù zhòu 3。
xì tǒng zhōng jì yòu fēn shí diào dù , yòu yòu shí jiān piàn lún zhuǎn diào dù hé xiān jìn xiān chū diào dù
1, rr diào dù hé fifo diào dù de jìn chéng shǔ yú shí shí jìn chéng , yǐ fēn shí diào dù de jìn chéng shì fēi shí shí jìn chéng 。
2, dāng shí shí jìn chéng zhǔn bèi jiù xù hòu , rú guǒ dāng qián cpu zhèng zài yùn xíng fēi shí shí jìn chéng , zé shí shí jìn chéng lì jí qiǎng zhàn fēi shí shí jìn chéng 。
3, rr jìn chéng hé fifo jìn chéng dū cǎi yòng shí shí yōu xiān jí zuò wéi diào dù de quán zhí biāo zhǔn , rr shì fifo de yī gè yán shēn 。 fifo shí , rú guǒ liǎng gè jìn chéng de yōu xiān jí yī yàng , zé zhè liǎng gè yōu xiān jí yī yàng de jìn chéng jù tǐ zhí xíng nǎ yī gè shì yóu qí zài duì liè zhōng de wèi zhī jué dìng de , zhè yàng dǎo zhì yī xiē bù gōng zhèng xìng ( yōu xiān jí shì yī yàng de , wèishénme yào ràng nǐ yī zhí yùn xíng ? ), rú guǒ jiāng liǎng gè yōu xiān jí yī yàng de rèn wù de diào dù cè lüè dū shè wéi rr, zé bǎo zhèng liǎo zhè liǎng gè rèn wù kě yǐ xún huán zhí xíng , bǎo zhèng liǎo gōng píng 。
sān 、 jìn chéng diào dù cè lüè
diào dù chéng xù yùn xíng shí , yào zài suǒ yòu chǔyú kě yùn xíng zhuàng tài de jìn chéng zhī zhòngxuǎn zé zuì zhí dé yùn xíng de jìn chéng tóu rù yùn xíng 。 xuǎn zé jìn chéng de yǐ jù shì shénme ní ? zài měi gè jìn chéng de task_struct jié gòu zhōng yòu zhè me sì xiàng :
policy, priority, counter, rt_priority
zhè sì xiàng jiù shì diào dù chéng xù xuǎn zé jìn chéng de yǐ jù . qí zhōng , policy shì jìn chéng de diào dù cè lüè , yòng lái qū fēn liǎng zhǒng jìn chéng - shí shí hé pǔ tōng ; priority shì jìn chéng ( shí shí hé pǔ tōng ) de yōu xiān jí ; counter shì jìn chéng shèng yú de shí jiān piàn , tā de dà xiǎo wán quán yóu priority jué dìng ; rt_priority shì shí shí yōu xiān jí , zhè shì shí shí jìn chéng suǒ tè yòu de , yòng yú shí shí jìn chéng jiān de xuǎn zé 。
shǒu xiān , linux gēn jù policy cóng zhěng tǐ shàng qū fēn shí shí jìn chéng hé pǔ tōng jìn chéng , yīn wéi shí shí jìn chéng hé pǔ tōng jìn chéng dù diào dù shì bù tóng de , tā men liǎng zhě zhī jiān , shí shí jìn chéng yīnggāi xiān yú pǔ tōng jìn chéng 'ér yùn xíng , rán hòu , duì yú tóng yī lèi xíng de bù tóng jìn chéng , cǎi yòng bù tóng de biāo zhǔn lái xuǎn zé jìn chéng :
duì yú pǔ tōng jìn chéng , linux cǎi yòng dòng tài yōu xiān diào dù , xuǎn zé jìn chéng de yǐ jù jiù shì jìn chéng counter de dà xiǎo 。 jìn chéng chuàng jiàn shí , yōu xiān jí priority bèi fù yī gè chū zhí , yī bān wéi 0 ~ 70 zhī jiān de shù zì , zhè gè shù zì tóng shí yě shì jì shù qì counter de chū zhí , jiù shì shuō jìn chéng chuàng jiàn shí liǎng zhě shì xiāng děng de 。 zì miàn shàng kàn , priority shì “ yōu xiān jí ”、 counter shì “ jì shù qì ” de yì sī , rán 'ér shí jì shàng , tā men biǎo dá de shì tóng yī gè yì sī - jìn chéng de “ shí jiān piàn ”。 priority dài biǎo fēn pèijǐ gāi jìn chéng de shí jiān piàn , counter biǎo shì gāi jìn chéng shèng yú de shí jiān piàn 。 zài jìn chéng yùn xíng guò chéng zhōng , counter bù duàn jiǎn shǎo , ér priority bǎo chí bù biàn , yǐ biàn zài counter biàn wéi 0 de shí hòu ( gāi jìn chéng yòng wán liǎo suǒ fēn pèi de shí jiān piàn ) duì counter chóngxīn fù zhí 。 dāng yī gè pǔ tōng jìn chéng de shí jiān piàn yòng wán yǐ hòu , bìng bù mǎ shàng yòng priority duì counter jìn xíng fù zhí , zhǐ yòu suǒ yòu chǔyú kě yùn xíng zhuàng tài de pǔ tōng jìn chéng de shí jiān piàn (p->;; counter==0) dū yòng wán liǎo yǐ hòu , cái yòng priority duì counter chóngxīn fù zhí , zhè gè pǔ tōng jìn chéng cái yòu liǎo zài cì bèi diào dù de jī huì 。 zhè shuō míng , pǔ tōng jìn chéng yùn xíng guò chéng zhōng , counter de jiǎn xiǎo gěi liǎo qí tā jìn chéng dé yǐ yùn xíng de jī huì , zhí zhì counter jiǎn wéi 0 shí cái wán quán fàng qì duì cpu de shǐ yòng , zhè jiù xiāng duì yú yōu xiān jí zài dòng tài biàn huà , suǒ yǐ chēng zhī wéi dòng tài yōu xiān diào dù 。 zhì yú shí jiān piàn zhè gè gài niàn , hé qí tā bù tóng cāo zuò xì tǒng yī yàng de , linux de shí jiān dān wèi yě shì “ shí zhōng dī dá ”, zhǐ shì bù tóng cāo zuò xì tǒng duì yī gè shí zhōng dī dá de dìng yì bù tóng 'ér yǐ ( linux wéi 10ms)。 jìn chéng de shí jiān piàn jiù shì zhǐ duō shǎo gè shí zhōng dī dá , bǐ rú , ruò priority wéi 20, zé fēn pèijǐ gāi jìn chéng de shí jiān piàn jiù wéi 20 gè shí zhōng dī dá , yě jiù shì 20*10ms=200ms。 linux zhōng mǒu gè jìn chéng de diào dù cè lüè (policy)、 yōu xiān jí (priority) děng kě yǐ zuò wéi cān shù yóu yòng hù zì jǐ jué dìng , jù yòu xiāng dāng de líng huó xìng 。 nèi hé chuàng jiàn xīn jìn chéng shí fēn pèijǐ jìn chéng de shí jiān piàn quē shěng wéi 200ms( gèng zhǔn què de , yìng wéi 210ms), yòng hù kě yǐ tōng guò xì tǒng diào yòng gǎi biàn tā 。
duì yú shí shí jìn chéng , linux cǎi yòng liǎo liǎng zhǒng diào dù cè lüè , jí fifo( xiān lái xiān fú wù diào dù ) hé rr( shí jiān piàn lún zhuǎn diào dù )。 yīn wéi shí shí jìn chéng jù yòu yī dìng chéng dù de jǐn pò xìng , suǒ yǐ héng liàng yī gè shí shí jìn chéng shì fǒu yīnggāi yùn xíng , linux cǎi yòng liǎo yī gè bǐ jiào gù dìng de biāo zhǔn 。 shí shí jìn chéng de counter zhǐ shì yòng lái biǎo shì gāi jìn chéng de shèng yú shí jiān piàn , bìng bù zuò wéi héng liàng tā shì fǒu zhí dé yùn xíng de biāo zhǔn 。 shí shí jìn chéng de counter zhǐ shì yòng lái biǎo shì gāi jìn chéng de shèng yú shí jiān piàn , bìng bù zuò wéi héng liàng tā shì fǒu zhí dé yùn xíng de biāo zhǔn , zhè hé pǔ tōng jìn chéng shì yòu qū bié de 。 shàng miàn yǐ jīng kàn dào , měi gè jìn chéng yòu liǎng gè yōu xiān jí , shí shí yōu xiān jí jiù shì yòng lái héng liàng shí shí jìn chéng shì fǒu zhí dé yùn xíng de 。
zhè yī qiē kàn lái bǐ jiào má fán , dàn shí jì shàng linux zhōng de shí xiàn xiāng dāng jiǎn dān 。 linux yòng hán shù goodness() lái héng liàng yī gè chǔyú kě yùn xíng zhuàng tài de jìn chéng zhí dé yùn xíng de chéng dù 。 gāi hán shù zōng hé liǎo shàng miàn tí dào de gè gè fāng miàn , gěi měi gè chǔyú kě yùn xíng zhuàng tài de jìn chéng fù yú yī gè quán zhí (weight), diào dù chéng xù yǐ zhè gè quán zhí zuò wéi xuǎn zé jìn chéng de wéi yī yǐ jù 。
linux gēn jù policy de zhí jiāng jìn chéng zǒng tǐ shàng fēn wéi shí shí jìn chéng hé pǔ tōng jìn chéng , tí gōng liǎo sān zhǒng diào dù suàn fǎ : yī zhǒng chuán tǒng de unix diào dù chéng xù hé liǎng gè yóu posix.1b( yuán míng wéi posix.4) cāo zuò xì tǒng biāo zhǔn suǒ guī dìng de “ shí shí ” diào dù chéng xù 。 dàn zhè zhǒng shí shí zhǐ shì ruǎn shí shí , bù mǎn zú zhū rú zhōng duàn děng dài shí jiān děng yìng shí shí yào qiú , zhǐ shì bǎo zhèng liǎo dāng shí shí jìn chéng xū yào shí yī dìng zhǐ bǎ cpu fēn pèijǐ shí shí jìn chéng 。
fēi shí shí jìn chéng yòu liǎng zhǒng yōu xiān jí , yī zhǒng shì jìng tài yōu xiān jí , lìng yī zhǒng shì dòng tài yōu xiān jí 。 shí shí jìn chéng yòu zēng jiā liǎo dì sān zhǒng yōu xiān jí , shí shí yōu xiān jí 。 yōu xiān jí shì yī xiē jiǎn dān de zhěng shù , wèile jué dìng yīnggāi yǔn xǔ nǎ yī gè jìn chéng shǐ yòng cpu de zī yuán , yòng yōu xiān jí dài biǎo xiāng duì quán zhí - yōu xiān jí yuè gāo , tā dé dào cpu shí jiān de jī huì yě jiù yuè dà 。
? jìng tài yōu xiān jí (priority)- bù suí shí jiān 'ér gǎi biàn , zhǐ néng yóu yòng hù jìn xíng xiū gǎi 。 tā zhǐ míng liǎo zài bèi pò hé qí tā jìn chéng jìng zhēng cpu zhī qián , gāi jìn chéng suǒ yīnggāi bèi yǔn xǔ de shí jiān piàn de zuì dà zhí ( dàn hěn kě néng de , zài gāi shí jiān piàn hào jìn zhī qián , jìn chéng jiù bèi pò jiāo chū liǎo cpu)。
? dòng tài yōu xiān jí (counter)- zhǐ yào jìn chéng yōng yòu cpu, tā jiù suí zhe shí jiān bù duàn jiǎn xiǎo ; dāng tā xiǎo yú 0 shí , biāo jì jìn chéng chóngxīn diào dù 。 tā zhǐ míng liǎo zài zhè gè shí jiān piàn zhōng suǒ shèng yú de shí jiān liàng 。
? shí shí yōu xiān jí (rt_priority)- zhǐ míng zhè gè jìn chéng zì dòng bǎ cpu jiāo gěi nǎ yī gè qí tā jìn chéng ; jiào gāo quán zhí de jìn chéng zǒng shì yōu xiān yú jiào dī quán zhí de jìn chéng 。 rú guǒ yī gè jìn chéng bù shì shí shí jìn chéng , qí yōu xiān jí jiù shì 0, suǒ yǐ shí shí jìn chéng zǒng shì yōu xiān yú fēi shí shí jìn chéng de ( dàn shí jì shàng , shí shí jìn chéng yě huì zhù dòng fàng qì cpu)。
dāng policy fēn bié wéi yǐ xià zhí shí :
1)sched_other: zhè shì pǔ tōng de yòng hù jìn chéng , jìn chéng de quē shěng lèi xíng , cǎi yòng dòng tài yōu xiān diào dù cè lüè , xuǎn zé jìn chéng de yǐ jù zhù yào shì gēn jù jìn chéng goodness zhí de dà xiǎo 。 zhè zhǒng jìn chéng zài yùn xíng shí , kě yǐ bèi gāo goodness zhí de jìn chéng qiǎng xiān 。
2)sched_fifo: zhè shì yī zhǒng shí shí jìn chéng , zūn shǒu posix1.b biāo zhǔn de fifo( xiān rù xiān chū ) diào dù guī zé 。 tā huì yī zhí yùn xíng , zhí dào yòu yī gè jìn chéng yīn i/o zǔsè , huò zhě zhù dòng shì fàng cpu, huò zhě shì cpu bèi lìng yī gè jù yòu gèng gāo rt_priority de shí shí jìn chéng qiǎng xiān 。 zài linux shí xiàn zhōng , sched_fifo jìn chéng réng rán yōng yòu shí jiān piàn - zhǐ yòu dāng shí jiān piàn yòng wán shí tā men cái bèi pò shì fàng cpu。 yīn cǐ , rú tóng posix1.b yī yàng , zhè yàng de jìn chéng jiù xiàng méi yòu shí jiān piàn ( bù shì cǎi yòng fēn shí ) yī yàng yùn xíng 。 linux zhōng jìn chéng réng rán bǎo chí duì qí shí jiān piàn de jì lù ( bù xiū gǎi counter) zhù yào shì wèile shí xiàn de fāng biàn , tóng shí bì miǎn zài diào dù dài mǎ de guān jiàn lù jìng shàng chū xiàn tiáo jiàn pàn duàn yǔ jù if(! (current->;; policy&;; sched_fifo)){...}- yào zhī dào , qí tā dà liàng fēi fifo jìn chéng dū xū yào jì lù shí jiān piàn , zhè zhǒng duō yú de jiǎn cè zhǐ huì làng fèi cpu zī yuán 。( yī zhǒng yōu huà cuò shī , bù gāi jiāng zhí xíng shí jiān zhàn 10% de dài mǎ de yùn xíng shí jiān jiǎn shǎo dào 50%; ér shì jiāng zhí xíng shí jiān zhàn 90% de dài mǎ de yùn xíng shí jiān jiǎn shǎo dào 95%。 0.9+0.1*0.5=0.95>;; 0.1+0.9*0.9=0.91)
3)sched_rr: zhè yě shì yī zhǒng shí shí jìn chéng , zūn shǒu posix1.b biāo zhǔn de rr( xún huán round-robin) diào dù guī zé 。 chú liǎo shí jiān piàn yòu xiē bù tóng wài , zhè zhǒng cè lüè yǔ sched_fifo lèi sì 。 dāng sched_rr jìn chéng de shí jiān piàn yòng wán hòu , jiù bèi fàng dào sched_fifo hé sched_rr duì liè de mò wěi 。
zhǐ yào xì tǒng zhōng yòu yī gè shí shí jìn chéng zài yùn xíng , zé rèn hé sched_other jìn chéng dōubù néng zài rèn hé cpu yùn xíng 。 měi gè shí shí jìn chéng yòu yī gè rt_priority, yīn cǐ , kě yǐ 'àn zhào rt_priority zài suǒ yòu sched_rr jìn chéng zhī jiān fēn pèi cpu。 qí zuò yòng yǔ sched_other jìn chéng de priority zuò yòng yī yàng 。 zhǐ yòu root yòng hù néng gòu yòng xì tǒng diào yòng sched_setscheduler, lái gǎi biàn dāng qián jìn chéng de lèi xíng (sys_nice, sys_setpriority)。
cǐ wài , nèi hé hái dìng yì liǎo sched_yield, zhè bìng bù shì yī zhǒng diào dù cè lüè , ér shì jié qǔ diào dù cè lüè de yī gè fù jiā wèi 。 rú tóng qián miàn shuō míng de yī yàng , rú guǒ yòu qí tā jìn chéng xū yào cpu, tā jiù tí shì diào dù chéng xù shì fàng cpu。 tè bié yào zhù yì de jiù shì zhè shèn zhì huì yǐn qǐ shí shí jìn chéng bǎ cpu shì fàng gěi fēi shí shí jìn chéng 。
sì 、 zhù yào de jìn chéng diào dù de hán shù fēn xī
zhēn zhèng zhí xíng diào dù de hán shù shì schedule(void), tā xuǎn zé yī gè zuì hé shì de jìn chéng zhí xíng , bìng qiě zhēn zhèng jìn xíng shàng xià wén qiē huàn , shǐ dé xuǎn zhōng de jìn chéng dé yǐ zhí xíng 。 ér reschedule_idle(structtask_struct*p) de zuò yòng shì wéi jìn chéng xuǎn zé yī gè hé shì de cpu lái zhí xíng , rú guǒ tā xuǎn zhōng liǎo mǒu gè cpu, zé jiāng gāi cpu shàng dāng qián yùn xíng jìn chéng de need_resched biāo zhì zhì wéi 1, rán hòu xiàng tā fā chū yī gè chóngxīn diào dù de chǔlǐ jī jiān zhōng duàn , shǐ dé xuǎn zhōng de cpu néng gòu zài zhōng duàn chǔlǐ fǎn huí shí zhí xíng schedule hán shù , zhēn zhèng diào dù jìn chéng p zài cpu shàng zhí xíng 。 zài schedule() hé reschedule_idle() zhōng diào yòng liǎo goodness() hán shù 。 goodness() hán shù yòng lái héng liàng yī gè chǔyú kě yùn xíng zhuàng tài de jìn chéng zhí dé yùn xíng de chéng dù 。 cǐ wài , zài schedule() hán shù zhōng hái diào yòng liǎo schedule_tail() hán shù ; zài reschedule_idle() hán shù zhōng hái diào yòng liǎo reschedule_idle_slow()。 zhè xiē hán shù de shí xiàn duì lǐ jiě smp de diào dù fēi cháng zhòng yào , xià miàn yī yī fēn xī zhè xiē hán shù 。 xiān gěi chū měi gè hán shù de zhù yào liú chéng tú , rán hòu gěi chū yuán dài mǎ , bìng jiā zhù shì 。
goodness() hán shù fēn xī
goodness() hán shù jì suàn yī gè chǔyú kě yùn xíng zhuàng tài de jìn chéng zhí dé yùn xíng de chéng dù 。 yī gè rèn wù de goodness shì yǐ xià yīn sù de hán shù : zhèng zài yùn xíng de rèn wù 、 xiǎng yào yùn xíng de rèn wù 、 dāng qián de cpu。 goodness fǎn huí xià miàn liǎng lèi zhí zhōng de yī gè : 1000 yǐ xià huò zhě 1000 yǐ shàng 。 1000 huò zhě 1000 yǐ shàng de zhí zhǐ néng fù gěi “ shí shí ” jìn chéng , cóng 0 dào 999 de zhí zhǐ néng fù gěi pǔ tōng jìn chéng 。 shí jì shàng , zài dān chù lǐ qì qíng kuàng xià , pǔ tōng jìn chéng de goodness zhí zhǐ shǐ yòng zhè gè fàn wéi dǐ bù de yī bù fēn , cóng 0 dào 41。 zài smp qíng kuàng xià , smp mó shì huì yōu xiān zhào gù děng dài tóng yī gè chǔlǐ qì de jìn chéng 。 bù guò , bù guǎn shì up hái shì smp, shí shí jìn chéng de goodness zhí de fàn wéi shì cóng 1001 dào 1099。
goodness() hán shù qí shí shì bù huì fǎn huí -1000 de , yě bù huì fǎn huí qí tā fù zhí 。 yóu yú idle jìn chéng de counter zhí wéi fù , suǒ yǐ rú guǒ shǐ yòng idle jìn chéng zuò wéi cān shù diào yòng goodness, jiù huì fǎn huí fù zhí , dàn zhè shì bù huì fā shēng de 。
goodness() shì gè jiǎn dān de hán shù , dàn shì tā shì linux diào dù chéng xù bù kě quē shǎo de bù fēn 。 yùn xíng duì liè zhōng de měi gè jìn chéng měi cì zhí xíng schedule shí dōuyào diào dù tā , yīn cǐ tā de zhí xíng sù dù bì xū hěn kuài 。
// zài /kernel/sched.c zhōng
staticinlineintgoodness(structtask_struct*p, intthis_cpu, structmm_struct*this_mm)
{intweight;
if(p->;; policy! =sched_other){/* rú guǒ shì shí shí jìn chéng , zé */
weight=1000+p->;; rt_priority;
gotoout;
}
/* jiāng counter de zhí fù gěi weight, zhè jiù gěi liǎo jìn chéng yī gè dà gài de quán zhí , counter zhōng de zhí biǎo shì jìn chéng zài yī gè shí jiān piàn nèi , shèng xià yào yùn xíng de shí jiān .*/
weight=p->;; counter;
if(! weight)/*weight==0, biǎo shì gāi jìn chéng de shí jiān piàn yǐ jīng yòng wán , zé zhí jiē zhuǎn dào biāo hào out*/
gotoout;
#ifdef__smp__
/* zài smp qíng kuàng xià , rú guǒ jìn chéng jiāng yào yùn xíng de cpu yǔ jìn chéng shàng cì yùn xíng de cpu shì yī yàng de , zé zuì yòu lì , yīn cǐ , jiǎ rú jìn chéng shàng cì yùn xíng de cpu yǔ dāng qián cpu yī zhì de huà , quán zhí jiā shàng proc_change_penalty, zhè gè hóng dìng yì wéi 20。 */
if(p->;; processor==this_cpu)
weight+=proc_change_penalty;
#endif
if(p->;; mm==this_mm)/* jìn chéng p yǔ dāng qián yùn xíng jìn chéng , shì tóng yī gè jìn chéng de bù tóng xiàn chéng , huò zhě shì gòng xiǎng dì zhǐ kōng jiān de bù tóng jìn chéng , yōu xiān xuǎn zé , quán zhí jiā 1*/
weight+=1;
weight+=p->;; priority; /* quán zhí jiā shàng jìn chéng de yōu xiān jí */
out:
returnweight; /* fǎn huí zhí zuò wéi jìn chéng diào dù de wéi yī yǐ jù , shuí de quán zhí dà , jiù diào dù shuí yùn xíng */
}
schedule() hán shù fēn xī
schedule() hán shù de zuò yòng shì , xuǎn zé yī gè hé shì de jìn chéng zài cpu shàng zhí xíng , tā jǐn jǐn gēn jù 'goodness' lái gōng zuò 。 duì yú smp qíng kuàng , chú liǎo jì suàn měi gè jìn chéng de jiā quán píng jūn yùn xíng shí jiān wài , qí tā yǔ smp xiāng guān de bù fēn zhù yào yóu goodness() hán shù lái tǐ xiàn 。
liú chéng :
① jiāng prev hé next shè zhì wéi schedule zuì gǎn xīng qù de liǎng gè jìn chéng : qí zhōng yī gè shì zài diào yòng schedule shí zhèng zài yùn xíng de jìn chéng (prev), lìng wài yī gè yīnggāi shì jiē zhe jiù gěi yú cpu de jìn chéng ( next)。 zhù yì : prev hé next kě néng shì xiāng tóng de -schedule kě yǐ chóngxīn diào dù yǐ jīng huò dé cpu de jìn chéng .
② zhōng duàn chǔlǐ chéng xù yùn xíng “ xià bàn bù fēn ” .
③ nèi hé shí shí xì tǒng bù fēn de shí xiàn , xún huán diào dù chéng xù ( sched_rr) tōng guò yí dòng “ hào jìn de ” rr jìn chéng - yǐ jīng yòng wán qí shí jiān piàn de jìn chéng - dào duì liè mò wěi , zhè yàng jù yòu xiāng tóng yōu xiān jí de qí tā rr jìn chéng jiù kě yǐ huò dé cpu liǎo 。 tóng shí , zhè bǔ chōng liǎo hào jìn jìn chéng de shí jiān piàn 。
④ yóu yú dài mǎ de qí tā bù fēn yǐ jīng jué dìng liǎo jìn chéng bì xū bèi yí jìn huò yí chū task_running zhuàng tài , suǒ yǐ huì jīng cháng shǐ yòng schedule, lì rú , rú guǒ jìn chéng zhèng zài děng dài de yìng jiàn tiáo jiàn yǐ jīng fā shēng , suǒ yǐ rú guǒ bì yào , zhè gè switch huì gǎi biàn jìn chéng de zhuàng tài 。 rú guǒ jìn chéng yǐ jīng chǔyú task_running zhuàng tài , tā jiù wú xū chǔlǐ liǎo 。 rú guǒ tā shì kě yǐ zhōng duàn de ( děng dài xìn hào ), bìng qiě xìn hào yǐ jīng dào dá liǎo jìn chéng , jiù fǎn huí task_running zhuàng tài 。 zài suǒ yǐ qí tā qíng kuàng xià ( lì rú , jìn chéng yǐ jīng chǔyú task_uninterruptible zhuàng tài liǎo ), yīnggāi cóng yùn xíng duì liè zhōngjiàng jìn chéng yí zǒu 。
⑤ jiāng p chū shǐ huà wéi yùn xíng duì liè de dì yī gè rèn wù ; p huì biàn lì duì liè zhōng de suǒ yòu rèn wù 。
⑥ c jì lù liǎo yùn xíng duì liè zhōng suǒ yòu jìn chéng zuì hǎo de “ goodness” - jù yòu zuì hǎo “ goodness” de jìn chéng shì zuì yì huò dé cpu de jìn chéng 。 goodness de zhí yuè gāo yuè hǎo 。
⑦ biàn lì zhí xíng rèn wù liàn biǎo , gēn zōng jù yòu zuì hǎo goodness de jìn chéng 。
⑧ zhè gè xún huán zhōng zhǐ kǎo lǜ liǎo wéi yī yī gè kě yǐ diào dù de jìn chéng 。 zài smp mó shì xià , zhǐ yòu rèn wù bù zài cpu shàng yùn xíng shí , jí can_schedule hóng fǎn huí wéi zhēn shí , cái huì kǎo lǜ gāi rèn wù 。 zài up qíng kuàng xià , can_schedule hóng fǎn huí héng wéi zhēn .
⑨ rú guǒ xún huán jié shù hòu , dé dào c de zhí wéi 0。 shuō míng yùn xíng duì liè zhōng de suǒ yòu jìn chéng de goodness zhí dū wéi 0。 goodness de zhí wéi 0, yì wèi zhe jìn chéng yǐ jīng yòng wán tā de shí jiān piàn , huò zhě tā yǐ jīng míng què shuō míng yào shì fàng cpu。 zài zhè zhǒng qíng kuàng xià , schedule yào zhòng xīn jì suàn jìn chéng de counter; xīn counter de zhí shì yuán lái zhí de yī bàn jiā shàng jìn chéng de jìng tài yōu xiān jí ( priortiy), chú fēi jìn chéng yǐ jīng shì fàng cpu, fǒu zé yuán lái counter de zhí wéi 0。 yīn cǐ , schedule tōng cháng zhǐ shì bǎ counter chū shǐ huà wéi jìng tài yōu xiān jí 。( zhōng duàn chǔlǐ chéng xù hé yóu lìng yī gè chǔlǐ qì yǐn qǐ de fēn zhī zài schedule sōu xún goodness zuì dà zhí shí dū jiāng zēng jiā cǐ xún huán zhōng de jì shù qì , yīn cǐ yóu yú zhè gè yuán yīn jì shù qì kě néng bù huì wéi 0。 xiǎn rán , zhè hěn hǎn jiàn 。) zài counter de zhí jì suàn wán chéng hòu , chóngxīn kāi shǐ zhí xíng zhè gè xún huán , zhǎo jù yòu zuì dà goodness de rèn wù 。
⑩ rú guǒ schedule yǐ jīng xuǎn zé liǎo yī gè bù tóng yú qián miàn zhèng zài zhí xíng de jìn chéng lái diào dù , nà me jiù bì xū guà qǐ yuán lái de jìn chéng bìng yǔn xǔ xīn de jìn chéng yùn xíng 。 zhè shí diào yòng switch_to lái jìn xíng qiē huàn 。 jìn chéng yòu sì gè jī běn shǔ xìng 1. duō tài xìng cóng dàn shēng 、 yùn xíng , zhí zhì xiāo miè 。
2. duō gè bù tóng de jìn chéng kě yǐ bāo kuò xiāng tóng de chéng xù
3. sān zhǒng jī běn zhuàng tài tā men zhī jiān kě jìn xíng zhuǎn huàn
4. bìng fā xìng bìng fā zhí xíng de jìn chéng lún liú zhàn yòng chǔlǐ qì jìn chéng de sān zhǒng jī běn zhuàng tài : 1. děng dài tài : děng dài mǒu gè shì jiàn de wán chéng ;
2. jiù xù tài : děng dài xì tǒng fēn pèi chǔlǐ qì yǐ biàn yùn xíng ;
3. yùn xíng tài : zhàn yòu chǔlǐ qì zhèng zài yùn xíng 。
yùn xíng tài → děng dài tài wǎng wǎng shì yóu yú děng dài wài shè , děng dài zhù cún děng zī yuán fēn pèi huò děng dài rén gōng gān yù 'ér yǐn qǐ de 。
děng dài tài → jiù xù tài zé shì děng dài de tiáo jiàn yǐ mǎn zú , zhǐ xū fēn pèi dào chǔlǐ qì hòu jiù néng yùn xíng 。
yùn xíng tài → jiù xù tài bù shì yóu yú zì shēn yuán yīn , ér shì yóu wài jiè yuán yīn shǐ yùn xíng zhuàng tài de jìn chéng ràng chū chǔlǐ qì , zhè shí hòu jiù biàn chéng jiù xù tài 。 lì rú shí jiān piàn yòng wán , huò yòu gèng gāo yōu xiān jí de jìn chéng lái qiǎng zhàn chǔlǐ qì děng 。
jiù xù tài → yùn xíng tài xì tǒng 'àn mǒu zhǒng cè lüè xuǎn zhōng jiù xù duì liè zhōng de yī gè jìn chéng zhàn yòng chǔlǐ qì , cǐ shí jiù biàn chéng liǎo yùn xíng tài jìn chéng diào dù suàn fǎ jìn chéng diào dù yuán lǐ jìn chéng diào dù fāng shì jìn chéng diào dù de shí xiàn jìn chéng diào dù de gōng néng jìn chéng diào dù de shí jī jìn chéng diào dù de gài niàn jìn chéng diào dù dídí fēn jí linux jìn chéng diào dù linux jìn chéng diào dù yuán lǐ shí shí xì tǒng de jìn chéng diào dù jìn chéng diào dù de shàng xià wén qiē huàn jìn chéng diào dù de xìng néng píng jià