Aturan Pengaksesan PCB

PCB memiliki peran yang penting bagi sistem operasi, karena berisi semua informasi mengenai proses-proses yang aktif. PCB dibaca dan dimodifikasi oleh hampir semua rutin sistem operasi scheduler rutin penanganan interupsi, rutin monitoring atau auditing sistem.

Mengingat pentingnya informasi yang terdapat pada PCB maka pengaksesan terhadap PCB harusnya diproteksi sedemikian rupa sehingga tidak menyebabkan informasi pada PCB menjadi korup. Selain itu struktur PCB tidak boleh berubah, karena jika berubah dapat menyebabkan rutin-rutin yang mengaksesnya tidak mengenalinya lagi sehingga rutin tersebut tidak berjalan dengan benar. Solusinya adalah sistem operasi menyediakan rutin-rutin khusus untuk mengakses (baca maupun tulis) melalui pemanggilan rutin-rutin khusus tersebut. Kelemahan mekanisme ini adalah terjadinya overhead kinerja.

Struktur Image Proses dan PCB
Struktur Image Proses dan PCB

PROTEKSI DAN MODUS EKSEKUSI PROSES

Suatu proses dapat berjalan dalam salah satu modus yaitu modus user atau modus kernel (system atau privileged). Sistem yang memungkinkan proses berjalan dalam salah satu dari 2 macam modus ini disebut dengan sistem terproteksi (protected). Modus eksekusi protected ini amatlah penting pada sistem operasi yang multitasking.

Dalam sistem operasi multitasking terjadi kompetisi pemakai sumber daya komputer. Oleh sebab itu, kode-kode instruksi program untuk mengakses sumber daya-sumber daya yang kritis haruslah bersifat trusted, yaitu kode-kode yang telah teruji dan aman, yang berarti menjamin tidak terjadinya monopoli pemakai sumber daya oleh suatu proses tertentu. Untuk menjamin hal ini maka umumnya kode-kode instruksi yang boleh mengakses secara langsung peranti I/O atau sumber daya kritis lainnya adalah kode-kode instruksi sistem operasi yang telah diuji dan terbukti keandalannya. Kode instruksi dari aplikasi pengguna tidak diijinkan menggunakan instruksi pengaksesan sumber daya tersebut secara langsung. Sebagai gantinya, kode instuksi program aplikasi hanya diijinkan memanggil rutin atau layanan dari sistem operasi.

Kebutuhan proteksi diatas dapat dianalogikan seperti kasus penarikan uang kas dari bank. Suatu bank meyimpan uang (sumber daya) yang dititipkan kepada oleh sejumlah besar pelanggan. Jika seorang pelanggan (kode program aplikasi) hendak mengambil uangnya, dia tidak akan diijinkan mengambil (instruksi pengaksesan yang haris dijamin ke amanannya) uangnya langsung dari brankas bank (sumber daya kritis). Hanya petugas kasir bank (rutin, layanan sistem operasi) yang berhak melakukan hal tersebut.

Yang dapat dilakukan oleh pelanggan tersebut adalah mengisi slip penarikan uang (melakukan instruksi yang dijalankan dalam modus user) dan menyerahkan ke kasir (memanggil rutin sistem operasi), dan kasir (sebagai sistem operasi) yang kemudian mengambil dan menghitunkan uang yang hendak ditarik (melakukan instruksi yang dijalankan dalam modus kernel).

Untuk memungkinkan mekanisme demikian maka diperlukan dukungan pada level pengakat keras. Dukungan untuk melakukan eksekusi protected mulai tersedia apada prosesor Intel yang dimulai pada kelas prosesor Intel 386. Pada prosesor yang mendukung modus eksekusi secara protected, terdapat suatu bit yang menentukan apakah prosesor sedang berjalan dalam modus kernel atau modus user.

Jika prosesor sedang berjalan dalam modus kernel maka semua kode instruksi yang dijalankan akan dianggap kode trusted. Jadi jika prosesor sedang dalam modus kernel, semua jenis instruksi yang didukung prosesor akan dieksekusi begitu saja. Sebaliknya jika prosesor sedang berjalan dalam modus user maka semua jenis instruksi akan dijalankan oleh prosesor. Jika program pengguna mengeksekusi instruksi yang “terlarang” maka prosesor akan membangkitkan sinyal kesalahan yang memberitahukan bahwa program user mengeksekusi instruksi yang privileged, yang tidak diijinkan dalam modus user. Yang dimaksud dengan kode-kode “terlarang” seperti pengaksesan peranti I/O dan memori.