Kamis, 28 November 2013

TUGAS KELOMPOK "SINKRONISASI"

SINKRONISASI
Suatu proses yang bekerja bersama-sama dan saling berbagi data dapat mengakibatkan race condition atau pengaksesan data secara bersama-sama. Critical section adalah suatu segmen kode dari proses-proses itu yang yang memungkinkan terjadinya race condition. Untuk mengatasi masalah critical section ini, suatu data yang sedang diproses tidak boleh diganggu proses lain.

Solusi prasyarat critical section:
· Mutual Exclusion.
· Terjadi kemajuan (progress).
· Ada batas waktu tunggu (bounded waiting).

Critical section dalam kernel:
· Interupsi.
· Page Fault .
· Kernel code memanggil fungsi penjadwalan sendiri.


Solusi Critical Section
Solusi critical section harus memenuhi ketiga syarat berikut:
· Mutual Exclusion


· Progress


· Bounded Waiting


Algoritma I dan II terbukti tidak dapat memecahkan masalah critical section untuk dua proses karena tidak memenuhi syarat progress dan bounded waiting. Algoritma yang dapat menyelesaikan masalah critical section pada dua proses adalah Algoritma III. Sedangkan untuk masalah critical section pada n-buah proses dapat diselesaikan dengan menggunakan Algoritma Tukang Roti

Perangkat Sinkronisasi

· Instruksi Test And Set. instruksi atomik yang dapat digunakan untuk menangani masalahcritical section.


· Semafor. sebuah variabel yang hanya dapat diakses oleh dua buah operasi standar yaituincrement dan decrement. Dua buah jenis semafor, yaitu Binary Semaphore dan Counting Semaphore. Semafor berfungsi untuk menangani masalah critical section, mengatur alokasiresource, dan sinkronisasi antarproses.


· Monitor. digunakan untuk menangani masalah yang muncul karena pemakaian semafor. Monitor menjamin mutual exclusion. Untuk menangani masalah sinkronisasi yang lebih rumit monitor menyediakan condition variable.


· JVM. mengimplementasikan monitor. Monitor JVM bekerja dengan object locking danmethod-method wait() serta notify(). Monitor JVM dapat digunakan dengan menggunakan keyword synchronized.


Transaksi Atomik


Transaksi merupakan sekumpulan instruksi atau operasi yang menjalankan sebuah fungsi logis dan memiliki sifat atomicity, consistency, isolation, dan durability. Sifat atomicity pada transaksi menyebabkan transaksi tersebut akan dijalankan secara keseluruhan atau tidak sama sekali. Operasi-operasi pada transaksi atomik disimpan dalam log agar dapat dilakukan rolled-back jika terjadi kegagalan sistem. Dengan memanfaatkan log, pemulihan data dapat dilakukan dengan melakukan undo atau redo. Untuk menghemat waktu pada saat rolled-back, kita dapat memberikan operasi checkpoint pada transaksi sehingga kita tidak perlu memeriksa keseluruhan transaksi untuk memutuskan melakukan undo/redo.


Serialisasi diperlukan ketika beberapa transaksi atomik dijalankan secara bersamaan. Hal ini dimaksudkan agar sifat konsistensi hasil eksekusi transaksi dapat terpenuhi. Ada dua cara untuk menjaga agar penjadwalan bersifat serializable, yaitu protokol penguncian dan protokol berbasis waktu. Pada protokol penguncian, setiap data yang akan diakses harus dikunci oleh transaksi yang akan memakainya agar transaksi lain tidak bisa mengakses data yang sama. Sedangkan, pada protokol berbasis waktu, setiap transaksi diberikan suatu timestamp yang unik, sehingga dapat diketahui apakah transaksi tersebut sudah dijalankan atau belum. Protokol berbasis waktu dapat mengatasi masalah deadlock, sedangkan protokol penguncian tidak.


Sinkronisasi LInuxada suatu saat dalam sebuah kernel, tidak terkecuali kernel LINUX, dapat terjadi concurrent access. Dalam hal ini diperlukan proteksi dalam kernel yang bersangkutan. Proteksi dapat dilakukan dengan sinkronisasi.


Sebuah proses memiliki bagian dimana bagian ini akan melakukan akses dan manipulasi data. Bagian ini disebut dengan critical section. Ketika sebuah proses sedang dijalankan dalam critical section nya, tidak ada proses lain yang boleh dijalankan dalam critical section nya.


Ada dua jenis concurrency yaitu pseudo-concurrency dan true-concurrency. Ada beberapa penyebab konkurensi kernel, diantaranya interrupt, softirqs dan tasklets, kernel preemption,sleeping dan synchronization with user-space, dan symmetrical multiprocessing.


Salah satu metode dalam kernel LINUX untuk sinkronisasi adalah atomic operations. Integer atomik adalah salah satu jenis dari atomic operations. Integer Atomik menyediakan instruksi yang dijalankan secara atomik (tanpa interrupt).


Locking yang paling umum digunakan dalam LINUX adalah spin lock. Spin lock adalah lock yang hanya dapat dilakukan oleh satu thread. Ketika sebuah thread yang akan dijalankan meminta spin lock yang sedang digunakan, maka thread ini akan loops menunggu sampai spin lock tersebut selesai digunakan oleh thread yang sedang berjalan.


Semafor dalam LINUX adalah sleeping locks. Ketika sebuah thread meminta semafor yang sedang digunakan, maka semafor akan meletakkan thread tersebut dalam wait queue dan menyebabkan thread tersebut masuk status sleep.

Symmetrical multiprocessing (SMP) mendukung adanya pengeksekusian secara paralel dua atau lebih thread oleh dua atau lebih processor.

13 komentar:

  1. fungsi dari sinkronisasi itu apa?

    BalasHapus
  2. Sinkronisasi adalah proses
    pengaturan jalannya beberapa
    proses pada saat yang
    bersamaan. Tujuan dan fungsi utama
    sinkronisasi adalah
    menghindari terjadinya
    inkonsistensi data karena
    pengaksesan oleh beberapa
    proses yang berbeda (mutual
    exclusion) serta untuk
    mengatur urutan jalannya
    proses-proses sehingga dapat
    berjalan dengan lancar dan
    terhindar dari deadlock atau
    starvation.

    BalasHapus
  3. fungsi dari Transaksi Atomik itu apa ya maz,,,,?????
    di tunggu jawabanya ,,,


    kunjungi jg cerdasproduktiftkj.blogspot.com

    BalasHapus
    Balasan
    1. Sifat atomicity pada transaksi menyebabkan transaksi tersebut akan dijalankan secara keseluruhan atau tidak sama sekali. Operasi-operasi pada transaksi atomik disimpan dalam log agar dapat dilakukan rolled-back jika terjadi kegagalan sistem. Dengan memanfaatkan log, pemulihan data dapat dilakukan dengan melakukan undo atau redo. Untuk menghemat waktu pada saat rolled-back, kita dapat memberikan operasi checkpoint pada transaksi sehingga kita tidak perlu memeriksa keseluruhan transaksi untuk memutuskan melakukan undo/redo.
      Serialisasi diperlukan ketika beberapa transaksi atomik dijalankan secara bersamaan. Hal ini dimaksudkan agar sifat konsistensi hasil eksekusi transaksi dapat terpenuhi. Ada dua cara untuk menjaga agar penjadwalan bersifat serializable, yaitu protokol penguncian dan protokol berbasis waktu. Pada protokol penguncian, setiap data yang akan diakses harus dikunci oleh transaksi yang akan memakainya agar transaksi lain tidak bisa mengakses data yang sama. Sedangkan, pada protokol berbasis waktu, setiap transaksi diberikan suatu timestamp yang unik, sehingga dapat diketahui apakah transaksi tersebut sudah dijalankan atau belum. Protokol berbasis waktu dapat mengatasi masalah deadlock, sedangkan protokol penguncian tidak.

      Hapus
  4. apa yang di maksud dengan transaksi atomik?

    BalasHapus
  5. Transaksi merupakan sekumpulan instruksi atau operasi yang menjalankan sebuah fungsi logis dan memiliki sifat atomicity, consistency, isolation, dan durability.

    BalasHapus
  6. apa yang di maksud critical section??

    BalasHapus
    Balasan
    1. Critical section adalah suatu segmen kode dari proses-proses itu yang yang memungkinkan terjadinya race condition.

      Hapus
  7. apa yang di maksud intruksi test and set ?

    BalasHapus
    Balasan
    1. Test_and_Set adalah instruksi bahasa assembly khusus yang melakukan dua operasi mandiri. Artinya, instruksi tidak dapat terganggu di tengah dan tidak perlu untuk menonaktifkan interupsi. Test_and_Set (TS) adalah instruksi istimewa memerlukan izin modus pengawasan. (Lihat CPU Eksekusi Mode).

      Hapus
  8. Balasan
    1. Semafor adalah sebuah struktur data komputer yang digunakan untuk sinkronisasi proses, yaitu untuk memecahkan masalah di mana lebih dari satu proses atau thread dijalankan secara bersamaan dan harus diatur urutan kerjanya.

      Hapus