1. Apakah keuntungan dari layer approach pada sistem design? Dan apakah kerugiannya? Keuntungan :
Informasi hanya disimpan dimana ia dibutuhkan dan diakses hanya melalui cara tertentu, jadi bugs yang menganggu data tersebut terbatas pada modul tertentu atau layer.
Modularitas. Layer dipilih sedemikian rupa sehingga masing – masing menggunakan fungsi dan layanan hanya dari layer yang tingkatannya lebih rendah. Hal ini memudahkan debugging dan verifikasi sistem.
Sistem lebih mudah untuk debug dan memodifikasi efek perubahan hanya pada porsi tertentu dari kode, dan programmer tidak perlu mengetahui detail dari layer lainnya.
Kerugian: Careful definition dari layer, karena sebuah layer dapat digunakan hanya oleh layer di bawahnya.
2. Sebutkan 5 servis/layanan yang diberikan oleh sistem operasi, jelaskan bagaimana masing-masing memberikan kemudahan kepada pengguna. Jelaskan juga dalam kasus apa yang tidak mungkin untuk user-level program untuk menyediakan layanan ini.
Eksekusi program, sistem operasi menjadwalkan kepentingan pengguna, layanan ini tidak dapat ditangani pengguna karena kita membutuhkan akses ke hardware.
Operasi I/O, menyediakan antarmuka pengguna dengan hardware, pengguna tidak perlu mengetahui akses data fisik pada mesin.
Manupulasi sistem file, sistem operasi menangani akses karena kompleksitasnya, pengguna tidak perlu khawatir tentang bagaimana mengakses dan memperbaharui tabel sistem file.
Komunikasi, pada kasus pemetaan memori hal ini menjadi kelebihan sistem operasi untuk menagani akses dan mengatur wilayah memori. Pengguna tidak dapat mengakses sistem untuk berbagi map.
Pendeteksian error, jika terdapat beberapa error pada level tingkat bawah, pengguna diberi notifikasi untuk selanjutnya mengambil tindakan. Jika tidak terdapat memori tersisa pada heap, pengguna tidak dapat melakukan hal ini.
3. Apakah keuntungan dari microkernel approach pada system design?
Karena sistem adalah modular, sangat mudah untuk mengekspansi dan mengekstensi sistem operasi. Keamanan dan reliabilitas juga lebih baik karena kebanyakan layanan berjalan sebagai pengguna.
Penanganan lebih mudah, patch dapat dicoba melalui cara yang berbeda, lalu di swapping pada pengambil alihan produksi.
Waktu pengembangan yang cepat, software baru dapat dicoba tanpa harus me – reboot kernel.
Lebih tangguh, jika salah satu menjadi bermasalah, dimungkinkan untuk menggantinya dengan operasi mirror.
4. Jelaskan perbedaan antara preemptive and nonpreemptive scheduling. Penjadwalan Preemptive
Penjadwalan Preemptive adalah kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini memungkinkan sistem untuk menjamin bahwa setiap proses mendapat slice
waktu operasi, dan membuat sistem lebih cepat merespon event luar.
Penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem menentukan proses mana yang dieksekusi.
Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT adalah beberapa contoh sistem operasi yang menerapkan penjadwalan Preemptive.
Lama waktu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang berjalan selanjutnya.
Penjadwalan NonPreemptive
Penjadwalan Non Preemptive ialah penjadwalan dimana sistem operasi tidak melakukan context switch dari proses yang sedang berjalan ke proses lain (proses yang berjalan tidak bisa di-
interupt).
CPU menjaga proses sampai proses pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang digunakan untuk platformshardware tertentu, karena tidak memerlukan hardware khusus. Perbedaan Preemptive dan NonPreemptive
Preemptive:
1. Algoritma preemptive dijalankan oleh penghitungan yang diprioritaskan. 2. Proses dengan prioritas tertinggi menjadi satu – satunya yang memakai CPU. 3. Jika ada proses baru yang prioritasnya lebih tinggi, proses yang terdapat pada CPU
4. context_switch() dipanggil walaupun proses diberhentikan oleh timer interrupt.
Non-Preemptive:
1. Algoritma non – preemptive hanya mengizinkan satu proses.
2. Proses tidak dihilangkan dari CPU sampai waktu berjalannya selesai. 3. context_switch() dipanggil ketika proses diberhentikan atau diblok. 5. Apakah yang membedakan PCS dan SCS scheduling?
PCS (Process Contention Scope), pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP ( lightweight process) yang tersedia, jadwal kompetisi berada dalam proses.
PTHREAD_SCOPE_PROCESS schedules threads using PCS scheduling
SCS (System Contetntion Scope), memilih satu dari banyak thread, lalu menjadwalkannya ke
thread tertentu (CPU / Kernel), kompetisi berada di semua thread sistem. PTHREAD_SCOPE_SYSTEM schedules threads using SCS scheduling.
6. Berikan alasan mengapa Solaris, Windows XP, and Linux mengimplementasikan mekanisme multiple locking. Jelaskan keadaan dimana mereka menggunakan spinlock, mutexes, semaphores, adaptive mutexes, dan condition variables. Pada setiap kasus, jelaskan mengapa mekanisme tersebut dibutuhkan.
Sistem-sistem operasi tersebut menyediakan mekanisme penguncian yang berbeda tergantung pada kebutuhan pengembang sistem operasi tersebut. Spinlocks berguna untuk sistem
multiprosesor di mana thread dapat berjalan dalam sebuah busy-loop (untuk jangka waktu yang pendek) dibandingkan jika menimbul overhead dari masukkan ke dalam sleep queue. Mutexes berguna untuk mengunci sumber daya. Solaris 2 menggunakan mutexes adaptif, berarti bahwa mutex itu diimplementasikan dengan kunci spin pada mesin multiprosesor. Semaphores dan kondisi variabel lebih tepat digunakan untuk sinkronisasi ketika sumber daya dibutuhkan untuk jangka waktu yang panjang, karena spinning tidak efisien untuk durasi yang panjang.
7. Jelaskan mengenai konsep dari transaction atomicity!
Transaksi atomik adalah transaksi yang dilakukan secara keseluruhan atau tidak dilakukan sama sekali. Keatomikan (atomicity) merupakan komponen penting dalam menghindari bahaya race condition. Operasi atomik dijamin hanya ada dua kemungkinan keluaran dan saat banyak proses berusaha melakukan operasi atomik dapat dipastikan hanya satu yang berhasil (meskipun
semuanya dapat gagal).
Keatomikan diimplementasi dengan menyediakan mekanisme yang membuat salinan data sebelum dilakukan perubahan. Bila diperlukan kondisi diubah ke kondisi terakhir dari transaksi yang berhasil. Pada tingkat hardware diperlukan instruksi TestAndSet dan operasi
yang terjadi saat transaksi dijalankan dimana transaksi harus selesai dijalankan barulah interupsi dilayani.
Transaksi harus memenuhi beberapa syarat. Syarat ini disebut ACID properties dan harus terpenuhi agar saat terjadi system crash, pemulihan transaksi dapat dilakukan. ACID properties
terdiri dari:
1. Atomicity . Transaksi dijalankan keseluruhan atau tidak dijalankan sama sekali.
2. Consistency . Transaksi mengubah sistem sebuah state konsisten menjadi state konsisten lain.
3. Isolation . Transaksi yang belum selesai tidak dapat menunjukkan hasilnya ke transaksi lain sebelum commit.
4. Durability . Ketika transaksi commit, sistem menjamin hasil operasi akan tetap, bahkan ketika kegagalan subsequent.
Dengan sifat atomicity, transaksi dipastikan dijalankan secara keseluruhan atau jika terjadi
system crash seluruh data yang telah diubah transaksi dikembalikan ke state awal sebelum transaksi dilakukan. State awal yang konsisten diubah menjadi state lain yang juga konsisten setelah sebuah transaksi sukses dijalankan dengan asumsi tidak terjadi interleave antar transaksi. Oleh karena itu diperlukan consistency pada transaksi. Dengan sifat isolation dapat juga
dikatakan setiap schedule bersifat serializable. Setiap kali transaksi berhasil dijalankan akan dijamin hasil update data terjaga.
8. Berikan 3 contoh dari deadlocks yang tidak ada hubungannya dengan lingkungan sistem komputer!
Kasus deadlock pada lalu lintas di jembatan.
Pada sebuah jembatan kecil (yang hanya bisa dilewati oleh sebuah kendaraan roda 4 / mobil) secara kebetulan pada suatu waktu terdapat sederetan mobil dari dua arah (kiri-kanan) berlawanan melintasi jembatan tersebut. Hal ini menyebabkan kemacetan panjang hingga beberapa kilometer. Karena sama2 memiliki kepentingan (menuju tujuan masing2) maka sederetan mobil tersebut (baik yang berasal dari arah kiri maupun kanan) tidak ada yang mau mengalah. Sekalipun ada yang mau mengalah, tidak ada jalan keluar, karena kemacetan / barisan mobil yang terbentuk sudah terlalu panjang, inilah yang disebut starvation akibat terjadinya deadlock (jalan buntu).
Deadlock pada kasus di persimpangan
Di sebuah persimpangan jalan yang terletak di Ciledug, pada suatu saat system yang mengatur lalu lintas di persimpangan tersebut mangalami error. Sedangkan kita tahu bahwa persimpangan di daerah tersebut tidak pernah sepi dengan kendaraan dengan barbagai jenis kendaraan (motor, mobil, truck, bus, dll). Semua kendaraan yang terjebak dalam kondisi tersebut tidak mampu berbuat banyak kecuali berdiam di tempat. Karena apabila ssatu kendaraan saja maju atau mundur maka kecelakaan tidak bisa dihindarkan.
Pada sebuah rumah yang dihuni oleh sepasang suami istri yang memiliki berat badan lebih (keduanya sama2 gemuk) kebetulan pintu untuk keluar rumah hanya bisa dilewati oleh salah satu dari dua orang tersebut. Pada suatu pagi di saat yang bersamaan, suami istri tersebut sama2 ada keperluan mendadak dan sangat mendesak hingga mengharuskan keduanya untuk keluar rumah di saat itu juga. Dari kedua manusia berbadan besar tersebut sama2 keras kepala tidak ada yang mau merelakan salah satu di antranya untuk keluar duluan. Keadaann ini berlangsung hingga 2 jam, tidak ada yang mundur dan tidak ada yang maju.
9. Dapatkan system mendeteksi beberapa process adalah starving? Jika “ya” jelaskan bagaimana itu bisa. Jika “tidak” jelaskan bagaimana system dapat deal dengan starvation problem?
Pendeteksian starvation membutuhkan pengetahuna lebih lanjut sejak tidak ada nilai rekaman yang menyimpan statistik pada proses dapat ditentukan jika hal itu membuat ‘progress’ atau tidak. Bagaimanapun, starvation dapat dicegah oleh proses ‘aging’. Hal ini berarti menangani perhitungan rollback untuk setiap proses, dan memasukkan hal ini sebagai bagian faktor pengeluaran pada proses seleksi untuk korban preemption / rollback.
10. Gambarkan suatu mekasisme dimana satu segmen dapat berasal dari address space dari dua proses yang berbeda.
Penyelesaian:
Process Arrival Time Burst Time
P1 0.0 8
P2 0.4 4
P3 1.0 1
Averageturnaround time 10.53 dengan algoritma penjadwalan fcfs Averageturnaround time 9.53 dengan algoritma penjadwalan sjf Averageturnaround time 6.86 dengan kemampuan peningkatan sjf
11. Berikan contoh dari sebuah aplikasi dimana data dalam sebuah file harus diakses : a. Sequentially, tidak untuk pekerjaan pendek sejak pekerjaan pendek tiba setelah pekerjaan panjang akan memiliki waktu tunggu yang lama. Contohnya: Aplikasi Pendataan Stok Barang, untuk pendataan barang data harus diakses secara berurutan berdasarkan kode barang.