一般 保護 失敗

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

一般 保護 失敗 또는 一般 保護 誤謬 (General protection fault, GPF)는 x86 ISA (命令語 集合 아키텍처)에서 커널 에서 實行 中인 一部 코드로 인해 發生한 액세스 違反에 對한 應答으로 ISA 정의 保護 메커니즘에 依해 始作된 誤謬(인터럽트 類型)이다. 이 메커니즘은 1983年에 出市된 인텔 80286 CPU用 인텔 說明書 및 데이터시트에 처음 說明되어 있다. 이는 1986年 인텔 80386 프로그래머 參照 매뉴얼의 섹션 9.8.13에도 說明되어 있다. 一般 保護 誤謬는 인터럽트( 벡터 番號 13(0Dh))로 具現된다. 一部 運營體制 는 메모리 保護와 關聯이 없음에도 不拘하고 不法 命令 코드 例外와 같이 액세스 違反과 關聯되지 않은 一部 例外를 一般 保護 誤謬로 分類할 수도 있다. CPU가 保護 違反을 感知하면 코드 實行을 中止하고 GPF 인터럽트를 보낸다. 大部分의 境遇 運營 體制는 失敗한 프로세스를 實行 大氣熱에서 除去하고 使用者에게 信號를 보낸 後 다른 프로세스를 繼續 實行한다. 그러나 運營 體制가 一般 保護 誤謬를 捕捉하지 못하는 境遇, 卽 運營 體制가 以前 GPF 인터럽트에서 復歸하기 前에 또 다른 保護 違反이 發生하면 CPU는 二重 誤謬 信號를 보내 運營 體制를 中止한다. 또 다른 誤謬(三重 誤謬)가 發生하면 CPU는 復舊할 수 없다. 80286부터 CPU는 하드웨어 再設定을 통해서만 終了할 수 있는 "Shutdown"이라는 特殊 停止 狀態에 들어간다. 80286을 包含하는 最初의 PC 互換 시스템인 IBM PC/AT 에는 終了 狀態를 感知하고 終了 狀態가 發生하면 自動으로 CPU를 再設定하는 하드웨어가 있다. PC AT의 모든 子孫은 同一한 作業을 遂行하므로 PC에서 三重 誤謬가 發生하면 卽時 시스템 再設定이 發生한다.