日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践

發(fā)布時(shí)間:2023/11/30 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0 前言

接上一篇文章:進(jìn)程調(diào)度(2a):SJF(短任務(wù)優(yōu)先) 算法 原理與實(shí)踐

1 前提鋪墊

與上一篇同。

2 STCF 原理

STCF(Shortest Time-to-Completion First)最短完成時(shí)間優(yōu)先。

2.1 算法

還記得上一個(gè)算法SJF嗎?它是非搶占式的,只能傻傻地等著長(zhǎng)任務(wù)A完成,這顯然是“懦弱”的,并且降低了系統(tǒng)的效率,因此,讓我們給它添加一個(gè)搶占功能吧!

搶占什么呢?當(dāng)然是A了,還是用上次的例子

  • A:100
  • B:10
  • C:20

A在0時(shí)刻到達(dá)并執(zhí)行,B和C在10時(shí)刻到達(dá)。之前B和C只能等著A結(jié)束執(zhí)行再按照B、C的順序執(zhí)行,現(xiàn)在,我們有搶占功能了!

在時(shí)刻10的時(shí)候,Scheduler(調(diào)度器)發(fā)現(xiàn)B和C的執(zhí)行時(shí)間比A短,那么好,A你就不要再執(zhí)行了,讓B先來(lái)吧! 這里,我們也使用到了上下文切換機(jī)制,先保存了A執(zhí)行的狀態(tài),等B、C執(zhí)行完,再讓A繼續(xù)執(zhí)行。

一個(gè)問(wèn)題:究竟是識(shí)別A剩余執(zhí)行時(shí)間,還是全部執(zhí)行時(shí)間,又或者什么呢?A、B和C的執(zhí)行時(shí)間,系統(tǒng)又怎樣得知?這些我們以后再談,并且這設(shè)計(jì)到了具體實(shí)現(xiàn)的層次,現(xiàn)在,我們的假設(shè)還是運(yùn)行時(shí)間是已知的,并且是在抽象層次在談?wù)摗?/p>


這樣,看起來(lái)就比之前的SJF棒多了!起碼它學(xué)會(huì)了“搶車位”。

現(xiàn)在,Average Turnaround Time = (10 + 30 + 130)/ 3 = 56.67,要知道,之前可是110。

不過(guò),這個(gè)算法也會(huì)有一些問(wèn)題,我們下面說(shuō)一下。

2.2 缺點(diǎn):長(zhǎng)任務(wù)“饑餓”

試想一下,對(duì)于一個(gè)長(zhǎng)任務(wù),如果有遠(yuǎn)遠(yuǎn)不斷地短任務(wù)進(jìn)入,那么這個(gè)長(zhǎng)任務(wù)可能永遠(yuǎn)不會(huì)被執(zhí)行了……(它也太慘了……)

不僅如此,對(duì)于一個(gè)交互型程序來(lái)說(shuō),與用戶交互的響應(yīng)時(shí)間(我們下一講說(shuō)這個(gè)指標(biāo),簡(jiǎn)單來(lái)說(shuō),就是用戶發(fā)送命令,到看見(jiàn)屏幕產(chǎn)生變化的時(shí)間,這應(yīng)該很快才對(duì))就會(huì)非常長(zhǎng),想象一下,你敲擊鍵盤(pán)的字母A后,等待10s才看見(jiàn)屏幕上顯示了A……這簡(jiǎn)直讓人發(fā)瘋!

說(shuō)明:在原書(shū)中沒(méi)有給出STCF算法的模擬,因此暫時(shí)沒(méi)有實(shí)踐內(nèi)容,不過(guò)因?yàn)樵撍惴ㄅcSJF的區(qū)別就在于搶占,因此比較容易理解。

2.3 關(guān)注點(diǎn):順序執(zhí)行的打破

我們之前看到的進(jìn)程,都是從一開(kāi)始執(zhí)行,就一直執(zhí)行到完成才停止,這個(gè)過(guò)程并不需要上下文切換機(jī)制(前面的篇章好像寫(xiě)錯(cuò)了……),而這一次,我們看到了任務(wù)A被分成了兩段來(lái)執(zhí)行,這時(shí)候就使用到了上下文切換機(jī)制了,被打斷的A,必須要保存現(xiàn)場(chǎng),然后下一次被執(zhí)行的時(shí)候,恢復(fù)現(xiàn)場(chǎng)繼續(xù)執(zhí)行。

這也是我們第一次見(jiàn)到,多個(gè)任務(wù)不是順序執(zhí)行的,而是切換執(zhí)行的,下一篇輪轉(zhuǎn)算法,你將更清晰地體會(huì)到這一點(diǎn)!

3 核心思想

STCF與SJF本質(zhì)是一樣的,區(qū)別就是,前者是搶占式,后者是非搶占式的。

核心思想就是,讓運(yùn)行時(shí)間短的任務(wù)先執(zhí)行

這樣做的缺點(diǎn)也分析過(guò),長(zhǎng)任務(wù)可能一直得不到執(zhí)行,后續(xù)我們會(huì)解決這個(gè)問(wèn)題的。

4 預(yù)告:進(jìn)程調(diào)度(3):RR(輪轉(zhuǎn)) 算法 原理與實(shí)踐

我們接下來(lái)會(huì)使用輪轉(zhuǎn)算法解決交互式程序響應(yīng)時(shí)間問(wèn)題。這樣能讓用戶獲得很好的體驗(yàn)。

下一篇鏈接:RR(輪轉(zhuǎn)) 算法 原理與實(shí)踐

總結(jié)

以上是生活随笔為你收集整理的【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。