• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種有名信號量的創(chuàng)建方法、裝置、設(shè)備、介質(zhì)和產(chǎn)品制造方法及圖紙

    技術(shù)編號:44778846 閱讀:24 留言:0更新日期:2025-03-26 12:57
    本發(fā)明專利技術(shù)公開了一種有名信號量的創(chuàng)建方法、裝置、設(shè)備、介質(zhì)和產(chǎn)品,通過創(chuàng)建有名信號量文件;設(shè)置所述有名信號量文件的大小為預設(shè)的數(shù)據(jù)結(jié)構(gòu)的大小;所述數(shù)據(jù)結(jié)構(gòu)包括信號量對象和原子變量,所述原子變量用于同步多個進程同時進行的創(chuàng)建與初始化行為;將所述有名信號量文件映射到進程的內(nèi)存空間,以使不同進程通過映射后的內(nèi)存地址按所述數(shù)據(jù)結(jié)構(gòu)訪問和使用有名信號量;調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu)。采用本發(fā)明專利技術(shù),能夠不依賴于文件鏈接實現(xiàn)對有名信號量的創(chuàng)建和初始化,具有更好的兼容性與性能。

    【技術(shù)實現(xiàn)步驟摘要】

    本專利技術(shù)涉及通信,尤其涉及一種有名信號量的創(chuàng)建方法、裝置、設(shè)備、介質(zhì)和產(chǎn)品


    技術(shù)介紹

    1、在多任務(wù)操作系統(tǒng)中,有名信號量是一種常用于多進程編程的同步機制。現(xiàn)有的有名信號量創(chuàng)建方法通常依賴于文件系統(tǒng)的操作,如文件的創(chuàng)建、寫入、鏈接等。一種典型的實現(xiàn)方法包括以下步驟:根據(jù)輸入的信號量名稱加工得到有名信號量文件名。判斷系統(tǒng)是否已經(jīng)存在該有名信號量文件,如果有則直接打開并映射到進程內(nèi)存空間。如果沒有則執(zhí)行創(chuàng)建初始化流程,在內(nèi)存中初始化信號量的值,然后創(chuàng)建一個臨時文件,并將初始化的信號量值寫入該文件。使用link文件操作來原子地將臨時文件鏈接為最終的信號量文件。將文件映射到進程內(nèi)存中,并按信號量數(shù)據(jù)結(jié)構(gòu)來訪問映射的內(nèi)存。這樣便完成了有名信號量的創(chuàng)建與初始化,多個進程通過同樣的信號量名字來訪問同一個信號量文件在各自進程中的內(nèi)存映射,從而實現(xiàn)跨進程訪問同一個有名信號量。

    2、然而,專利技術(shù)人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:現(xiàn)有的方法通過文件鏈接link操作來將保存有初始化過的信號量的臨時文件原子的鏈接為信號量文件,從而保證了創(chuàng)建過程的多進程與多線程正確性,這種方法依賴于文件鏈接,存在兼容性問題,在不支持文件鏈接的操作系統(tǒng)上,該方案便無法兼容。


    技術(shù)實現(xiàn)思路

    1、本專利技術(shù)實施例的目的是提供一種有名信號量的創(chuàng)建方法、裝置、設(shè)備、介質(zhì)和產(chǎn)品,其能夠不依賴于文件鏈接實現(xiàn)對有名信號量的創(chuàng)建和初始化,具有更好的兼容性與性能。

    2、為實現(xiàn)上述目的,本專利技術(shù)實施例提供了一種有名信號量的創(chuàng)建方法,包括:

    3、獲取有名信號量文件;

    4、設(shè)置所述有名信號量文件的大小為預設(shè)的數(shù)據(jù)結(jié)構(gòu)的大小;所述數(shù)據(jù)結(jié)構(gòu)包括信號量對象和原子變量,所述原子變量用于同步多個進程同時進行的創(chuàng)建與初始化行為;

    5、將所述有名信號量文件映射到進程的內(nèi)存空間,以使不同進程通過映射后的內(nèi)存地址按所述數(shù)據(jù)結(jié)構(gòu)訪問和使用有名信號量;

    6、調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu)。

    7、作為上述方案的改進,所述獲取有名信號量文件,包括:

    8、根據(jù)信號量名稱,生成有名信號量文件名;

    9、檢查所述有名信號量文件名對應的有名信號量文件是否存在;

    10、當所述有名信號量文件不存在時,創(chuàng)建有名信號量文件;

    11、當所述有名信號量文件存在時,打開所述有名信號量文件。

    12、作為上述方案的改進,所述信號量對象包括計數(shù)器、作用范圍屬性和等待者計數(shù);其中,所述計數(shù)器用于表示可用資源數(shù)量,所述作用范圍屬性用于表示信號量是否是本進程獨享,所述等待者計數(shù)用于表示當前阻塞等待信號量的線程數(shù)量。

    13、作為上述方案的改進,所述原子變量包括如下狀態(tài):未初始化、正在初始化和初始化完成。

    14、作為上述方案的改進,所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),包括:

    15、調(diào)用原子比較修改接口,比較所述原子變量是否為未初始化狀態(tài);

    16、當所述原子變量為未初始化狀態(tài)時,將所述原子變量修改為正在初始化狀態(tài);

    17、設(shè)置所述信號量對象的計數(shù)器值為用戶輸入的信號量初始值;

    18、調(diào)用原子寫操作將所述原子變量修改為初始化完成狀態(tài),并返回成功狀態(tài)碼。

    19、所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),還包括:

    20、當所述原子變量不為未初始化狀態(tài),或者將所述原子變量修改為正在初始化狀態(tài)失敗時,調(diào)用原子讀接口,判斷所述原子變量是否為正在初始化狀態(tài);

    21、當所述原子變量為正在初始化狀態(tài)時,判斷在預設(shè)的循環(huán)次數(shù)閾值內(nèi)所述原子變量是否變?yōu)槌跏蓟瓿蔂顟B(tài);

    22、若是,返回成功狀態(tài)碼;若否,返回失敗狀態(tài)碼。

    23、作為上述方案的改進,所述方法還包括:

    24、將所述信號量對象的地址和所述有名信號量文件的文件信息進行綁定保存。

    25、作為上述方案的改進,所述將所述信號量對象的地址和所述有名信號量文件的文件信息進行綁定保存,包括:

    26、獲取所述有名信號量文件在文件系統(tǒng)中的索引節(jié)點號;

    27、將所述索引節(jié)點號與所述信號量對象的地址成對保存起來。

    28、本專利技術(shù)實施例還提供了一種有名信號量的創(chuàng)建裝置,包括:

    29、文件獲取模塊,用于獲取有名信號量文件;

    30、文件大小設(shè)置模塊,用于設(shè)置所述有名信號量文件的大小為預設(shè)的數(shù)據(jù)結(jié)構(gòu)的大小;所述數(shù)據(jù)結(jié)構(gòu)包括信號量對象和原子變量,所述原子變量用于同步多個進程同時進行的創(chuàng)建與初始化行為;

    31、文件映射模塊,用于將所述有名信號量文件映射到進程的內(nèi)存空間,以使不同進程通過映射后的內(nèi)存地址按所述數(shù)據(jù)結(jié)構(gòu)訪問和使用有名信號量;

    32、初始化模塊,用于調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu)。

    33、本專利技術(shù)實施例還提供了一種有名信號量的創(chuàng)建設(shè)備,包括處理器、存儲器以及存儲在所述存儲器中且被配置為由所述處理器執(zhí)行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述任意一項所述的有名信號量的創(chuàng)建方法。

    34、本專利技術(shù)實施例還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)包括存儲的計算機程序,其中,在所述計算機程序運行時控制所述計算機可讀存儲介質(zhì)所在設(shè)備執(zhí)行如上述任意一項所述的有名信號量的創(chuàng)建方法。

    35、本專利技術(shù)實施例還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機程序或計算機指令,所述計算機程序或所述計算機指令被處理器執(zhí)行時實現(xiàn)如上述任意一項所述的有名信號量的創(chuàng)建方法。

    36、與現(xiàn)有技術(shù)相比,本專利技術(shù)公開的有名信號量的創(chuàng)建方法、裝置、設(shè)備、介質(zhì)和產(chǎn)品,通過創(chuàng)建有名信號量文件,設(shè)置所述有名信號量文件的大小為預設(shè)的數(shù)據(jù)結(jié)構(gòu)的大小;所述數(shù)據(jù)結(jié)構(gòu)包括信號量對象和原子變量,所述原子變量用于同步多個進程同時進行的創(chuàng)建與初始化行為;將所述有名信號量文件映射到進程的內(nèi)存空間,以使不同進程通過映射后的內(nèi)存地址按所述數(shù)據(jù)結(jié)構(gòu)訪問和使用有名信號量;調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu)。本專利技術(shù)定義了一個包含信號量和原子變量的數(shù)據(jù)結(jié)構(gòu)體,通過直接操作映射內(nèi)存進行初始化,并通過原子變量實現(xiàn)對信號量初始化過程的并發(fā)控制與同步,在不依賴于文件系統(tǒng)的文件鏈接相關(guān)操作的情況下,實現(xiàn)對有名信號量的創(chuàng)建和初始化,具有更好的兼容性與性能。

    本文檔來自技高網(wǎng)...

    【技術(shù)保護點】

    1.一種有名信號量的創(chuàng)建方法,其特征在于,包括:

    2.如權(quán)利要求1所述的有名信號量的創(chuàng)建方法,其特征在于,所述獲取有名信號量文件,包括:

    3.如權(quán)利要求1所述的有名信號量的創(chuàng)建方法,其特征在于,所述原子變量包括如下狀態(tài):未初始化、正在初始化和初始化完成。

    4.如權(quán)利要求3所述的有名信號量的創(chuàng)建方法,其特征在于,所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),包括:

    5.如權(quán)利要求4所述的有名信號量的創(chuàng)建方法,其特征在于,所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),還包括:

    6.如權(quán)利要求1至5任一項所述的有名信號量的創(chuàng)建方法,其特征在于,所述方法還包括:

    7.一種有名信號量的創(chuàng)建裝置,其特征在于,包括:

    8.一種有名信號量的創(chuàng)建設(shè)備,其特征在于,包括處理器、存儲器以及存儲在所述存儲器中且被配置為由所述處理器執(zhí)行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如權(quán)利要求1至6中任意一項所述的有名信號量的創(chuàng)建方法。

    9.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)包括存儲的計算機程序,其中,在所述計算機程序運行時控制所述計算機可讀存儲介質(zhì)所在設(shè)備執(zhí)行如權(quán)利要求1至6中任意一項所述的有名信號量的創(chuàng)建方法。

    10.一種計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包括計算機程序或計算機指令,所述計算機程序或所述計算機指令被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6中任意一項所述的有名信號量的創(chuàng)建方法。

    ...

    【技術(shù)特征摘要】

    1.一種有名信號量的創(chuàng)建方法,其特征在于,包括:

    2.如權(quán)利要求1所述的有名信號量的創(chuàng)建方法,其特征在于,所述獲取有名信號量文件,包括:

    3.如權(quán)利要求1所述的有名信號量的創(chuàng)建方法,其特征在于,所述原子變量包括如下狀態(tài):未初始化、正在初始化和初始化完成。

    4.如權(quán)利要求3所述的有名信號量的創(chuàng)建方法,其特征在于,所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),包括:

    5.如權(quán)利要求4所述的有名信號量的創(chuàng)建方法,其特征在于,所述調(diào)用預設(shè)的接口來檢查與初始化所述數(shù)據(jù)結(jié)構(gòu),還包括:

    6.如權(quán)利要求1至5任一項所述的有名信號量的創(chuàng)建方法,其特征在于,所述方法還包括:

    7.一種有名信號量的創(chuàng)建裝置...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:楊實巧賀鴻飛侯運彬
    申請(專利權(quán))人:中移物聯(lián)網(wǎng)有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲综合无码一区二区三区| 国产aⅴ无码专区亚洲av麻豆| 无码A级毛片免费视频内谢| 无码无遮挡又大又爽又黄的视频 | 日本精品人妻无码免费大全| 最新亚洲人成无码网站| 国精品无码一区二区三区在线| 亚洲精品无码高潮喷水A片软| 国产精品无码翘臀在线观看| 亚洲情XO亚洲色XO无码| 无码国模国产在线观看免费| 日韩精品少妇无码受不了| 无码日韩人妻AV一区二区三区| 人妻丰满熟妇AV无码片| 中文字字幕在线中文无码| 无码av中文一二三区| 亚洲中文字幕无码亚洲成A人片| 亚洲日韩激情无码一区| 无码国模国产在线观看免费| 亚洲av永久无码精品网址| 无码人妻精品一区二区三区夜夜嗨| 国产精品白浆在线观看无码专区| 精品无码一区二区三区电影 | 亚洲AV无码国产精品色| 欧洲精品无码一区二区三区在线播放| 亚洲AV综合永久无码精品天堂| 亚洲Av无码专区国产乱码DVD | 亚洲AV无码精品色午夜果冻不卡 | 亚洲中文字幕无码爆乳av中文 | 日产无码1区2区在线观看| 性色AV蜜臀AV人妻无码| 97碰碰碰人妻视频无码| 人妻av无码一区二区三区| 亚洲AV无码一区二区三区系列 | 日韩精品无码视频一区二区蜜桃 | 国产在线观看无码免费视频| 国产仑乱无码内谢| 变态SM天堂无码专区| 亚洲成a人片在线观看无码专区| 国产精品无码久久久久久| 亚洲av无码国产精品色午夜字幕|