
Dalam komputasi, mogok, mogok sistem, atau gagal sistem (bahasa Inggris: crash) terjadi ketika sebuah program komputer, baik aplikasi maupun sistem operasi, berhenti berfungsi dengan baik dan keluar dari alur eksekusi secara mendadak.
Pada sistem operasi modern, apabila sebuah aplikasi individual mengalami mogok, layanan pelaporan mogok (crash reporter) secara otomatis akan merekam rincian teknis kejadian tersebut (seperti salinan memori atau *crash dump*) dan mengirimkannya kepada pengembang aplikasi untuk dianalisis. Namun, jika kegagalan terjadi pada komponen inti yang krusial bagi sistem operasi, seluruh komputer dapat mengalami mogok total yang menyebabkan sistem terhenti secara permanen, memicu kepanikan kernel, atau menampilkan kesalahan sistem yang fatal.
Jenis kemogokan
suntingBerdasarkan cakupan komponen yang terdampak, kemogokan dapat dikelompokkan menjadi dua jenis utama:
Mogok aplikasi (Application crash)
suntingTerjadi ketika hanya satu aplikasi tertentu yang berhenti bekerja, sementara sistem operasi dan aplikasi lainnya tetap berjalan dengan normal. Sistem operasi biasanya akan langsung memutus proses aplikasi tersebut dan membebaskan kembali memori RAM yang digunakannya.
Mogok sistem (System crash)
suntingTerjadi ketika inti sistem operasi (kernel) mengalami galat fatal yang tidak dapat dipulihkan, menyebabkan seluruh komputer tidak responsif.
- Pada sistem mirip Unix (seperti Linux, macOS, dan FreeBSD), kondisi ini dikenal sebagai kepanikan kernel.
- Pada sistem Microsoft Windows, kondisi ini ditandai dengan munculnya layar biru kesalahan yang dikenal sebagai Blue Screen of Death (BSOD).
Penyebab
suntingSebagian besar peristiwa mogok disebabkan oleh adanya kutu perangkat lunak (software bug) atau kegagalan interaksi antara perangkat lunak dan perangkat keras. Beberapa penyebab yang paling umum meliputi:
- Pelanggaran akses memori: Program mencoba mengakses alamat memori yang tidak valid atau dilarang oleh sistem operasi, seperti melakukan dereferensi terhadap penunjuk nol (null pointer) atau memicu kesalahan segmentasi (segmentation fault).[a]
- Limpahan penyangga (Buffer overflow): Program menulis data melebihi kapasitas batasan larik atau penyangga memori yang telah dialokasikan, sehingga menimpa data kritis atau merusak nilai alamat pada penghitung program (program counter).
- Instruksi ilegal: Program mencoba mengeksekusi instruksi mesin yang tidak valid, tidak dikenal oleh CPU, atau tidak diizinkan untuk dijalankan pada tingkat hak akses (privilege level) aplikasi biasa.
- Pengecualian tak tertangani (Unhandled exception): Munculnya kondisi galat saat program berjalan (seperti pembagian dengan angka nol) yang tidak diantisipasi oleh pemrogram di dalam kode menggunakan mekanisme penanganan ekspresi (exception handling).
Kutu asli yang memicu rangkaian peristiwa mogok ini biasanya diisolasi dan dianalisis oleh pengembang melalui proses pengawakutuan. Sering kali, letak kutu asli di dalam kode sumber berada jauh dari baris kode yang sebenarnya memicu kemacetan program.
Dampak dan eksploitasi keamanan
suntingSelain menyebabkan kehilangan data yang belum disimpan di dalam memori volatil (RAM) dan potensi korosi data pada sistem berkas, beberapa jenis kemogokan sistem dapat menjadi celah keamanan yang sangat berbahaya.
Para peretas dan program jahat (perangkat lunak berbahaya) sering kali sengaja memicu kemogokan tertentu, terutama yang berkaitan dengan buffer overflow, untuk melakukan eksploitasi. Melalui teknik ini, penyerang dapat menyisipkan dan menjalankan kode arbitrer (arbitrary code execution) dengan hak akses tertinggi sistem, memfasilitasi replikasi virus, atau mencuri data sensitif yang dalam kondisi normal tidak dapat diakses.
Lihat pula
sunting- Kutu (komputer)
- Pengawakutuan
- Kernel panic
- Blue Screen of Death
- Limpahan penyangga
- Perilaku tak terdefinisi
Catatan kaki
sunting- ^ Jenis-jenis alamat memori tidak valid atau galat memori meliputi:
- Alamat fisik (real address) yang tidak valid
- Nomor segmen tidak valid
- Nomor halaman (page number) tidak valid
- Alamat tidak berada pada batas yang benar (alignment error)