Apakah keuntungan dari layer approach pa

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.
Kemudahan, mikro – kernel menjadikan desain sistem menjaga kernel sekecil dan
semudah mungkin. Hal ini menjadi mudah untuk ditangani. Bagaimanapun fungsionalitas
yang tidak diimplementasikan dalam kernel (seperti driver perangkat) harus disediakan
dengan cara lain, biasanya oleh program lain.



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 diinterupt).
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 platforms hardware 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
dihilangkan.

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
increment/decrement. Bila diperlukan maka dapat dilakukan pencegahan pelayanan interupsi

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.
 Kasus deadlock di sebuah pintu kecil

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
Average turnaround time 10.53 dengan algoritma penjadwalan fcfs
Average turnaround time 9.53 dengan algoritma penjadwalan sjf



Average turnaround 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.
b. Randomly, menangani semua pekerjaan secara berimbang (memberikan kemampuan yang
sama dari waktu CPU), jadi pekerjaan pendek dapat meninggalkan sistem lebih cepat sejak
mereka selesai lebih cepat. Contohnya: Aplikasi Permainan Hang Man, untuk data huruf acak
yg akan muncul, data huruf akan diakses secara acak dalam array.