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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SylixOS异常管理

發(fā)布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SylixOS异常管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

異常管理

  SylixOS提供了一種平臺無關的異常管理方法。當系統(tǒng)產(chǎn)生了寫時拷貝、缺頁等MMU訪問失效異?;蚱渌N類異常時,SylixOS會在異常中構(gòu)建異常處理線程執(zhí)行陷阱,在異常退出后的任務上下文中進行異常處理,完成所有的頁面操作,如果操作失敗線程將自我銷毀。當為缺頁中斷等一般異常時,陷阱執(zhí)行完畢后,系統(tǒng)將回到剛剛訪問內(nèi)存并產(chǎn)生異常的那條指令。其函數(shù)接口如下所示。

LW_API VOID API_VmmAbortIsr (addr_t ulRetAddr, addr_t ulAbortAddr, PLW_VMM_ABORT pabtInfo, PLW_CLASS_TCB ptcb);

函數(shù)API_VmmAbortIsr原型分析:

  • 此函數(shù)無返回;
  • 參數(shù)ulRetAddr是異常返回地址;
  • 參數(shù)ulAbortAddr是異常地址;
  • 參數(shù)pabtInfo是異常類型;
  • 參數(shù)ptcb是出現(xiàn)異常的線程控制塊;
  •   API_VmmAbortIsr函數(shù)的主要內(nèi)容便是處理MMU訪問失效異常,也就通常所說的缺頁中斷。該函數(shù)的一般處理流程如下所示:

  • 致命錯誤探測;
  • 推展溢出檢查;
  • 異常信息構(gòu)建和現(xiàn)場保存,包括異常時的上下文;
  • 缺頁處理陷阱外殼環(huán)境建立;
  • FP保存;
  • FPU、DSP上下文保存。
  •   其中缺頁處理陷阱外殼的建立是通過修改異常上下文的任務入口、入口參數(shù)以及堆棧起點實現(xiàn)的,如下所示。陷阱程序的入口函數(shù)為__vmmAbortShell,異常消息作為函數(shù)參數(shù),堆棧直接使用任務的線程堆棧,而異常消息也保存在該堆棧中(API_VmmAbortIsr函數(shù)執(zhí)行時使用的是CPU的中斷堆棧)。

    #if LW_CFG_VMM_EN > 0pstkFailShell = archTaskCtxCreate(&ptcb->TCB_archRegCtx,(PTHREAD_START_ROUTINE)__vmmAbortShell,(PVOID)pvmpagefailctx,(PLW_STACK)pucStkNow,0); /* 建立缺頁處理陷阱外殼環(huán)境 */ #elsepstkFailShell = archTaskCtxCreate(&ptcb->TCB_archRegCtx,(PTHREAD_START_ROUTINE)__vmmAbortAccess,(PVOID)pvmpagefailctx,(PLW_STACK)pucStkNow,0); /* 建立訪問異常陷阱外殼環(huán)境 */ #endif

      由于產(chǎn)生缺頁中斷時,相關線程一定是就緒的,所以不需要進行調(diào)度器處理。當異常返回后,被修改的任務上下文將被直接恢復到CPU中,也就是說此時的CPU將直接運行陷阱函數(shù)。當陷阱函數(shù)執(zhí)行完之后,并不是普通的函數(shù)返回,而是直接從之前保存在錯誤消息中的任務上下文返回,如下所示。此時系統(tǒng)將回到剛剛訪問內(nèi)存產(chǎn)生異常的那條指令開始執(zhí)行。

    __KERNEL_SPACE_SET(pvmpagefailctx->PAGEFCTX_iKernelSpace); /* 恢復成進入之前的狀態(tài) */errno = pvmpagefailctx->PAGEFCTX_iLastErrno; /* 恢復之前的 errno */iregInterLevel = KN_INT_DISABLE(); /* 關閉當前 CPU 中斷 */KN_SMP_MB();archSigCtxLoad(&pvmpagefailctx->PAGEFCTX_archRegCtx);/* 從 page fail 上下文中返回 */KN_INT_ENABLE(iregInterLevel);

      陷阱程序的具體執(zhí)行過程將在后續(xù)介紹。

    轉(zhuǎn)載于:https://my.oschina.net/u/3248663/blog/2120700

    總結(jié)

    以上是生活随笔為你收集整理的SylixOS异常管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 奇米影视四色777 | 日本不卡一二三区 | 国产a线 | 葵司有码中文字幕二三区 | 91抖音成人 | 久久亚洲aⅴ无码精品 | 久久99一区二区 | 久久国产主播 | 亚洲成人一区在线观看 | 一区二区三区少妇 | 日本在线视频一区二区三区 | 欧美成年人在线视频 | 成人免费观看视频大全 | 亚洲色图偷 | 美女露出粉嫩尿囗让男人桶 | 色婷婷av一区二区三区在线观看 | 中午字幕在线观看 | 天堂中文字幕免费一区 | 国产xxxxx在线观看 | 成年人在线观看视频免费 | 村姑电影在线播放免费观看 | 午夜欧美日韩 | 久久夜色精品国产噜噜亚洲av | 精品久久久久久中文字幕人妻最新 | 婷婷欧美 | 精品在线视频一区 | 国产成人欧美一区二区三区91 | 午夜视频www | 熟女av一区二区三区 | 亚洲一区二区三区免费视频 | 高潮又黄又刺激 | 婷婷中文 | 亚洲av成人无码网天堂 | 欧美日韩一区视频 | 上海毛片 | 日本wwww色 | 日韩美女一级片 | 人人爽人人澡 | 日日夜夜中文字幕 | 不卡av在线免费观看 | 国产精品久久久久久久免费看 | 1769国产精品 | 久久久久久久久久影视 | 国产人免费人成免费视频 | 亚州精品毛片 | 久久婷五月天 | 麻豆导航 | 性av在线 | 日韩午夜三级 | 亚洲最大激情网 | 欧美一区二区三区黄色 | 久操视频免费看 | 中文有码在线 | 国产伦理在线观看 | 中文字幕在线色 | 九九精品视频在线观看 | 国产精品久久在线观看 | 日韩成人av在线 | 爽爽爽av| 亚洲热在线视频 | 婷婷啪啪 | 红杏出墙记 | 1024国产视频| 久草福利视频 | 国语对白清晰刺激对白 | 高清久久久久久 | 日韩婷婷| 久久久久久免费毛片精品 | 成人av一区二区三区 | 久久性 | 国产精品伦子伦免费视频 | 北条麻妃二三区 | 日韩精品久久久久久久的张开腿让 | 日本免费一区二区三区四区 | 伊人网大 | 伊人久久国产 | 亚洲精品乱码久久久久久蜜桃动漫 | 911看片 | 日韩黄网 | 另类中文字幕 | 女人扒开屁股让我添 | 一级片手机在线观看 | 欧美视频在线一区二区三区 | 丰满岳妇乱一区二区三区 | 天堂中文在线资 | 久久网站免费观看 | 日本不卡视频 | 天天干夜夜操视频 | 天天操天 | 欧美日韩不卡视频 | 中文字幕日韩欧美在线 | 精品九九 | 亚洲毛片一区二区三区 | 亚洲视频国产 | 天天看天天做 | 日韩特级毛片 | 欧美久久久久久久久久久 | 性色av蜜臀av色欲av | 天天射天天拍 |