Sistem Operasi Pertemuan 6

Session 1 : CONCURRENCY

Concurrency adalah sebuah properti sistem dimana beberapa perhitungan dieksekusi secara bersamaan, dan berpotensi untuk berinteraksi antara satu dengan yang lainnya.

Concurrency terjadi pada :

  • Proses dalam suatu aplikasi
  • Thread dalam proses
  • Program itu sendiri

Tujuan dari Concurrency :

  • Proses komunikasi antar proses
  • Berbagi sumber daya
  • Sinkronisasi antara beberapa proses
  • Alokasi waktu proses

Masalah – masalah yang terjadi dalam Concurrency :

  • Berbagi sumber daya yang sama / bersifat global
  • Manajemen alokasi sumber daya
  • Error dalam programming susah diidentifikasi

Fokus dalam OS :

  • Menelusuri setiap proses yang sedang aktif
  • Mengatur alokasi dan de-alokasi dari sumber daya tertentu, misalnya : Memory, I/O Devices, Processor Time
  • Melindungi data dan sumber daya
  • Hasil dari proses harus bersifat independen dari proses concurrency lainnya

Kompetisi antar Proses untuk mendapatkan sumber daya :

  • Mutual Exclusion

Hanya satu program yang diperbolehkan untuk mengakses sumber daya ketika ada 2 program yang sama – sama membutuhkan sumber daya tersebut.

  • Deadlock

Ketika ada 2 proses / lebih yang saling berebut untuk mendapatkan suatu sumber daya yang sama

  • Starvation

Ketika ada 2 proses / lebih yang saling berebut untuk mendapatkan suatu sumber daya yang sama, namun semua proses saling mengalah sehingga tidak ada yang dapat mengakses sumber daya tersebut.

Semaphore adalah sebuah variabel spesial yang digunakan untuk mengirimkan sinyal.

Karakteristik Semaphore :

  • Variable Semaphore merupakan sebuah integer
  • Operasi pengiriman sinyal yang dilakukan oleh Semaphore tidak dapat diinterupsi

Cara kerja proses dalam Semaphore :

  • Proses Inisialisasi menggunakan angka non-negatif
  • Proses Waiting akan mengurangi nilai Semaphore
  • Proses Signaling akan menambahkan nilai Semaphore

r3

Gambar diatas merupakan pengimplementasian dari mutual exclusion lock dan unlock

Monitor adalah sebuah bahasa pemrograman yang mensupport semua akses kontrol kedalam data yang dishare.

monitor

Gambar diatas merupakan diagram proses dari monitor, dimana hanya ada satu proses aktif didalam monitor.

Selama didalam monitor, ada beberapa kondisi yang tidak boleh dijalankan lebih lanjut, seperti :

  • Proses menunggu signaling dari proses lain
  • Variable proses hanya dapat diakses dari dalam monitor
  • Proses waiting akan melepaskan monitor secara sementara

 

Session 2 : DEADLOCK

Deadlock adalah sebuah kondisi dimana setiap proses dalam sebuah set saling menunggu event dalam proses lainnya sehingga tidak ada proses yang berjalan.

deadlock

Gambar diatas merupakan ilustrasi dari Deadlock, dimana setiap proses terhalang oleh proses lainnya sehingga tidak ada proses yang dapat dijalankan.

Beberapa penyebab deadlock :

  • Mutual exclusion : Hanya satu proses yang dapat mengakses sumber daya saat itu.
  • Hold and Wait : Sebuah proses yang saat itu membawa sebuah sumber daya memerlukan sumber daya lain yang sedang dibawa oleh proses lain agar dapat berjalan.
  • No preemption : Sebuah sumber daya dilepaskan oleh sebuah proses setelah proses tersebut selesai menjalankan tugasnya.
  • Circular wait : Setiap set saling menunggu sumber daya dari set lain sehingga terbentuk sebuah looping.

deadlock2

Gambar diatas merupakan salah satu contoh Deadlock yang terjadi dalam sebuah proses.

deadlock3

Sedangkan gambar diatas merupakan salah satu cara penyelesaian Deadlock.

Beberapa Strategi untuk menangani Deadlock :

  • Mengabaikan permasalahan yang terjadi
  • Sengaja membiarkan Deadlock terjadi, kemudian cari lokasi Deadlock terjadi dan selesaikan Deadlock tersebut
  • Pencegahan secara dinamik
  • Pencegahan dengan cara meniadakan salah satu dari 4 kondisi deadlock

deteksideadlock

Gambar diatas merupakan cara mendeteksi Deadlock, dimana gambar (a) adalah metode Resource Graph, dan gambar (b) adalah sebuah cycle yang diekstrak dari metode Resource Graph

summary deadlock

Kesimpulan atas kondisi – kondisi Deadlock dan cara penyelesaiannya.

Starvation adalah sebuah Algoritma untuk mengalokasikan sejumlah sumber daya.

Karakteristik Starvation :

  • Dapat memberikan prioritas kepada job yang paling singkat
  • Efektif untuk beberapa job singkat dalam sebuah system
  • Dapat menyebabkan sebuah job tertunda dalam jangka waktu yang lama

SOAL DEADLOCK

soal1

Ada 3 proses dalam gambar diatas, yaitu proses A, B, C.

Dalam kondisi saat ini saldo yang ada di Bank adalah 3 + 3 + 2 + 2 = 10

Tentukan proses safe / unsafe dari setiap proses :

  • Selisih saldo yang dibutuhkan dari proses A adalah 9 – 3 = 6
  • Selisih saldo yang dibutuhkan dari proses B adalah 4 – 2 = 2
  • Selisih saldo yang dibutuhkan dari proses C adalah 7 – 2 = 5
  • Sedangkan saldo yang dimiliki Bank saat ini adalah 3, maka dapat kita simpulkan bahwa saat ini A & C bersifat unsafe, dan B bersifat safe

Bank meminjamkan saldonya ke proses yang bersifat safe, yaitu B. Maka proses yang terjadi adalah :

  • Bank meminjamkan 2 saldo ke B, sehingga free = 1 dan B = 4
  • B mengembalikan saldonya ke Bank, sehingga free = 5
  • Bank meminjamkan 5 saldo ke C, sehingga free = 0 dan C = 7
  • C mengembalikan saldonya ke Bank, sehingga free = 7
  • Bank meminjamkan 6 saldo ke A, sehingga free = 1 dan A = 9
  • A mengembalikan saldonya ke Bank, sehingga free = 10

Karena setiap proses berhasil mengembalikan saldonya ke bank, maka problem diatas bersifat safe.

soal2

Penyelesaian dari soal diatas :

jawabansoal2

 

www.skyconnectiva.com
www.binus.ac.id

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *