1 PERANCANGAN SISTEM OPERASI Catur iswahyudi 2 Pokok Bahasan • Struktur Sistem Operasi • Komponen Sistem Operasi • Layanan Sistem Operasi • Sistem Call • Sistem Program • Struktur Sistem Operasi • Mesin Virtual • Perancangan Sistem Operasi • Pendahuluan • Perancangan Antarmuka • Implementasi • Kinerja • Contoh 3 Kompetensi Setelah mempelajari materi ini, mahasiswa diharapkan mampu: • Memahami komponen pada sistem operasi, manajemen dan layanan pada sistem operasi • Mengetahui struktur sistem operasi • Memahami perancangan sistem operasi 4 5 Pengantar • An operating system provides the environment within which programs are executed • The design of a new operating system is a major task. It is important that the goals of the system be well defined before the design begins. • These goals form the basis for choices among various algorithms and strategies. 6 • We can view an operating system from several vantage points. One view focuses on the services that the system provides; another, on the interface that it makes available to users and programmers; a third, on its components and their interconnections. • In this chapter, we explore all three aspects of operating systems, showing the viewpoints of users, programmers, and operating system designers 7 STRUKTUR SISTEM OPERASI 8 Komponen Sistem • Sistem operasi terdiri dari beberapa komponen, antara lain : • manajemen proses, • manajemen memori utama, • manajemen file, • manajemen sistem I/O, • manajemen penyimpan sekunder, • sistem jaringan, • sistem proteksi, • sistem command interpreter 9 10 Manajemen Proses • Proses adalah program yang sedang dieksekusi. Sebuah proses memerlukan sumber daya (resource) tertentu seperti waktu CPU, memori, file dan perangkat I/O untuk menyelesaikan tugasnya. • Untuk mengatur proses yang ada, SO bertanggung jawab pada aktIfitas-aktifitas yang berhubungan dengan manajemen proses berikut : • Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem. • Menghentikan proses sementara dan melanjutkan proses. • Menyediakan kelengkapan mekanisme untuk sinkronisasi proses dan komunikasi proses. 11 Manajemen Memori Utama • Memori utama atau biasanya disebut dengan memori adalah sebuah array besar berukuran word atau byte, dimana setiap array tersebut mempunyai alamat tertentu. • Memori adalah penyimpan yang dapat mengakses data dengan cepat yang digunakan oleh CPU dan perangkat I/O. • Memori adalah perangkat penyimpan volatile. Isi memori akan hilang apabila terjadi kegagalan sistem. 12 Untuk mengatur memori, sistem operasi bertanggung jawab pada aktifitas manajemen memori sebagai berikut : • Menjaga dan memelihara bagian-bagian memori yang sedang digunakan dan dari yang menggunakan. • Memutuskan proses-proses mana saja yang harus dipanggil ke memori jika tersedia ruang di memori. • Mengalokasikan dan mendealokasikan ruang memori jika diperlukan 13 Manajemen File • File adalah kumpulan informasi yang saling berhubungan yang sudah didefinisikan oleh pembuatnya (user) Biasanya, file berupa program (baik dalam bentu source maupun object) dan data. • Untuk mengatur file, sistem operasi bertanggung jawab pada aktifitas-aktifitas yang berhubungan dengan manajemen file sebagai berikut : • Pembuatan dan penghapusan file. • Pembuatan dan penghapusan direktori. • Primitif-primitif yang mendukung untuk manipulasi file dan direktori. • Pemetaan file ke memori sekunder. • Backup file ke media penyimpanan yang stabil (nonvolatile). 14 Manajemen I/O Sistem operasi bertanggung-jawab pada aktifitas-aktifitas sistem I/O sebagai berikut: • Sistem buffer-caching. • Antarmuka device-driver secara umum. • Driver untuk device hardware-hardware tertentu. 15 Manajemen Penyimpan Sekunder • Karena memori utama (primary storage) bersifat volatile dan terlalu kecil untuk mengakomodasi semua data dan program secara permanen, sistem komputer harus menyediakan penyimpan sekunder (secondary storage) untuk backup memori utama. • Beberapa sistem komputer modern menggunakan disk untuk media penyimpan on-line, baik program maupun data. • Sistem operasi bertanggung jawab pada aktifitas-aktifitas manajemen penyimpan sekunder sebagai berikut: • Pengaturan ruang bebas. • Alokasi penyimpanan. • Penjadwalan disk 16 Sistem Jaringan (terdistribusi) • Sistem terdistribusi adalah kumpulan prosessor yang tidak menggunakan memori atau clock bersama-sama. Setiap prosessor mempunyai local memory sendiri. • Prosessor-prosessor pada sistem dihubungkan melalui jaringan komunikasi. Komunikasi dilakukan dengan menggunakan protocol • Sistem terdistribusi memungkinkan user untuk mengakses sumber daya (resource) yang beragam. Dengan mengakses sumber daya yang dapat digunakan bersama-sama tersebut akan memberikan keuntungan dalam : • Meningkatkan kecepatan komputasi • Meningkatkan ketersediaan data • Meningkatkan kehandalan sistem 17 Sistem Proteksi • Proteksi adalah suatu mekanisme untuk mengontrol akses oleh program, proses atau user pada sistem maupun resource dari user. • Mekanisme sistem proteksi yang harus disediakan sistem meliputi : • Membedakan antara penggunaan yang sah dan yang tidak sah. • Menentukan kontrol yang terganggu. • Menetapkan cara pelaksanaan proteksi. 18 Sistem Command Interpreter Beberapa perintah yang dimasukkan ke sistem operasi menggunakan pernyataan kontrol yang digunakan untuk • Manajemen dan pembuatan proses • Penangananan I/O • Manajemen penyimpan sekunder • Manajemen memori utama • Akses sistem file • Proteksi • Jaringan 19 • Program yang membaca dan menterjemakan pernyataan kontrol disebut dengan command-line intepreter (CLI) atau shell pada UNIX dan Linux. • Fungsinya adalah untuk mengambil dan mengeksekusi pernyataan perintah berikutnya. 20 Layanan SO • Sistem operasi menyediakan layanan untuk programmer sehingga dapat melakukan pemrograman dengan mudah. a. Eksekusi Program. Sistem harus dapat memanggil program ke memori dan menjalankannya. Program tersebut harus dapat mengakhiri eksekusinya dalam bentuk normal atau abnormal (indikasi error). b. Operasi-operasi I/O. Pada saat running program kemungkinan dibutuhkan I/O, mungkin berupa file atau peralatan I/O. Agar efisien dan aman, maka user tidak boleh mengontrol I/O secara langsung, pengontrolan dilakukan oleh sistem operasi. 21 c. Manipulasi sistem file. Kapabilitas program untuk membaca, menulis, membuat dan menghapus file. d. Komunikasi. Komunikasi dibutuhkan jika beberapa proses yang sedang dieksekusi saling tukar informasi. Penukaran informasi dapat dilakukan oleh beberapa proses dalam satu komputer atau dalam komputer yang berbeda melalui sistem jaringan. Komunikasi dilakukan dengan cara berbagi memori (shared memory) atau dengan cara pengiriman pesan (message passing). e. Mendeteksi kesalahan. Sistem harus menjamin kebenaran dalam komputasi dengan melakukan pendeteksian error pada CPU dan memori, perangkat I/O atau pada user program. 22 Beberapa fungsi tambahan yang ada tidak digunakan untuk membantu user, tetapi lebih digunakan untuk menjamin operasi sistem yang efisien, yaitu : • Mengalokasikan sumber daya (resource). Sistem harus dapat mengalokasikan resource untuk banyak user atau banyak job yang dijalanan dalam waktu yang sama. • Akuntansi. Sistem membuat catatan daftar berapa resource yang digunakan user dan resource apa saja yang digunakan untuk menghitung secara statistik akumulasi penggunaan resource. • Proteksi. Sistem operasi harus menjamin bahwa semua akses ke resource terkontrol dengan baik. 23 System Calls • System call menyediakan antarmuka antara program yang sedang berjalan dengan sistem operasi. System call biasanya tersedia dalam bentuk instruksi bahasa assembly. Pada saat ini system call dapat langsung dibuat pada bahasa tingkat tinggi seperti bahasa C dan C++. • Terdapat 3 (tiga) metode yang umum digunakan untuk melewatkan parameter antara program yang sedang berjalan dengan SO, yaitu : • Melewatkan parameter melalui register. • Menyimpan parameter pada tabel yang disimpan di memori dan alamat tabel tersebut dilewatkan sebagai parameter di register • Push (menyimpan) parameter ke stack oleh program dan pop (mengambil) isi stack yang dilakukan oleh SO. 24 25 • Pada dasarnya System call dapat dikelompokkan dalam 5 kategori : 1. Kontrol Proses • Mengakhiri (end) dan membatalkan (abort); • Mengambil (load) dan eksekusi (execute); • Membuat dan mengakhiri proses; • Menentukan dan mengeset atribut proses; • Wait for time; • Wait event, signal event; • Mengalokasikan dan membebaskan memori. 26 • Contoh: Sistem operasi pada MS-DOS menggunakan sistem singletasking yang memiliki command interpreter yang akan bekerja pada saat start. • Karena singletasking, maka akan menggunakan metode yang sederhana untuk menjalankan program dan tidak akan membuat proses baru. • Sistem operasi UNIX dapat menjalankan banyak program 27 28 2. Manipulasi File • Membuat dan menghapus file; • Membuka dan menutup file; • Membaca, menulis, dan mereposisi file; • Menentukan dan mengeset atribut file; 3. Manipulasi Device • Meminta dan mmebebaskan device; • Membaca, menulis, dan mereposisi file; • Menentukan dan mengeset atribut device; 29 4. Informasi Lingkungan • Mengambil atau mengeset waktu atau tanggal; • Mengambil atau mengeset sistem data; • Mengambil atau mengeset proses, file atau atribut-atribut device; 5. Komunikasi • Membuat dan menghapus sambungan komunikasi; • Mengirim dan menerima pesan; • Mentransfer satus informasi; 30 Ada 2 model komunikasi: • Message-passing model. Informasi saling ditukarkan melalui fasilitas yang telah ditentukan oleh sistem operasi (Gambar 2-4a). • Shared-memory Model. Proses-proses menggunakan map memory untuk mengakses daerah-daerah di memori dengan proses-proses yang lain (Gambar 2-4b). 31 32 33 34 System Program • System program menyediakan lingkungan yang nyaman untuk pengembangan dan eksekusi program. Kebanyakan user melihat SO yang didefinisikan oleh system program dan bukan system call sebenarnya. • System program dapat dibagi menjadi beberapa kategori: • Manipulasi File. Meliputi: membuat, menghapus mengcopy, rename, print, dump, list pada file dan direktori. • Status Informasi. Meliputi: tanggal, waktu (jam, menit, detik), penggunaan memori atau disk space, banyaknya user. • Modifikasi File. Ada beberapa editor yang sanggup digunakan sebagai sarana untuk menulis atau memodifikasi file yang tersimpan dalam disk atau tape. • Bahasa Pemrograman yang mendukung. Meliputi: Compiler, assembler, dan interpreter untuk beberapa bahasa pemrograman (seperti: Fortran, Cobol, Pascal, Basic, C, dan LISP). 35 • Pemanggilan dan Eksekusi Program. Pada saat program dicompile, maka harus dipanggil ke memori untuk dieksekusi. Suatu sistem biasanya memiliki absolute loader, melokasikan loader, linkage editor, dan overlay loader. Juga dibutuhkan debugging sistem untuk bahasa tingkat tinggi. • Komunikasi. Sebagai mekanisme untuk membuat hubungan virtual antar proses, user, dan sistem komputer yang berbeda. • Program-program aplikasi. Sistem operasi harus menyokong program-program yang berguna untuk menyelesaikan permasalahan secara umum, atau membentuk operasi-operasi secara umum, seperti kompiler, pemformat teks, paket plot, sistem basis data, spreadsheet, paket analisis statistik, dan games. 36 Struktur SO • Sistem komputer modern yang semakin komplek dan rumit memerlukan sistem operasi yang dirancang dengan sangat hati-hati agar dapat berfungsi secara optimum dan mudah untuk dimodifikasi. 37 MS-DOS • Sistem operasi tersebut terbatas pada perangkat keras sehingga tidak terbagi menjadi modul-modul. Meskipun MS-DOS mempunyai beberapa struktur, antar muka dan tingkatan fungsionalitas tidak terpisah secara baik. • Karena Intel 8088 tidak menggunakan dual-mode sehingga tidak ada proteksi hardware 38 39 Unix • Sistem operasi UNIX (Original UNIX) juga terbatas pada fungsi perangkat keras dan struktur yang terbatas. UNIX hanya terdiri atas 2 bagian, yaitu Kernel dan program sistem. • Kernel berada di bawah tingkat antarmuka system call dan di atas perangkat lunak secara fisik. Kernel ini berisi sistem file, penjadwalan CPU, manajemen memori, dan fungsi sistem operasi lainnya yang ada pada sistem call berupa sejumlah fungsi yang besar pada satu level. • Program sistem meminta bantuan kernel untuk memanggil fungsi-fungsi dalam kompilasi dan manipulasi file. 40 41 Layered Approach • Teknik pendekatan terlapis pada dasarnya dibuat dengan menggunakan pendekatan top-down, semua fungsi ditentukan dan dibagi menjadi komponenkomponen. • Modularisasi sistem dilakukan dengan cara memecah sistem operasi menjadi beberapa lapis (tingkat). Lapisan terendah (layer 0) adalah perangkat keras dan lapisan teratas (layer N) adalah user interface. • Dengan sistem modularisasi, setiap lapisan mempunyai fungsi (operasi) tertentu dan melayani lapisan yang lebih rendah. • Contoh sistem operasi yang menggunakan sistem ini adalah: UNIX termodifikasi, THE, Venus dan OS/2 42 • Lapisan pada struktur THE 43 44 Mesin Virtual • Konsep dasar dari mesin virtual ini tidak jauh berbeda dengan pendekatan terlapis, hanya saja konsep ini memberikan sedikit tambahan berupa antarmuka yang menghubungkan perangkat keras dengan kernel untuk tiap-tiap proses • Mesin virtual menyediakan antar muka yang identik untuk perangkat keras yang ada. Sistem operasi membuat ilusi untuk beberapa proses, masing-masing mengeksekusi prosessor untuk memori (virtual) 45 46 • Meskipun konsep ini cukup baik, namun sulit untuk diimplementasikan, ingat bahwa sistem menggunakan metode dual-mode. • Mesin virtual hanya dapat berjalan pada monitor-mode jika berupa sistem operasi, sedangkan mesin virtual itu sendiri berjalan dalam bentuk user-mode. • Konsekuensinya, baik virtual monitor-mode maupun virtual user-mode harus dijalankan melalaui physical user mode. • Hal ini menyebabkan adanya transfer dari user-mode ke monitor-mode pada mesin nyata, yang juga akan menyebabkan adanya transfer dari virtual user-mode ke virtual monitor-mode pada mesin virtual. 47 • Sumber daya (resource) dari komputer fisik dibagi untuk • • • • membuat mesin virtual. Penjadwalan CPU dapat membuat penampilan bahwa user mempunyai prosesor sendiri. Spooling dan system file dapat menyediakan card reader virtual dan line printer virtual. Terminal time sharing pada user melayani sebagai console operator mesin virtual. Contoh sistem operasi yang memakai mesin virtual adalah IBM VM system. 48 PERANCANGAN SO • In this section, we discuss problems we face in designing and implementing an operating system. • There are, of course, no complete solutions to such problems, but there are approaches that have proved successful. 49 Pendahuluan • Merancang sebuah sistem operasi merupakan hal yang sulit. Merancang sebuah sistem sangat berbeda dengan merancang sebuah algoritma. • Mengapa ?? • keperluan yang dibutuhkan oleh sebuah sistem sulit untuk didefinisikan secara tepat, • kompleks dan sebuah sistem memiliki struktur internal dan antarmuka internal yang lebih banyak, • ukuran dari kesuksesan dari sebuah sistem sangat abstrak. 50 Problems • The first problem in designing a system is to define goals and specifications. • At the highest level, the design of the system will be affected by the choice of hardware and the type of system: batch, time sharing, single user, multiuser, distributed, real time, or general purpose • Beyond this highest design level, the requirements may be much harder to specify. The requirements can, however, be divided into two basic groups: user goals and system goals. 51 • User goals. Users want certain obvious properties in a system. The system should be convenient to use, easy to learn and to use, reliable, safe, and fast. • System goals. The system should be easy to design, implement, and maintain; and it should be flexible, reliable, error free, and efficient. 52 • Sebelum kita berbicara tentang bagaimana merancang sebuah sistem operasi, akan sangat baik apabila kita tahu apa yang harus dilakukan oleh sebuah sistem operasi. • Hal tersebut dapat dijabarkan menjadi tiga, yaitu: abstraksi hardware, manajemen sumber daya dan user interface. 53 Abstraksi Hardware • Abstraksi Hardware adalah proses penyederhanaan dan penyembunyian informasi. • Inti dari abstraksi hardware adalah mendapatkan hardware-hardware yang kompleks dan membuatnya sesuai untuk interface yang simple dan terdefinisi dengan baik. • Abstraksi diperlukan karena meliputi bagaimana cara untuk berhadapan dengan failure apabila device harus fault tolerant. 54 • Ada dua alasan mengapa abstraksi hardware penting: simplicity dan compatibility. • Simplicity adalah mengenali proses-proses kompleks sehingga tidak terjadi duplikasi. Proses-proses kompleks tersebut harus dilakukan satu kali, tetapi dalam sistem dimana banyak aplikasi yang melakukan proses tersebut, akan menjadi desain yang buruk apabila setiap developer aplikasi mengimplementasikan ulang proses tersebut. • Sistem operasi menyediakan media antarmuka yang lebih sederhana untuk aplikasi. 55 • Compatibility, hampir semua tujuan umum sistem operasi adalah dapat mengoperasikan semua hardware. • Akan sangat baik apabila setiap bagian kecil dari hardware yang melakukan hal yang sama berkomunikasi menurut standar interface, tidak bergantung dengan tipe hardware. • Dengan begitu, aplikasi dapat bekerja dengan tipe hardware apa saja. 56 Manajemen Sumberdaya • Sumber daya adalah istilah umum yang merujuk pada setiap komponen dari sistem yang sanggup melakukan perkerjaan. • Contohnya, processor, RAM dan disk. Sound card dan network card juga sumber daya walaupun tidak semua hardware adalah sumber daya. • Manajemen sumber daya adalah proses pemberian sumber daya kepada aplikasi untuk digunakan. Hal tersebut dilakukan dengan cara yang berbeda-beda untuk tiap sumber daya, dengan perbedaan utama terletak pada multiplexing, locking dan access control. 57 • Multiplexing adalah berbagi sebuah sumber daya antara akses-akses yang berlangsung bersamaan. • Hal ini menjadi perhatian utama untuk SO multitasking. 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 akan melakukan backup dalam waktu yang bersamaan. Locking menjamin bahwa hanya satu aplikasi saja yang mempunyai akses ke sebuah device dalam waktu yang ditentukan. 58 • Access Control. 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 59 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. • User interface merupakan aspek yang sangat modular dari perancangan sistem operasi. Dengan demikian, antarmuka pengguna dapat dipaksa ke urutan atas dari perancangan-perancangan lain dengan mudah. 60 Prinsip-prinsip Perancangan SO • Extensibility. Extensibility terkait dengan kapasitas sistem operasi untuk tetap mengikuti perkembangan teknologi komputer, sehingga setiap perubahan yang terjadi dapat difasilitasi setiap waktu. Pengembang SO 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. • Portability. Suatu sistem operasi dikatakan portable jika dapat dipindahkan dari arsitektur hardware yang satu ke yang lain dengan perubahan yang relatif sedikit. SO modern dirancang untuk portable. Keseluruhan bagian sistem ditulis dalam bahasa C dan C++. Semua kode prosesor diisolasi di DLL (Dynamic Link Library) disebut dengan abstraksi lapisan hardware. 61 • Reliability. Adalah kemampuan sistem operasi untuk mengatasi kondisi error, termasuk kemampuan sistem operasi untuk memproteksi diri sendiri dan penggunanya dari software yang cacat. SO modern menahan diri dari serangan dan cacat dengan menggunakan proteksi perangkat keras untuk memori virtual dan mekanisme proteksi perangkat lunak untuk sumber daya SO. • Security. Sistem operasi harus memberikan keamanan terhadap data yang disimpan dalam semua drive. • 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 I/O, optimized protocols untuk jaringan, grafik berbasis kernel, dan caching data sistem berkas. 62 Perencanaan • Persiapan yang diperlukan dalam merencanakan perancangan sistem operasi yaitu: 1. Memikirkan dimana nantinya SO akan dijalankan. ini dikarenakan banyaknya sistem komputer dan masingmasing sistem komputer tidak saling mendukung. 2. Memikirkan kegunaan SO tersebut. fungsi SO sebagai pelayan bagi program aplikasi yang mempunyai tujuan tertentu. Biasanya SO dirancang agar dapat menjalankan berbagai macam aplikasi. 3. Bahasa pemrograman yang akan digunakan. Tiaptiap bahasa mempunyai kekurangan dan kelebihan, tetapi bahasa apapun yang jadi pilihan nantinya haruslah sudah dikuasai dengan baik. 63 Perancangan UI • 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 3 persyaratan: sebuah antarmuka harus sederhana, sebuah antarmuka harus lengkap, dan sebuah antarmuka harus memilki kinerja yang cepat. 64 Proses Perancangan UI • Elemen-Elemen dalam perancangan antarmuka adalah • Mendefinisikan konsep. Mengumpulkan kebutuhan- kebutuhan pengguna dan mendefinisikan desain secara konseptual. • Memvalidasi konsep. Mengevaluasi konseptual desain tersebut. • Merancang. Mengevaluasi prototype. Menandai dan memperbaiki masalah-masalah yang ditemukan. • Pengembangan. Melakukan pengujian secara berkala terhadap desain yang telah dibuat dan desain yang paling terakhir dibuat. Menandai dan memperbaiki masalahmasalah yang ditemukan. 65 66 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. 67 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. 68 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. 69 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 user's memory load • Buat antarmuka konsisten 70 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. • 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. 71 Pemeliharaan Sistem • Pemeliharaan sistem sangatlah penting bagi pengguna sistem. Karena, seringkali penggunaan SO menjadi tidak aman karena alasan-alasan seperti: • Sistem terinfeksi malware aktif • Sistem berkas corrupt • Perangkat keras melemah • Untuk mencegah hal-hal tesebut, digunakanlah mOS (maintenance Operating System) yang berfungsi untuk: • Manajemen Malware yang aktif • Pemulihan data (recovery) dan perbaikan sistem berkas • Diagnosa perangkat keras. 72 Tuning • 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. 73 • Salah satu contoh tuning yang biasa kita lakukan adalah defragment. Defragmentation 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 lebi kecil tetap berada dalam singel directory, karena mereka sering kali diakses secara berurutan. 74 How to design a trusted OS • What we want in terms of security (security policies): • How to represent security policies that we want enforced. • How to represent confidentiality in a commercial environment • How to represent Conflict of Interest in a commercial environmentx • Properties that the implementation must satisfy to successfully implement the policies (security models): • Implementations are vulnerable (e.g., to programming bugs). How to make them less vulnerable? (Principles of secure design. ) • E.g., Least Privilege, Least common mechanism etc.. • What features to achieve the principles of secure design? • Access control, Trusted Path, Audit, Intrusion Detection. 75 Windows XP Architecture 76 Free BSD (Unix) 77 Linux System 78 End of Slides