Jumat, 04 Juli 2008

Mesin Virtual

Mesin Virtual



Pada dasarnya, sistem komputer dibangun atas lapisan-lapisan. Perangkat keras adalah lapisan terendah. Kernel yang berada di lapisan atasnya menggunakan instruksi perangkat keras untuk menciptakan seperangkat system calls yang dapat digunakan oleh komponen-komponen lain yang berada pada level di atasnya. Sistem program pada level di atasnya dapat menggunakan system call dan perangkat keras seolah-olah mereka berada pada level yang sama.
Meski sistem program berada di level tertinggi, program aplikasi bisa melihat segala sesuatu di bawahnya (pada tingkatan) seakan mereka adalah bagian dari mesin. Pendekatan dengan lapisan-lapisan inilah yang diambil sebagai kesimpulan logis pada konsep mesin virtual atau virtual machine(VM). Pendekatan VM menyediakan sebuah antarmuka yang identik dengan underlying bare hardware. VM dibuat dengan pembagian sumber daya oleh komputer fisik. Perangkat lunak mesin virtual membutuhkan ruang pada disk untuk menyediakan memori virtual dan spooling sehingga perlu ada disk virtual.
Meski sangat berguna, VM sulit untuk diimplementasikan. Banyak hal yang dibutuhkan untuk menyediakan duplikat yang tepat dari underlying machine. VM dapat dieksekusi pada only user mode sehingga kita harus mempunyai virtual user mode sekaligus virtual memory mode yang keduanya berjalan di physical user mode. Ketika instruksi yang hanya membutuhkan virtual user mode dijalankan, ia akan mengubah isi register yang berefek pada virtual monitor mode sehingga dapat memulai ulang VM tersebut. Sebuah instruksi I/O yang membutuh waktu 100ms, dengan menggunakan VM bisa dieksekusi lebih cepat( karena spooling) atau lebih lambat(karena interpreter). Terlebih lagi, CPU menjadi multiprogrammed di antara banyak VM. Jika setiap user diberi 1 VM, dia akan bebas menjalankan sistem operasi(kernel) yang diinginkan pada VM tersebut.
Selain kekurangan yang telah disebutkan diatas, jelas VM memiliki kelebihan-kelebihan, yaitu: Keamanan yang terjamin karena VM mempunyai perlindungan lengkap pada berbagai sistem sumber daya, tidak ada pembagian resources secara langsung . Pembagian disk mini dan jaringan diimplementasikan dalam perangkat lunak. Sistem VM adalah kendaraan yang sempurna untuk penelitian dan pengembangan Sistem Operasi. Dengan VM, perubahan satu bagian dari mesin dijamin tidak akan mengubah komponen lainnya.



Mesin Virtual Java



Mesin Virtual Java atau Java Virtual Machine(JVM) terdiri dari sebuah kelas loader dan java interpreter yang mengeksekusi the architecture-neutral bytecodes. Java interpreter bisa berupa perangkat lunak yang menginterpretasikan kode byte setiap waktu atau hanya Just-In-Time(JIT) yang mengubah architecture-neutral bytecodes menjadi bahasa mesin lokal. Interpreter bisa juga diimplementasikan pada sebuah chip perangkat keras. Instance dari JVM dibentuk ketika aplikasi java atau applet dijalankan. JVM mulai berjalan saat method main dipanggil. Pada applet, JVM menciptakan method main sebelum membuat applet itu sendiri.
Java Development Environment terdiri dari sebuah Compile Time Environment dan RunTime Environment. Kompilasi berfungsi mengubah java sourcecode menjadi kode byte. Sedangkan RunTime merupakan Java platform untuk sistem host.

Desain Sistem dan Implementasinya

Desain sistem memiliki masalah dalam menentukan tujuan dan spesifikasi sistem. Pada level paling tinggi, desain sistem akan dipengaruhi oleh pilihan perangkat keras dan jenis sistem. Kebutuhannya akan lebih sulit untuk dispesifikasikan. Kebutuhan terdiri dari target pengguna dan target sistem. Pengguna menginginkan sistem yang nyaman digunakan, mudah dipelajari, dapat dipercaya, aman, dan cepat. Namun itu semua tidaklah signifikan untuk desain sistem. Orang yang mendesain ingin sistem yang mudah didesain, diimplementasikan, fleksibel, dapat dipercaya, bebas eror, efisien. Sampai saat ini belum ada solusi yang pas untuk menentukan kebutuhan dari system operasi. Lain lingkungan, lain pula kebutuhannya.



Mekanisme dan Kebijakan


Mekanisme menentukan bagaimana melakukan sesuatu. Kebijakan menentukan apa yang akan dilakukan.Pemisahan antara mekanisme dan kebijakan sangatlah penting untuk fleksibilitas. Perubahan kebijakan akan membutuhkan definisi ulang pada beberapa parameter system, bahkan bisa mengubah mekanisme yang telah ada. Sistem operasi berlandaskan mikrokernel menggunakan pemisahan mekanisme dan kebijakan secara ekstrim dengan mengimplementasikan perangkat dari primitive building blocks. Semua aplikasi mempunyai antarmuka yang sama karena antarmuka dibangun dalam kernel.
Kebijakan penting untuk semua alokasi sumber daya dan penjadwalan masalah. Perlu atau tidaknya sistem mengalokasikan sumber daya, kebijakan yang menentukan. Tapi bagaimana dan apa, mekanismelah yang menentukan



Implementasi





Umumnya sistem operasi ditulis dalam bahasa rakitan, tapi sekarang ini sering ditulis dalam bahasa tingkat tinggi. Keuntungannya adalah kodenya bisa ditulis lebih cepat, lebih padat, mudah dimengerti dan didebug. Sistem operasi mudah diport (dipindahkan ke perangkat keras lain). Kerugiannya adalah mengurangi kecepatan dan membutuhkan tempat penyimpanan yang lebih banyak.



System Generation





Adalah mungkin untuk mendesain, mengkode, dan megimplementasikan sebuah sistem operasi khusus untuk satu mesin di suatu site. Pada umumnya sistem operasi dibuat untuk berjalan pada beberapa kelas mesin di berbagai site dan berbagai konfigurasi periferal. Kemudian, sistem dikonfigurasikan untuk masing-masing komputer, untuk site yang spesifik. Proses ini terkadang disebut sebagai System Generation.
Sistem program membaca dari berkas yang diberikan atau mungkin bertanya pada operator tentang informasi yang berhubungan dengan perangkat keras tersebut, antara lain adalah sebagai berikut:
· CPU apa yang digunakan, pilihan yang diinstall?
· Berapa banyak memori yang tersedia?
· Peralatan yang tersedia?
· Pilihan Sistem operasi apa yang diinginkan atau parameter yang digunakan?
Satu kali informasi didapat, bisa digunakan dengan berbagai cara.