国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      存儲器保護方法和設(shè)備的制作方法

      文檔序號:6463596閱讀:262來源:國知局
      專利名稱:存儲器保護方法和設(shè)備的制作方法
      技術(shù)領(lǐng)域
      根據(jù)本發(fā)明的方法和設(shè)備涉及存儲器保護方法和設(shè)備,更具體地講,涉 及在實時操作系統(tǒng)環(huán)境中組件所使用的存儲器的保護。
      背景技術(shù)
      通常,操作系統(tǒng)提供針對用戶進程來保護存儲器的功能。為了提供這種 保護,如圖1所示,操作系統(tǒng)將存儲器區(qū)域劃分為內(nèi)核區(qū)域和用戶區(qū)域,如
      果通過上下文切換(context switching)執(zhí)行新的進程,那么操作系統(tǒng)執(zhí)行將 正在執(zhí)行的進程映射到用戶區(qū)域的操作,以禁止用戶進程訪問操作系統(tǒng)所使
      用戶區(qū)域,而禁止用戶進程訪問其他進程的存儲器空間或內(nèi)核所使用的存儲 器空間。這種保護功能防止不可靠的用戶進程-使整個系統(tǒng)或其他進程停止。
      統(tǒng)(即,系統(tǒng)),所以這種技術(shù)不能從組件(如文件系統(tǒng)、庫等)的角度保護 存儲器。即,在現(xiàn)有技術(shù)中,組件以內(nèi)核驅(qū)動程序的形式形成,而且被包括 在操作系統(tǒng)中作為操作系統(tǒng)的一部分。根據(jù)這種技術(shù),可以針對用戶進程來 保護組件使用的存儲器,但是不能針對其他內(nèi)核驅(qū)動程序來保護該存儲器。 因此,在外部代碼侵占組件所使用的存儲器的情況下,開發(fā)者可能由于該組 件中的缺陷(bug)而^"誤地斷定該組件出現(xiàn)故障。因此,組件的開發(fā)、修理 和維護非常困難。
      此外,現(xiàn)有技術(shù)的存儲器保護技術(shù)僅能在使用進程模型的一般操作系統(tǒng) 中使用。然而,現(xiàn)有技術(shù)的保護技術(shù)難以應(yīng)用于所有任務(wù)共享存儲器空間的 實時操作系統(tǒng)(RTOS)。例如,如圖2所示,當(dāng)在執(zhí)行第一任務(wù)期間調(diào)用特 定組件時,第一任務(wù)可以訪問被調(diào)用的組件所使用的存儲器區(qū)域。如果在第 一任務(wù)的執(zhí)行結(jié)束之前通過上下文切換來執(zhí)行第二任務(wù),那么第二任務(wù)也可 以訪問該存儲器區(qū)域。在這種情況下,該存儲器區(qū)域可能被第二任務(wù)破壞 (corrupt )。

      發(fā)明內(nèi)容
      本發(fā)明提供了 一種在實時操作系統(tǒng)環(huán)境中能夠保護組件所使用的存儲器 的存儲器保護方法和設(shè)備。
      根據(jù)本發(fā)明的一方面,提供了一種存儲器保護方法,包括在實時操作 系統(tǒng)中第 一組件被調(diào)用以執(zhí)行第 一任務(wù)時,請求訪問第 一組件使用的第 一存 儲器區(qū)域;參照包括關(guān)于被允許訪問第一存儲器區(qū)域的任務(wù)的信息的任務(wù)列 表,允許第一任務(wù)訪問第一存儲器區(qū)域。
      根據(jù)本發(fā)明的另一方面,提供了一種存儲器保護設(shè)備,包括請求單元, 在實時操作系統(tǒng)中第 一組件被調(diào)用以執(zhí)行第 一任務(wù)時,請求訪問第 一組件使 用的第一存儲器區(qū)域;存儲器訪問控制器,參照包括關(guān)于被允許訪問第一存 儲器區(qū)域的任務(wù)的信息的任務(wù)列表,允許第一任務(wù)訪問第一存儲器區(qū)域。


      通過下面結(jié)合附圖對示例性實施例進行的詳細描述,本發(fā)明的上述和其 它方面將會變得清楚,其中
      圖l是解釋現(xiàn)有技術(shù)的存儲器保護技術(shù)的示圖2是解釋在RTOS環(huán)境中由于上下文切換可能發(fā)生的問題的示圖4是解釋根據(jù)本發(fā)明示例性實施例的任務(wù)列表的示圖5是示出根據(jù)本發(fā)明示例性實施例的存儲器保護設(shè)備的操作過程的流
      程圖6是詳細示出圖5中允許訪問存儲器區(qū)域的步驟S520的流程圖; 圖7是詳細示出圖5中禁止訪問存儲器區(qū)域的步驟S580的流程圖; 圖8是示出根據(jù)本發(fā)明另一示例性實施例的存儲器保護設(shè)備的結(jié)構(gòu)的示
      圖9是示出根據(jù)本發(fā)明另一示例性實施例的存儲器保護設(shè)備的操作的流
      程圖IO是詳細示出圖9中的處理頁錯誤的步驟S960的流程圖。
      具體實施方式
      下面將參照附圖來詳細描述本發(fā)明的示例性實施例。通過參照示例性實 施例,本發(fā)明的各方面和特點以及實現(xiàn)本發(fā)明各方面和特點的方法將變得清 楚,將參照附圖來詳細描述示例性實施例。然而,本發(fā)明不限于這里公開的 實施例,而是可以以各種形式來實施。說明書中所定義的內(nèi)容(如詳細的結(jié)
      節(jié),本發(fā)明僅限制在權(quán)利要求的范圍內(nèi)。在本發(fā)明的整個描述中,貫穿附圖, 相同的標(biāo)號用于相同的部件。
      這里將參照示出用于解釋根據(jù)本發(fā)明示例性實施例的存儲器保護方法和
      設(shè)備的框圖和流程圖的附圖來描述本發(fā)明。應(yīng)該理解,可通過計算機程序指 令來實現(xiàn)流程圖中的每個方框和流程圖中多個方框的組合。這些計算機程序 指令可被提供給通用計算機、專用計算機或其他可編程數(shù)據(jù)處理設(shè)備以產(chǎn)生
      于實現(xiàn)流程圖中的 一個方框或多個方框中指定的功能的裝置。
      這些計算機程序指令還可以存儲在可引導(dǎo)計算機或其他可編程數(shù)據(jù)處理 設(shè)備按照特定方式運行的計算機可用或計算機可讀存儲器中,從而存儲在計 算機可用或計算機可讀存儲器中的指令產(chǎn)生包括用于實現(xiàn)流程圖中的一個方 框或多個方框中指定的功能的指令裝置的 一件產(chǎn)品。
      計算機程序指令還可以被載入計算機或其他可編程數(shù)據(jù)處理設(shè)備中,使 得一系列操作步驟在計算機或其他可編程數(shù)據(jù)處理設(shè)備中執(zhí)行,產(chǎn)生計算機 實現(xiàn)的處理,從而在計算機或其他可編程數(shù)據(jù)處理設(shè)備中執(zhí)行的指令提供用 于實現(xiàn)在流程圖中的 一個方框或多個方框中指定的功能的步驟。
      此外,流程圖中的每個方框可表示包括一個或多個用于實現(xiàn)指定的邏輯 功能的可執(zhí)行指令的模塊、代碼段或部分代碼。還應(yīng)該注意,在一些可選擇 的實施方式中,方框中提到的功能可以不按次序出現(xiàn)。例如,才艮據(jù)所涉及的 功能,兩個連續(xù)顯示的方框?qū)嶋H上可以基本上同時執(zhí)行,或者這兩個方框有 時可以按照相反的順序執(zhí)行。
      圖3是示出根據(jù)本發(fā)明示例性實施例的存儲器保護設(shè)備的結(jié)構(gòu)的示圖。
      存儲器管理器330、請求單元370、存儲器訪問控制器360、中斷處理器340 和異常(exception)處理器350。
      例如,可以按照頁為單位將存儲器310的地址空間劃分為特定的單元。頁是一種映射單位,其大小可以為4K或64K。為每個組件分配4姿照頁為單位 劃分的地址空間。
      存儲器管理器330將組件所使用的存儲器區(qū)域的虛擬地址轉(zhuǎn)換為物理地 址。為了實現(xiàn)這種轉(zhuǎn)換,存儲器管理器330參看指示組件所使用的存儲器區(qū) 域的虛擬地址與物理地址之間的對應(yīng)關(guān)系的頁表(未示出)。此外,為了創(chuàng)建 頁表,存儲器管理器330劃分存儲頁的地址空間,為每個組件分配劃分的地
      初始化以使得不能訪問整個存儲器區(qū)域。
      當(dāng)調(diào)用組件以執(zhí)行任務(wù)時,請求單元370請求存儲器訪問控制器360允 許訪問被調(diào)用的組件所使用的存儲器區(qū)域。如果被調(diào)用的組件的執(zhí)行結(jié)束, 那么請求單元370請求存儲器訪問控制器360禁止訪問被調(diào)用的組件所使用 的存儲器區(qū)域。盡管圖3作為示例示出請求單元370與各組件分離,但是請 求單元可4皮實現(xiàn)為各組件的一部分。在這種情況下,通過相應(yīng)的組件來請求 允許/禁止訪問特定組件所使用的存儲器區(qū)域。
      存儲器訪問控制器360控制對請求單元370所請求的存儲器區(qū)域的訪問。 例如,當(dāng)請求單元370請求允許訪問特定組件使用的存儲器區(qū)域時,存儲器 訪問控制器360控制存儲器管理器330允許訪問該相應(yīng)組件使用的存儲器區(qū) 域。如果請求單元370請求禁止訪問特定組件所使用的存儲器區(qū)域,那么存 儲器訪問控制器360控制存儲器管理器330禁止訪問相應(yīng)組件使用的存儲器 區(qū)域。
      此外,存儲器訪問控制器360管理任務(wù)列表400。任務(wù)列表400包括關(guān)
      述存儲器區(qū)域的任務(wù)的信息。這里,任務(wù)信息包括任務(wù)的標(biāo)識符和相應(yīng)任務(wù) 請求允許訪問同一存儲器區(qū)域的次數(shù)(以下稱為"請求訪問允許的次數(shù)")中 的至少一個。如圖4所示,按照組件來劃分任務(wù)列表400。
      參照圖3,如果從請求單元370接收到對允許/禁止訪問特定存儲器區(qū)域 的請求,那么存儲器訪問控制器360參照圖4所示的任務(wù)列表400控制所請 求的對存儲器區(qū)域的訪問。
      例如,如果第一任務(wù)調(diào)用第一組件,那么存儲器訪問控制器360參照任 務(wù)列表400判斷第一任務(wù)是否已經(jīng)有權(quán)訪問第一組件所使用的第一存儲器區(qū) 域。如果判斷結(jié)果是第 一任務(wù)有權(quán)訪問第 一存儲器區(qū)域,那么存儲器訪問控
      制器360增加任務(wù)列表400中第 一任務(wù)請求訪問的次數(shù)。
      相反,如果第一任務(wù)無權(quán)訪問第一存儲器區(qū)域,那么存儲器訪問控制器 360控制存儲器管理器330允許訪問第一存儲器區(qū)域。之后,存儲器訪問控 制器360將關(guān)于第一任務(wù)的信息插入到任務(wù)列表400中。此時,第一任務(wù)請 求訪問允許的次數(shù)被設(shè)置為"1"。
      然而,如果第一組件結(jié)束其工作并接收到禁止訪問第一存儲器區(qū)域的請 求,那么存儲器訪問控制器360判斷對訪問禁止的請求是否正確。為了判斷 訪問禁止是否正確,存儲器訪問控制器360在任務(wù)列表400中搜索第一任務(wù) 的標(biāo)識符。
      具體地講,如果搜索任務(wù)列表400的結(jié)果是在有權(quán)訪問第一存儲器區(qū)域 的任務(wù)中不存在第一任務(wù),那么斷定第一任務(wù)無權(quán)訪問第一存儲器區(qū)域。因 此,存儲器訪問控制器360斷定禁止訪問第一存儲器區(qū)域的請求異常,因而 產(chǎn)生錯誤。
      如果搜索任務(wù)列表400的結(jié)果是在有權(quán)訪問第一存儲器區(qū)域的任務(wù)中存 在第一任務(wù),那么斷定第一任務(wù)已經(jīng)有權(quán)訪問第一存儲器區(qū)域。在這種情況 下,存儲器訪問控制器360減少任務(wù)列表400中第一任務(wù)請求訪問允許的次 數(shù)。如果第一任務(wù)請求訪問的次數(shù)變?yōu)?0",那么存儲器訪問控制器360控 制存儲器管理器330禁止第一任務(wù)訪問第一存儲器區(qū)域,隨后從任務(wù)列表400 中刪除關(guān)于第一任務(wù)的信息。
      因此,當(dāng)在第一任務(wù)被允許訪問第一存儲器區(qū)域的狀態(tài)下通過上下文切 換來執(zhí)行第二任務(wù)時,可參照任務(wù)列表400來確認第二任務(wù)是否有權(quán)訪問第 一存儲器區(qū)域,因而可針對第二任務(wù)來保護第 一存儲器區(qū)域。
      中斷處理器340處理軟件中斷或硬件中斷。
      異常處理器350在異常(如中斷、終止或未定義指令)發(fā)生時處理異常。 例如,當(dāng)不能訪問存儲有需要的指令或數(shù)據(jù)的存儲器區(qū)域時,會發(fā)生終止異常。
      圖5是示出根據(jù)本發(fā)明實施例的存儲器保護設(shè)備300的操作過程的流程圖。
      如果調(diào)用第一組件以執(zhí)行第一任務(wù),那么請求單元370請求存儲器訪問 控制器360允許訪問第一組件使用的存儲器區(qū)域(以下稱為"第一存儲器區(qū)域")(S510)。
      如果訪問允許的請求正確,那么存儲器訪問控制器360允許訪問第一存 儲器區(qū)域(S520)。在S520,存儲器訪問控制器360參看包括關(guān)于有權(quán)訪問 第一存儲器區(qū)域的任務(wù)的信息的任務(wù)列表400,以判斷訪問允許的請求是否 正確。將參照圖6更詳細地描述允許訪問存儲器區(qū)域(S520)。
      在第一任務(wù)獲得訪問第一存儲器區(qū)域的權(quán)限之后第一任務(wù)結(jié)束時(S530 的"是"),請求單元370請求存儲器訪問控制器360禁止訪問第一存儲器區(qū) 域(S570 )。
      如果從請求單元370接收的對禁止訪問第一存儲器區(qū)域的請求正確,那 么存儲器訪問控制器360禁止訪問第一存儲器區(qū)域(S580)。此時,為了判斷 訪問禁止的請求是否正確,存儲器訪問控制器360參看包括關(guān)于有權(quán)訪問第 一存儲器區(qū)域的任務(wù)的信息的任務(wù)列表400。將參照圖7更詳細地描述禁止 訪問存儲器區(qū)域(S580 )。
      相反,如果在第一任務(wù)有權(quán)訪問第一存儲器區(qū)域的狀態(tài)下(即,在允許 第一任務(wù)訪問第一存儲器區(qū)域的狀態(tài)下;S540的"是"),由于發(fā)生上下文切 換而執(zhí)行新任務(wù)(以下稱為"第二任務(wù)"),那么存儲器訪問控制器360參照 預(yù)先存儲的任務(wù)列表400控制第二任務(wù)對第一存儲器區(qū)域的訪問(S560 )。
      圖6是詳細示出圖5中允許訪問存儲器區(qū)域(S520)的步驟的流程圖。
      首先,存儲器訪問控制器360獲得第一任務(wù)的標(biāo)識符(S521 )。
      隨后,存儲器訪問控制器360在任務(wù)列表400中搜索第一任務(wù)的標(biāo)識符, 并判斷第一任務(wù)是否已經(jīng)獲得訪問第一存儲器區(qū)域的權(quán)限(S522 )。
      具體地講,如果搜索任務(wù)列表400的結(jié)果是在已經(jīng)獲得訪問第一存儲器 區(qū)域的權(quán)限的任務(wù)中存在第一任務(wù)的標(biāo)識符,那么存儲器訪問控制器360斷 定第一任務(wù)已經(jīng)獲得了訪問第一存儲器區(qū)域的權(quán)限(S522的"是,,)。換言之, 存儲器訪問控制器360斷定第一任務(wù)對第一存儲器區(qū)域的訪問已經(jīng)被允許。 在這種情況下,存儲器訪問控制器360將任務(wù)列表400中第一任務(wù)請求訪問 允許的次數(shù)加T (S523 )。
      如果搜索任務(wù)列表400的結(jié)果是在已經(jīng)獲得訪問第一存儲器區(qū)域的權(quán)限 的任務(wù)中不存在第一任務(wù)的標(biāo)識符,那么存儲器訪問控制器360斷定第一任 務(wù)還沒有獲得訪問第一存儲器區(qū)域的權(quán)限(S522的"否")。換言之,存儲器 訪問控制器360斷定第一任務(wù)對第一存儲器區(qū)域的訪問還沒有被允許。在這種情況下,存儲器訪問控制器360控制存儲器管理器330向第一任務(wù)授予訪 問第一存儲器區(qū)域的權(quán)限(S524)。
      如果第 一任務(wù)獲得訪問第 一存儲器區(qū)域的權(quán)限,那么存儲器訪問控制器 360將關(guān)于第一任務(wù)的信息(即,第一任務(wù)的標(biāo)識符和第一任務(wù)請求訪問允 許的次數(shù))插入到任務(wù)列表中(S525 )。結(jié)果,第一任務(wù)請求訪問允許的次數(shù) 被設(shè)置為T。
      圖7是詳細示出圖5中禁止訪問存儲器區(qū)域(S580)的流程圖。
      當(dāng)接收到對禁止訪問第一存儲器區(qū)域的請求時,存儲器訪問控制器360 首先獲得第一任務(wù)的標(biāo)識符(S581 )。
      隨后,存儲器訪問控制器360通過在任務(wù)列表400中搜索第一任務(wù)的標(biāo) 識符來判斷第 一任務(wù)是否獲得了訪問第 一存儲器區(qū)域的權(quán)限(S582 )。
      具體地講,如果搜索任務(wù)列表400的結(jié)果是在有權(quán)訪問第一存儲器區(qū)域 的任務(wù)中不存在第一任務(wù)的標(biāo)識符,那么存儲器訪問控制器360斷定第一任 務(wù)還沒有獲得訪問第一存儲器區(qū)域的權(quán)限(S582的"否,,)。在這種情況下, 存儲器訪問控制器360斷定訪問禁止的請求不正確,并產(chǎn)生錯誤(S583 )。
      如果搜索任務(wù)列表400的結(jié)果是在有權(quán)訪問第一存儲器區(qū)域的任務(wù)中存 在第一任務(wù)的標(biāo)識符,那么存儲器訪問控制器360斷定第一任務(wù)已經(jīng)獲得訪 問第一存儲器區(qū)域的權(quán)限(S582的"是,,)。在這種情況下,存儲器訪問控制 器360斷定訪問禁止的請求正確,并將任務(wù)列表400中第一任務(wù)請求訪問允 許的次數(shù)減"1" (S584)。
      如果減少之后的第一任務(wù)請求訪問允許的次數(shù)等于"0" (S585的"是"), 那么存儲器訪問控制器360控制存儲器管理器330禁止第一任務(wù)訪問第一存 儲器區(qū)域(S586)。
      隨后,存儲器訪問控制器360從任務(wù)列表400中刪除關(guān)于第一任務(wù)的信 息,即,刪除第一任務(wù)的標(biāo)識符(S587)。
      圖8是示出根據(jù)本發(fā)明另一示例性實施例的存儲器保護設(shè)備800的結(jié)構(gòu) 的示圖。如圖8所示,根據(jù)本發(fā)明另一實施例的存儲器保護設(shè)備800包括存 儲器310、存儲器管理器330、請求單元370、存儲器訪問控制器360、中斷 處理器840和異常處理器850。
      由于圖8所示的存儲器310、存儲器管理器330、請求單元370和存儲器 訪問控制器360與上述根據(jù)本發(fā)明第一示例性實施例的存儲器310、存儲器管理器330、請求單元370和存儲器訪問控制器360相同,因此略掉了重復(fù) 的解釋,下面的解釋將集中于中斷處理器840和異常處理器850。
      如果異常(如中斷、終止或未定義指令)發(fā)生,那么中斷處理器840在 處理異常之前禁止訪問所有組件使用的存儲器區(qū)域。
      特定存儲器區(qū)域,那么會針對特定任務(wù)想要訪問的存儲器區(qū)域產(chǎn)生頁錯誤。 如果產(chǎn)生了頁錯誤,那么異常處理器850判斷所述任務(wù)對存儲器區(qū)域的訪問 是否正確,隨后處理該頁錯誤。
      作為示例示出第 一任務(wù)嘗試訪問第 一組件使用的第 一存儲器區(qū)域來進行 詳細的解釋。
      第一存儲器區(qū)域,那么針對第一存儲器區(qū)域產(chǎn)生頁錯誤。
      當(dāng)產(chǎn)生了頁錯誤時,異常處理器850參照頁表確認使用產(chǎn)生了頁錯誤的
      地址所屬的存儲器區(qū)域的組件。
      隨后,異常處理器850獲得當(dāng)前執(zhí)行的任務(wù)(即,第一任務(wù))的標(biāo)識符。 隨后,異常處理器850判斷第一任務(wù)對存儲器的訪問是否正確。為了實
      現(xiàn)該判斷功能,異常處理器850在任務(wù)列表400 (見圖4)中搜索第一任務(wù)的
      標(biāo)識符。
      具體地講,如果搜索任務(wù)列表的結(jié)果是在有一又訪問第一存儲器區(qū)域的任 務(wù)中不存在第一任務(wù),那么斷定第一任務(wù)對存儲器的訪問不正確。在這種情 況下,存儲器訪問控制器360產(chǎn)生錯誤以報告第一任務(wù)對存儲器的訪問不正確。
      如果搜索任務(wù)列表的結(jié)果是在有權(quán)訪問第 一存儲器區(qū)域的任務(wù)中存在第 一任務(wù),那么斷定第一任務(wù)對存儲器的訪問正確。在這種情況下,存儲器訪 問控制器360控制存儲器管理器330允許第一任務(wù)訪問第一存儲器區(qū)域。
      圖9是示出根據(jù)本發(fā)明另一示例性實施例的存儲器保護設(shè)備800的操作 過程的流程圖。
      如果調(diào)用第一組件來執(zhí)行第一任務(wù),那么請求單元870請求存儲器訪問 控制器860允許訪問第一組件使用的存儲器區(qū)域(以下稱為"第一存儲器區(qū) 域,,)(S900 )。
      如果訪問允許的請求正確,那么存儲器訪問控制器360允許訪問第一存儲器區(qū)域(S910)。在該步驟中,存儲器訪問控制器360參看包括關(guān)于有權(quán)訪 問第 一存儲器區(qū)域的任務(wù)的信息的任務(wù)列表來判斷訪問允許的請求是否正 確。上面已經(jīng)參照圖6描述了允許訪問存儲器區(qū)域(S910),因此略掉其解釋。
      在第一任務(wù)獲得訪問第一存儲器區(qū)域的權(quán)限之后第一任務(wù)結(jié)束時,請求 單元370請求存儲器訪問控制器360禁止訪問第一存儲器區(qū)域(S980 )。
      如果從請求單元接收的對禁止訪問第一存儲器區(qū)域的請求正確,那么存 儲器訪問控制器360禁止訪問第 一存儲器區(qū)域(S990 )。為了判斷訪問禁止的 請求是否正確,存儲器訪問控制器860參看包括關(guān)于有權(quán)訪問第一存儲器區(qū) 域的任務(wù)的信息的任務(wù)列表。上面已經(jīng)參照圖7描述了禁止訪問存儲器區(qū)域 (S990),因此略掉其解釋。
      相反,如果在第一任務(wù)有權(quán)訪問第一存儲器區(qū)域的狀態(tài)下(即,在第一 任務(wù)對第一存儲器區(qū)域的訪問被允許的狀態(tài)下;S930的"是")由于中斷、 終止或未定義指令而發(fā)生異常,那么中斷處理器840禁止訪問所有組件使用 的存儲器區(qū)域(S940)。
      隨后,如果在禁止訪問所有組件使用的存儲器區(qū)域的狀態(tài)下(S950的 "是,,)由于發(fā)生上下文切換而執(zhí)行新任務(wù)(以下稱為"第二任務(wù),,),那么存 儲器訪問控制器360參照預(yù)先存儲的任務(wù)列表控制第二任務(wù)對第一存儲器區(qū) 域的訪問(S970)。
      具體地講,如果搜索有權(quán)訪問第一存儲器區(qū)域的任務(wù)的結(jié)果是在任務(wù)列 表中存在第二任務(wù),那么存儲器訪問控制器360增加任務(wù)列表中第二任務(wù)請 求訪問允許的次H
      如果搜索有權(quán)訪問第 一存儲器區(qū)域的任務(wù)的結(jié)果是在任務(wù)列表中不存在 第二任務(wù),那么存儲器訪問控制器360控制存儲器管理器330允許第二任務(wù) 訪問第一存儲器區(qū)域。隨后,存儲器訪問控制器將關(guān)于第二任務(wù)的信息插入 到任務(wù)列表中。此時,第二任務(wù)請求訪問允許的次數(shù)可被設(shè)置為'T,。
      相反,如果沒有發(fā)生上下文切換(S950的"否"),那么繼續(xù)執(zhí)行第一任
      試訪問第 一存儲器區(qū)域,那么在第 一存儲器區(qū)域中產(chǎn)生頁錯誤。
      當(dāng)產(chǎn)生了頁錯誤時,異常處理器850判斷第一任務(wù)對存儲器的訪問是否 正確,隨后根據(jù)判斷結(jié)果處理頁錯誤(S960)。將參照圖IO更詳細地描述頁 錯誤處理(S960 )。首先,異常處理器850參照頁表確認使用產(chǎn)生頁錯誤的地址所屬的存儲 器區(qū)域的組件(S961 )。
      隨后,異常處理器850獲得當(dāng)前執(zhí)行的第一任務(wù)的標(biāo)識符(S962),并判 斷第一任務(wù)對存儲器的訪問是否正確。為此,異常處理器850在任務(wù)列表中 搜索第一任務(wù)的標(biāo)識符。
      具體地講,如果搜索任務(wù)列表的結(jié)果是在有權(quán)訪問第 一存儲器區(qū)域的任 務(wù)中不存在第一任務(wù),那么異常處理器850斷定第一任務(wù)對存儲器的訪問不 正確(S963的"否")。在這種情況下,存儲器訪問控制器360產(chǎn)生錯誤以報 告第一任務(wù)對存儲器的訪問不正確(S965 )。
      如果搜索任務(wù)列表的結(jié)果是在有權(quán)訪問第 一存儲器區(qū)域的任務(wù)中存在第 一任務(wù),那么異常處理器850斷定第一任務(wù)對存儲器的訪問正確(S963的 "是")。在這種情況下,存儲器訪問控制器360控制存儲器管理器330將訪 問第一存儲器區(qū)域的權(quán)限授予第一任務(wù)(S964)。
      如上所述,根據(jù)本發(fā)明示例性實施例的存儲器保護方法和設(shè)備可產(chǎn)生下 面的效果。
      可針對其他組件或外部代碼來保護在實時操作系統(tǒng)中組件使用的存儲器。
      可以容易地發(fā)現(xiàn)和糾正由于錯誤的存儲器訪問而導(dǎo)致的系統(tǒng)故障,因此 能夠縮短系統(tǒng)的開發(fā)時間,同時提高系統(tǒng)的穩(wěn)定性。
      盡管為了示例性目的描述了根據(jù)本發(fā)明示例性實施例的存儲器保護方法 和設(shè)備,但是本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情 況下,可以進行各種修改、添加和替換。上述實施例只是示例性的,不應(yīng)該 被解釋為限制本發(fā)明。因此,本發(fā)明的范圍應(yīng)該由權(quán)利要求及其等同物限定。
      權(quán)利要求
      1、一種存儲器保護方法,包括如果在實時操作系統(tǒng)中第一組件被調(diào)用以執(zhí)行第一任務(wù),那么請求訪問第一組件使用的第一存儲器區(qū)域;參照包括關(guān)于被允許訪問第一存儲器區(qū)域的任務(wù)的信息的任務(wù)列表,允許第一任務(wù)訪問第一存儲器區(qū)域。
      2、 如權(quán)利要求1所述的存儲器保護方法,還包括創(chuàng)建頁表,該頁表指 示第 一存儲器區(qū)域的虛擬地址與物理地址的對應(yīng)關(guān)系。
      3、 如權(quán)利要求2所述的存儲器保護方法,其中,創(chuàng)建頁表的步驟還包括 按照特定單位將存儲器地址空間分組;將分組的地址空間分配給組件; 存儲所分配的地址空間與組件的對應(yīng)關(guān)系。
      4、 如權(quán)利要求3所述的存儲器保護方法,其中,所述特定單位是由一個 地址空間或多個連續(xù)的地址空間構(gòu)成的頁。
      5、 如權(quán)利要求3所述的存儲器保護方法,還包括初始化頁表以禁止訪 問分組的地址空間。
      6、 如權(quán)利要求1所述的存儲器保護方法,還包括將關(guān)于允許其訪問的 第一任務(wù)的信息存儲在任務(wù)列表中,其中,所述信息包括第一任務(wù)的標(biāo)識符和第一任務(wù)請求允許訪問第一存 儲器區(qū)域的次數(shù)中的至少 一個。
      7、 如權(quán)利要求6所述的存儲器保護方法,其中,將關(guān)于第一任務(wù)的信息 存儲在任務(wù)列表中的步驟包括如果第 一任務(wù)對第 一存儲器區(qū)域的訪問不被 允許,那么將關(guān)于第 一任務(wù)的信息添加到任務(wù)列表。
      8、 如權(quán)利要求6所述的存儲器保護方法,其中,存儲關(guān)于第一任務(wù)的信 息的步驟包括如果第一任務(wù)對第一存儲器區(qū)域的訪問已經(jīng)被允許,那么增 加第 一任務(wù)請求訪問允許的次數(shù)。
      9、 如權(quán)利要求6所述的存儲器保護方法,還包括 如果允許其訪問的第 一任務(wù)結(jié)束,那么請求禁止訪問第一存儲器區(qū)域; 禁止訪問第一存儲器區(qū)域。
      10、 如權(quán)利要求9所述的存儲器保護方法,其中,禁止訪問第一存儲器區(qū)域的步驟包括減少第 一任務(wù)請求訪問允許的次數(shù);如果減少之后的第一任務(wù)請求訪問允許的次數(shù)為"0",那么從任務(wù)列表 中刪除關(guān)于第 一任務(wù)的信息。
      11、 如權(quán)利要求1所述的存儲器保護方法,還包括如果在第 一任務(wù)已經(jīng)調(diào)用第 一組件的狀態(tài)下第二任務(wù)調(diào)用第 一組件,那 么在任務(wù)列表中搜索關(guān)于第二任務(wù)的信息;如果在任務(wù)列表中存在關(guān)于第二任務(wù)的信息,那么允許第二任務(wù)訪問第 一存儲器區(qū)域。
      12、 如權(quán)利要求11所述的存儲器保護方法,還包括如果任務(wù)列表中不 存在關(guān)于第二任務(wù)的信息,那么產(chǎn)生錯誤。
      13、 如權(quán)利要求1所述的存儲器保護方法,還包括如果在第一任務(wù)已 經(jīng)調(diào)用第 一組件的狀態(tài)下產(chǎn)生了中斷,那么禁止訪問全部存4諸器區(qū)域。
      14、 如權(quán)利要求13所述的存儲器保護方法,還包括如果在中斷產(chǎn)生之后第一任務(wù)訪問第一存儲器區(qū)域,那么產(chǎn)生頁錯誤; 在任務(wù)列表中搜索關(guān)于第 一任務(wù)的信息;如果任務(wù)列表中存在關(guān)于第 一任務(wù)的信息,那么允許第 一任務(wù)訪問第一 存儲器區(qū)域。
      15、 如權(quán)利要求14所述的存儲器保護方法,還包括如果任務(wù)列表中不 存在關(guān)于第一任務(wù)的信息,那么產(chǎn)生錯誤。
      16、 一種存儲器保護設(shè)備,包括請求單元,在實時操作系統(tǒng)中第一組件被調(diào)用以執(zhí)行第一任務(wù)時,請求 訪問第 一組件-使用的第 一存儲器區(qū)域;存儲器訪問控制器,參照包括關(guān)于被允許訪問第一存儲器區(qū)域的任務(wù)的 信息的任務(wù)列表,允許第 一任務(wù)訪問第 一存儲器區(qū)域。
      17、 如權(quán)利要求16所述的存儲器保護設(shè)備,還包括存儲器管理器,創(chuàng) 建頁表,該頁表指示第 一存儲器區(qū)域的虛擬地址與物理地址的對應(yīng)關(guān)系。
      18、 如權(quán)利要求17所述的存儲器保護設(shè)備,其中,存儲器管理器按照特 定單位將存儲器地址空間分組,將分組的地址空間分配給組件,并存儲所分配的地址空間與組件的乂十應(yīng)關(guān)系。
      19、 如權(quán)利要求18所述的存儲器保護設(shè)備,其中,所述單位是由一個地址空間或多個連續(xù)的地址空間構(gòu)成的頁。
      20、 如權(quán)利要求18所述的存儲器保護設(shè)備,其中,存儲器管理器初始化 頁表以禁止訪問分組的地址空間。
      21、 如權(quán)利要求16所述的存儲器保護設(shè)備,其中,存儲器管理器將關(guān)于允許其訪問的第一任務(wù)的信息存儲在任務(wù)列表中,所述信息包括第一任務(wù)的 標(biāo)識符和第 一任務(wù)請求允許訪問第 一存儲器區(qū)域的次數(shù)中的至少 一個。
      22、 如權(quán)利要求21所述的存儲器保護設(shè)備,其中,如果第一任務(wù)對第一 存儲器區(qū)域的訪問不被允許,那么存儲器訪問控制器將關(guān)于第 一任務(wù)的信息 添加到任務(wù)列表。
      23、 如權(quán)利要求21所述的存儲器保護設(shè)備,其中,如果第一任務(wù)對第一 存儲器區(qū)域的訪問已經(jīng)被允許,那么存儲器訪問控制器增加第一任務(wù)請求訪 問允許的次數(shù)。
      24、 如權(quán)利要求21所述的存儲器保護設(shè)備,其中,如果允許其訪問的第 一任務(wù)結(jié)束,并且隨后請求禁止訪問第一存儲器區(qū)域,那么存儲器訪問控制 器禁止訪問第 一存儲器區(qū)域。
      25、 如權(quán)利要求24所述的存儲器保護設(shè)備,其中,存儲器訪問控制器減 少第一任務(wù)請求訪問允許的次數(shù),如果減少之后的第一任務(wù)請求訪問允許的 次數(shù)為"0",那么存儲器訪問控制器從任務(wù)列表中刪除關(guān)于第一任務(wù)的信息。
      26、 如權(quán)利要求16所述的存儲器保護設(shè)備,其中,如果在第一任務(wù)已經(jīng) 調(diào)用第 一組件的狀態(tài)下第二任務(wù)調(diào)用第 一組件,那么存儲器訪問控制器在任 務(wù)列表中搜索關(guān)于第二任務(wù)的信息,如果在任務(wù)列表中存在關(guān)于第二任務(wù)的 信息,那么存儲器訪問控制器允許第二任務(wù)訪問第 一存儲器區(qū)域。
      27、 如權(quán)利要求26所述的存儲器保護設(shè)備,其中,如果任務(wù)列表中不存 在關(guān)于第二任務(wù)的信息,那么存儲器訪問控制器產(chǎn)生錯誤。
      28、 如權(quán)利要求16所述的存儲器保護設(shè)備,還包括中斷處理器,如果 在第 一任務(wù)調(diào)用第 一組件的狀態(tài)下產(chǎn)生了中斷,那么禁止訪問全部存儲器區(qū) 域。
      29、 如權(quán)利要求28所述的存儲器保護設(shè)備,還包括異常處理器,如果 在中斷產(chǎn)生之后第 一任務(wù)訪問第 一存儲器區(qū)域從而產(chǎn)生頁錯誤,那么在任務(wù) 列表中搜索關(guān)于第一任務(wù)的信息,如果搜索結(jié)果是任務(wù)列表中存在關(guān)于第一 任務(wù)的信息,那么允許第一任務(wù)訪問第 一存儲器區(qū)域。
      30、如權(quán)利要求29所述的存儲器保護設(shè)備,其中,如果任務(wù)列表中不存 在關(guān)于第一任務(wù)的信息,那么異常處理器產(chǎn)生錯誤。
      全文摘要
      本發(fā)明提供了一種在實時操作系統(tǒng)環(huán)境(RTOS)中能夠保護組件使用的存儲器的存儲器保護方法和設(shè)備。所述存儲器保護方法包括在實時操作系統(tǒng)中第一組件被調(diào)用以執(zhí)行第一任務(wù)時,請求訪問第一組件使用的第一存儲器區(qū)域;參照包括關(guān)于被允許訪問第一存儲器區(qū)域的任務(wù)的信息的任務(wù)列表,允許第一任務(wù)訪問第一存儲器區(qū)域。
      文檔編號G06F9/50GK101315608SQ20081010840
      公開日2008年12月3日 申請日期2008年5月27日 優(yōu)先權(quán)日2007年5月28日
      發(fā)明者尹松虎, 金曉俊 申請人:三星電子株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1