[發(fā)明專利]等待地址同步接口有效
| 申請(qǐng)?zhí)枺?/td> | 201110395062.3 | 申請(qǐng)日: | 2011-12-02 |
| 公開(kāi)(公告)號(hào): | CN102541661A | 公開(kāi)(公告)日: | 2012-07-04 |
| 發(fā)明(設(shè)計(jì))人: | G.J.科隆巴;H.普拉帕卡;N.M.克利夫特 | 申請(qǐng)(專利權(quán))人: | 微軟公司 |
| 主分類號(hào): | G06F9/52 | 分類號(hào): | G06F9/52 |
| 代理公司: | 中國(guó)專利代理(香港)有限公司 72001 | 代理人: | 李舒;劉鵬 |
| 地址: | 美國(guó)華*** | 國(guó)省代碼: | 美國(guó);US |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 等待 地址 同步 接口 | ||
背景技術(shù)
計(jì)算機(jī)軟件應(yīng)用時(shí)常作為包括多個(gè)不同線程的進(jìn)程而運(yùn)行,其中每個(gè)線程執(zhí)行特定任務(wù)或?qū)嵤┰搼?yīng)用的特定功能。這些多個(gè)線程典型地被調(diào)度(schedule)成在處理器上在不同時(shí)間運(yùn)行。一個(gè)線程在它未被調(diào)度運(yùn)行時(shí)睡眠,并且然后當(dāng)它被調(diào)度運(yùn)行時(shí)被喚醒。盡管運(yùn)行具有不同線程的程序可能具有性能改進(jìn),但是它不是沒(méi)有它的問(wèn)題。一個(gè)這樣的問(wèn)題是,可能出現(xiàn)一個(gè)線程正在等待特定變量具有特定值并且直到該特定變量具有該特定值時(shí)才繼續(xù)的情形。這可能導(dǎo)致線程被重復(fù)喚醒以運(yùn)行,僅因?yàn)樵撎囟ㄗ兞可形淳哂性撎囟ㄖ刀乖摼€程返回到睡眠。這樣的結(jié)果致使線程的低效調(diào)度(schedule)并且降低運(yùn)行所述應(yīng)用的計(jì)算機(jī)的性能。
發(fā)明內(nèi)容
本發(fā)明內(nèi)容被提供以通過(guò)簡(jiǎn)化形式引入在下面的具體實(shí)施方式中進(jìn)一步描述的概念的選擇。本發(fā)明內(nèi)容不旨在確定要求保護(hù)的主題的關(guān)鍵或必要特征,也不旨在用于限制要求保護(hù)的主題的范圍。
根據(jù)一個(gè)或多個(gè)方面,揭示了第一應(yīng)用編程接口,其在被進(jìn)程的第一線程調(diào)用(invoke)時(shí)從第一線程接收目標(biāo)地址和由第一線程在目標(biāo)地址處觀測(cè)的當(dāng)前值。第一線程和目標(biāo)地址二者的記錄被維護(hù),從而在目標(biāo)地址處的值隨后被修改的情況下,允許第一線程被識(shí)別(identified)。此外,第一線程響應(yīng)于第一應(yīng)用編程接口正被調(diào)用而睡眠。
根據(jù)一個(gè)或多個(gè)方面,在進(jìn)程的第一線程中,作出以下確定:目標(biāo)地址處的當(dāng)前值不是期望值。響應(yīng)于目標(biāo)地址處的當(dāng)前值不是期望值,第一應(yīng)用編程接口被調(diào)用以指示第一線程即將睡眠并且在第二線程修改目標(biāo)地址處的值時(shí)被喚醒。調(diào)用第一應(yīng)用編程接口包括將目標(biāo)地址和所述當(dāng)前值標(biāo)識(shí)為第一應(yīng)用編程接口的參數(shù)。
附圖說(shuō)明
遍及附圖,相同的數(shù)字用于指代相似的特征。
圖1是圖示根據(jù)一個(gè)或多個(gè)實(shí)施例實(shí)現(xiàn)等待地址同步接口的示例計(jì)算設(shè)備的框圖。
圖2是圖示根據(jù)一個(gè)或多個(gè)實(shí)施例實(shí)現(xiàn)等待地址同步接口的示例系統(tǒng)的框圖。
圖3是圖示根據(jù)一個(gè)或多個(gè)實(shí)施例的用于使用等待地址同步接口的示例過(guò)程的流程圖。
圖4是圖示根據(jù)一個(gè)或多個(gè)實(shí)施例的用于實(shí)現(xiàn)等待地址同步接口的示例過(guò)程的流程圖。
圖5圖示了根據(jù)一個(gè)或多個(gè)實(shí)施例的可被配置成實(shí)現(xiàn)等待地址同步接口的示例計(jì)算設(shè)備。
具體實(shí)施方式
在此討論一種等待地址同步接口。等待同步模塊將兩個(gè)應(yīng)用編程接口(API)揭示給運(yùn)行在計(jì)算設(shè)備上的進(jìn)程:等待地址API和喚醒地址API。該等待地址API由進(jìn)程的線程調(diào)用,該線程識(shí)別目標(biāo)地址和由該線程在目標(biāo)地址處觀測(cè)的值。該等待地址API允許線程指示它正放棄(relinquishing)對(duì)處理器的控制(例如將要睡眠),直到目標(biāo)地址處的值發(fā)生變化。該等待同步模塊驗(yàn)證了目標(biāo)地址仍然具有由該線程識(shí)別的值。如果目標(biāo)地址不再具有由該線程識(shí)別的值,則不使線程睡眠并且向線程返回目標(biāo)地址處的值已經(jīng)變化的指示。然而,如果目標(biāo)地址仍然具有由該線程識(shí)別的值,則使該線程睡眠。該等待同步模塊維護(hù)線程的記錄以指示該線程正在等待目標(biāo)地址處的值發(fā)生變化。該記錄包括線程和目標(biāo)地址(其是線程正在等待的地址)二者的指示。
當(dāng)線程修改目標(biāo)地址處的值時(shí),該修改線程調(diào)用喚醒地址API,從而指定被修改的地址。該等待同步模塊檢查它的記錄以確定是否有任何線程正等待所述目標(biāo)地址,并且如果一個(gè)或多個(gè)線程正在等待該目標(biāo)地址,則該等待同步模塊喚醒那些一個(gè)或多個(gè)線程中的至少一個(gè)。
在此討論使線程睡眠和喚醒線程。盡管使線程睡眠和喚醒線程的概念對(duì)本領(lǐng)域技術(shù)人員而言是已知的,但是為了方便讀者起見(jiàn),這里包含了使線程睡眠和喚醒線程的簡(jiǎn)要討論。一般地,操作系統(tǒng)包括模塊或組件,比如線程調(diào)度模塊,其調(diào)度進(jìn)程的不同線程以便由處理器或處理器內(nèi)核在不同時(shí)間執(zhí)行。典型地,該線程被調(diào)度一定時(shí)間量(例如,被稱為時(shí)間片),在該時(shí)間量期間它可以執(zhí)行。在該時(shí)間量流逝之后,該線程調(diào)度模塊調(diào)度另一個(gè)線程來(lái)執(zhí)行。當(dāng)使線程睡眠時(shí),該線程調(diào)度模塊不調(diào)度用于執(zhí)行的該線程,并且該線程不執(zhí)行,而是該線程在睡眠。當(dāng)線程被喚醒時(shí),該線程調(diào)度模塊重新開(kāi)始調(diào)度用于執(zhí)行的線程并且該線程執(zhí)行。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟公司,未經(jīng)微軟公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110395062.3/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:家用電器電磁輻射檢測(cè)裝置
- 下一篇:防感染檢驗(yàn)玻片





