必威电竞|足球世界杯竞猜平台

時(shí)間片
來源:互聯(lián)網(wǎng)

時(shí)間片,簡(jiǎn)單說來,就是CPU分配給各個(gè)程序的時(shí)間,使各個(gè)程序從表面上看是同時(shí)進(jìn)行的,而不會(huì)造成CPU資源浪費(fèi)。

簡(jiǎn)介

在宏觀上:我們可以同時(shí)打開多個(gè)應(yīng)用程序,每個(gè)程序并行不悖,同時(shí)運(yùn)行。但是在微觀上:由于只有一個(gè)CPU,一次只能處理程序要求的一部分,如何處理公平,一種方法就是引入時(shí)間片,每個(gè)程序輪流執(zhí)行。

舉個(gè)例子:

你同時(shí)輸入兩篇文檔:A.txt和B.txt;

你在A中輸入一個(gè)字之后,再在B中輸入一個(gè)字,輪流輸入,直至完成。總的看來你似乎在同時(shí)進(jìn)行兩篇文章的錄入,你可以說我一邊寫A一邊寫B(tài)。但是具體到某個(gè)字時(shí),就是沿著時(shí)間的前進(jìn),AB交替進(jìn)行了。而你每個(gè)字輸入所占用的這段時(shí)間,我們就可以稱之為時(shí)間片。

概述

舉個(gè)多線程程序的例子,說明時(shí)間片是怎樣工作的(java)

如上:

由此可見:兩個(gè)線程是交替執(zhí)行的(數(shù)字的變化),從宏觀上(同時(shí)輸出)。

以下是搜的資料:

1,什么是時(shí)間片輪轉(zhuǎn):

時(shí)間片輪轉(zhuǎn)調(diào)度是一種最古老,最簡(jiǎn)單,最公平且使用最廣的算法是時(shí)間片調(diào)度。每個(gè)進(jìn)程被分配一個(gè)時(shí)間段,稱作它的時(shí)間片,即該進(jìn)程允許運(yùn)行的時(shí)間。如果在時(shí)間片結(jié)束時(shí)進(jìn)程還在運(yùn)行,則CPU將被剝奪并分配給另一個(gè)進(jìn)程。如果進(jìn)程在時(shí)間片結(jié)束前阻塞或結(jié)束,則CPU當(dāng)即進(jìn)行切換。調(diào)度程序所要做的就是維護(hù)一張就緒進(jìn)程列表,,當(dāng)進(jìn)程用完它的時(shí)間片后,它被移到隊(duì)列的末尾。

時(shí)間片輪轉(zhuǎn)調(diào)度中唯一有趣的一點(diǎn)是時(shí)間片的長(zhǎng)度。從一個(gè)進(jìn)程切換到另一個(gè)進(jìn)程是需要一定時(shí)間的--保存和裝入寄存器值及內(nèi)存映像,更新各種表格和隊(duì)列等。假如進(jìn)程切換(process switch) - 有時(shí)稱為上下文切換(context switch),需要5毫秒,再假設(shè)時(shí)間片設(shè)為20毫秒,則在做完20毫秒有用的工作之后,CPU將花費(fèi)5毫秒來進(jìn)行進(jìn)程切換。CPU時(shí)間的20%被浪費(fèi)在了管理開銷上。

為了提高CPU效率,我們可以將時(shí)間片設(shè)為500毫秒。這時(shí)浪費(fèi)的時(shí)間只有1%。但考慮在一個(gè)分時(shí)系統(tǒng)中,如果有十個(gè)交互用戶幾乎同時(shí)按下回車鍵,將發(fā)生什么情況?假設(shè)所有其他進(jìn)程都用足它們的時(shí)間片的話,最后一個(gè)不幸的進(jìn)程不得不等待5秒鐘才獲得運(yùn)行機(jī)會(huì)。多數(shù)用戶無法忍受一條簡(jiǎn)短命令要5秒鐘才能做出響應(yīng)。同樣的問題在一臺(tái)支持多道程序的個(gè)人計(jì)算機(jī)上也會(huì)發(fā)生。

結(jié)論可以歸結(jié)如下:時(shí)間片設(shè)得太短會(huì)導(dǎo)致過多的進(jìn)程切換,降低了CPU效率;而設(shè)得太長(zhǎng)又可能引起對(duì)短的交互請(qǐng)求的響應(yīng)變差。將時(shí)間片設(shè)為100毫秒通常是一個(gè)比較合理的折衷。

參考資料 >

生活家百科家居網(wǎng)