untuk digunakan. Hal tersebut dilakukan dengan cara yang berbeda-beda untuk sumber daya yang berbeda, dengan perbedaan utama terletak pada multiplexing, locking dan access control.
• Multiplexing adalah berbagi sebuah sumber daya antara akses-akses yang berlangsung
bersamaan. ini adalah perhatian utama untuk multitasking sistem operasi. Banyak sumber daya dapat di share untuk menyediakan akses bagi aplikasi-aplikasi yang berbeda.
• Locking beberapa device mungkin tidak dapat di multiplexed. Contohnya, backup device tidak
dapat segera di multiplex apabila dua aplikasi mau melakukan backup dalam waktu yang bersamaan. Ini adalah error. Tetapi sistem operasi tidak seharusnya membiarkan error ini terjadi
dan berpengaruh besar pada sistem. Untuk memastikan hal ini, sistem operasi menyediakan beberapa jenis locking ketika device tidak dapat di multiplex. Locking menjamin bahwa hanya
satu aplikasi saja yang mempunyai akses ke sebuah device dalam waktu yang ditentukan.
• Access Control kadang manajemen sumber daya tidak melibatkan pemecahan masalah dari
beberapa proses pengaksesan hardware. Malahan, manajemen sumber daya melibatkan perlindungan proses dari proses lainnya. Security secara khas terimplementasikan di beberapa
bentuk sebagai bagian dari manajemen sumber daya. Access control adalah kontrol sumber daya yang disediakan oleh sistem operasi untuk menguatkan batasan-batasan security. Contohnya,
sebuah sistem operasi mungkin akan memperbolehkan sebuah aplikasi untuk membuat file yang secara spesifik hanya pengguna tertentu saja yang diperbolehkan untuk menggunakannya.
User Interface
Tujuan ketiga dari sistem operasi adalah untuk menyediakan beberapa jenis media tatap muka bagi pengguna untuk mempermudah mengontrol sistem dan menjalankan aplikasi-aplikasi. Tujuan ini
membawa perancangan sistem operasi jauh dari pertanyaan-pertanyaan teknis yang umumnya ada di diskusi sistem operasi dan lebih ke arah pertanyaan psikologis mengenai cara terbaik untuk
berinteraksi antara manusia dan sistem. User interface juga aspek yang sangat modular dari perancangan sistem operasi. dengan demikian, antarmuka pengguna dapat dipaksa ke urutan atas
dari perancangan-perancangan lain dengan mudah.
Adapun prinsip-prinsip dalam merancang sistem operasi adalah: 1. Extensibility.
Extensibility terkait dengan kapasitas sistem operasi untuk tetap mengikuti perkembangan teknologi komputer, sehingga setiap perubahan yang terjadi dapat difasilitasi
setiap waktu, pengembang sistem operasi modern menggunakan arsitektur berlapis, yaitu struktur yang modular. Karena struktur yang modular tersebut, tambahan subsistem pada sistem operasi
dapat ditambahkan tanpa mempengaruhi subsistem yang sudah ada.
2. Portability. Suatu sistem operasi dikatakan portable jika dapat dipindahkan dari arsitektur
hardware yang satu ke yang lain dengan perubahan yang relatif sedikit. Sistem operasi modern dirancang untuk portability. Keseluruhan bagian sistem ditulis dalam bahasa C dan C++. Semua
kode prosesor diisolasi di DLL Dynamic Link Library disebut dengan abstraksi lapisan hardware.
3. Reliability. Adalah kemampuan sistem operasi untuk mengatasi kondisi error, termasuk
kemampuan sistem operasi untuk memproteksi diri sendiri dan penggunanya dari software yang cacat. Sistem operasi modern menahan diri dari serangan dan cacat dengan menggunakan
proteksi perangkat keras untuk memori virtual dan mekanisme proteksi perangkat lunak untuk sumber daya sistem operasi.
4. Security. Sistem operasi harus memberikan keamanan terhadap data yang disimpan dalam
semua drive.
5. High Performance. Sistem operasi dirancang untuk memberikan kinerja tinggi pada sistem
desktop, server sistem multi-thread yang besar dan multiprosesor. untuk memenuhi kebutuhan kinerja, sistem operasi menggunakan variasi teknik seperti asynchronous IO, optimized
protocols untuk jaringan, grafik berbasis kernel, dan caching data sistem berkas.
Untuk merancang sistem operasi diperlukan persiapan-persiapan yang matang. persiapan-persiapan yang diperlukan dalam merencanakan perancangan sistem operasi yaitu:
1. Memikirkan dimana nantinya sistem operasi akan dijalankan. ini dikarenakan banyaknya
sistem komputer dan masing-masing sistem komputer tidak saling mendukung.
2. Memikirkan kegunaan sistem operasi tersebut. fungsi sistem operasi sebagai pelayan bagi
program aplikasi dan masing-masing program aplikasi mempunyai tujuan-tujuan tertentu yang saling berbeda. disinilah perlu dipikirkan kegunaan sistem operasi yang akan dirancang. akan
tetapi, biasanya sistem operasi dirancang agar dapat menjalankan berbagai macam aplikasi. Sistem operasi ini disebut sistem operasi umum, tetapi kadang sistem operasi ditujukan bagi
aplikasi-aplikasi tertentu saja, misalnya sistem operasi database.
212
3. Bahasa pemrograman yang akan digunakan. banyak bahasa pemrograman yang dapat
digunakan untuk merancang sistem operasi dan tiap-tiap bahasa mempunyai kekurangan dan kelebihan, tetapi bahasa apapun yang jadi pilihan nantinya haruslah sudah dikuasai dengan baik.
25.2. Perancangan Antarmuka
Merancang antarmuka merupakan bagian yang paling penting dari merancang sistem. Biasanya hal tersebut juga merupakan bagian yang paling sulit, karena dalam merancang antarmuka harus
memenuhi tiga persyaratan: sebuah antarmuka harus sederhana, sebuah antarmuka harus lengkap, dan sebuah antarmuka harus memilki kinerja yang cepat.
Alasan utama mengapa antarmuka sulit untuk dirancang adalah karena setiap antarmuka adalah sebuah bahasa pemrograman yang kecil: antarmuka menjelaskan sekumpulan objek-objek dan
operasi-operasi yang bisa digunakan untuk memanipulasi objek.
Dalam proses pengembangan antarmuka, kita bisa atau mungkin saja tidak bisa memisahkannya dari seluruh proses pengembangan sebuah produk. Walaupun begitu, fokus dari dua proses tersebut
sangatlah berbeda. Dalam proses pengembangan antarmuka, fokus haruslah terletak pada elemen-elemen antarmuka dan objek-objek yang pengguna lihat dan gunakan, dibandingkan dengan
kemampuan sebuah program.
Elemen-Elemen dalam perancangan antarmuka adalah 1. Mendefinisikan konsep. Mengumpulkan kebutuhan-kebutuhan pengguna dan mendefinisikan
desain secara konseptual.
2. Memvalidasi konsep. Mengevaluasi konseptual desain tersebut. 3. Merancang.
Mengevaluasi prototype. Menandai dan memperbaiki masalah-masalah yang ditemukan.
4. Pengembangan. Melakukan pengujian secara berkala terhadap desain yang lebih dahulu dibuat
dan desain yang paling terakhir dibuat. Menandai dan memperbaiki masalah-masalah yang ditemukan.
Gambar 25.1. Empat Tahap Proses Perancangan Antarmuka
Proses yang secara rinci menggambarkan bagaimana perancangan dan pengembangan antarmuka terlihat pada gambar di atas. Empat tahap utama dalam proses tersebut adalah:
• Mengumpulkan atau menganalisa informasi dari pengguna. • Merancang Antarmuka.
• Mengembangkan Antarmuka. • Memvalidasi Antarmuka.
Proses-proses tersebut independen dari hardware dan software, sistem operasi dan peralatan yang
213
digunakan untuk merancang dan mengembangakan produk. IBM Common User Access CUA interface design guide adalah yang pertama kali mendeskripsikan proses perancangan antarmuka
secara iteratif. 1. Mengumpulkan atau Menganalisa Informasi Pengguna.
Proses perancangan antarmuka dimulai dari memahami pengguna. Sebelum merancang antarmuka, kita harus mengetahui
masalah apa yang ingin pengguna selesaikan dan bagaimana mereka melakukan pekerjaan mereka. Pengumpulan dan penganalisaan aktivitas-aktivitas pada tahap pertama ini dapat
dijabarkan dalam lima langkah: • Menentukan profil pengguna.
• Melakukan analisa terhadap task-task pengguna. • Mengumpulkan kebutuhan-kebutuhan pengguna.
• Menganalisa user environments. • Mencocokan kebutuhan tersebut dengan task.
2. Merancang Antarmuka. Dalam merancang antarmuka ada beberapa tahapan yang harus
dilalui, yaitu: • Menjelaskan kegunaan dan tujuan.
• Menetapkan icon objek, views, dan representasi visual. • Merancang objek dan jendela menu
• Memperbaiki rancangan visual.
3. Mengembangkan Antarmuka. Hal pertama yang bisa dilakukan dalam membangun antarmuka
adalah membangun prototype. Membangun prototype adalah cara yang berharga dalam membuat rancangan awal dan membuat demonstrasi produk dan penting untuk pengujian kegunaan
antarmuka. Dari prototype tersebut, perancang antarmuka dapat mulai membangun antarmuka secara utuh. Ketika membuat prototype, sangat penting untuk diingat bahwa prototype harus
dapat di buang setelah digunakan disposable. Jangan takut untuk membuang sebuah prototype. Tujuan dalam membuat prototype adalah untuk mempercepat dan mempermudah dalam
memvisualisasikan desain alternatif dan konsep, bukan untuk membangun kode yang akan digunakan sebagai bagian dari produk.
4. Melakukan Validasi Terhadap Antarmuka. Evaluasi kegunaan adalah bagian penting dari
proses pengembangan, untuk mengetahui bagaimana tanggapan pengguna terhadap antarmuka yang telah dibuat. Evaluasi ini akan digunakan untuk memperbaiki kekurangan pada antarmuka
yang telah dibangun. Aturan emas dalam perancangan antarmuka: • Buat Pengguna menguasai antarmuka.
• Kurangi users memory load • Buat antarmuka konsisten
25.3. Implementasi
Rancangan Sistem
Desain sistem memiliki masalah dalam menentukan tujuan dan spesifikasi sistem. Pada level paling tinggi, desain sistem akan dipengaruhi oleh pilihan hardware dan jenis sistem. Kebutuhannya akan
lebih sulit untuk dispesifikasikan. Kebutuhan terdiri dari user goal dan system goal. User menginginkan sistem yang nyaman digunakan, mudah dipelajari, dapat diandalkan, aman, dan cepat.
Namun itu semua tidaklah signifikan untuk desain sistem. Orang yang mendesain ingin sistem yang mudah didesain, diimplementasikan, fleksibel, dapat dipercaya, bebas error, efisien. Sampai saat ini
belum ada solusi yang tepat untuk menentukan kebutuhan dari sistem 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 sistem, 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.
214
25.4. Kinerja
Kinerja sebuah sistem ditentukan oleh komponen-komponen yang membangun sistem tersebut. Kinerja yang paling diinginkan ada pada sebuah sistem adalah bebas error, cepat dan fault-tolerant.
Fault-tolerant
Beberapa sistem perlu untuk tetap berjalan apapun yang terjadi. Sistem-sistem ini didesain untuk memulihkan secara sempurna dari masalah hardware dan tetap berjalan. Maka dari itu,
fault-tolerant sistem operasi adalah menyembunyikan kegagalan hardware dari aplikasi yang sedang menggunakan hardware tersebut.
25.5. Pemeliharaan Sistem
Pemeliharaan sistem sangatlah penting bagi pengguna sistem. Karena, seringkali penggunaan sistem operasi menjadi tidak aman karena alasan-alasan seperti:
• Sistem terinfeksi malware aktif • Sistem berkas corrupt
• Perangkat keras melemah
Untuk mencegah hal-hal tesebut, digunakanlah mOSmaintenance Operating system yang berfungsi untuk:
• Manajemen Malware yang aktif • Pemulihan data recovery dan perbaikan sistem berkas
• Diagnosa perangkat keras.
mOS tidak menulis ke disk atau menjalankan kode apapun dari disk, memiliki akses langsung ke perangkat keras, dan hanya membutuhkan sedikit bagian dari perangkat keras untuk bekerja dengan
sempurna. Selain dengan mOS, kita juga dapat memelihara sistem pada windows dengan cara-cara yang sederhana seperti:
• Jangan pernah mematikan power sampai sistem benar-benar sudah shutdown. • Buatlah backup data-data yang penting.
• Lakukan defragment setidaknya satu bulan sekali • Sisakan sedikitspace kosong di partisi tempat sistem operasi berada.
• Gunakan firewall jika anda terkoneksi dengan jaringan. • Lakukan pengecekan virus secara rutin.
25.6. Tunning
Tuning dengan tujuan optimisasi kinerja adalah proses memodifikasi sebuah sistem untuk membuat beberapa aspek bekerja lebih efisien atau menggunakan sumber daya lebih sedikit. Dengan kata lain,
tuning berarti mencari titik kelemahan dari suatu sistem dan memperbaikinya agar bisa jauh lebih baik lagi.
Tuning akan terpusat pada meningkatkan hanya satu atau dua aspek dari kinerja: waktu eksekusi, penggunaan memori, kapasitas disk, bandwith, konsumsi power, atau sumber daya lainnya. Namun
peningkatan tersebut diimbangi dengan penurunan kinerja lainnya. Misalnya memperbesar ukuran cache mempercepat kinerja, namun meningkatkan penggunaan memori.
Salah satu contoh tuning yang biasa kita lakukan adalah defragment. Defragmentation atau defragging adalah proses mengurangi jumlah fragmentasi dalam file system. Defragmentation
menyusun kembali konten-konten dalam disk dan menyimpan bagian-bagian kecil dari setiap file untuk tetap saling berdekatan. Defragmentation juga berusaha untuk membuat area untuk free space
lebih besar dengan menggunakan compaction untuk menghalangi kembalinya fragmentasi. Beberapa defragmenter juga mencoba untuk menjaga file-file yang lebih kecil tetap berada dalam
singel directory, karena mereka sering kali diaskes secara berurutan.
Selain untuk
optimasi kinerja,
Adalah mungkin
untuk mendesain,
mengkode, dan
megimplementasikan sebuah sistem operasi khusus untuk satu mesin saja. Pada umumnya sistem operasi dirancang untuk dapat dijalankan pada berbagai jenis mesin, sistemnya harus
215
dikonfigurasikan untuk setiap komputer. Proses ini terkadang disebut sebagai System Generation. Program Sysgen mendapatkan informasi mengenai konfigurasi khusus tentang sistem perangkat
keras dari sebuah data, antara lain sebagai berikut: • CPU apa yang digunakan, pilihan yang diinstall.
• Berapa banyak memori yang tersedia • Peralatan yang tersedia
• Sistem operasi pilihan apa yang diinginkan atau parameter apa yang digunakan.
25.7. Trend
Trend sistem operasi sangat dipengaruhi oleh penilaian dari pengguna sistem operasi. Pengguna biasanya lebih memilih sistem operasi yang user friendly, performanya bagus, tidak sering
mengalami error, tampilannya cantik, dan lain lain. Trend sistem operasi sampai saat ini ternyata masih dikuasai oleh keluarga Windows. Namun bisa diprediksi bahwa trend sistem operasi pada
tahun-tahun mendatang akan berkaitan dengan sistem operasi yang bersifat Open Source. Dalam sebuah artikel di web, Linus Torvalds mengatakan bahwa sistem operasi yang open source
memungkinkan penggunanya untuk menciptakan sistem yang terbaik sesuai dengan kebutuhan mereka masing-masing.
25.8. Rangkuman
Sebelum merancang sistem operasi ada baiknya melakukan persiapan-persiapan terlebih dahulu. Persiapan-persiapan tersebut antara lain: memikirkan dimana nantinya sistem operasi akan
dijalankan, memikirkan kegunaan sistem operasi tersebut dan menentukan bahasa pemrograman yang akan digunakan. Selain itu dalam merancang sistem operasi juga sebaiknya berpegangan
dengan prinsip-prinsip merancang sistem operasi, yaitu: extensibility, portability, reliability, security dan high performance.
Pemeliharaan sistem operasi dilakukan untuk menjaga agar sistem operasi tetap stabil dan dapat berkerja sebagaimana mestinya.
Trend sistem operasi pada tahun-tahun mendatang akan berkaitan dengan sistem operasi yang bersifat Open Source. Dalam sebuah artikel di web, Linus Torvalds mengatakan bahwa sistem
operasi yang open source memungkinkan penggunanya untuk menciptakan sistem yang terbaik sesuai dengan kebutuhan mereka masing-masing.
Rujukan
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley Sons.
[WEBWiki2007] Wikipedia.
2007. Page
Replacement Algortihm
http:en.wikipedia.orgwikiPage_replacement_algorithm . Diakses 4 April 2007. [WEBCDSmith] Chris Smith. 2007. The Common Mans Guide to Operating System Design
http:cdsmith.twu.netprofessionalosdesign.html . Diakses 9 Mei 2007. [WEBQuirke2004]
Chris Quirke.
2004. What
is a
Maintenance OS?
http:cquirke.mvps.orgwhatmos.htm . Diakses 9 Mei 2007. [BudiHalusSantoso2005] Budi Halus Santoso dan Jubilee Enterprise. 2005. Perancangan Sistem
Operasi. First Edition. ANDI Yogyakarta. [Internet News] Internet News. 2007. Linux Creator: Operating Systems Will Follow Internet
Trends http:www.internetnews.comdev-newsarticle.php212891 . Diakses 10 Mei 2007. [WEBWiki2007]
Wikipedia. 2007.
Optimization computer
science http:en.wikipedia.orgwikiOptimization_computer_science . Diakses 10 Mei 2007.
216