ruǎn jiàn : xué lèi > jìn chéng diào 
mùlù
jìn chéng diào de gài niàn
   lùn shì zài chǔlǐ tǒng hái shì fēn shí tǒng zhōngyòng jìn chéng shù bān duō chǔlǐ shùzhè jiāng dǎo zhì men xiāng zhēng duó chǔlǐ lìng wài tǒng jìn chéng tóng yàng yào shǐ yòng chǔlǐ zhè jiù yào qiú jìn chéng diào chéng 'àn dìng de lüèdòng tài chǔlǐ fēn pèijǐ chǔyú jiù duì liè zhōng de mǒu jìn chéng shǐ zhī zhí xíng
jìn chéng diào dídí fēn
  gāo zhōng diào zuò cóng jiāo kāi shǐ zhí dào wán chéngwǎng wǎng yào jīng xià shù sān diào
   gāo diào : (high-levelscheduling) yòu chēng wéi zuò diào jué dìng hòu bèi zuò diào nèi cún yùn xíng
   diào : (low-levelscheduling) yòu chēng wéi jìn chéng diào jué dìng jiù duì liè de mǒu jìn chéng huò cpu;
   zhōng diào : (intermediate-levelscheduling) yòu chēng wéi zài cún chǔ zhōng yǐn zài nèiwài cún duì huàn jìn xíng jìn chéng duì huàn
jìn chéng diào fāng shì
   jìn chéng diào yòu xià liǎng zhǒng běn fāng shì
   fēi duó fāng shì
   fēn pài chéng dàn chǔlǐ fēn pèijǐ mǒu jìn chéng hòu biàn ràng zhí yùn xíng xià zhí dào jìn chéng wán chéng huò shēng mǒu shì jiàn 'ér zǔsè shícái chǔlǐ fēn pèijǐ lìng jìn chéng
   duó fāng shì
   dāng jìn chéng zhèng zài yùn xíng shí tǒng mǒu zhǒng yuán duó fēn pèijǐ de chǔlǐ jiāng zhī fēn pèijǐ jìn chéng duó yuán yòuyōu xiān quán yuán duǎn jìn chéngyōu xiān yuán shí jiān piàn yuán
   yòu sān jìn chéng p1、 p2、 p3 xiān hòu dào men fēn bié yào 20、 4 2 dān wèi shí jiān yùn xíng wán
   jiǎ men jiù 'àn p1、 p2、 p3 de shùn zhí xíngqiě duó sān jìn chéng de zhōu zhuǎn shí jiān fēn bié wéi 20、 24、
  26 dān wèi shí jiānpíng jūn zhōu zhuǎn shí jiān shì 23.33 shí jiān dān wèi
   jiǎ yòng shí jiān piàn yuán de duó diào fāng shì dào
   jiàn: p1、 p2、 p3 de zhōu zhuǎn shí jiān fēn bié wéi 26、 10、 6 dān wèi shí jiānpíng jūn zhōu zhuǎn shí jiān wéi 14 dān wèi shí jiān
   héng liàng jìn chéng diào xìng néng de zhǐ biāo yòuzhōu zhuǎn shí jiānxiǎng yìng shí jiān、 cpu-i/o zhí xíng
jìn chéng diào suàn
  xiān jìn xiān chū suàn
   suàn zǒng shì chǔlǐ fēn pèijǐ zuì xiān jìn jiù duì liè de jìn chéng jìn chéng dàn fēn chǔlǐ biàn zhí zhí xíng xià zhí dào gāi jìn chéng wán chéng huò zǔsè shícái shì fàng chǔlǐ
   yòu sān jìn chéng p1、 p2 p3 xiān hòu jìn jiù duì liè men de zhí xíng fēn bié shì 21、 6 3 dān wèi shí jiān
   zhí xíng qíng kuàng xià
   duì 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。
   jiàn, fifo suàn zhì liàng jiāróng yǐn zuò yòng mǎncháng zuò wéi zhǒng zhù diào suàn
   zuì duǎn cpu yùn xíng yōu xiān diào suàn (scbf--shortestcpuburstfirst)
   gāi suàn cóng jiù duì liè zhòngxuǎn chū xià cpu zhí xíng zuì duǎn de jìn chéngwéi zhī fēn pèi chǔlǐ
   zài jiù duì liè zhōng yòu jìn chéng p1、 p2、 p3 p4, men de xià zhí xíng fēn bié shì 16、 12、 4 3 dān wèi shí jiānzhí xíng qíng kuàng xià
  p1、 p2、 p3 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 suī huò jiào hǎo de diào xìng néngdàn nán zhǔn què zhī dào xià cpu zhí xíng ér zhǐ néng gēn měi jìn chéng de zhí xíng shǐ lái
   lún zhuǎn
   qián zhǒng suàn zhù yào yòng chǔlǐ tǒng zhōng néng zuò wéi fēn shí tǒng zhōng de zhù diào suàn zài fēn shí tǒng zhōng cǎi yòng shí jiān piàn lún zhuǎn
   jiǎn dān lún zhuǎn tǒng jiāng suǒ yòu jiù jìn chéng 'àn fifo guī pái duìàn dìng de shí jiān jiàngé chǔlǐ fēn pèijǐ duì liè zhōng de jìn chéngzhè yàngjiù duì liè zhōng suǒ yòu jìn chéng jūn huò shí jiān piàn de chǔlǐ 'ér yùn xíng
   duō duì liè fāng jiāng tǒng zhōng suǒ yòu jìn chéng fēn chéng ruò gān lèiměi lèi wéi
   duō fǎn kuì duì liè
   duō fǎn kuì duì liè fāng shì shì zài tǒng zhōng shè zhì duō jiù duì lièbìng duì liè tóng de yōu xiān quán
jìn chéng diào de shí xiàn
  yǐn jìn chéng diào de yuán yīn
   zhèng zài zhí xíng de jìn chéng zhí xíng wán huò yīn shēng mǒu shì jiàn 'ér néng zài zhí xíng
   zhí xíng zhōng de jìn chéng yīn 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 guò chéng zhōng zhí xíng liǎo mǒu zhǒng yuán cāo zuò p cāo zuòzǔsèguà yuán děng
   zài duó shì diào zhōngyòu 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 jiù duì liè
   zài shí jiān piàn lún zhuǎn zhōngshí jiān piàn wán
   tōng cháng tǒng shì 'àn xiān lái xiān huò yōu xiān quán xíng shì lái zhì diào duì liè
   jìn chéng diào suàn
   zhōng, rq wéi jiù duì liè zhǐ zhēn, ep wéi yùn xíng duì liè zhǐ zhēn
jìn chéng diào de gōng néng
   jìn chéng diào de gōng néng zǒng jié wéi xià diǎn
  (1) 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 de zhǔn bèijìn chéng guǎn kuài jiāng tǒng zhōng jìn chéng de zhí xíng qíng kuàng zhuàng tài zhēng zài jìn chéng de pcb biǎo zhōngbìng qiěgēn jìn chéng de zhuàng tài zhēng yuán qiú děngjìn chéng guǎn kuài hái jiāng 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 kuài tōng guò pcb biàn huà lái zhǎng tǒng zhōng cún zài de suǒ yòu jìn chéng de zhí xíng qíng kuàng zhuàng tài zhēngbìng zài shìdàng de shí cóng jiù duì liè zhòngxuǎn chū jìn chéng zhàn chǔlǐ
  (2) xuǎn zhàn yòu chǔlǐ de jìn chéng
   jìn chéng diào de zhù yào gōng néng shì 'àn zhào dìng de lüè xuǎn héng chù jiù zhuàng tài de jìn chéngshǐ huò chǔlǐ zhí xínggēn tóng de tǒng shè mùdìyòu zhǒng yàng de xuǎn lüè tǒng kāi xiāo jiào shǎo de jìng tài yōu xiān shù diào shì fēn shí tǒng de lún zhuǎn (roundrolin) duō kuì lún zhuǎn (roundrobinwithmultip1efeedback) děngzhè xiē xuǎn lüè jué dìng liǎo diào suàn de xìng néng
  (3) jìn xíng jìn chéng shàng xià wén qiē huàn
   héng jìn chéng de shàng xià wén (context) bāo kuò jìn chéng de zhuàng tàiyòu guān biàn liàng shù jié gòu de zhí cún de zhí pcb yòu guān chéng shù děng 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íngdāng zhèng zài zhí xíng de jìn chéng yóu mǒu zhǒng yuán yīn yào ràng chū chǔlǐ shí tǒng yào zuò jìn chéng shàng xià wén qiē huàn shǐ lìng jìn chéng zhí xíngdā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 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ì yǔn de tǒng zhèng zài zhí xíng mǒu yǔn zhōng duàn de yuán shí )。 rán hòu tǒng yào bǎo liú yòu guān bèi qiē huàn jìn chéng de gòu xìn biàn hòu qiē huàn huí gāi jìn chéng shíshùn huī gāi jìn chéng de zhí xíngzài tǒng bǎo liú liǎo cpu xiàn chǎng zhī hòudiào chéng xuǎn xīn de chǔyú jiù zhuàng tài de jìn chéngbìng zhuāng pèi gāi jìn chéng de shàng xià wénshǐ cpu de kòng zhì quán zhǎng zài bèi xuǎn zhōng jìn chéng shǒu zhōng
jìn chéng diào de shí
   jìn chéng diào shēng zài shénme shí zhè yǐn jìn chéng diào de yuán yīn jìn chéng diào de fāng shì yòu guān
   yǐn jìn chéng diào de yuán yīn yòu xià lèi
  (1) zhèng zài zhí xíng de jìn chéng zhí xíng wán zhè shí guǒ xuǎn xīn de jiù jìn chéng zhí xíngjiāng làng fèi chǔlǐ yuán
  (2) zhí xíng zhōng jìn chéng diào yòng zǔsè yuán jiāng bái zǔsè lái jìn 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 cāo zuòcóng 'ér yīn yuán 'ér bèi zǔsèhuò diào yòng liǎo v yuán cāo zuò huó liǎo děng dài yuán de jìn chéng duì liè
  (4) zhí xíng zhōng jìn chéng chū i/o qǐng qiú hòu bèi zǔsè
  (5) zài fēn shí tǒng zhōng shí jiān piàn jīng yòng wán
  (6) zài zhí xíng wán tǒng diào yòng děng tǒng chéng hòu fǎn huí yòng jìn chéng shízhè shí kàn zuò tǒng jìn chéng zhí xíng wán cóng 'ér diào xuǎn xīn de yòng jìn chéng zhí xíng
   shàng dōushì zài duó fāng shì xià de yǐn jìn chéng diào de yuán yīnzài cpu zhí xíng fāng shì shì duó shí hái yòu
  (7) jiù duì liè zhōng de mǒu jìn chéng de yōu xiān biàn gāo dāng qián zhí xíng jìn chéng de yōu xiān cóng 'ér jiāng yǐn jìn chéng diào
   liǎng zhǒng zhàn yòng cpu de fāng shì
   duó shì ( qiǎng zhàn shì preemptive): jiù duì liè zhōng dàn yòu yōu xiān gāo dāng qián zhí xíng jìn chéng yōu xiān de jìn chéng cún zài shíbiàn shēng jìn chéng diào zhuǎn ràng chǔlǐ
   duó shì ( qiǎng zhàn shì non_preemptive): shǐ zài jiù duì liè cún zài yòu yōu xiān gāo 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ǐ zhī dào gāi jìn chéng yīn diào yòng yuán cāo zuò huò děng dài i/o 'ér jìn zǔsèshuì mián zhuàng tàihuò shí jiān piàn yòng wán shí cái chóngxīn shēng diào ràng chū chǔlǐ
jìn chéng diào 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ànshù duànyìng jiàn cún de nèi róng yòu guān shù jié gòu děng chéngyìng jiàn cún 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 zhǐ de chéng shù pc, zhǐ chū jìn chéng xiāng guān lián de yìng jiàn zhuàng tài de chǔlǐ zhuàng tài cún ps, cún fàng guò chéng diào yòng ( huò tǒng diào yòng ) shí suǒ chuán cān shù de tōng yòng cún r duī zhàn zhǐ zhēn cún s děngshù jié gòu bāo kuò pcb děng zài nèi de suǒ yòu zhí xíng gāi jìn chéng yòu guān de guǎn kòng zhì yòng biǎo shù liàn děngzài shēng jìn chéng diào shí tǒng yào zuò jìn chéng shàng xià wén qiē huàn
   zài jìn chéngshàng xià wénzhōng qiē huàn de zhòu
  n bǎo cún chǔlǐ de shàng xià wénbāo kuò chéng shù cún
  n yòng xīn zhuàng tài xiāng guān xìn gēngxīn zhèng zài yùn xíng jìn chéng de pcb
  n yuán lái de jìn chéng zhì shì de duì liè - jiù zǔsè
  n xuǎn lìng 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
  cpu shàng xià wén
jìn chéng diào de xìng néng píng jià
   jìn chéng diào suī rán shì zài tǒng nèi de diào dàn jìn chéng diào de yōu liè zhí jiē yǐng xiǎng zuò diào de xìng néng mezěn yàng píng jià jìn chéng diào de yōu liè fǎn yìng zuò diào yōu liè de zhōu zhuǎn shí jiān píng jūn zhōu zhuǎn shí jiān zhǐ zài mǒu zhǒng chéng shàng fǎn yìng liǎo jìn chéng diào de xìng néng zhí xíng shí jiān fēn zhōng shí shàng bāo hán yòu jìn chéng děng dài ( bāo kuò jiù 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 kào jìn chéng diào lüè děng dài shì jiàn shí shēng děng lái jué dìng deyīn jìn chéng diào xìng néng de shāng liàng shì cāo zuò tǒng shè de zhòng yào zhǐ biāo
   men shuō jìn chéng diào xìng néng de héng liàng fāng fēn wéi dìng xíng dìng liàng liǎng zhǒngzài dìng xíng héng liàng fāng miànshǒu xiān shì diào de kào zhùbāo kuò jìn chéng diào shì fǒu néng yǐn shù jié gòu de huài děngzhè yào qiú men duì diào shí de xuǎn bǎo cún cpu xiàn chǎng shí fēn jǐn shènlìng wàijiǎn jié xìng shì héng liàng jìn chéng diào de zhòng yào zhǐ biāoyóu diào chéng de zhí xíng shè dào duō jìn chéng jìn xíng shàng xià wén qiē huàn guǒ diào chéng guò fán suǒ jiāng huì hào jiào de tǒng kāi xiāozhè zài yòng jìn chéng diào yòng 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 zēng jiā
   jìn chéng diào de dìng liàng píng jià bāo kuò cpu de yòng shuài píng jiàjìn chéng zài jiù duì liè zhōng de děng dài shí jiān zhí xíng shí jiān zhī děngshí shàng yóu jìn chéng jìn jiù duì liè de suí 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 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 jìn xíng jiě shì hěn kùn nán de bān qíng kuàng xià duō yòng huò shì tǒng xiǎng yìng shí jiān de fāng lái píng jià jìn chéng diào de xìng néng
shí shí tǒng de jìn chéng diào
  shí shí tǒng cāo zuò tǒng tóng zài suàn yào néng shí xiǎng yìng wài shì jiàn de qǐng qiúzài guī dìng de yán 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 shí shí rèn xié diào zhì gōng zuòduì duì shí jiān yào qiú yán xìng de tóngshí shí tǒng yòu fēn wéi yìng shí shí tǒng ruǎn shí shí tǒng zhōng yìng shí shí tǒng shì zhǐ zhè zhǒng shí xiàn de yào qiú shì jué duì derèn shí shí rèn dōunéng gòu zài shí xiàn zhī qián wán chéngér ruǎn shí shí tǒng de yào qiú jiù méi yòu zhè me yán yǔn 'ǒu 'ěr yòu shí shí rèn mǎn shí xiàn de yào qiú . shí shí tǒng bān yòng qiàn shì de tǒng zhōngfēn wéi shí shí guò chéng kòng zhì shí shí tōng xìn chǔlǐ zhōng shí shí guò chéng kòng zhì zhù yào yòng gōng kòng zhìjūn shì kòng zhì lǐng shí shì tōng xìn yòng diàn xìnyínhángfēi dìng piào děng lǐng zhèng shì yóu zài zhè xiē shū lǐng de yùn yòng shǐ shí shí cāo zuò tǒng shè shí zhù yào zhuī qiú de shìduì wài qǐng qiú zài yán shí jiān fàn wéi nèi zuò chū fǎn yìngyòu gāo kào xìng wán bèi xìng . wéi dào shí jiān yào qiújìn chéng de diào lüè jiù xiǎn yóu wéi zhòng yào .
  1. yōu xiān de jìn chéng diào
   zuì jiǎn dān zuì zhí guān de jìn chéng diào lüè shì yōu xiān de diào duō shù shí shí tǒng cǎi yòng yōu xiān de diào měi jìn chéng gēn zhòng yào chéng de tóng bèi tóng de yōu xiān diào zài měi diào shízǒng xuǎn yōu xiān zuì gāo de jìn chéng kāi shǐ zhí xíng .
   shǒu xiān yào kǎo de wèn shì fēn pèi yōu xiān duì jìn chéng yōu xiān de fēn pèi cǎi yòng jìng tài dòng tài liǎng zhǒng fāng shìjìng tài yōu xiān diào suàn zhè zhǒng diào suàn gěi xiē tǒng zhōng dào yùn xíng de suǒ yòu jìn chéng jìng tài fēn pèi yōu xiān . jìng tài yōu xiān de fēn pèi gēn yìng yòng de shǔ xìng lái jìn xíng jìn chéng de zhōu yòng yōu xiān huò zhě de xiān què dìng de lüè . dān diào shuài suàn (rm) diào suàn shì zhǒng diǎn xíng de jìng tài yōu xiān diào suàn gēn jìn chéng de zhí xíng zhōu de cháng duǎn lái jué dìng diào yōu xiān xiē yòu xiǎo de zhí xíng zhōu de jìn chéng yòu jiào gāo de yōu xiān . dòng tài yōu xiān diào suàn zhè zhǒng diào suàn gēn jìn chéng de yuán qiú lái dòng tài fēn pèi jìn chéng de yōu xiān mùdì jiù shì zài yuán fēn pèi diào shí yòu gèng de líng huó xìng . zài shí shí tǒng zhōngzuì zǎo xiàn yōu xiān suàn (edf) suàn shì shǐ yòng zuì duō de zhǒng dòng tài yōu xiān diào suàn gāi suàn gěi jiù duì liè zhōng de jìn chéng gēn men de jié zhǐ xiàn (deadline) lái fēn pèi yōu xiān yòu zuì jìn de jié zhǐ xiàn de jìn chéng yòu zuì gāo de yōu xiān .
   fēn pèi hǎo yōu xiān zhī hòu xià yào kǎo de wèn shì shí ràng gāo yōu xiān jìn chéng zhǎng cpu de shǐ yòng quánzhè jué cāo zuò tǒng de nèi yòu qiǎng zhàn shì qiǎng zhàn shì liǎng zhǒng .
   qiǎng zhàn shì nèi yào qiú měi jìn chéng fàng cpu de suǒ yòu quán jìn chéng zuò gòng xiǎng cpu. shì jiàn hái shì yóu zhōng duàn lái chù . zhōng duàn shǐ gāo yōu xiān de jìn chéng yóu guà zhuàng tài biàn wéi jiù zhuàng tài . dàn zhōng duàn 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 jìn chéngzhí dào gāi jìn chéng zhù dòng fàng cpu de shǐ yòng quán shí gāo yōu xiān de jìn chéng cái néng huò cpu de shǐ yòng quán . zhè jiù chū xiàn liǎo xiǎng yìng shí jiān de wèn gāo yōu xiān de jìn chéng jīng jìn liǎo jiù zhuàng tài dàn néng zhí xíngzhè yàng jìn chéng de xiǎng yìng shí jiān biàn zài què dìng zhè shí shí tǒng de yào qiú yīn bān de shí shí cāo zuò tǒng dōuyào qiú shì qiǎng zhàn shì de nèi dāng yùn xíng zhe de jìn chéng shǐ yōu xiān gāo de jìn chéng jìn liǎo jiù tàidāng qián jìn chéng de cpu shǐ yòng quán jiù bèi duó liǎohuò zhě shuō bèi guà liǎo gāo yōu xiān de jìn chéng dào liǎo cpu de kòng zhì quán guǒ shì zhōng duàn chéng shǐ gāo yōu xiān de jìn chéng jìn jiù tàizhōng duàn wán chéng shízhōng duàn liǎo de jìn chéng bèi guà yōu xiān gāo de jìn chéng kāi shǐ yùn xíng . zài zhè zhǒng nèi shè zhì xiàduō jìn chéng néng chǔyú bìng de zhuàng tàizhè jiù chū xiàn liǎo duō jìn chéng gòng xiǎng yuán de qíng kuàngyīn men yào shè zhì xìn hào liàng lái bǎo zhèng lín jiè yuán de zhèng què shǐ yòngrèn xiǎng shǐ yòng lín jiè yuán de jìn chéng zài jìn lín jiè zhī qián yōng yòu shǐ yòng lín jiè yuán de xìn hào liàngfǒu zhí xíng lín jiè dài .
   zhè yàng yōu xiān de qiǎng zhàn shì jìn chéng diào lüè jiù běn jià gòu wán chéngdàn shí réng rán yòu tǒng bēng kuì de wēi xiǎnjiǎ shè tǒng zhōng yòu 3 jìn chéngfēn bié wéi p1, p2 p3.p1 de yōu xiān quán gāo p2, ér p2 de yōu xiān quán gāo p3. qià zài shí p1 p2 yīn mǒu zhǒng yuán yīn bèi zǔsèzhè shí hòu tǒng diào p3 zhí xíng .p3 zhí xíng duàn shí jiān hòu, p1 bèi huàn xǐng . yóu cǎi de shì pbp de diào lüèyīn p1 qiǎng zhàn p3 de cpu, p1 zhí xíng .p1 zhí xíng duàn shí jiān hòu yào jìn lín jiè dàn shí p3 zhàn yòu lín jiè yuán de xìn hào liàng . yīn p1 bèi zǔsèchǔyú děng dài zhuàng tàiděng dài p3 shì fàng xìn hào liàng . jīng guò zhè me duàn shí jiān hòu, p2 shí chǔyú jiù zhuàng tài . yīn tǒng diào p2 zhí xíng . guǒ p3 zài p2 de zhí xíng jiān zhí méi yòu néng gòu bèi diào zhí xíng de huà p1 p3 jiāng 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 suǒ 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 néng chāo chū p1 de deadline, shǐ p1 bēng kuì . men kàn dào zài zhè guò chéng zhōngyóu lín jiè yuán de shǐ yòng wèn shǐ yōu xiān de jìn chéng xiān yōu xiān gāo de jìn chéng xiān zhí xíngzhè jiù chū xiàn liǎo yōu xiān fǎn zhuǎn de wèn cóng 'ér zào chéng liǎo tǒng bēng kuìduì zhè wèn cǎi yòng yōu xiān chéng de bàn lái jìn xíng jiě jué . zài yōu xiān chéng fāng 'àn zhōngdāng gāo yōu xiān jìn chéng zài děng dài yōu xiān de jìn chéng zhàn yòu de xìn hào liàng shíràng yōu xiān jìn chéng chéng gāo yōu xiān jìn chéng de yōu xiān yōu xiān jìn chéng de yōu xiān quán gāo dào gāo yōu xiān jìn chéng de yōu xiān dāng yōu xiān jìn chéng shì fàng gāo yōu xiān jìn chéng děng dài de xìn hào liàng shí yōu xiān quán jiàng dào yuán lái de yōu xiān quán . cǎi yòng zhè zhǒng fāng yòu xiào jiě jué shàng miàn suǒ shù de yōu xiān quán fǎn zhuǎn de wèn . dāng gāo yōu xiān jìn chéng p1 xiǎng yào jìn lín jiè shíyóu yōu xiān jìn chéng p3 zhàn yòu zhè lín jiè yuán de xìn hào liàngdǎo zhì p1 bèi zǔsè . zhè shí hòu tǒng p3 de yōu xiān quán shēng dào p1 de yōu xiān quán shí yōu xiān quán chǔyú p1 p3 zhī jiān de jìn chéng p2, shǐ chǔyú jiù zhuàng tài bèi diào zhí xíngyīn wéi shí p3 de yōu xiān quán jīng gāo p2, suǒ p3 shí bèi diào zhí xíng . dāng p3 shì fàng p1 yào de xìn hào liàng shí tǒng p3 de yōu xiān quán jiàng dào yuán lái de gāo lái bǎo zhèng p1 p2 zhèng cháng yòu zhí xíng . qiányòu duō shí shí tǒng shì cǎi yòng zhè zhǒng fāng lái fáng zhǐ yōu xiān fǎn zhuǎn de vxworks.
  2. gòng xiǎng de jìn chéng diào
   suī rán yōu xiān de diào jiǎn dān 'ér qiě shí xiànshì qián shǐ yòng zuì guǎng fàn de shí shí tǒng de jìn chéng diào lüèdàn duì xiē ruǎn shí shí tǒng 'ér yán zhè zhǒng fāng zài shì yòng shí shí duō méi huì zài zhè zhǒng qíng kuàng xià men xuǎn gòng xiǎng de jìn chéng diào suàn běn xiǎng jiù shì 'àn zhào dìng de quán zhòng ( ) duì yào diào de jìn chéng jìn xíng diào ràng men de zhí xíng shí jiān men de quán zhòng wán quán chéng zhèng . men tōng guò liǎng zhǒng fāng lái shí xiàn gòng xiǎng diào suàn zhǒng fāng shì tiáojié jiù jìn chéng chū xiàn zài diào duì liè duì shǒu de pín shuàibìng diào duì shǒu de jìn chéng zhí xíng 'èr zhǒng zuò jiù shì zhú diào jiù duì liè zhōng de jìn chéng tóu yùn xíngdàn gēn fēn pèi de quán zhòng tiáojié fēn pèi měi jìn chéng de yùn xíng shí jiān piàn . gòng xiǎng diào suàn de wèn jiù shì méi yòu dìng rèn yōu xiān de gài niànsuǒ yòu de jìn chéng gēn men shēn qǐng de gòng xiǎng cpu yuándāng tǒng chǔyú guò zài zhuàng tài shísuǒ yòu de jìn chéng de zhí xíng huì 'àn biàn màn . suǒ wèile bǎo zhèng tǒng zhōng shí shí jìn chéng néng gòu huò dìng de cpu chǔlǐ shí jiān bān cǎi yòng zhǒng dòng tài tiáojié jìn chéng quán zhòng de fāng .
  3. shí jiān de jìn chéng diào
   duì xiē yòu wěn dìng zhī shū de jiǎn dān tǒng shǐ yòng shí jiān dòng de diào suàn néng gòu wéi shù chǔlǐ gōng hěn hǎo de xìng . zhè zhǒng diào suàn běn zhì shàng shì zhǒng shè shí jiù què dìng xià lái de xiàn de jìng tài diào fāng . zài tǒng de shè jiē duànzài míng què tǒng zhōng suǒ yòu de chǔlǐ qíng kuàng xiàduì jìn chéng de kāi shǐqiē huàn jié shù shí jiān děng jiù shì xiān zuò chū míng què de 'ān pái shè . zhè zhǒng diào suàn shì xiē hěn xiǎo de qiàn shì tǒng kòng tǒngchuán gǎn děng yìng yòng huán jìng . zhè zhǒng diào suàn de yōu diǎn shì jìn chéng de zhí xíng yòu hěn hǎo de xìngdàn zuì de quē diǎn shì quē líng huó xìngbìng qiě huì chū xiàn yòu jìn chéng yào bèi zhí xíng 'ér cpu què bǎo chí kòngxián de qíng kuàng .
   duì tóng yào qiú xià de shí shí tǒng cǎi yòng tóng de jìn chéng diào lüè lái jìn xíng shè jiāng zhè xiē fāng jìn xíng zōng zhī hòu dào gèng shì de diào lüè .
linux jìn chéng diào yuán
   jìn chéng diào
   diào chéng yùn xíng shíyào zài suǒ yòu yùn xíng zhuàng tài de jìn chéng zhòngxuǎn zuì zhí yùn xíng de jìn chéng tóu yùn xíngxuǎn jìn chéng de shì shénme zài měi jìn chéng de task_struct jié gòu zhōng yòu xià xiàng: policy、 priority、 counter、 rt_priority。 zhè xiàng shì xuǎn jìn chéng de zhōng, policy shì jìn chéng de diào lüèyòng lái fēn shí shí jìn chéng tōng jìn chéngshí shí jìn chéng yōu xiān tōng jìn chéng yùn xíng; priority shì jìn chéng ( bāo kuò shí shí tōng ) de jìng tài yōu xiān ; counter shì jìn chéng shèng de shí jiān piàn de shǐ zhí jiù shì priority de zhíyóu counter zài hòu miàn suàn chǔyú yùn xíng zhuàng tài de jìn chéng zhí yùn xíng de chéng goodness shí zhòng yào zuò yòngyīn , counter kàn zuò shì jìn chéng de dòng tài yōu xiān 。 rt_priority shì shí shí jìn chéng yòu deyòng shí shí jìn chéng jiān de xuǎn
  linux yòng hán shù goodness() lái héng liàng chǔyú yùn xíng zhuàng tài de jìn chéng zhí yùn xíng de chéng gāi hán shù zōng liǎo shàng dào de xiànghái jié liǎo xiē de yīn gěi měi chǔyú yùn xíng zhuàng tài de jìn chéng quán zhí (weight), diào chéng zhè quán zhí zuò wéi xuǎn jìn chéng de wéi guān goodness() de qíng kuàng zài hòu miàn jiāng huì xiáng fēn
   èr、 linux nèi de sān zhǒng diào fāng
  1, sched_other fēn shí diào lüè
  2, sched_fifo shí shí diào lüèxiān dào xiān
  3, sched_rr shí shí diào lüèshí jiān piàn lún zhuǎn
   shí shí jìn chéng jiāng dào yōu xiān diào yòngshí shí jìn chéng gēn shí shí yōu xiān jué dìng diào quán zhífēn shí jìn chéng tōng guò nice counter zhí jué dìng quán zhí, nice yuè xiǎo, counter yuè bèi diào de gàilǜ yuè jiù shì céng jīng shǐ yòng liǎo cpu zuì shǎo de jìn chéng jiāng huì dào yōu xiān diào
  shced_rr sched_fifo de tóng
   dāng cǎi yòng shced_rr lüè de jìn chéng de shí jiān piàn yòng wán tǒng jiāng chóngxīn fēn pèi shí jiān piànbìng zhì jiù duì liè wěifàng zài duì liè wěi bǎo zhèng liǎo suǒ yòu yòu xiāng tóng yōu xiān de rr rèn de diào gōng píng
  sched_fifo dàn zhàn yòng cpu zhí yùn xíng zhí yùn xíng zhí dào yòu gèng gāo yōu xiān rèn dào huò fàng
   guǒ yòu xiāng tóng yōu xiān de shí shí jìn chénggēn yōu xiān suàn de diào quán zhí shì yàng de jīng zhǔn bèi hǎo, fifo shí děng dài gāi jìn chéng zhù dòng fàng hòu cái yùn xíng zhè yōu xiān xiāng tóng de rèn ér rr ràng měi rèn zhí xíng duàn shí jiān
   xiāng tóng diǎn
  rr fifo zhǐ yòng shí shí rèn
   chuàng jiàn shí yōu xiān 0(1-99)。
   àn zhào qiǎng zhàn yōu xiān diào suàn jìn xíng
   jiù tài de shí shí rèn qiǎng zhàn fēi shí shí rèn
   suǒ yòu rèn cǎi yòng linux fēn shí diào lüè shí
  1, chuàng jiàn rèn zhǐ dìng cǎi yòng fēn shí diào lüèbìng zhǐ dìng yōu xiān nice zhí (-20~19)。
  2, jiāng gēn měi rèn de nice zhí què dìng zài cpu shàng de zhí xíng shí jiān (counter)。
  3, guǒ méi yòu děng dài yuán jiāng gāi rèn jiā dào jiù duì liè zhōng
  4, diào chéng biàn jiù duì liè zhōng de rèn tōng guò duì měi rèn dòng tài yōu xiān de suàn (counter+20-nice) jiēguǒxuǎn suàn jiēguǒ zuì de yùn xíngdāng zhè shí jiān piàn yòng wán hòu (counter jiǎn zhì 0) huò zhě zhù dòng fàng cpu shígāi rèn jiāng bèi fàng zài jiù duì liè wěi ( shí jiān piàn yòng wán ) huò děng dài duì liè ( yīn děng dài yuán 'ér fàng cpu) zhōng
  5, shí diào chéng chóngfù shàng miàn suàn guò chéngzhuǎn dào 4
  6, dāng diào chéng xiàn suǒ yòu jiù rèn suàn suǒ de quán zhí wéi 0 shíchóngfù 2
   suǒ yòu rèn 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 rt_priority(1-99)。
  2, guǒ méi yòu děng dài yuán jiāng gāi rèn jiā dào jiù duì liè zhōng
  3, diào chéng biàn jiù duì liègēn shí shí yōu xiān suàn diào quán zhí (1000+rt_priority), xuǎn quán zhí zuì gāo de rèn shǐ yòng cpu, gāi fifo rèn jiāng zhí zhàn yòu cpu zhí dào yòu yōu xiān gèng gāo de rèn jiù ( shǐ yōu xiān xiāng tóng xíng ) huò zhě zhù dòng fàng ( děng dài yuán )。
  4, diào chéng xiàn yòu yōu xiān gèng gāo de rèn dào ( gāo yōu xiān rèn néng bèi zhōng duàn huò dìng shí rèn huàn xǐngzài huò bèi dāng qián yùn xíng de rèn huàn xǐngděng děng ), diào chéng zài dāng qián rèn duī zhàn zhōng bǎo cún dāng qián cpu cún de suǒ yòu shù chóngxīn cóng gāo yōu xiān rèn de duī zhàn zhōng jiā zài cún shù dào cpu, shí gāo yōu xiān de rèn kāi shǐ yùn xíngchóngfù 3
  5, guǒ dāng qián rèn yīn děng dài yuán 'ér zhù dòng fàng cpu shǐ yòng quán gāi rèn jiāng cóng jiù duì liè zhōng shān chújiā děng dài duì liè shí chóngfù 3
   suǒ yòu rèn cǎi yòng rr diào lüè shí
  1, chuàng jiàn rèn shí zhǐ dìng diào cān shù wéi rr, bìng shè zhì rèn de shí shí yōu xiān nice zhí (nice zhí jiāng huì zhuǎn huàn wéi gāi rèn de shí jiān piàn de cháng )。
  2, guǒ méi yòu děng dài yuán jiāng gāi rèn jiā dào jiù duì liè zhōng
  3, diào chéng biàn jiù duì liègēn shí shí yōu xiān suàn diào quán zhí (1000+rt_priority), xuǎn quán zhí zuì gāo de rèn shǐ yòng cpu。
  4, guǒ jiù duì liè zhōng de rr rèn shí jiān piàn wéi 0, huì gēn nice zhí shè zhì gāi rèn de shí jiān piàntóng shí jiāng gāi rèn fàng jiù duì liè de wěichóngfù zhòu 3。
  5, dāng qián rèn yóu děng dài yuán 'ér zhù dòng tuì chū cpu, jiā děng dài duì liè zhōngchóngfù zhòu 3。
   tǒng zhōng yòu fēn shí diào yòu yòu shí jiān piàn lún zhuǎn diào xiān jìn xiān chū diào
  1, rr diào fifo diào de jìn chéng shǔ shí shí jìn chéng fēn shí diào 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ù hòu guǒ dāng qián cpu zhèng zài yùn xíng fēi shí shí jìn chéng shí shí jìn chéng qiǎng zhàn fēi shí shí jìn chéng
  3, rr jìn chéng fifo jìn chéng cǎi yòng shí shí yōu xiān zuò wéi diào de quán zhí biāo zhǔn, rr shì fifo de yán shēn。 fifo shí guǒ liǎng jìn chéng de yōu xiān yàng zhè liǎng yōu xiān yàng de jìn chéng zhí xíng shì yóu zài duì liè zhōng de wèi zhī jué dìng dezhè yàng dǎo zhì xiē gōng zhèng xìng ( yōu xiān shì yàng dewèishénme yào ràng zhí yùn xíng? ), guǒ jiāng liǎng yōu xiān yàng de rèn de diào lüè shè wéi rr, bǎo zhèng liǎo zhè liǎng rèn xún huán zhí xíngbǎo zhèng liǎo gōng píng
   sān jìn chéng diào lüè
   diào chéng yùn xíng shíyào zài suǒ yòu chǔyú yùn xíng zhuàng tài de jìn chéng zhī zhòngxuǎn zuì zhí yùn xíng de jìn chéng tóu yùn xíngxuǎn jìn chéng de shì shénme zài měi jìn chéng de task_struct jié gòu zhōng yòu zhè me xiàng
  policy, priority, counter, rt_priority
   zhè xiàng jiù shì diào chéng xuǎn jìn chéng de . zhōng, policy shì jìn chéng de diào lüèyòng lái fēn liǎng zhǒng jìn chéng - shí shí tōng; priority shì jìn chéng ( shí shí tōng ) de yōu xiān ; counter shì jìn chéng shèng de shí jiān piàn de xiǎo wán quán yóu priority jué dìng; rt_priority shì shí shí yōu xiān zhè shì shí shí jìn chéng suǒ yòu deyòng shí shí jìn chéng jiān de xuǎn
   shǒu xiān, linux gēn policy cóng zhěng shàng fēn shí shí jìn chéng tōng jìn chéngyīn wéi shí shí jìn chéng tōng jìn chéng diào shì tóng de men liǎng zhě zhī jiānshí shí jìn chéng yīnggāi xiān tōng jìn chéng 'ér yùn xíngrán hòuduì tóng lèi xíng de tóng jìn chéngcǎi yòng tóng de biāo zhǔn lái xuǎn jìn chéng
   duì tōng jìn chéng, linux cǎi yòng dòng tài yōu xiān diào xuǎn jìn chéng de jiù shì jìn chéng counter de xiǎojìn chéng chuàng jiàn shíyōu xiān priority bèi chū zhí bān wéi 0 70 zhī jiān de shù zhè shù tóng shí shì shù 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 miàn shàng kàn, priority shìyōu xiān ”、 counter shì shù de rán 'ér shí shàng men biǎo de shì tóng - jìn chéng deshí 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 de shí jiān piànzài jìn chéng yùn xíng guò chéng zhōng, counter duàn jiǎn shǎoér priority bǎo chí biàn biàn zài counter biàn wéi 0 de shí hòugāi jìn chéng yòng wán liǎo suǒ fēn pèi de shí jiān piànduì counter chóngxīn zhídāng tōng jìn chéng de shí jiān piàn yòng wán hòubìng shàng yòng priority duì counter jìn xíng zhízhǐ yòu suǒ yòu chǔyú yùn xíng zhuàng tài de tōng jìn chéng de shí jiān piàn (p->;; counter==0) yòng wán liǎo hòucái yòng priority duì counter chóngxīn zhízhè tōng jìn chéng cái yòu liǎo zài bèi diào de huìzhè shuō míng 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 jìn chéng yùn xíng de huìzhí zhì counter jiǎn wéi 0 shí cái wán quán fàng duì cpu de shǐ yòngzhè jiù xiāng duì yōu xiān zài dòng tài biàn huàsuǒ chēng zhī wéi dòng tài yōu xiān diào zhì shí jiān piàn zhè gài niàn tóng cāo zuò tǒng yàng de, linux de shí jiān dān wèi shìshí zhōng ”, zhǐ shì tóng cāo zuò tǒng duì shí zhōng de dìng tóng 'ér ( linux wéi 10ms)。 jìn chéng de shí jiān piàn jiù shì zhǐ duō shǎo shí zhōng ruò priority wéi 20, fēn pèijǐ gāi jìn chéng de shí jiān piàn jiù wéi 20 shí zhōng jiù shì 20*10ms=200ms。 linux zhōng mǒu jìn chéng de diào lüè (policy)、 yōu xiān (priority) děng zuò wéi cān shù yóu yòng jué dìng yòu xiāng dāng de líng huó xìngnèi 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è deyìng wéi 210ms), yòng tōng guò tǒng diào yòng gǎi biàn
   duì shí shí jìn chéng, linux cǎi yòng liǎo liǎng zhǒng diào lüè fifo( xiān lái xiān diào ) rr( shí jiān piàn lún zhuǎn diào )。 yīn wéi shí shí jìn chéng yòu dìng chéng de jǐn xìngsuǒ héng liàng shí shí jìn chéng shì fǒu yīnggāi yùn xíng, linux cǎi yòng liǎo jiào dìng de biāo zhǔnshí 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 shí jiān piànbìng zuò wéi héng liàng shì fǒu zhí yùn xíng de biāo zhǔnshí 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 shí jiān piànbìng zuò wéi héng liàng shì fǒu zhí yùn xíng de biāo zhǔnzhè tōng jìn chéng shì yòu bié deshàng miàn jīng kàn dàoměi jìn chéng yòu liǎng yōu xiān shí shí yōu xiān jiù shì yòng lái héng liàng shí shí jìn chéng shì fǒu zhí yùn xíng de
   zhè qiē kàn lái jiào fándàn shí 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 chǔyú yùn xíng zhuàng tài de jìn chéng zhí yùn xíng de chéng gāi hán shù zōng liǎo shàng miàn dào de fāng miàngěi měi chǔyú yùn xíng zhuàng tài de jìn chéng quán zhí (weight), diào chéng zhè quán zhí zuò wéi xuǎn jìn chéng de wéi
  linux gēn policy de zhí jiāng jìn chéng zǒng shàng fēn wéi shí shí jìn chéng tōng jìn chéng gōng liǎo sān zhǒng diào suàn zhǒng chuán tǒng de unix diào chéng liǎng yóu posix.1b( yuán míng wéi posix.4) cāo zuò tǒng biāo zhǔn suǒ guī dìng deshí shídiào chéng dàn zhè zhǒng shí shí zhǐ shì ruǎn shí shí mǎn zhū 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 yào shí dìng zhǐ 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 zhǒng shì jìng tài yōu xiān lìng zhǒng shì dòng tài yōu xiān shí shí jìn chéng yòu zēng jiā liǎo sān zhǒng yōu xiān shí shí yōu xiān yōu xiān shì xiē jiǎn dān de zhěng shùwèile jué dìng yīnggāi yǔn jìn chéng shǐ yòng cpu de yuányòng yōu xiān dài biǎo xiāng duì quán zhí - yōu xiān yuè gāo dào cpu shí jiān de huì jiù yuè
  ? jìng tài yōu xiān (priority)- suí shí jiān 'ér gǎi biànzhǐ néng yóu yòng jìn xíng xiū gǎi zhǐ míng liǎo zài bèi jìn chéng jìng zhēng cpu zhī qiángāi jìn chéng suǒ yīnggāi bèi yǔn de shí jiān piàn de zuì zhídàn hěn néng dezài gāi shí jiān piàn hào jìn zhī qiánjìn chéng jiù bèi jiāo chū liǎo cpu)。
  ? dòng tài yōu xiān (counter)- zhǐ yào jìn chéng yōng yòu cpu, jiù suí zhe shí jiān duàn jiǎn xiǎodāng xiǎo 0 shíbiāo jìn chéng chóngxīn diào zhǐ míng liǎo zài zhè shí jiān piàn zhōng suǒ shèng de shí jiān liàng
  ? shí shí yōu xiān (rt_priority)- zhǐ míng zhè jìn chéng dòng cpu jiāo gěi jìn chéngjiào gāo quán zhí de jìn chéng zǒng shì yōu xiān jiào quán zhí de jìn chéng guǒ jìn chéng shì shí shí jìn chéng yōu xiān jiù shì 0, suǒ shí shí jìn chéng zǒng shì yōu xiān fēi shí shí jìn chéng dedàn shí shàngshí shí jìn chéng huì zhù dòng fàng cpu)。
   dāng policy fēn bié wéi xià zhí shí
  1)sched_other: zhè shì tōng de yòng jìn chéngjìn chéng de quē shěng lèi xíngcǎi yòng dòng tài yōu xiān diào lüèxuǎn jìn chéng de zhù yào shì gēn jìn chéng goodness zhí de xiǎozhè zhǒng jìn chéng zài yùn xíng shí bèi gāo goodness zhí de jìn chéng qiǎng xiān
  2)sched_fifo: zhè shì zhǒng shí shí jìn chéngzūn shǒu posix1.b biāo zhǔn de fifo( xiān xiān chū ) diào guī huì zhí yùn xíngzhí dào yòu 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òu gèng gāo rt_priority de shí shí jìn chéng qiǎng xiānzà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í men cái bèi shì fàng cpu。 yīn tóng posix1.b yàngzhè yàng de jìn chéng jiù xiàng méi yòu shí jiān piàn ( shì cǎi yòng fēn shí ) yàng yùn xíng。 linux zhōng jìn chéng réng rán bǎo chí duì shí jiān piàn de xiū gǎi counter) zhù yào shì wèile shí xiàn de fāng biàntóng shí miǎn zài diào dài de guān jiàn jìng shàng chū xiàn tiáo jiàn pàn duàn if(! (current->;; policy&;; sched_fifo)){...}- yào zhī dào liàng fēi fifo jìn chéng yào shí jiān piànzhè zhǒng duō de jiǎn zhǐ huì làng fèi cpu yuán。( zhǒng yōu huà cuò shī gāi jiāng zhí xíng shí jiān zhàn 10% de dài 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 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è shì zhǒng shí shí jìn chéngzūn shǒu posix1.b biāo zhǔn de rr( xún huán round-robin) diào guī chú liǎo shí jiān piàn yòu xiē tóng wàizhè zhǒng lüè sched_fifo lèi dāng sched_rr jìn chéng de shí jiān piàn yòng wán hòujiù bèi fàng dào sched_fifo sched_rr duì liè de wěi
   zhǐ yào tǒng zhōng yòu shí shí jìn chéng zài yùn xíng rèn sched_other jìn chéng dōubù néng zài rèn cpu yùn xíngměi shí shí jìn chéng yòu rt_priority, yīn 'àn zhào rt_priority zài suǒ yòu sched_rr jìn chéng zhī jiān fēn pèi cpu。 zuò yòng sched_other jìn chéng de priority zuò yòng yàngzhǐ yòu root yòng néng gòu yòng 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)。
   wàinèi hái dìng liǎo sched_yield, zhè bìng shì zhǒng diào lüèér shì jié diào lüè de jiā wèi tóng qián miàn shuō míng de yàng guǒ yòu jìn chéng yào cpu, jiù shì diào chéng shì fàng cpu。 bié yào zhù de jiù shì zhè shèn zhì huì yǐn shí shí jìn chéng cpu shì fàng gěi fēi shí shí jìn chéng
   zhù yào de jìn chéng diào de hán shù fēn
   zhēn zhèng zhí xíng diào de hán shù shì schedule(void), xuǎn zuì shì de jìn chéng zhí xíngbìng qiě zhēn zhèng jìn xíng shàng xià wén qiē huànshǐ xuǎn zhōng de jìn chéng zhí xíngér reschedule_idle(structtask_struct*p) de zuò yòng shì wéi jìn chéng xuǎn shì de cpu lái zhí xíng guǒ xuǎn zhōng liǎo mǒu cpu, 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 chū chóngxīn diào de chǔlǐ jiān zhōng duànshǐ 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 jìn chéng p zài cpu shàng zhí xíngzài schedule() 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 chǔyú yùn xíng zhuàng tài de jìn chéng zhí yùn xíng de chéng wàizà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ì jiě smp de diào fēi cháng zhòng yàoxià miàn fēn zhè xiē hán shùxiān gěi chū měi hán shù de zhù yào liú chéng rán hòu gěi chū yuán dài bìng jiā zhù shì
  goodness() hán shù fēn
  goodness() hán shù suàn chǔyú yùn xíng zhuàng tài de jìn chéng zhí yùn xíng de chéng rèn de goodness shì xià yīn de hán shùzhèng zài yùn xíng de rèn xiǎng yào yùn xíng de rèn dāng qián de cpu。 goodness fǎn huí xià miàn liǎng lèi zhí zhōng de : 1000 xià huò zhě 1000 shàng。 1000 huò zhě 1000 shàng de zhí zhǐ néng gěishí shíjìn chéngcóng 0 dào 999 de zhí zhǐ néng gěi tōng jìn chéngshí shàngzài dān chù qíng kuàng xià tōng jìn chéng de goodness zhí zhǐ shǐ yòng zhè fàn wéi de fēncóng 0 dào 41。 zài smp qíng kuàng xià, smp shì huì yōu xiān zhào děng dài tóng chǔlǐ de jìn chéng guò 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ù shí shì huì fǎn huí -1000 de huì fǎn huí zhíyóu idle jìn chéng de counter zhí wéi suǒ 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í zhídàn zhè shì huì shēng de
  goodness() shì jiǎn dān de hán shùdàn shì shì linux diào chéng quē shǎo de fēnyùn xíng duì liè zhōng de měi jìn chéng měi zhí xíng schedule shí dōuyào diào yīn de zhí xíng 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){/* guǒ shì shí shí jìn chéng */
  weight=1000+p->;; rt_priority;
  gotoout;
  }
  /* jiāng counter de zhí gěi weight, zhè jiù gěi liǎo jìn chéng gài de quán zhí, counter zhōng de zhí biǎo shì jìn chéng zài shí jiān piàn nèishè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 jīng yòng wán zhí jiē zhuǎn dào biāo hào out*/
  gotoout;
  #ifdef__smp__
  /* zài smp qíng kuàng xià guǒ jìn chéng jiāng yào yùn xíng de cpu jìn chéng shàng yùn xíng de cpu shì yàng de zuì yòu yīn jiǎ jìn chéng shàng yùn xíng de cpu dāng qián cpu zhì de huàquán zhí jiā shàng proc_change_penalty, zhè hóng dìng wéi 20。 */
  if(p->;; processor==this_cpu)
  weight+=proc_change_penalty;
  #endif
  if(p->;; mm==this_mm)/* jìn chéng p dāng qián yùn xíng jìn chéngshì tóng jìn chéng de tóng xiàn chénghuò zhě shì gòng xiǎng zhǐ kōng jiān de tóng jìn chéngyōu xiān xuǎn 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 */
  out:
  returnweight; /* fǎn huí zhí zuò wéi jìn chéng diào de wéi shuí de quán zhí jiù diào shuí yùn xíng */
  }
  schedule() hán shù fēn
  schedule() hán shù de zuò yòng shìxuǎn shì de jìn chéng zài cpu shàng zhí xíng jǐn jǐn gēn 'goodness' lái gōng zuòduì smp qíng kuàngchú liǎo suàn měi jìn chéng de jiā quán píng jūn yùn xíng shí jiān wài smp xiāng guān de fēn zhù yào yóu goodness() hán shù lái xiàn
   liú chéng
   jiāng prev next shè zhì wéi schedule zuì gǎn xīng de liǎng jìn chéng zhōng 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īnggāi shì jiē zhe jiù gěi cpu de jìn chéng( next)。 zhù : prev next néng shì xiāng tóng de -schedule chóngxīn diào jīng huò cpu de jìn chéng .
   zhōng duàn chǔlǐ chéng yùn xíngxià bàn fēn” .
   nèi shí shí tǒng fēn de shí xiànxún huán diào chéng ( sched_rr) tōng guò dònghào jìn de” rr jìn chéng - jīng yòng wán shí jiān piàn de jìn chéng - dào duì liè wěizhè yàng yòu xiāng tóng yōu xiān de rr jìn chéng jiù huò cpu liǎotóng shízhè chōng liǎo hào jìn jìn chéng de shí jiān piàn
   yóu dài de fēn jīng jué dìng liǎo jìn chéng bèi jìn huò chū task_running zhuàng tàisuǒ huì jīng cháng shǐ yòng schedule, guǒ jìn chéng zhèng zài děng dài de yìng jiàn tiáo jiàn jīng shēngsuǒ guǒ yàozhè switch huì gǎi biàn jìn chéng de zhuàng tài guǒ jìn chéng jīng chǔyú task_running zhuàng tài jiù chǔlǐ liǎo guǒ shì zhōng duàn deděng dài xìn hào), bìng qiě xìn hào jīng dào liǎo jìn chéngjiù fǎn huí task_running zhuàng tàizài suǒ qíng kuàng xià jìn chéng 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 zǒu
   jiāng p chū shǐ huà wéi yùn xíng duì liè de rèn ; p huì biàn duì liè zhōng de suǒ yòu rèn
   c liǎo yùn xíng duì liè zhōng suǒ yòu jìn chéng zuì hǎo de“ goodness” - yòu zuì hǎo“ goodness” de jìn chéng shì zuì huò cpu de jìn chéng。 goodness de zhí yuè gāo yuè hǎo
   biàn zhí xíng rèn liàn biǎogēn zōng yòu zuì hǎo goodness de jìn chéng
   zhè xún huán zhōng zhǐ kǎo liǎo wéi diào de jìn chéngzài smp shì xiàzhǐ yòu rèn zài cpu shàng yùn xíng shí can_schedule hóng fǎn huí wéi zhēn shícái huì kǎo gāi rèn zài up qíng kuàng xià, can_schedule hóng fǎn huí héng wéi zhēn .
   guǒ xún huán jié shù hòu 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í wéi 0。 goodness de zhí wéi 0, wèi zhe jìn chéng jīng yòng wán de shí jiān piànhuò zhě 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 suàn jìn chéng de counter; xīn counter de zhí shì yuán lái zhí de bàn jiā shàng jìn chéng de jìng tài yōu xiān ( priortiy), chú fēi jìn chéng jīng shì fàng cpu, fǒu yuán lái counter de zhí wéi 0。 yīn , schedule tōng cháng zhǐ shì counter chū shǐ huà wéi jìng tài yōu xiān 。( zhōng duàn chǔlǐ chéng yóu lìng chǔlǐ yǐn de fēn zhī zài schedule sōu xún goodness zuì zhí shí jiāng zēng jiā xún huán zhōng de shù yīn yóu zhè yuán yīn shù néng huì wéi 0。 xiǎn ránzhè hěn hǎn jiàn。) zài counter de zhí suàn wán chéng hòuchóngxīn kāi shǐ zhí xíng zhè xún huánzhǎo yòu zuì goodness de rèn
   guǒ schedule jīng xuǎn liǎo tóng qián miàn zhèng zài zhí xíng de jìn chéng lái diào me jiù guà yuán lái de jìn chéng bìng yǔn xīn de jìn chéng yùn xíngzhè shí diào yòng switch_to lái jìn xíng qiē huàn
jìn chéng yòu běn shǔ xìng
  1. duō tài xìng cóng dàn shēngyùn xíngzhí zhì xiāo miè
  2. duō tóng de jìn chéng bāo kuò xiāng tóng de chéng
  3. sān zhǒng běn zhuàng tài men zhī jiān jìn xíng zhuǎn huàn
  4. bìng xìng bìng zhí xíng de jìn chéng lún liú zhàn yòng chǔlǐ
jìn chéng de sān zhǒng běn zhuàng tài :
  1. děng dài tàiděng dài mǒu shì jiàn de wán chéng
  2. jiù tàiděng dài tǒng fēn pèi chǔlǐ biàn yùn xíng
  3. yùn xíng tàizhàn yòu chǔlǐ 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 děng dài wài shèděng dài zhù cún děng yuán fēn pèi huò děng dài rén gōng gān 'ér yǐn de
   děng dài tàijiù tài shì děng dài de tiáo jiàn mǎn zhǐ fēn pèi dào chǔlǐ hòu jiù néng yùn xíng
   yùn xíng tàijiù tài shì yóu 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ǐ zhè shí hòu jiù biàn chéng jiù tài shí jiān piàn yòng wánhuò yòu gèng gāo yōu xiān de jìn chéng lái qiǎng zhàn chǔlǐ děng
   jiù tàiyùn xíng tài tǒng 'àn mǒu zhǒng lüè xuǎn zhōng jiù duì liè zhōng de jìn chéng zhàn yòng chǔlǐ shí jiù biàn chéng liǎo yùn xíng tài
bāo hán cí
jìn chéng diào suàn jìn chéng diào yuán jìn chéng diào fāng shì
jìn chéng diào de shí xiànjìn chéng diào de gōng néngjìn chéng diào de shí
jìn chéng diào de gài niànjìn chéng diào dídí fēn linux jìn chéng diào
linux jìn chéng diào yuán shí shí tǒng de jìn chéng diào jìn chéng diào de shàng xià wén qiē huàn
jìn chéng diào de xìng néng píng jià