11-Perancangan sistem operasi - Elista

advertisement
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
Download