1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        可以在中斷服務(wù)程序執(zhí)行malloc嗎?

        共 844字,需瀏覽 2分鐘

         ·

        2020-09-12 02:01

        這是微信群里面的一個(gè)群友提的問題,原問題如下:

        今天遇到一個(gè)面試問題??請(qǐng)教各位老哥??中斷服務(wù)程序能否malloc ?為什么?我回答是?不行?因?yàn)橹袛喾?wù)程序應(yīng)該要盡量簡短,且執(zhí)行完中斷服務(wù)程序會(huì)跳出中斷函數(shù),要進(jìn)行釋放。?但是從面試官得反應(yīng)我應(yīng)該是回答錯(cuò)了或者沒回答到點(diǎn)子上。還望不吝賜教


        中斷相關(guān)的文章

        漫畫-Linux中斷子系統(tǒng)綜述

        一文看盡 linux對(duì)中斷處理的前世今生

        Linux中斷申請(qǐng)

        Linux中斷子系統(tǒng)之Workqueue


        中斷是分為上半部和下半部的,不管是上半部還是下半部,我們都需要注意一些事情

        ---- 中斷要盡快執(zhí)行完

        ---- 中斷函數(shù)要可以重入


        重入相關(guān)文章
        你應(yīng)該關(guān)心函數(shù)重入的問題


        簡單說下函數(shù)可以重入的這個(gè)問題,重入的引入是因?yàn)槎嗑€程導(dǎo)致的,有內(nèi)核的系統(tǒng)都是多任務(wù)系統(tǒng),既然是多任務(wù)系統(tǒng),如果一個(gè)函數(shù)被多個(gè)任務(wù)調(diào)用,就需要保護(hù)全局變量,只有局部變量的函數(shù)是沒有重入的問題的哈。


        從內(nèi)核里面截取的malloc源碼

        static?void?*malloc(int?size)
        {
        ?void?*p;

        ?if?(size???return?NULL;
        ?if?(!malloc_ptr)
        ??malloc_ptr?=?free_mem_ptr;

        ?malloc_ptr?=?(malloc_ptr?+?3)?&?~3;?????/*?Align?*/

        ?p?=?(void?*)malloc_ptr;
        ?malloc_ptr?+=?size;

        ?if?(free_mem_end_ptr?&&?malloc_ptr?>=?free_mem_end_ptr)
        ??return?NULL;

        ?malloc_count++;
        ?return?p;
        }


        很明顯里面有全局變量,而且這個(gè)全局變量沒有加鎖保護(hù),這種函數(shù)如果在中斷服務(wù)函數(shù)里面,如果中斷被多次觸發(fā),那就比較出現(xiàn)問題了,還有一個(gè)情況,如果malloc失敗了呢?是不是要退出中斷,我們知道中斷是不能return的啊。


        我的一點(diǎn)自己見解,歡迎大佬們?cè)u(píng)論說出自己的觀點(diǎn)



        ?推薦閱讀:
        ? ??專輯|Linux文章匯總
        ? ??專輯|程序人生
        ? ??專輯|C語言


        嵌入式Linux
        微信掃描二維碼,關(guān)注我的公眾號(hào)?
        瀏覽 68
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91精品久久久久久久久久久久 | 国产精品99久久久久人最新消息 | 国产综合视频在线 | 少妇一级淫片中文字幕 | 精品人妻无码一区二区三区四川人 | 三区国产| 99视频在线观看国产 | 无码人妻一区二区一牛影视 | 韩国三级在线视频 | 欧美性爱黄色 |