Kamis, 08 September 2016

SISTEM OPERASI - TUGAS ABSTRAKSI KERNEL


Postingan kali ini saya akan membahas mata kuliah Sistem Operasi dengan materi abstraksi kernel. Apa itu kernel? Kernel sendiri merupakan suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.



Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing. 

Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.

Pada dasarnya, untuk menjalankan sebuah komputer tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung dijalankan oleh komputer, yaitu saat sebuah program komputer akan digunakan tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini umumnya digunakan oleh komputer-komputer generasi awal, sehingga bila ingin berpindah dari satu program ke program lain, pengguna harus mereset dan menjalankan kembali program-program tersebut.

Berikut ini adalah kumpulan pertanyaan dan jawaban yang ada pada materi abstraksi kernel :
  1. Untuk program sederhana seperti “Hello World”, kernel harus mencopy string dari user program memory ke dalam screen memory. Mengapa tidak diijinkan program untuk menulis langsung ke dalam screen buffer memory?

Jawaban :

Karena, Memory Buffer Register (MBR) itu sendiri suatu register yang berfungsi untuk memuat isi informasi yang akan dituliskan ke memori pada alamat yang ditujukan oleh isi Memory Address Register (MAR). Dari pernyataan tersebut bahwasannya mbr hanya tempat penyimpanan sementara dimana instruksi-instruksi yang kita buat alamatnya masih samar-samar. Ada sebuah urutan kejadian selama siklus instruksi berlangsung. Misalnya sebuah komputer yang menggunakan register memori alamat (MAR), register memori buffer (MBR), pencacah program (PC), dan register instruksi (IR).

Proses aliran data pada siklus pengambilannya adalah sebagai berikut:
    • Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori. 
    • Pencacah program (PC) berisi alamat instruksi berikutnya yang akan diambil.
    • Alamat ini akan dipindahkan ke register memori alamat (MAR) dan ditaruh di bus alamat. 
    • Unit kontrol meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke register memori buffer (MBR) dan kemudian dipindahkan ke register instruksi (IR).
    • Pencacah program (PC) naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya. 
    • Siklus selesai. 
Maka sebab itu program tidak diijinkan langsung untuk menulis kedalam screen buffer memory.
 
  1. Dengan bahasa pemrograman berorientasi objek dan compiler, hanya objek method yang bisa mengakses internal data dalam sebuah objek. Jika sistem operasi hanya berjalan pada program yang ditulis pada bahasa pemrograman tersebut, akan kah masih membutuhkan hardware memory address protection?

Jawaban :

Banyak kesalahan pemrograman dideteksi oleh perangkat keras. Kesalahan ini biasanya ditangani oleh sistem operasi. Jika terjadi kesalahan program, perangkat keras akan meneruskan kepada sistem operasi dan sistem operasi akan menginterupsi dan mengakhirinya. Pesan kesalahan disampaikan, dan memori dari program akan dibuang. Tapi memori yang terbuang biasanya tersimpan pada disk agar programmer bisa membetulkan kesalahan dan menjalankan program ulang. Dari pernyataan diatas, maka sebab itu address protection tentu saja diperlukan karena sistem operasi akan menjalankan program sesuai dengan method yang ada, apabila program yang dibuat mengalami kesalahan maka data yang telah dijalankan oleh sistem operasi tidak langsung hilang dan data tersebut dapat diperbaiki oleh programmer.
  1. Contoh dari Exceptions? Contoh dari System Calls?

Jawaban :

Exception  : adalah singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saat runtime, menyebabkan gangguan pada alur eksekusi program.Terdapat beberapa tipe error yang dapat muncul. Sebagai contoh adalah error pembagian 0, mengakses elemen di luar jangkauan sebuah array, input yang tidak benar dan membuka file yang tidak ada.
System Calls : Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri umumnya ditulis dalam bahasa C dan C++.

Contoh : Proses pemakai running meminta layanan masukan/keluaran seperti membuka file. Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya, penggunaan system call membuat proses pemakai blocked karena diaktifkan proses kernel (sistem operasi).

  1. Mengapa dua stack pointer disimpan dua kali pada interrupt stack?
Jawaban :

Stack pointer merupakan pasangan code segment, maka stack pointer merupakan pasangan stack segment yang digunakan untuk operasi stack. Berisi data yang merupakan address lokasi saat kini dalam stack. Register ini teknisnya merupakan register multifungsi yang dapat dipakai sebagai tempat penyimpanan data maupun tempat kalkulasi, meski sehari-hari harus dipakai hanya dalam operasi stack. Instruksi terakhir yang sedang dijalankan diselesaikan terlebih dahulu program counter (alamat dari instruksi yang sedang berjalan) disimpan ke stack interrupt dengan status disimpan secara internal interrupt dan dilayani sesuai peringkat dari interrupt program counter terisi dengan alamat dari vector interrupt sehingga mikrokontroler langsung menjalankan program yang terletak pada vector interrupt.



1 komentar: