You are on page 1of 11

TUGAS SISTEM OPERASI

Disusun Oleh : 1. Yudi Ari W S 2. Angga Bayu P 3. Cahya Ardhani N.T 4. 0934015031 09340150 09340150

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAWA TIMUR

2010

PENDAHULUAN
Deadlock

Apakah yang dimaksud deadlock? Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar dibawah ini,

deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut. Pokok pembahasan

1. Jelaskan tentang fakta-fakta deadlock apa saja yg terjadi pada windows & linux? 2. Jelaskan bagaimana cara penanganannya? 3. Apa perbedaan mendasar diantara os windows & linux? 4. Jelaskan bagaimana kasus deadlock apabila pada OS yg lain.

1. Jelaskan tentang fakta-fakta deadlock apa saja yg terjadi pada windows & linux? Pada windows NT, deteksi deadlock yaitu berupa BSOD(Blue Screen Of Pada linux untuk mengetahui apakah terjadi deadlock yaitu dengan Death), recovery-nya adalah reboot sederhana. menggunakan xosview untuk mengetahui proses yang menggunakan CPU100%, lalu kill saja proses tersebut. Beberapa kasus deadlock juga terjadi ketika OS Linux dijalankan dari kondisi sleep, proses yang mengakses USB device akan mengalami deadlock. Hal ini disebabkan fungsi scheduler pada kernel yang digunakan tidak menyimpan state sebelum sleep, sehingga ketika kernel dijalankan kembali, Proses-proses yang mengakses USB device tersebut menunggu giliran mengakses, sementara scheduler belum menjadwalkan masingmasing proses. Linux dengan kernel versi 2.4 mengalami deadlock pada sistem dengan prosesor lebih dari 2 unit. Deadlock ini pada umumnya terjadi bila akses melalui Ethernet dilakukan, terutama bila melakukan teaming pada jaringan Proses akan terblock dan saling menunggu resource Ethernet tersebut bebas. 2. Cara Mengatasi Deadlock ? Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu: 1. 2. Mengabaikan adanya deadlock Memastikan bahwa deadlock tidak akan pernah ada, baik dengan

metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock , tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock . 3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua Pendeteksian deadlock , untuk mengidentifikasi ketika deadlock terjadi. Pemulihan deadlock , mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya. metode yang salingmendukung, yaitu:

Dari penjabaran pendekatan diatas, terdapat empat metode untuk mengatasi deadlock yang akan terjadi, yaitu: 1. Strategi Ostrich Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta:masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragampendapat muncul berkaitan dengan strategi ini.Menurut para ahli Matematika, cara ini samasekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. 2. Mencegah Deadlock Metode ini merupakan metode yang paling sering digunakan.Metode pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi pencegahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk.Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkandeadlock terjadi pada saat eksekusi Coffman (1971) 3. Menghindari Deadlock Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock .Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock , maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan.Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan. 4. Mendeteksi Deadlock dan Memulihkan Deadlock Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisideadlock dapat segera dilakukan

Ada beberapa strategi lain yang dapat digunakan dalam mengatasi deadblock, yaitu: a. Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinyaketika meminta resource baru Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level No Preemption : membolehkan adanya preemption

b. Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, AlgoritmaBanker Resource manager menolak proses yang meminta resource yang berpotensi deadlock Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akandipaksa untuk melepaskan resource yang sudah dimiliknya Perlu adanya informasi tambahan

c. Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudianmelakukan recovery, Algoritma Ostrich Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakanrecovery seperlunya Algoritma yang paling dikenal adalah algoritma Ostrich Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpointuntuk rollback lalu membunuh proses yang prioritasnya keci 3. Apa perbedaan mendasar diantara os windows & linux? 1. Full Access dan No Access

Perbedaan yang sangat significan antara keduanya adalah kebebasannya dalam mengakses Source Code. Fakta bahwa Linux memiliki GNU Public License telah memungkinkan para penggunanya untuk mengakses sampai ke kode Kernel yang menjadi dasar Sistem Operasi Linux. Sedangkan Windows ? Silahkan anda mencobanya jika anda bisa, kecuali jika mungkin anda termasuk anggota kelompok yang terseleksi yang diizinkan Microsoft untuk mengaksesnya. 2. Licensing Freedom vs Licensing Restrictions Dengan Linux GPL-Licensed OS, maka kita bebas untuk memodifikasi suatu software dan menggunakannya atau bahkan mempublikasikan ulang dan menjualnya (selama kodenya masih tersedia). Dengan GPL ini pula, maka kita dapat mendownload sebuah salinan Linux (atau aplikasi pendukungnya) dan menginstallnya di seberapapun komputer yang kita ingin gunakan. Berbeda dengan Microsoft License, kita tidak akan diperbolehkan melakukan hal-hal tersebut. Kita dibatasi hanya pada license yang telah kita beli saja. Jadi misalkan anda membeli 10 License, maka anda hanya bias menginstall OS tersebut hanya pada 10 unit komputer saja. 3. Online Peer Support vs Paid Help-desk Support Dengan Linux, anda akan mendapatkan support dari forum, online search, dan beberapa situs web site. Jika memang dibutuhkan, anda juga dapat membeli contract support dari perusahaan Linux yang besar (Red Hat dan Novell) Sedangkan Windows, anda memang bisa mendapatkan hal yang sama dari Microsoft dan banyak situs online. Bahkan anda dapat membeli support dari Microsoft sendiri. Namun dukungan erat dari komunitas pengguna Linux biasanya membuat kesempatan untuk mendapatkan solusi dari masalah menjadi lebih cepat. 4. Full vs Partial Hardware Support Hampir semua pembuat hardware biasanya sudah menyediakan driver yang compatible dengan Windows. Ini agak berbeda dengan Linux dimana masih ada beberapa hardware yang ternyata masih belum support atau tidak dapat berfungsi jika digunakan dengan OS Linux. 5. Command Line vs No Command Line

Bagaimanapun memang kekuatan utama Linux adalah di Command Line. Meskipun Linux sekarang didukung dengan tampilan Graphis yang sangat baik, namun command line tetap menjadi tool yang tidak ternilai untuk perkerjaan administrasi OS. Sedangkan Windows memang dilahirkan dari awal dengan menggunakan tampilan graphis. Memang di Windows masih bisa menggunakan Command Line, namun tidak sefleksibel Linux. 6. Centralized vs Noncentralized Application Installation Di Linux, installasi terpusat di satu lokasi, misalkan melalui Package Management System semacam Synaptic. Sedangkan di Windows, installasi dilakukan dari masing-masing software yang akan diinstall dengan menjalankan file setup.exe 7. Flexibility vs Rigidity Pada Windows kita bergantung pada apa yang Microsoft anggap ideal pada sebuah desktop. Sedangkan pada Linux kita dapat memilih seberapa banyak kelengkapan desktop yang kita inginkan. Dari mulai yang sederhana semacam Fluxbox sampai yang canggih semacam 3D Compiz. Linux desktop sangat fleksibel untuk digunakan di berbagai kondisi komputer yang digunakan. 4. Jelaskan bagaimana kasus deadlock apabila pada OS yang lain. Solaris/ Java Platform Deadlock terjadi bila dua atau lebih thread masing masing menunggu satu sama lainya melepaskan kunci. Bahasa pemrograman Java menggunakan monitor untuk synchronized thread. Setiap objek dikaitkan dengan sebuah monitor, yang juga dapat disebut sebagai monitor objek. Jika thread memanggil metode synchronized pada objek, objek terkunci. Thread lain memanggil metode synchronized pada obyek yang sama akan memblokir sampai kunci dilepaskan. Selain built-in mendukung synchronized, paket java.util.concurrent.locks yang diperkenalkan di J2SE 5.0 menyediakan kerangka kerja untuk mengunci dan menunggu suatu kondisi. Deadlock dapat melibatkan monitor objek serta kunci java.util.concurrent. Biasanya, Deadlock menyebabkan aplikasi atau bagian dari aplikasi menjadi tidak responsif. Misalnya, jika sebuah thread bertanggung jawab untuk graphical user

interface (GUI) update Buntu/ Deadlocked, aplikasi GUI membeku dan tidak merespon aksi pengguna. Looping thread juga dapat menyebabkan aplikasi untuk Menggantung/Hang. Bila satu atau lebih thread yang mengeksekusi dalam loop tak terbatas, yang mungkin loop mengkonsumsi semua siklus CPU yang tersedia dan menyebabkan seluruh aplikasi menjadi tidak responsif. Cara Mengatasinya. Java SE 6 menyediakan dua cara yang sangat mudah untuk mengetahui apakah telah terjadi deadlock dalam suatu aplikasi dan juga meningkatkan fasilitas deteksi deadlock untuk mendukung kunci java.util.concurrent. Baik JConsole dan perintah jstack dapat menemukan deadlock yang melibatkan monitor objek - yaitu, kunci yang diperoleh dengan menggunakan kata kunci synchronized - atau
java.util.concurrent.

ownable synchronizers.

Gambar 1 menunjukkan bahwa ada dua kebuntuan dalam aplikasi Deadlock, dan Deadlock 2 tab menunjukkan tiga thread buntu yang diblokir pada monitor objek. Setiap tab kebuntuan menampilkan daftar thread yang terlibat dalam kebuntuan, mengidentifikasi kunci thread yang diblokir, dan menunjukkan yang benang memiliki kunci itu.

Gambar 1: JConsole mendeteksi dua kebuntuan dan memberikan rincian.

Referensi http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X1/ch17s07.html http://www.scribd.com/doc/46016110/Deadlock imam_muiz.staff.gunadarma.ac.id/.../files/.../SISTEM+OPERASI-6.pdf http://www.techrepublic.com/blog/10things/10-fundamental-differences-between-linuxand-windows/406 http://www.oracle.com/technetwork/articles/javase/monitoring-141801.html

You might also like