Struktur Sistem Operasi
Menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, memandang atau mengartikan apa itu sistem Operasi bisa diketahui dari beberapa hal, diantaranya dengan mengetahui komponen-komponen sistemnya dan layanan yang disediakan oleh sistem operasi.Komponen-komponen Sistem
Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut:- Manajemen Proses
- Manajemen Memori Utama
- Manajemen Berkas
- Manajemen Sistem I/O
- Manajemen Penyimpanan Sekunder
- Sistem Proteksi
- Jaringan
- Command-Interpreter System
Manajemen Proses
Proses adalah sebuah program yang sedang dijalankan (dieksekusi). Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas - berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
- Membuat dan menghapus proses user dan sistem proses.
- Menunda atau melanjutkan proses.
- Menyediakan mekanisme untuk proses sinkronisasi.
- Menyediakan mekanisme untuk proses komunikasi.
- Menyediakan mekanisme untuk penanganan deadlock
Manajemen Memori Utama
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi / data yang akses datanya digunakan oleh CPU dan perangkat I/O .Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile - tidak permanen (sementara), artinya data akan hilang kalau komputer dimatikan.Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen memori seperti:
- Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
- Memilih program yang akan di-load ke memori.
Manajemen Berkas
Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas merepresentasikan program dan data. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalanya tapes dan diskSistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen berkas :
- Pembuatan dan penghapusan berkas.
- Pembuatan dan penghapusan direktori.
- Mendukung manipulasi berkas dan direktori.
- Memetakan berkas ke secondary-storage
- Mem- back up berkas ke media penyimpanan yang permanen (non-volatile).
Manajemen Sistem I/O
Sering disebut device manager. Menyediakan device driveryang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis,menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada perangkat keras, CD-ROM dan floppy disk .Komponen Sistem Operasi untuk sistem I/O :
- Penyangga : menampung sementara data dari/ ke perangkat I/O .
- Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
- Menyediakan driver: untuk dapat melakukan operasi "rinci" (detail) untuk perangkat keras I/O tertentu.
Manajemen Penyimpanan Sekunder
Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan penyimpanan sekunder yang bersifat permanen dan mampu menampung banyak data, sebagai back up dari memori utama. Contoh dari penyimpanan sekunder adalah hard-disk, disket, dll.Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen disk seperti:
- free-space management
- alokasi penyimpanan
- penjadwalan disk
Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:- membedakan antara penggunaan yang sudah diberi izin dan yang belum.
- Menspesifikasi kontrol untuk dibebankan/ diberi tugas.
- Menyediakan alat untuk pemberlakuan sistem.
Jaringan
Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock. Tiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Akses tersebut menyebabkan peningkatan kecepatan komputasi dan meningkatkan kemampuan penyediaan data.Command-Interpreter System
Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter,command-line interpreter dan terkadang dikenal sebagai shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat I/O yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.Layanan Sistem Operasi, System Calls, dan System Program
Layanan Sistem Operasi
Layanan sistem operasi dirancang untuk membuat pemrograman menjadi lebih mudah.- Pembuatan Program
Sistim operasi menyediakan berbagai fasilitas yang membantu programer dalam membuat program seperti editor. Walaupun bukan bagian dari sistim operasi, tapi layanan ini diakses melalui sistim operasi. - Eksekusi Program
Sistem harus bisa me-load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusiannya baik secara normal maupun tidak (ada error) - Operasi I/O
Program yang sedang dijalankan kadang kala membutuhkan I/O. Untuk effisiensi dan keamanan, user biasanya tidak bisa mengatur peranti I/O secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi I/O. - Manipulasi Sistem Berkas
Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas. - Komunikasi
Kadang kala sebuah proses memerlukan informasi dari proses yang lain.Ada dua cara umum dimana komunikasi dapat dilakukan. komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda, tetapi dihubungkan oleh jaringan komputer.Komunikasi dapat dilakukan dengan share-memory atau message-passsing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi. - Deteksi Error
Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, I/O, dan di dalam program yang dijalankan user. Untuk setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahankan jalannya proses komputasi. Misalnya dengan menghentikan jalannya program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan yang terjadi agar pengguna dapat mengambil langkah selanjutnya.
- Alokasi Sumber Daya
Ketika beberapa user menggunakan sistem atau beberapa program dijalankan secara bersamaan, sumber daya harus dialokasikan bagi masing-masing user dan program tersebut. - Accounting
Kita menginginkan agar jumlah user yang menggunakan sumber daya, dan jenis sumber daya yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik. Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk meningkatkan pelayanan. - Proteksi
Layanan proteksi memastikan bahwa segala akses ke sumber daya terkontrol. Dan tentu saja keamanan terhadap gangguan dari luar sistem tersebut. Keamanan bisa saja dilakukan dengan terlebih dahulu mengidentifikasi user. Ini bisa dilakukan dengan meminta passsword bila ingin menggunakan sumber daya.
System Calls
Biasanya tersedia sebagai instruksi bahasa assembly. Beberapa sistem mengizinkan system calls dibuat langsung dari program bahasa tingkat tinggi. Beberapa bahasa pemrograman (contoh : C, C++) telah didefenisikan untuk menggantikan bahasa assembly untuk sistem pemrograman.Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi
- Melalui register
- Menyimpan parameter dalam block atau tabel pada memori dan alamat block tersebut diberikan sebagai parameter dalam register
- Menyimpan parameter (push) ke dalam stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi)
Gambar : Memberikan parameter melalui tabel
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York: John Wiley & Son.Inc , page 65
- Kontrol Proses
System calls yang berhubungan dengan kontrol proses antara lain ketika penghentian pengeksekusian program. Baik secara normal (end) maupun tidak normal (abort). Selama proses dieksekusi kadang kala diperlukan untuk meload atau mengeksekusi program lain, disini diperlukan lagi suatu system calls. Juga ketika membuat suatu proses baru dan menghentikan sebuah proses. Ada juga system calls yang dipanggil ketika kita ingin meminta dan merubah atribut dari suatu proses.
MS-DOS adalah contoh dari sistem single-tasking. MS-DOS menggunakan metode yang sederhana dalam menjalankan program dan tidak menciptakan proses baru. Program di-load ke dalam memori, kemudian program dijalankan.
Gambar : Eksekusi MS-Dos
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , page 68
Barkeley Unix adalah contoh dari sistem multi-tasking. Command interpereter masih tetap bisa dijalankan ketika program lain dieksekusi.
Gambar : Multi program pada Unix
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , page 69 - Manajemen Berkas
System calls yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita ingin membuat atau menghapus suatu berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah ada, membaca berkas tersebut, dan menulis berkas itu.System calls juga diperlukan ketika kita ingin mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah atribut tersebut. Yang termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-lain
Ada juga system calls yang menyediakan mekanisme lain yang berhubungan dengan direktori atau sistim berkas secara keseluruhan. Jadi bukan hanya berhubungan dengan satu spesifik berkas. Contohnya membuat atau menghapus suatu direktori, dan lain-lain - Manajemen Peranti
Program yang sedang dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak user yang menggunakan sistem, maka jika memerlukan tambahan sumber daya maka harus meminta peranti terlebih dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali. Ketika sebuah peranti telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau direposisi. - Informasi Maintenance
Beberapa system calls disediakan untuk membantu pertukaran informasi antara user dan sistem operasi. Contohnya system calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta informasi tentang sistem itu sendiri, seperti jumlah user, jumlah memori dan disk yang masih bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta informasi tentang proses yang disimpan oleh sistem dan system calls untuk merubah ( reset ) informasi tersebut. - Komunikasi
Dua model komunikasi
- message-passing
pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi. - shared-memory
Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran informasi dengan membaca dan menulis data pada memori tersebut
Sumber: Silberschatz,et.al, Operating System Concepts,6th e, .2003, New York:John Wiley & Son.Inc, page 72
Dalam message-passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi.Untuk itu diperlukan suatu system calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan menulis pesan( message ) agar pertukaran informasi dapat dilakukan. - message-passing
System Program
System program menyediakan lingkungan yang memungkinkan pengembangan program dan eksekusi berjalan dengan baik.Dapat dikategorikan :
- Manajemen/manipulasi Berkas
Membuat, menghapus, copy, rename, print, memanipulasi berkas dan direktori - Informasi status
Beberapa program meminta informasi tentang tanggal, jam, jumlah memori dan disk yang tersedia, jumlah user dan informasi lain yang sejenis. - Modifikasi berkas
membuat berkas dan memodifikasi isi berkas yang disimpan pada disk atau tape. - Pendukung bahasa pemrograman
kadang kala compiler, assembler, interpreter dari bahasa pemrograman diberikan kepada user dengan bantuan sistem operasi. - Loading dan eksekusi program
Ketika program di-assembly atau di-compile, program tersebut harus di-load ke dalam memori untuk dieksekusi. Untuk itu sistem harus menyediakan absolute loaders, relocatable loaders, linkage editors,dan overlay loaders - Komunikasi
menyediakan mekanisme komunikasi antara proses, user, dan sistem komputer yang berbeda.Sehingga user bisa mengirim pesan, browes web pages, mengirim e-mail, atau mentransfer berkas.
Struktur Sistem
Sebuah sistem yang besar dan kompleks seperti sistem operasi modern harus diatur dengan cara membagi task kedalam komponen-komponen kecil agar dapat berfungsi dengan baik dan mudah dimodifikasi. Pada bab ini, kita akan membahas cara komponen-komponen ini dihubungkan satu sama lain. Menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, ada tiga cara yaitu:- Struktur Sederhana
- Pendekatan Terlapis
- Mikrokernel
Struktur Sederhana
Banyak sistem yang tidak terstruktur dengan baik, sehingga sistem operasi seperti ini dimulai dengan sistem yang lebih kecil, sederhana, dan terbatas. Kemudian berkembang dengan cakupan yang original. Contoh sistem seperti ini adalah MS-DOS, yang disusun untuk mendukung fungsi yang banyak pada ruang yang sedikit karena keterbatasan perangkat keras untuk menjalankannya.Contoh sistem lainnya adalah UNIX, yang terdiri dari dua bagian yang terpisah, yaitu kernel dan program sistem. Kernel selanjutnya dibagi dua bagian, yaitu antarmuka dan device drivers. Kernel mendukung sistem berkas, penjadwalan CPU, manajemen memori,dan fungsi sistem operasi lainnya melalui system calls.
Pendekatan Terlapis
Sistem operasi dibagi menjadi sejumlah lapisan yang masing-masing dibangun diatas lapisan yang lebih rendah. Lapisan yang lebih rendah menyediakan layanan untuk lapisan yang lebih tinggi. Lapisan yang paling bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface.Lapisan pada Sistem Operasi
Sumber: Silberschatz,et.al, Operating System Concepts,6th e, .2003, New York:John Wiley & Son.Inc, halaman 77
Sebuah lapisan adalah implementasi dari objek abstrak yang merupakan enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut. Keuntungan utama dengan sistem ini adalah modularitas. Pendekatan ini mempermudah debug dan verifikasi sistem. Lapisan pertama bisa di debug tanpa mengganggu sistem yang lain karena hanya menggunakan perangkat keras dasar untuk implementasi fungsinya. Bila terjadi error saat debugging sejumlah lapisan, error pasti pada lapisan yang baru saja di debug, karena lapisan dibawahnya sudah di debug.
Sedangkan menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu :
- Lapisan 0
Mengatur alokasi prosesor, pertukaran antar proses ketika interupsi terjadi atau waktu habis. Lapisan ini mendukung dasar multi-programming pada CPU - Lapisan 1
Mengalokasikan ruang untuk proses di memori utama dan pada 512 kilo word drum yang digunakan untuk menahan bagian proses ketika tidak ada ruang di memori utama - Lapisan 2
Menangani komunikasi antara masing-masing proses dan operator console. Pada lapis ini masing-masing proses secara efektif memiliki opertor console sendiri. - Lapisan 3
Mengatur peranti I/O dan menampung informasi yang mengalir dari dan ke proses tersebut. - Lapisan 4
Tempat program pengguna. Pengguna tidak perlu memikirkan tentang proses, memori, console, atau manajemen I/O. - Lapisan 5
Merupakan opertor sistem
Tabel Level pada Sistem Operasi
Sumber: Stallings, Operating Systems, 4th e, 2001, Prentice Hall, halaman 69.
- Level 1
terdiri dari sirkuit elektronik dimana objek yang ditangani adalah register memory cell, dan gerbang logika Operasi pada objek ini seperti membersihkan register atau membaca lokasi memori. - Level 2
Pada level ini adalah set instruksi pada prosesor. Operasinya adalah instruksi bahasa-mesin, seperti menambah, mengurangi, load dan store. - Level 3
Tambahan konsep prosedur atau subrutin ditambah operasi call atau return. - Level 4
Mengenalkan interupsi yang menyebabkan prosesor harus menyimpan perintah yang baru dijalankan dan memanggil rutin penanganan interupsi
- Level 5
Level ini mengenalkan ide proses dalam mengeksekusi program. Kebutuhan-kebutuhan dasar pada sistem operasi untuk mendukung proses ganda termasuk kemampuan mensuspend dan meresume proses. Hal ini membutuhkan register perangkat keras untuk menyimpan agar eksekusi bisa ditukar antara satu proses ke proses lainnya. - Level 6
Mengatasi penyimpanan sekunder dari komputer. Level ini untuk menjadwalkan operasi dan menanggapi permintaan proses dalam melengkapi suatu proses. - Level 7
Membuat alamat logis untuk proses. Level ini mengatur alamat virtual ke dalam blok yang bisa dipindahkan antara memori utama dan memori tambahan. Cara-cara yang sering dipakai adalah menggunakan ukuran halaman yang tetap, menggunakan segmen sepanjang variabelnya, dan menggunakan cara keduanya. Ketika blok yang dibutuhkan tidak ada dimemori utama, alamat logis pada level ini meminta transfer dari level 6.
- Level 8
Mengatasi komunikasi informasi dan pesan-pesan antar proses. Dimana pada level 5 disediakan mekanisme penanda yang kuno yang memungkinkan untuk sinkronisasi proses, pada level ini mengatasi pembagian informasi yang lebih banyak. Salah satu peranti yang paling sesuai adalah pipe (pipa) yang menerima output suatu proses dan memberi input ke proses lain. - Level 9
Mendukung penyimpanan jangka panjang yang disebut dengan berkas. Pada level ini, data dari penyimpanan sekunder ditampilkan pada tingkat abstrak, panjang variabel yang terpisah. Hal ini bertentangan tampilan yang berorientasikan perangkat keras dari penyimpanan sekunder - Level 10
Menyediakan akses ke peranti eksternal menggunakan antarmuka standar. - Level 11
Bertanggung jawab mempertahankan hubungan antara internal dan eksternal identifier dari sumber daya dan objek sistem. Eksternal identifier adalah nama yang bisa dimanfaatkan oleh aplikasi atau pengguna. Internal identifier adalah alamat atau indikasi lain yang bisa digunakan oleh level yang lebih rendah untuk meletakkan dan mengontrol objek. - Level 12
Menyediakan suatu fasilitator yang penuh tampilan untuk mendukung proses. Hal ini merupakan lanjutan dari yang telah disediakan pada level 5. Pada level 12, semua info yang dibutuhkan untuk manajemen proses dengan berurutan disediakan, termasuk alamat virtual di proses, daftar objek dan proses yang berinteraksi dengan proses tersebut serta batasan interaksi tersebut, parameter yang harus dipenuhi proses saat pembentukan, dan karakteristik lain yang mungkin digunakan sistem operasi untuk mengontrol proses. - Level 13
Menyediakan antarmuka dari sistem operasi dengan pengguna yang dianggap sebagai shell atau dinding karena memisahkan pengguna dengan sistem operasi dan menampilkan sistem operasi dengan sederhana sebagai kumpulan servis atau pelayanan.
- Perangkat keras
lebih berhubungan kepada perancang sistem. Lapisan ini mencakup lapisan 0 dan 1 menurut Tanenbaum, dan level 1 sampai dengan level 4 menurut Stallings. - Sistem operasi
lebih berhubungan kepada programmer. Lapisan ini mencakup lapisan 2 menurut Tanenbaum, dan level 5 sampai dengan level 7 menurut Stallings. - Kelengkapan
lebih berhubungan kepada programmer. Lapisan ini mencakup lapisan 3 menurut Tanenbaum, dan level 8 sampai dengan level 11 menurut Stallings. - Program aplikasi
lebih berhubungan kepada pengguna aplikasi komputer. Lapisan ini mencakup lapisan 4 dan lapisan 5 menurut Tanebaum, dan level 12 dan level 13 menurut Stallings.
Sumber: Stallings, Operating Systems, 4th e, 2001, Prentice Hall, halaman 46.
Salah satu kesulitan besar dalam sistem terlapis disebabkan karena sebuah lapisan hanya bisa menggunakan lapisan-lapisan dibawahnya, misalnya : backing-store driver, normalnya diatas penjadwal CPU sedangkan pada sistem yang besar, penjadwal CPU punya informasi tentang proses yang aktif yang ada di memori. Oleh karena itu, info ini harus dimasukkan dan dikeluarkan dari memori, sehingga membutuhkan backing-store driver dibawah penjadwal CPU. Kesulitan lainnya adalah paling tidak efisien dibandingkan tipe lain. Ketika pengguna mengeksekusi I/O , akan mengeksekusi lapisan I/O, lapisan manajemen memori, yang memanggil lapisan penjadwal CPU
Mikrokernel
Metode ini menyusun sistem operasi dengan menghapus semua komponen yang tidak esensial dari kernel, dan mengimplementasikannya sebagai program sistem dan level pengguna. Hasilnya kernel yang lebih kecil. Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan utnuk fasilitas komunikasi.Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space. Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel.
Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga. Beberapa sistem operasi yang menggunakan metode ini adalah TRU64 UNIX, MacOSX, dan QNX.
Mesin Virtual, Desain Sistem dan Implementasinya, dan System Generation
Mesin Virtual
Pada dasarnya, sistem komputer dibangun atas lapisan-lapisan(layers). 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 physical computer.VM perangkat lunak 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. Compile 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 system akan dipengaruhi oleh pilihan perangkat keras dan jenis sistem. Kebutuhannya akan lebih sulit untuk dispesifikasikan. Kebutuhan terdiri dari target user dan target sistem. User 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 Microkernel-based 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 problem. 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 mendesign, 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 peripheral. 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?
Tidak ada komentar:
Posting Komentar