對于生產(chǎn)者和消費(fèi)者在僅搶占式任務(wù)調(diào)度的OS中優(yōu)先級的設(shè)定問題。對于兩個(gè)線程,假如同操作一個(gè)隊(duì)列,誰優(yōu)先級高誰執(zhí)行的次數(shù)多是毋庸置疑的,但這執(zhí)行不一定是有效的。假如消費(fèi)者優(yōu)先級高,那么對它而言,大多數(shù)情況下隊(duì)列為空,它不斷的被掛起,喚醒。假如生產(chǎn)者優(yōu)先級高,那么對它而言,大多數(shù)情況下隊(duì)列為滿,它同樣的不斷被掛起,喚醒。這樣,兩種辦法實(shí)際上都不是有效的。那么兩個(gè)線程一定要sleep,至少高優(yōu)先級的一定要sleep,可sleep多長時(shí)間呢。對于消費(fèi)者和生產(chǎn)者X,Y,假如消費(fèi)者消費(fèi)速率為x,sleep時(shí)間為xt,生產(chǎn)者生產(chǎn)速率為y,sleep時(shí)間為yt,隊(duì)列長度為L,那么何時(shí)總消費(fèi)速率 M 最大呢?此時(shí)xt和yt分別為多少?顯然是一個(gè)規(guī)劃問題(不一定是線性的)。那么當(dāng)線程個(gè)數(shù)是3,而且互相制約呢,比如有兩個(gè)Q1,Q2,對于Q1,X,Y分別是消費(fèi)者和生產(chǎn)者,對于Q2,Y,Z分別是消費(fèi)者和生產(chǎn)者,那么此時(shí)的最佳情況又如何呢?(一定不是平面上的線性規(guī)劃問題,三個(gè)變量嘛。)如果為 n 呢?看起來就很復(fù)雜了,有空再研究。