General protection fault (GPF) pada arsitektur Intel x86 dan AMD x86-64, dan arsitektur lainnya yang tidak berkaitan, adalah sebuah fault (sebuah jenis interupsi) yang dapat mencakup beberapa keadaan saat mekanisme proteksi di dalam arsitektur prosesor dilanggar oleh program apapun yang sedang berjalan, baik kernel maupun program user. Mekanisme ini pertama kali dijelaskan di bab 9.8.13 dalam manual referensi programmer Intel 80386 pada tahun 1986. General protection fault diimplementasikan sebagai interrupt (vektor interupsi nomor 13 dalam desimal) dalam kedua arsitektur x86 dan AMD64. Aplikasi dapat dikatakan mengalami crash.

Penyebab GPF yang paling umum adalah dua aplikasi yang mencoba menggunakan menggunakan blok memori yang sama, sehingga terjadi bentrok penggunaan memori.

Beberapa sebab GPF lainnya adalah penggunaan device driver (perangkat penggerak) yang tidak tepat dan sistem operasi Windows yang terkorupsi.

Perilaku dalam sistem operasi tertentu

sunting

Dalam Microsoft Windows, general protection fault disajikan dalam berbagai bahasa, bergantung pada versi produk:

  • Unrecoverable Application Error. (Windows 3.0)
  • [Nama Program] has caused a General Protection Fault in module [nama modul] at [alamat memori]. (Windows 3.1 dan 3.1x)
  • This program has performed an illegal operation and will be shut down. (Windows 9x & Windows NT 4.0)
  • [Nama Program] has generated errors and will be closed by Windows. (Windows 2000)
  • [Nama Program] has caused an error in [Nama Modul]. [Nama Program] will now close. (Windows Me)
  • [Nama Program/Deskripsi] has encountered a problem and needs to close. We are sorry for the inconvenience. (Windows XP)
  • [Nama Program/Deskripsi] has stopped working. (Windows Vista, Windows 7 dan Windows 8)

Pada sistem seperti Unix dan Linux, error tersebut dilaporkan secara terpisah (misalnya segmentation fault untuk kesalahan (error) memori).

Kesalahan memori

sunting

Pada kesalahan memori, program yang akan melakukan kesalahan mengakses memori yang sebaiknya tidak diakses. Contohnya meliputi:

  • Mencoba menulis ke bagian hanya baca dari memori
  • Mencoba menjalankan / mengeksekusi bita dalam memori yang tidak dirancang sebagai instruksi
  • Mencoba membaca sebagai bita data dalam memori yang sebetulnya dirancang sebagai instruksi
  • Perbedaan / konflik lainnya antara perancangan bagian memori dengan penggunaannya

Meskipun begitu, banyak sistem operasi modern menerapkan skema pengendalian akses memori melalui paging, bukan segmentasi, jadi sering ada kasus referensi memori yang tidak valid dalam sistem operasi seperti Windows dilaporkan melalui page fault daripada general protection fault. Sistem operasi biasanya menyediakan lapisan abstraksi (seperti exception handling atau sinyal) yang menyembunyikan apapun mekanisme prosesor internal yang digunakan untuk mengirimkan memory access error dari program, dengan tujuan menyediakan antarmuka standar untuk menangani berbagai tipe berbeda dari kondisi error yang diciptakan prosesor.

Dalam kondisi arsitektur x86, general protection fault adalah khusus untuk proteksi berbasis segmentasi saat sampai pada akses memori. Namun, general protection fault masih digunakan untuk melaporkan pelanggaran proteksi lainnya (di samping pelanggaran terhadap akses memori) saat digunakan paging, seperti penggunaan instruksi yang tidak dapat diakses dari current privilege level.

Meskipun secara teoretis sistem operasi mungkin untuk menyediakan baik paging maupun segmentasi, dalam bagian besar, sistem operasi umum biasanya mengandalkan paging untuk kebutuhan memory access controlnya.

Lain-lain

sunting

Penyebab lain dari general protection fault adalah:

  • mencoba mengakses interupsi/exception handler dari mode v86 saat kode handler pendeskripsi segmen (DPL = descriptor privilege level) sedang lebih dari nol
  • mencoba menulis angka satu ke dalam bit yang telah dipesan (reserved) dari CR4
  • mencoba mengeksekusi instruksi yang memerlukan privilege saat current privileged level (CPL) tidak nol
  • menulis ke bit reserved dalam instruksi MSR
  • mengakses gerbang yang mengandung pemilih segmen null
  • mengeksekusi interupsi perangkat lunak saat set CPL lebih besar dari DPL untuk gerbang interupsi
  • pemilih segmen dalam sebuah pemanggilan, interupsi, atau gerbang trap tidak menunjuk ke segmen kode
  • melebihi panjang instruksi yaitu 15 bita
  • melanggar aturan hak akses (privilege)
  • mengaktifkan paging saat menonaktifkan proteksi
  • mereferensikan tabel pembaca interupsi yang menyertai sebuah interupsi atau exception yang sebenarnya bukan interupsi, trap, atau gerbang task
  • SSE kuno: Operand memori tidak merupakan 16-bita

Catatan dan referensi

sunting
  • Intel Architecture Software Developer's Manualโ€“Volume 3: System Programming

Lihat pula

sunting

๐Ÿ“š Artikel Terkait di Wikipedia

Hotman Paris Hutapea

23 April 2010 yang berjudul "A Top Indonesian Lawyer May Be Honest to a Fault", dia mengatakan "Jika saya mengatakan bahwa saya pengacara bersih, saya

Son Sang-yeon

Naver. Diakses tanggal January 2, 2022. "Son Sang-yeon (์†์ƒ์—ฐ) - Filmography Page 1". HanCinema. Diakses tanggal January 2, 2022. Yoo Byung-Chul (May 25, 2021)

Skala Richter

"The Richter Scale ML". Dalam Wallace, Robert E. (ed.). The San Andreas Fault System, California. USGS. hlm.ย 177. Professional Paper 1515. Diarsipkan

The Fault in Our Stars (film)

The Fault in Our Stars adalah sebuah film romantis remaja Amerika Serikat tahun 2014 yang disutradarai oleh Josh Boone dari skenario karya Scott Neustadter

Sepak bola

June 2014). "The real reason Americans call it 'soccer' is all England's fault". Business Insider Australia. Diarsipkan dari versi aslinya tanggal 27 April

Verifikasi dan validasi

Roger; Taha, Walid; Tรถrngren, Martin (ed.). "Model-Implemented Hybrid Fault Injection for Simulink (Tool Demonstrations)". Cyber Physical Systems. Model-Based

Gempa bumi dan tsunami Samudra Hindia 2004

ISSNย 2196-4092. "Analysis of the Sumatra-Andaman Earthquake Reveals Longest Fault Rupture Ever". National Science Foundation. 19 May 2005. Diarsipkan dari

Britania Raya

agak menonjol karena adanya Sesar Batas Dataran Tinggi (Highland Boundary Fault), sebuah sesar patahan geologi yang membentang dari Pulau Arran di bagian