CPU 모드

위키百科, 우리 모두의 百科事典.

CPU 모드 , 프로세서 모드 , CPU 狀態 , CPU 權限 水準 은 實行 中인 特定 프로세스에서 遂行할 수 있는 作業의 類型과 範圍에 制限을 두는 一部 컴퓨터 아키텍처의 中央 處理 裝置 에 對한 作動 모드이다. 이 設計를 통해 運營 體制는 應用 소프트웨어보다 더 많은 權限으로 實行될 수 있다.

理想的으로는 信賴度가 높은 커널 코드만 無制限 모드에서 實行할 수 있다. 그 밖의 모든 것(運營 體制의 監督되지 않는 部分 包含)은 制限된 모드에서 實行되며 시스템 呼出( 인터럽트 를 통해)을 使用하여 커널이 代身 시스템을 損傷시키거나 損傷시킬 수 있는 모든 作業을 遂行하도록 要請해야 한다. 다른 프로그램(또는 컴퓨팅 시스템 自體)을 變更하거나 損傷시키는 信賴할 수 없는 프로그램이다.

그러나 實際로 시스템 呼出 은 時間이 걸리고 컴퓨팅 시스템의 性能을 저하시킬 수 있으므로 시스템 設計者가 時間이 重要한 一部 소프트웨어(特히 裝置 드라이버)가 全體 커널 權限으로 實行되도록 許容하는 것은 드문 일이 아니다.

여러 모드를 具現할 수 있으므로 하이퍼바이저 가 그 아래에서 여러 運營 體制 監督者를 實行할 수 있다. 이는 現在 使用 可能한 많은 假想 머신 시스템의 基本 設計이다.

모드 種類 [ 編輯 ]

制限되지 않은 모드(unrestricted mode)는 種種 "커널 모드"라고 불리지만 다른 名稱도 많이 있다(마스터 모드, 監督者 모드, 特權 모드 等). 制限된 모드(restricted mode)는 一般的으로 "使用者 모드"라고 하지만 다른 이름(슬레이브 모드, 問題 狀態 等)으로도 알려져 있다.

커널
커널 모드에서 CPU는 아키텍처에서 許容하는 모든 作業을 遂行할 수 있다. 모든 命令이 實行될 수 있고, 入出力 作業이 始作될 수 있으며, 메모리 領域에 액세스할 수 있다. 다른 CPU 모드에서는 하드웨어에 依해 CPU 作業에 對한 特定 制限이 適用된다. 一般的으로 特定 命令(特히 시스템의 轉役 狀態를 變更할 수 있는 入出力 作業 包含)李 許容되지 않으며 一部 메모리 領域에 액세스할 수 없다. CPU의 使用者 모드 機能은 一般的으로 이러한 命令의 下位 集合이다. 커널 모드에서 使用할 수 있지만 基本이 아닌 아키텍처의 하드웨어 에뮬레이션과 같은 一部 境遇에는 標準 커널 모드에서 使用할 수 있는 것과 크게 다를 수 있다.
使用者
一部 CPU 아키텍처는 種種 權限 階層을 使用하여 여러 使用者 모드를 支援한다. 이러한 아키텍처는 種種 링 基盤 保安을 갖추고 있다고 하며, 權限 階層은 커널 모드를 中心으로 한 童心 링 集合과 類似하다. 멀틱스 하드웨어는 링 保安의 첫 番째 重要한 具現이었지만 인텔 80286 保護 모드 및 IA-64를 包含하여 다른 많은 하드웨어 플랫폼도 類似한 라인을 따라 設計되었다.

모드 保護는 CPU 하드웨어 自體를 넘어서는 里소스로 擴張될 수 있다. 하드웨어 레지스터는 CPU의 現在 作動 모드를 追跡하지만 追加 假想 메모리 레지스터, 페이지 테이블 項目 및 其他 데이터는 다른 리소스에 對한 모드 識別者를 追跡할 수 있다. 例를 들어, CPU는 CPU 自體의 狀態 워드에 標示된 대로 링 0에서 作動할 수 있지만 메모리에 對한 모든 액세스는 액세스 對象 假想 메모리 세그먼트에 對한 別途의 링 番號에 對해 追加로 檢證될 수 있다. 對象이 되는 實際 페이지(있는 境遇)의 링 番號에 對해 이는 PSP 携帶用 시스템에서 立證되었다.

抛펙과 골드버그의 가상화 要求 를 充足하는 하드웨어를 使用하면 假想 머신을 效率的으로 支援하는 소프트웨어 作成이 훨씬 簡單해진다. 이러한 시스템은 監督者 모드에서 實行되고 있다고 믿지만 實際로는 使用者 모드에서 實行되는 소프트웨어를 實行할 수 있다.