經(jīng)由沙盒執(zhí)行的推測性的資源預提取的制作方法
【專利說明】
[0001] 相關專利申請的交叉引用
[0002] 本申請要求享有以下專利申請的優(yōu)先權的利益:2012年8月17日遞交的、名稱 為"Speculative Resource Prefetching via Sandboxed Execution" 的美國臨時專利 申請序列No.61/684, 601以及2012年8月16日遞交的、名稱為"Speculative Resource Prefetching via Sandboxed Execution" 的美國臨時專利申請序列 No. 61/683, 996,故以 引用方式將二者的全部內(nèi)容并入本文。
技術領域
[0003] 本發(fā)明涉及用于在網(wǎng)絡瀏覽器中渲染HTML文檔的方法、系統(tǒng)和設備,更具體地 說,本發(fā)明涉及將網(wǎng)絡瀏覽器操作并行化的方法。
【背景技術】
[0004] 在過去幾年中,無線通信技術和移動電子設備(例如,蜂窩電話、平板設備、膝上 型計算機等)已日益普及,并且越來越多的被使用。為了與增長的消費者需求保持同步,移 動電子設備已經(jīng)變得功能更加豐富,并且現(xiàn)在通常包括多個處理器、片上系統(tǒng)(SoC)、以及 允許移動設備用戶在他們的移動設備上執(zhí)行復雜且耗電的軟件應用(例如,網(wǎng)絡瀏覽器、 視頻流應用等)的其它資源。由于這些改進和其它改進,智能電話和平板計算機已日益普 及,并且作為很多用戶選擇的平臺,正在取代膝上型計算機和臺式機器。
[0005] 現(xiàn)在移動設備用戶能夠通過經(jīng)由他們移動設備上的瀏覽器應用來訪問互聯(lián)網(wǎng),從 而輕松且方便地完成他們?nèi)粘H蝿罩械暮芏嗳蝿?。隨著移動設備持續(xù)日益普及,能夠更好 地使用現(xiàn)代移動設備的多處理能力的網(wǎng)絡瀏覽器將是消費者所期望的。
【發(fā)明內(nèi)容】
[0006] 各個方面包括預提取資源的方法,其包括:由在計算設備的處理器中運行的第一 進程對HTML文檔進行掃描,以發(fā)現(xiàn)腳本;由第二進程推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn) 在所述腳本或所述HTML文檔中沒有明確引用的資源;通過發(fā)出下載所發(fā)現(xiàn)的資源的請求, 來推測性地預提取資源;以及丟棄通過推測性地執(zhí)行所發(fā)現(xiàn)的腳本而生成的結果。
[0007] 在一方面,推測性地執(zhí)行所發(fā)現(xiàn)的腳本以發(fā)現(xiàn)在所述腳本或所述HTML文檔中沒 有明確引用的資源可以包括:推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn)在所述計算設備的電子 顯示器上渲染所述HTML文檔所需要的資源。在另外的方面,推測性地執(zhí)行所發(fā)現(xiàn)的腳本可 以包括:與瀏覽器操作的執(zhí)行并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本。在另外的方面,推測性 地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行并發(fā)地來 執(zhí)行所發(fā)現(xiàn)的腳本。
[0008] 在另外的方面,推測性地預提取資源可以包括:與執(zhí)行其它腳本并行地并且與瀏 覽器操作的執(zhí)行并發(fā)地來預提取資源。在另外的方面,推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包 括:執(zhí)行所發(fā)現(xiàn)的腳本中的被確定為最有可能與發(fā)現(xiàn)外部資源相關的選擇部分。在另外的 方面,推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:僅執(zhí)行所發(fā)現(xiàn)的腳本中的與被識別為與發(fā)現(xiàn) 外部資源相關的模式相對應的部分。
[0009] 在另外的方面,并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:基于啟發(fā)法來執(zhí) 行所發(fā)現(xiàn)的腳本。在另外的方面,所述方法可以包括:限制由對所發(fā)現(xiàn)的腳本的推測性執(zhí)行 而生成的數(shù)據(jù)結構的大小。在另外的方面,由第一進程對HTML文檔進行掃描以發(fā)現(xiàn)腳本可 以包括由HTML掃描器對所述HTML文檔進行掃描,以及由第二進程推測性地執(zhí)行所發(fā)現(xiàn)的 腳本可以包括由沙盒腳本執(zhí)行引擎推測性地執(zhí)行所發(fā)現(xiàn)的腳本。
[0010] 另外的方面包括計算設備,所述計算設備可以包括:用于由第一進程對HTML文檔 進行掃描以發(fā)現(xiàn)腳本的單元;用于由第二進程推測性地執(zhí)行所發(fā)現(xiàn)的腳本以發(fā)現(xiàn)在所述腳 本或所述HTML文檔中沒有明確引用的資源的單元;用于通過發(fā)出下載所發(fā)現(xiàn)的資源的請 求來推測性地預提取資源的單元;以及用于丟棄通過推測性地執(zhí)行所發(fā)現(xiàn)的腳本而生成的 結果的單元。在一方面,用于推測性地執(zhí)行所發(fā)現(xiàn)的腳本以發(fā)現(xiàn)在所述腳本或所述HTML文 檔中沒有明確引用的資源的單元可以包括:用于推測性地執(zhí)行所發(fā)現(xiàn)的腳本以發(fā)現(xiàn)在所述 計算設備的電子顯示器上渲染所述HTML文檔所需要的資源的單元。
[0011] 在另外的方面,用于推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元可以包括:用于與瀏覽器 操作的執(zhí)行并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元。在另外的方面,用于推測性地執(zhí) 行所發(fā)現(xiàn)的腳本的單元可以包括:用于與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行并 發(fā)地來執(zhí)行所發(fā)現(xiàn)的腳本的單元。在另外的方面,用于推測性地預提取資源的單元可以包 括:用于與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行并發(fā)地來預提取資源的單元。在 另外的方面,用于推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元可以包括:用于執(zhí)行所發(fā)現(xiàn)的腳本中 的被確定為最有可能與發(fā)現(xiàn)外部資源相關的選擇部分的單元。
[0012] 在另外的方面,用于推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元可以包括:用于僅執(zhí)行所 發(fā)現(xiàn)的腳本中的與被識別為與發(fā)現(xiàn)外部資源相關的模式相對應的部分的單元。在另外的方 面,用于并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元可以包括:用于基于啟發(fā)法來執(zhí)行所 發(fā)現(xiàn)的腳本的單元。在另外的方面,計算設備可以包括:用于限制由對所發(fā)現(xiàn)的腳本的推測 性執(zhí)行而生成的數(shù)據(jù)結構的大小的單元。在另外的方面,用于由第一進程對HTML文檔進行 掃描以發(fā)現(xiàn)腳本的單元可以包括用于由HTML掃描器對所述HTML文檔進行掃描的單元,以 及用于由第二進程推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元可以包括用于由沙盒腳本執(zhí)行引擎 推測性地執(zhí)行所發(fā)現(xiàn)的腳本的單元。
[0013] 另外的方面包括計算設備,所述計算設備包括處理器,所述處理器配置有處理器 可執(zhí)行指令以執(zhí)行包括以下操作的操作:由第一進程對HTML文檔進行掃描以發(fā)現(xiàn)腳本;由 第二進程推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn)在所述腳本或所述HTML文檔中沒有明確引 用的資源;通過發(fā)出下載所發(fā)現(xiàn)的資源的請求,來推測性地預提取資源;以及丟棄通過推 測性地執(zhí)行所發(fā)現(xiàn)的腳本而生成的結果。在一方面,所述處理器可以配置有處理器可執(zhí)行 指令以執(zhí)行操作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本以發(fā)現(xiàn)在所述腳本或所述HTML文檔中 沒有明確引用的資源可以包括:推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn)在所述計算設備的電 子顯示器上渲染所述HTML文檔所需要的資源。
[0014] 在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作,使得推測 性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:與瀏覽器操作的執(zhí)行并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳 本。在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作,使得推測性地執(zhí) 行所發(fā)現(xiàn)的腳本可以包括:與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行并發(fā)地來執(zhí)行 所發(fā)現(xiàn)的腳本。在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作,使得 推測性地預提取資源可以包括:與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行并發(fā)地來 預提取資源。
[0015] 在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作,使得推測 性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:執(zhí)行所發(fā)現(xiàn)的腳本中的被確定為最有可能與發(fā)現(xiàn)外部資 源相關的選擇部分。在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作, 使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:僅執(zhí)行所發(fā)現(xiàn)的腳本中的與被識別為與發(fā)現(xiàn)外 部資源相關的模式相對應的部分。在另外的方面,所述處理器可以配置有處理器可執(zhí)行指 令以執(zhí)行操作,使得并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:基于啟發(fā)法來執(zhí)行所 發(fā)現(xiàn)的腳本。
[0016] 在另外的方面,所述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行還包括以下操作 的操作:限制由對所發(fā)現(xiàn)的腳本的推測性執(zhí)行而生成的數(shù)據(jù)結構的大小。在另外的方面,所 述處理器可以配置有處理器可執(zhí)行指令以執(zhí)行操作,使得:由第一進程對HTML文檔進行掃 描以發(fā)現(xiàn)腳本可以包括由HTML掃描器對所述HTML文檔進行掃描;以及由第二進程推測性 地執(zhí)行所發(fā)現(xiàn)的腳本可以包括由沙盒腳本執(zhí)行引擎推測性地執(zhí)行所發(fā)現(xiàn)的腳本。
[0017] 另外的方面包括其上存儲有處理器可執(zhí)行軟件指令的非暫時性計算機可讀存儲 介質(zhì),所述處理器可執(zhí)行軟件指令被配置為使處理器執(zhí)行用于預提取資源的操作,所述操 作包括:由第一進程對HTML文檔進行掃描,以發(fā)現(xiàn)腳本;由第二進程推測性地執(zhí)行所發(fā)現(xiàn) 的腳本,以發(fā)現(xiàn)在所述腳本或所述HTML文檔中沒有明確引用的資源;通過發(fā)出下載所發(fā)現(xiàn) 的資源的請求,來推測性地預提取資源;以及丟棄通過推測性地執(zhí)行所發(fā)現(xiàn)的腳本而生成 的結果。
[0018] 在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí)行操 作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn)在所述腳本或所述HTML文檔中沒有明確引用 的資源可以包括:推測性地執(zhí)行所發(fā)現(xiàn)的腳本,以發(fā)現(xiàn)在電子顯示器上渲染所述HTML文檔 所需要的資源。在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí) 行操作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:與瀏覽器操作的執(zhí)行并行地來推測性 地執(zhí)行所發(fā)現(xiàn)的腳本。在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處 理器執(zhí)行操作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:與執(zhí)行其它腳本并行地并且與 瀏覽器操作的執(zhí)行并發(fā)地來執(zhí)行所發(fā)現(xiàn)的腳本。
[0019] 在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí)行操 作,使得推測性地預提取資源可以包括:與執(zhí)行其它腳本并行地并且與瀏覽器操作的執(zhí)行 并發(fā)地來預提取資源。在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處 理器執(zhí)行操作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:執(zhí)行所發(fā)現(xiàn)的腳本中的被確定 為最有可能與發(fā)現(xiàn)外部資源相關的選擇部分。在另外的方面,所存儲的處理器可執(zhí)行軟件 指令可以被配置為使處理器執(zhí)行操作,使得推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:僅執(zhí)行 所發(fā)現(xiàn)的腳本中的與被識別為與發(fā)現(xiàn)外部資源相關的模式相對應的部分。
[0020] 在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí)行操 作,使得并行地來推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括:基于啟發(fā)法來執(zhí)行所發(fā)現(xiàn)的腳本。 在另外的方面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí)行還包括以下操 作的操作:限制由對所發(fā)現(xiàn)的腳本的推測性執(zhí)行而生成的數(shù)據(jù)結構的大小。在另外的方 面,所存儲的處理器可執(zhí)行軟件指令可以被配置為使處理器執(zhí)行操作,使得:由第一進程對 HTML文檔進行掃描以發(fā)現(xiàn)腳本可以包括由HTML掃描器對所述HTML文檔進行掃描;以及由 第二進程推測性地執(zhí)行所發(fā)現(xiàn)的腳本可以包括由沙盒腳本執(zhí)行引擎推測性地執(zhí)行所發(fā)現(xiàn) 的腳本。
【附圖說明】
[0021] 并入本文且構成該說明書的部分的附圖示出了本發(fā)明的示例性方面。附圖以及上 面給出的一般描述和下面給出的詳細描述一起用于解釋本發(fā)明的特征,而非限制所公開的 方面。
[0022] 圖1是示出了可以在實現(xiàn)各個方面的計算設備中使用的示例性片上系統(tǒng)(SOC)架 構的部件框圖。
[0023] 圖2是示出了可以用于實現(xiàn)各個方面的示例性多核處理器架構的功能框圖。
[0024] 圖3A是示出了用于渲染HTML文檔的一方面的瀏覽器方法的過程流圖。
[0025] 圖3B是示出了一方面的瀏覽器系統(tǒng)中的示例邏輯部件、信息流、操作和轉(zhuǎn)換的功 能和過程流圖。
[0026] 圖4是示出了一方面的瀏覽器系統(tǒng)中的示例邏輯部件、功能部件、信息流和子系 統(tǒng)的功能框圖。
[0027] 圖5是根據(jù)一方面示出了實現(xiàn)并行的瀏覽器基礎結構的一方面的瀏覽器系統(tǒng)的 功能框圖。
[0028] 圖6是示出了在頁面加載/渲染操作之前處理HTML文檔以發(fā)現(xiàn)和預提取資源的 一方面的瀏覽器方法的過程流圖。
[0029] 圖7A是示出了使用推測技術和啟發(fā)法來預測對文檔資源的使用的一方面的瀏覽 器方法的過程流圖。
[0030] 圖7B是示出了并行地來推測性地預提取資源的一方面的瀏覽器方法的過程流 圖。
[0031] 圖7C是示出了并行地預處理腳本的一方面的瀏覽器方法的過程流圖。
[0032] 圖8是示出了處理預提取的資源的一方面的瀏覽器方法的過程流圖。
[0033] 圖9是示出了適合于與各個方面一起使用的CSS引擎中的示例性功能部件的功能 框圖。
[0034] 圖10是示出了用于并行地在多個節(jié)點上執(zhí)行規(guī)則匹配和級聯(lián)操作的一方面的樣 式化方法的過程流圖。
[0035] 圖IlA是適合于在各個方面中使用的示例文檔對象模型(DOM)樹的示圖。
[0036] 圖IlB是與圖IlA中所示的DOM樹相對應的任務有向無環(huán)圖(DAG)的示圖。
[0037] 圖12是適合于與各個方面一起使用的示例性移動設備的部件框圖。
[0038] 圖13是適合于與各個方面一起使用的示例性服務器的部件框圖。
[0039] 圖14是適合于實現(xiàn)各個方面的膝上型計算機的部件框圖。
【具體實施方式】
[0040] 將參照附圖詳細描述各個方面。在可能的情況下,將貫穿全部附圖使用相同的附 圖標記來指代相同或相似的部分。對特定例子和實施例的引用是出于說明的目的,而非旨 在限制本發(fā)明或權利要求的范圍。
[0041] 網(wǎng)絡瀏覽器是實現(xiàn)多種標準的復雜的軟件應用,需要支持傳統(tǒng)行為,并且是高度 動態(tài)且交互式的。通常網(wǎng)絡瀏覽器設計者的目標在于實現(xiàn)以下各項的最佳混合:頁面加載 的快速響應時間(即使在存在長網(wǎng)絡時延的情況下)、高性能(例如,以能夠?qū)崿F(xiàn)網(wǎng)絡應用 的交互性)、以及高用戶接口響應性以提供良好的用戶體驗。
[0042] 各個方面提供了網(wǎng)絡瀏覽器、瀏覽器方法和瀏覽器系統(tǒng),所述網(wǎng)絡瀏覽器、瀏覽器 方法和瀏覽器系統(tǒng)被配置為通過利用由現(xiàn)代多處理器移動設備架構使用進程的沙盒執(zhí)行 實現(xiàn)的并發(fā)性/并行性,經(jīng)由對推測性的資源預提取的使用,來實現(xiàn)快速響應時間、高性能 和高用戶接口響應性。
[0043] 現(xiàn)代網(wǎng)絡文檔(例如,HTML頁面、HTML文檔等)可以引用大量的外部資源,并且 每個所引用的外部資源可以包括對其它外部資源的引用。例如,HTML文檔通常包括對圖 像、音頻、級聯(lián)樣式表(CSS)和JavaScript?的引用,并且所引用的資源(例如,CSS、音頻、 JavaScript? )還可以包括對額外的外部資源(例如,圖像、音頻等)的引用。通常,并非 所有的所引用的外部資源是在移動設備的電子顯示器上適當?shù)劁秩揪W(wǎng)頁所需要的(或者 甚至是所使用的)。
[0044] 軟件開發(fā)者越來越多地使用腳本(例如,Javascript code? )來動態(tài)地確定特 定的應用-設備組合(例如,網(wǎng)絡瀏覽器-移動設備組合)將需要的資源。例如,腳本可以 評估與客戶端應用(例如,瀏覽器)和計算設備相關的各個因素,以識別要下載的資源。本 質(zhì)上,這樣的腳本可以基于所評估的因素來針對資源(例如,圖像、CSS、其它JavaScript? 等)動態(tài)地構建URL。因此,HTML文檔可能需要如下所述的資源:這些資源在HTML文檔中 沒有被明確標識,并且僅可以通過執(zhí)行包括在HTML文檔中的JavaScript?代碼來確定。
[0045] JavaScript?代碼可以改變其包含HTML(以及HTML代碼本身)的狀態(tài)、行為和/ 或表示,并且通常要求HTML解析器順序地和/或通過遵循在HTML規(guī)范中定義的排序規(guī)則, 來執(zhí)行遇到的JavaScript?代碼(或腳本)。例如,當HTML解析器遇到腳本標簽(即,用 于定義諸如JavaScript?腳本之類的客戶端側腳本的〈script〉標簽)時,在HTML解析器 可以繼續(xù)解析HTML文檔的剩余部分之前,其必須等待腳本被下載并且被執(zhí)行。因此,可以 在JavaScript?腳本(S卩,在〈script〉標簽內(nèi)的JavaScript?代碼)的執(zhí)行內(nèi)將所有資 源請求串行化(即,要求一個接一個地被執(zhí)行)。另外,對于HTML文檔掃描操作來說,可能 更加難以靜態(tài)地預測正確渲染網(wǎng)頁將需要的資源。
[0046] 各個方面包括如下所述的方法和瀏覽器:通過在沙盒JavaScript?引擎中推測 性地預提取資源以發(fā)現(xiàn)并下載在HTML文檔中沒有明確請求的資源,來克服現(xiàn)有解決方案 的這些限制和其它限制??梢耘c其它瀏覽器操作(例如,HTML解析)和其它資源請求的執(zhí) 行并行地執(zhí)行對資源的下載。
[0047] 在一方面,沙盒JavaScript?引擎可以掃描JavaScript代碼,并且僅執(zhí)行與發(fā)現(xiàn) 外部資源最相關的代碼的選擇部分和/或選擇操作。因為該沙盒執(zhí)行和掃描操作僅涉及發(fā) 現(xiàn)資源,所述資源為執(zhí)行腳本以產(chǎn)生網(wǎng)頁時所述腳本所請求的,所以掃描操作并不受HTML 規(guī)范規(guī)則約束,并且不必運行/執(zhí)行所有的所遇到的代碼。此外,通過不完全執(zhí)行所有遇到 的代碼,沙盒JavaScript?引擎可以快速地執(zhí)行JavaScript掃描操作。
[0048] 在一方面,沙盒JavaScript?引擎可以應用啟發(fā)法來對JavaScript掃描操作進 一步加速。通過舉例的方式,這樣的啟發(fā)法可以包括限制總執(zhí)行時間(例如,每個腳本或操 作耗費最多IOms等)、循環(huán)迭代的數(shù)量(例如,僅處理循環(huán)的前10個迭代等)、遞歸深度、 支持的特征、抽象解釋等。
[0049] 各個方面的方法和瀏覽器可以修改瀏覽器客戶端與JavaScript?引擎之間的應 用編程接口(API)。通常,腳本引擎(例如,JavaScript?引擎)提供對瀏覽器API(即,使 得腳本能夠調(diào)用瀏覽器操作的接口)的綁定(即,用于映射語言的API),以調(diào)用瀏覽器操 作(例如,操縱DOM,訪問網(wǎng)絡等)。各個方面可以監(jiān)測瀏覽器API資源請求,并且修改綁定 (或者為腳本引擎提供單獨的綁定集),以使得資源請求被重定向到不同的瀏覽器部件(例 如,預提取器部件)。以這種方式,可以將資源請求和/或收集的信息直接傳遞給瀏覽器部 件(預提取器),以用于進一步處理。
[0050] 本文中使用"示例性"一詞意指"用作例子、實例或說明"。本文中被描述為"示例 性"的任何實施例不必須被解釋為比其它實施例更優(yōu)選或更具優(yōu)勢。
[0051] 本文中可互換地使用術語"移動設備"和"計算設備",以指代以下各項中的任一項 或全部:蜂窩電話、智能電話、個人或移動多媒體播放器、個人數(shù)據(jù)助理(PDA)、膝上型計算 機、平板計算機、智能本、掌上型計算機、無線電子郵件接收器、具有多媒體互聯(lián)網(wǎng)功能的蜂 窩電話、無線游戲控制器以及包括可編程處理器和存儲器的類似的個人電子設備。盡管各 個方面在可能具有受限的處理功率的移動設備(例如,蜂窩電話)中是特別有用的,但是這 些方面在執(zhí)行使用動態(tài)、腳本和/或標記語言編寫的腳本和/或應用的任何計算設備中是 一般有用的。
[0052] 本文中使用的術語"片上系統(tǒng)"(SOC)用于指代包含在單個襯底上集成的多個資源 和/或處理器的單個集成電路(IC)芯片。單個SOC可以包含用于數(shù)字、模擬、混合信號和 射頻功能的電路。單個SOC還可以包括任意數(shù)量的通用處理器和/或?qū)S锰幚砥鳎〝?shù)字信 號處理器、調(diào)制解調(diào)器處理器、視頻處理器等)、存儲塊(例如,R〇M、RAM、閃存等)以及資源 (例如,定時器、調(diào)壓器、振蕩器等)。SOC還可以包括用于控制集成資源和處理器以及用于 控制外圍設備的軟件。
[0053] 本文中使用的術語"多核處理器"用于指代包含兩個或更多的獨立處理核(例如, (PU核)的單個集成電路(IC)芯片或芯片封裝,其中,處理核被配置為讀取并執(zhí)行程序指 令。SOC可以包括多個多核處理器,并且SOC中的每個處理器可以被稱為核。本文中使用的 術語"多處理器"用于指代包括兩個或更多處理單元的系統(tǒng)或設備,其中,處理單元被配置 為讀取并執(zhí)行程序指令。
[0054] 如本申請中所使用的,術語"部件"、"模塊"、"系統(tǒng)"、"引擎"、"管理器"等旨在包括 計算機相關實體,例如但不限于,被配置為執(zhí)行特定操作或功能的硬件、固件、硬件和軟件 的組合、軟件、或運行中的軟件。例如,部件可以是但不限于,處理器上運行的進程、處理器、 對象、可執(zhí)行文件、執(zhí)行的線程、程序和/或計算機。通過說明的方式,計算設備上運行的應 用和計算設備均可以被稱為部件。一個或多個部件可以位于進程和/或執(zhí)行的線程內(nèi),以 及一個部件可以位于一個處理器或核上和/或分布在兩個或更多處理器或核之間。另外, 可以通過其上存儲有各種指令和/或數(shù)據(jù)結構的各種非暫時性計算機可讀介質(zhì)來執(zhí)行這 些部件。部件可以通過本地和/或遠程進程、函數(shù)或過程調(diào)用、電子信號、數(shù)據(jù)分組、存儲器 讀/寫以及與其它已知的計算機、處理器和/或進程相關的通信方法的方式來進行通信。
[0055] 在本申請中,術語"應用編程接口"以及其縮略語"API ",一般被用來指代可以由第 一軟件部件用于與第二軟件部件進行通信的任何軟件接口。API可以包括用于例程、過程、 函數(shù)、方法、數(shù)據(jù)結構、對象類和變量的規(guī)范。API還可以包括用于將API映射到另一高級編 程語言的特性(語法或語義)的工具。這樣的工具和/或映射本身可以是API,并且被稱為 "語言綁定"或"綁定"。
[0056] 在本申請中,術語"標記語言"一般被用來指代用于注釋文本使得處理器可以在語 法上將注釋與文本區(qū)分開的任何編程語言和/或系統(tǒng)。標記語言的例子包括Scr