SO

Resume 3

SINKRONISASI

LATAR BELAKANG

  • Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten.
  •  Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
  •  Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.
  • Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.

Race Condition

adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi.

contoh sederhana print spooler.

Critical Condition

kondisi agar menghasilkan solusi yang baik:

    1. Tidak ada dua proses secara bersamaan masuk ke dalam critical section.
    2. Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
    3. Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
    4. Tidak ada proses yang menunggu selamamya untuk masuk critical section
  • Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari:
  • Entry Section: kode yang digunakan untuk masuk ke dalam critical section
  • Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu
  • Exit Section: akhir dari critical section, mengizinkan proses lain
  • Remainder Section: kode istirahat setelah masuk ke critical section

Mutual Exclusion

Mutual Exclusion: jaminan hanya ada satu proses yg mengakses sumber daya pada suatu interval waktu tertentu.

Tiga kondisi untuk menentukan mutual Exclusion

  1.  Tidak ada dua proses yang pada saat bersamaan berada di critical region.
  2.  Tidak ada proses yang berjalan diluar critical region yang bisa menghambat proses lain
  3.  Tidak ada proses yang tidak bisa masuk ke critical region

Solusi

Cara-cara memecahkan masalah .Hanya dua proses, Po dan P1.Struktur umum dari proses adalah Pi (proses lain Pj)

Algoritma 1 :

Semaphore

Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore. 

Semaphore mempunyai dua sifat, yaitu:

  1. 1.       Semaphore dapat diinisialisasi dengan nilai non-negatif.
  2. 2.       Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.

Operasi Down

Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked.

Operasi Up

Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra, dapat dipilih secara acak.

Deadlock

Adalah suatu kondisi dimana dua proses atau lebih tidak dpt meneruskan eksekusinya oleh processor.

Deadlock terjadi karena proses mangalami starvation, yaitu suatu job yg sedang di eksekusi dan eksekusi job tersebut tidak ada hentinya, tdk diketahui kapan berhentinya sehingga job yg ada di antrian mati.

Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:

    1. Terdapat satu jalur pada jalan.
    2. Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
    3. Untuk mengatasinya beberapa mobil harus preempt (mundur).
    4. Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).

METODE MENGHADAPI DEADLOCK

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

  1.  Metode penceghan deadlock (deadlock prevention).
  2.  Metode menghindari deadlock (deadlock Avoidance).
  3.  Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery.

CONTOH METODE MENGHADAPI DEADLOCK

1.`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.

2.  Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.

Kondisi Aman (Safe state)

Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.

Kondisi Tak Aman (Unsafe state)

Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. 

Terminasi Proses

Metode ini akan menghapus proses-proses yang terlibat pada kondisi deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah, sebagai berikut:

  1. Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal).
  2. Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu).
  3.  Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback.

Resources Preemption

Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe condition.

Beberapa langkahnya, yaitu:

  1.  Pilih salah satu – proses dan sumber daya yang akan di-preempt.
  2. Rollback ke safe state yang sebelumnya telah terjadi.
  3.  Mencegah suatu proses agar tidak terjebak pada starvation karena metode ini.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s