SISTEM OPERASI
DEADLOCK
DEADLOCK
• Sekumpulan proses sedang blocked karena setiap proses sedang menunggu (antrian) menggunakan
“resources” yang sedang digunakan (hold) oleh proses lain.
• Layanan yang dibutuhkan dapat berupa sumber daya fisik maupun sumber daya abstrak atau software.
• Wujudnya biasanya berupa program/perintah yang
dijalankan not responding/ tidak dapat direspon. Hal ini disebabkan suatu program yang memiliki suatu layanan sumber daya.
• Proses yang menunggu suatu layanan dalam waktu
yang tak terhingga disebut juga dengan starvation.
DEADLOCK
lanj.• Ketika layanan sumber daya yang diminta belum selesai, kemudian program meminta layanan yang lain.
• Akibatnya program akan terus menerus menunggu layanan sumber daya lain, sementara sumber daya menganggap tidak ada permintaan.
• Kondisi demikian akan menyebabkan terjadinya
deadlock.• Jadi dengan kondisi yang terus menerus menunggu
kesiapan sumber daya, akan tetapi tidak pernah tersedia menyebabkan kinerja komputer menjadi terganggu
sehingga komputer menjadi hang atau deadlock.
Contoh Persimpangan Jalan
• Hanya terdapat satu jalur
• Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
• Untuk mengatasinya beberapa mobil harus preempt (mundur)
• Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).
RESOURCE
• Deadlock bisa terjadi pada saat proses akan
mengakses obyek (seperti device, file, dan lain‐
lain) secara tidak semestinya.
• Obyek tersebut dinamakan resource.
• Resource tersebut dapat berupa perangkat keras (seperti tape drive, memori) atau berupa
informasi (record dalam suatu basis data, variabel global, dan lain‐lain).
• Resource ada 2 jenis, yaitu: preemptable dan
nonpreemptable.
• Resource dikatakan preemptable jika resource tersebut dapat diambil (dilepas) dari proses yang sedang
memakainya tanpa memberi efek apapun pada proses tersebut. Memori adalah salah satu contoh preemptable resource.
• Sebagai contoh, suatu sistem terdiri atas 512K user memory, satu printer, dan 2 proses masing‐masing
berukuran 512K dan ingin mencetak sesuatu. Proses A meminta printer dan ia mendapatkannya.
• Kemudian proses A tersebut segera menghitung suatu nilai yang akan dicetak. Sebelum ia selesai menghitung nilai
tersebut, quantum time yang diberikan ke proses tersebut telah habis, sehingga proses A harus di swapped‐out.
PREEMPTABLE
• Sekarang proses B mulai berjalan dan mencoba untuk mendapatkan printer. Namun gagal karena printer
telah dibawa oleh proses A.
• Hal ini sangat potensial untuk terjadi deadlock, sebab proses A membawa printer dan proses B menempati memori.
• Untungnya, karena memori bersifat preemptable
(dapat diambil) dari proses B dengan cara swapped‐out proses B dan swapped‐in proses A ke memori.
• Maka proses A dapat segera diselesaikan, sehingga tidak akan terjadi deadlock.
PREEMPTABLE
lanj.SWAP
• Swapping adalah menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan
sebuah proses lain yang sedang
membutuhkan sejumlah alokasi memori untuk
dieksekusi.
SWAP
lanj.• Ready queue berisikan semua proses yang terletak di penyimpanan sementara maupun di memori yang siap untuk dieksekusi.
• Swap In adalah memasukkan proses kedalam memori
• Swap Out adalah mengeluarkan memori dari proses.
• Mekanisme swap in ‐ swap out menggunakan algoritma jenis prioritas.
SWAP
lanj.• Sebagian besar waktu swapping adalah waktu transfer.
• Ilustrasi :
Proses A memiliki ukuran 5 MB, sedangkan tempat penyimpanan sementara yang berupa harddisk memiliki kecepatan transfer data sebesar 20 MB per‐detiknya. Maka waktu yang dibutuhkan untuk mentransfer proses sebesar 5 MB tersebut dari atau ke dalam memori adalah sebesar 5000 KB / 20000 KBps = 250 ms
SWAP
lanj.NONPREEMPTABLE
• Nonpreemptable, resource tidak dapat diambil dari proses yang sedang membawanya karena akan menimbulkan kegagalan komputasi.
• Printer adalah salah satu contoh nonpreemptable resource.
• Jika suatu proses sedang menggunakan printer untuk mencetak sesuatu, maka printer tersebut tidak dapat diambil untuk mencetak sesuatu dari proses lain.
• Resource jenis ini yang biasanya potensial untuk
menyebabkan terjadinya deadlock.
NONPREEMPTABLE
• Gambar di atas menunjukkan urutan yang diperlukan jika ingin mengakses suatu resource.
• Pertama, proses harus meminta resource tersebut. Jika resource tidak
tersedia, maka proses harus menunggu dulu sampai resource tersebut ada.
• Jika resource telah selesai digunakan, maka resource yang dibawa harus segera dilepaskan.
Membebaskan Resource (release)
Menggunakan Resource (use)
Meminta Resource (request)
Metode Penanganan DEADLOCK
• Deadlock Prevention: Pencegahan adanya faktor‐
faktor penyebab deadlock
• Deadlock Avoidance: Menghindari dari situasi
yang potensial dapat mengarah menjadi deadlock
• Deadlock Detection: Jika deadlock ternyata tidak terhindari maka bagaimana mendeteksi
terjadinya deadlock, dilanjutkan dengan
penyelamatan (recovery).
DEADLOCK PREVENTION
• Ada beberapa kondisi yang dapat menimbulkan terjadinya deadlock, yaitu:
a. Mutual Exclusion. Jika suatu proses telah menggunakan suatu resource, maka tidak boleh ada proses lain yang menggunakan resource tersebut.
b. Hold & Wait. Pada saat suatu proses sedang mengakses suatu resource, proses tersebut dapat meminta ijin untuk mengakses resource lain.
c. No Preemption. Jika suatu proses meminta ijin untuk mengakses resource, sementara resource tersebut tidak tersedia, maka permintaan ijin tersebut tidak dapat
dibatalkan.
d. Circular Wait. Jika proses P0 sedang mengakses resource R1 dan minta ijin untuk mengakses resource R2, dan pada saat yang bersamaan P1 sedang mengakses resource R2 dan minta ijin untuk mengakses R1.
DEADLOCK AVOIDANCE
• Salah satu cara untuk mencegah adanya deadlock adalah dengan memberikan informasi tambahan yang berhubungan dengan resource‐resource
yang akan diminta.
• Algoritma deadlock avoidance menguji secara dinamik untuk meyakinkan bahwa tidak ada kondisi circular wait.
• Status diberikan meliputi banyaknya resource yang tersedia, banyaknya resource yang
dialokasikan, dan maksimum resource yang
dibutuhkan oleh proses.
ALGORITMA BANKER’S
• Proses harus declare max. kredit resource yang diinginkan.
• Proses dapat block (pending) sampai resource diberikan.
• Banker’s algorithm menjamin sistem dalam keadaan safe state.
• OS menjalankan Algoritma Banker’s,
– Saat proses melakukan request resource.
– Saat proses atau release resource yang digunakan =>
memberikan resource ke proses yang pending request.
ALGORITMA BANKER’S
lanj.• Metode :
1. Scan tabel baris per baris untuk menemukan job yang akan diselesaikan
2. Tambahkan pada job terakhir dari sumberdaya yang ada dan berikan nomor yang available
– Ulangi 1 dan 2 hingga :
• Tidak ada lagi job yang diselesesaikan (unsafe) atau
• Semua job telah selesai (safe)
DEADLOCK DETECTION
• Mencegah dan menghidari dari deadlock sulit dilakukan:
– Kurang efisien dan utilitas sistem
– Sulit diterapkan: tidak praktis, boros resources
• Mengizinkan sistem untuk masuk ke “state deadlock”
– Gunakan algoritma deteksi (jika terjadi deadlock)
• Deteksi: melihat apakah penjadwalan pemakaian resource yang tersisa masih memungkinkan berada dalam safe state.
– Skema recovery untuk mengembalikan ke “safe state”
Recovery dari Deadlock
• Batalkan semua proses deadlock
• Batalkan satu proses pada satu waktu hingga siklus
deadlock dapat dihilangkan• Proses mana yang dapat dipilih untuk dibatalkan ?
– Proses dengan prioritas
– Proses dengan waktu proses panjang
– Sumberdaya proses yang telah digunakan – Sumberdaya proses yang lengkap
– Banyak proses yang butuh untuk ditunda – Apakah proses tersebut interaktif atau batch
Sejarah Ubuntu
Ubuntu adalah ideologi etis Afrika Selatan yang berpusat pada kesetiaan masyarakat dan hubungan antara satu sama lain. Kata Ubuntu berasal dari bahasa Zulu dan Xhosa.
Ubuntu (diucapkan "oo‐BOON‐too") dipandang sebagai konsep tradisional Afrika, yang dianggap sebagai salah satu asas pendirian republik baru Afrika Selatan dan terhubung dengan ide kebangkitan kembali Afrika.
Terjemahan singkat dari makna Ubuntu adalah "rasa perikemanusiaan terhadap orang lain". Terjemahan lainnya yaitu: "kepercayaan atas ikatan universal untuk saling berbagi yang menghubungkan seluruh umat manusia".
Definisi Ubuntu
Ubuntu adalah salah satu distribusi Linux yang berbasiskan pada Debian dan memiliki interface desktop. Proyek Ubuntu disponsori oleh Canonical Ltd (perusahaan milik Mark Shuttleworth).
Keunggulan ubuntu
• Ubuntu adalah [sistem operasi] lengkap berbasis Linux, tersedia secara bebas dan mempunyai dukungan baik yang berasal dari komunitas maupun tenaga ahli profesional.
Keunggulan Ubuntu
Komunitas Ubuntu dibentuk berdasarkan gagasan yang terdapat di dalam filosofi Ubuntu:
Bahwa perangkat lunak harus tersedia dengan bebas biaya
Bahwa aplikasi perangkat lunak tersebut harus dapat digunakan dalam bahasa lokal masing‐
masing dan untuk orang‐orang yang mempunyai keterbatasan fisik, dan
Bahwa pengguna harus mempunyai kebebasan untuk mengubah perangkat lunak sesuai dengan apa yang mereka butuhkan
.
Keunggulan Ubuntu
• Perihal kebebasan inilah yang membuat Ubuntu berbeda dari perangkat lunak berpemilik (proprietary); bukan hanya
peralatan yang Anda butuhkan tersedia secara bebas biaya, tetapi Anda juga mempunyai hak untuk memodifikasi perangkat lunak Anda
sampai perangkat lunak tersebut bekerja sesuai dengan yang Anda inginkan.
Kernel
• Kernel Linux adalah jantung dari Sistem Operasi Ubuntu.
Sebuah kernel adalah bagian penting dari sistem operasi apapun, fungsinya adalah untuk menjembatani
komunikasi antara
perangkat keras dengan perangkat lunak.
Versi Ubuntu
Ubuntu 10.04 dengan GNOME 2
GNOME Shell
Unity pada Ubuntu 11.10
Desktop Plasma KDE
Xubuntu 11.10
LXDE desktop
Edisi Server
Ubuntu edisi Netbook
Komunitas Ubuntu indonesia
• http://groups.google.com/group/id‐ubuntu
• http://www.ubuntu‐id.org/
• http://wiki.ubuntu‐id.org/
• http://ubuntulinux.or.id/blog
• http://forum.ubuntulinux.or.id/
• http://planet.ubuntu‐id.org/
Daftar Pustaka
• www.ubuntu.com
• www.ubuntu‐id.org
Perintah‐perintah dasar
No Perintah Keterangan
1 ls untuk melihat list direktori
2 pwd melihat working direktori kita sekarang 3 clear membersihkan layar di terminal
4 mv merubah nama file
5 rm menghapus file
6 mkdir membuat direktori 7 rmdir menghapus direktori 8 free melihat free memory
9 df ‐h melihat kapasitas harddisk 10 hostname menampilkan nama komputer
11 uptime melihat sudah berapa lama komputer 12 poweroff mematikan komputer
13 reboot merestart komputer