Proteksi M/K

Sebuah sistem operasi yang menggunakan protected memory dapat menjaga banyak kemungkinan error yang terjadi pada aplikasi maupun perangkat keras sehingga sebuah failure sistem yang sulit tidak biasanya terjadi pada kesalahan mekanik yang kecil. Perangkat dan transfer M/K dapat gagal dalam berbagai cara karena alasan transient seperti jaringan yang overloaded atau karena alasan permanen seperti pengontrol disk yang rusak. Sistem operasi biasanya dapat mengganti kerugian secara efektif untuk kegagalan transient. Sebagai contoh, sebuah kegagalan pembacaan disk berakibat pengulangan pembacaan disk itu lagi dan jaringan mengirimkan hasil yang salah dalam pengiriman ulang jika protokol diketahui. Jika sebuah kegagalan permanen terjadi pada sebuah komponen yang penting, sistem operasi tidak dapat memulihkan error yang terjadi.

Ada aturan umum yang menyebutkan sebuah system call M/K akan mengembalikan 1 bit informasi tentang status pemanggilan yang akan menandakan apakah pemanggilan tersebut sukses atau gagal. Pada sistem operasi UNIX, variable integer tambahan bernama errno digunakan untuk mengembalikan sebuah kode kesalahan dalam rentang 1 dari 100 nilai yang menandakan jenis dari kesalahan tersebut, (sebagai contoh: argumen yang keluar dari rentang batas yang disediakan, bad pointer atau berkas yang tidak dapat dibuka).

Sebaliknya, beberapa perangkat keras dapat menyediakan informasi yang lebih lengkap tentang kegagalan tersebut walaupun banyak sistem operasi tidak dibuat untuk menyampaikan informasi ini kepada aplikasi. Sebagai contoh:

  1. kegagalan pada perangkat SCSI dilaporkan oleh protokol SCSI dalam bentuk sense key yang memberitahukan jenis kegagalan seperti error pada perangkat keras atau permintaan yang ilegal,

  2. ada juga yang disebut additional sense-code yang menyatakan kategori dari kegagalan seperti parameter perintah yang tidak sesuai atau kesalahan self-test seperti pada booting, load program, dan bootstrapping.

  3. sebuah additional sense-code qualifier yang memberikan informasi yang lebih detil seperti parameter perintah yang error atau subsistem perangkat keras yang gagal dalam self-test.