-
多道編程的好處
人們發(fā)明進(jìn)程是為了解決多道編程软瞎,而進(jìn)行多道編程的目的則是提高計(jì)算機(jī)的效率,或者說系統(tǒng)的吞吐量兽愤。例如:如果有一個(gè)進(jìn)程有20%的時(shí)間使用CPU進(jìn)行計(jì)算于样,另外80%的時(shí)間用來進(jìn)行I/O,則如果使用單道編程掩驱,CPU的利用率只有20%芒划。但如果同時(shí)運(yùn)行兩個(gè)這樣的進(jìn)程,即進(jìn)行所謂的2道編程欧穴,則CPU利用率將提高到36%(CPU只在兩個(gè)進(jìn)程同時(shí)進(jìn)程I/O時(shí)才處于閑置狀態(tài)民逼,因此CPU的利用率為1-0.8*0.8 = 36%)
在0.8的空閑期間,又使用了0.2涮帘,剩下0.64的空余拼苍,所以使用率為1-0.64=0.36,1的單位其實(shí)指的是第一個(gè)進(jìn)程從開始到I/O處理完所需要的時(shí)間调缨,利用率是指在這個(gè)時(shí)間內(nèi)疮鲫,CPU有多少比例的時(shí)間處于計(jì)算狀態(tài)
這里忽略了進(jìn)程切換所需要的系統(tǒng)消耗。
同理同蜻,如果同時(shí)運(yùn)行三個(gè)這樣的進(jìn)程棚点,則CPU的利用率將進(jìn)一步提高到48.8%,
- 4個(gè)進(jìn)程的CPU利用率為59.04%,
- 5個(gè)進(jìn)程的CPU利用率為67.232%湾蔓,
- 6個(gè)進(jìn)程的CPU空閑率為 26.2144%(0.8^6)瘫析, 利用率為73.7856%
- 7個(gè)進(jìn)程的CPU空閑率為 16.777216%(0.8^7), 利用率為83.222784%
這樣默责,隨著進(jìn)程數(shù)量的增加贬循,也就是隨著多道編程的度的增加,CPU的利用率將逐步提升桃序,但提升的幅度則逐步降低杖虾,直到某個(gè)臨界點(diǎn)時(shí)為止。這個(gè)臨界點(diǎn)就是多道編程的極限媒熊。超過這個(gè)極限奇适,多道編程的好處將逐步消失,甚至呈下降趨勢芦鳍。對于這個(gè)系統(tǒng)來說嚷往,多道編程的度達(dá)到12以后,CPU利用率已經(jīng)達(dá)到94%柠衅,之后CPU利用率的提升空間就很小了皮仁,而因?yàn)檫M(jìn)程切換所帶來的系統(tǒng)消耗則變得非常明顯。