Pengertian Sinkronisasi.docx

  • Uploaded by: Ino puspasari
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Pengertian Sinkronisasi.docx as PDF for free.

More details

  • Words: 2,515
  • Pages: 9
PENGERTIAN SINKRONISASI Sinkronisasi adalah suatu proses dimana proses tersebut saling bersamaan dan saling berbagi data bersama yang mengakibatkan race condition atau lebih dikenal dengan inkonsistensi data atau suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. MANFAAT SINKRONISASI. Bermanfaat untuk menyimpan data, baik sementara atau pemanen sehingga memudahkan pekerjaan. Jadi dengan menggunakan sistem ini pekerjaan Anda akan lebih terbantu dan lebih efektif karena bisa menghemat waktu. TUJUAN SINKRONISASI Kenapa Sistem Operasi membutuhkan Sinkronisasi ? Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya prosesproses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan. sama Seperti yang kita ketahui bahwa hidup saling berkaitan satu sama lain, begitu juga Sinkronisasi Pada Sistem Operasi.jika Hal ini jika tidak ada penopang dalam menjalankan suatu sistem, maka akan menemui suatu kendala yang berakibat ketidakkonsistenan pada data, sehingga data tidak menjadi konkuren.

MASALAH DALAM SINKRONISASI o Race Condition Arti dari Race Conditon 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. Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.

o Critical Section Arti dari masalah Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya diakses bersama . Critical Section ini sendiri mempunyai beberapa kode seperti : Entry Section : adalah 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.

Solusi untuk mencegah kesalahan pada critical section Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita membutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya. Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kritis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region. Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerja sama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik yaitu: ·

Tidak ada dua proses secara bersamaan masuk ke dalam citical section.

·

Tidak ada asumsi mengenai kecepatan atau jumlah cpu.

·

Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.

·

Tidak ada proses yang menunggu selamamya untuk masuk critical section.

Ada pun Solusi lain untuk mengatasi masalah Critical Section, yaitu: Mutual exclution : yaitu Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka. Progress : Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bisa ditunda.

Bounded Waiting :Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.

Selain masalah race condition dan critical yang ada sinkronisasi ,ada juga masalah klasik yang terjadi pada sinkronisasi di sistem operasi seperti : o Bounded – Buffer Problem Bounded-buffer problem merupakan suatu struktur data yang mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling atas yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama kali diambil.

Solusi Bounded – Buffer Problem Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu tertentu. o Readers and Writers Problem Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program. Solusi readels and writers problem Pembaca di Prioritaskan Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya. Penulis di Prioritaskan Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.sehingga Kedua Jenis Punya Prioritas yang Sama yaitu tidak ada prioritas khusus yang diberikan kepada kedua jenis proses.

o Dining Philosophers Problem Masalah ini pertama ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan

setiap filusuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.

Solusi Dining Philosophers Problem Solusi Dining – Philosophers Problem ada dua, yakni : Solusi Waiter Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.

Solusi Hierarki Resource Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.

Sinkronisasi Hardware Sinkronisasi Memerlukan dukungan hardware (prosesor). ·

Dalam bentuk “instruction set” khusus: test-and-set.

·

Menjamin operasi atomik (satu kesatuan): test nilai dan mengubah nilai tersebut .

Test-and-Set (mutual exclusion). Mutual exclusion dapat diterapkan dengan menggunakan shared data,

Semaphores Semaphores 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. Semafor dicetuskan oleh Edsger Dijkstra dan pertama digunakan dalam sistem operasi THE. Nilai semafor diinisialisasi dengan jumlah resource yang dikendalikannya. Dalam kasus khusus di mana ada satu shared resource, semafornya disebut "semafor biner". Semafor adalah solusi klasik dari dining philosophers problem, walaupun tidak mencegah deadlock.

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: ·

Semaphore dapat diinisialisasi dengan nilai non-negatif.

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

Terdapat dua operasi terhadap semaphore, yaitu Down dan Up.

Operasi Down adalah atomic, tak dapat diinterupsi sebelum diselesaikan.menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tak ada proses lain yang dapat mengakses semaphore sampai operasi selesai atau diblocked. Operasi Up menaikkan 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. Dua Jenis Semaphore Counting semaphore -

nilai integer S dapat berkisar melalui domain tak terbatas.

-

Biasanya nilai S diinisiasi sebanyak resource yang dibagi

-

Jika S=0, maka semua resource sedang dipakai

Binary semaphore -

nilai integer S dapat mempunyai jangkauan 0 atau 1

-

Lebih sederhana untuk diimplementasikan

Implementasi Semaphore Untuk menghindari busy waiting, process yang menunggu akses critical-section harus dihentikan sementara. Ada dua operasi sederhana yang terlibat : block : menghentikan sementara (suspend) proses yang memanggil wakeup(P) : melanjutkan (resume) eksekusi dari proses P yang di-blok Semaphore tanpa busy waiting butuh struktur data untuk menyimpan process yang sedang suspend.

Monitors Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan monitor untuk mengakses struktur internal. Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu. Properti-properti monitor adalah sebagai berikut: Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor dan tidak boleh prosedur di luar monitor. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion). Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabelvariabel kondisi, dengan dua operasi, yaitu Wait dan Signal. Wait: Ketika prosedur monitor tidak dapat berlanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain. Monitor mensinkronisasi sejumlah proses: suatu saat hanya satu yang aktif dalam monitor dan yang lain menunggu Bagian dari bahasa program (mis. Java). Tugas compiler menjamin hal tersebut terjadi dengan menerjemahkan ke “low level synchronization” (semphore, instruction set dll) Cukup dengan statement (deklarasi) suatu section/fungsi adalah monitor => mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb

Proses-proses harus disinkronisasikan di dalam monitor: o Memenuhi solusi critical section. o Proses dapat menunggu di dalam monitor. o Mekanisme: terdapat variabel (condition) dimana proses dapat menguji/menunggu sebelum mengakses “critical section” var x, y: condition

Condition: memudahkan programmer untuk menulis code pada monitor. Misalkan : var x: condition ; o Variabel condition hanya dapat dimanipulasi dengan operasi: wait() dan signal() o x.wait() jika dipanggil oleh suatu proses maka proses tsb. akan suspend - sampai ada proses lain yang memanggil: x. signal() o x.signal() hanya akan menjalankan (resume) 1 proses saja yang sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)

Contoh Kasus Bounded – Buffer pada sinkronisasi Pada bagian ini akan dicontohkan suatu produser konsumer. produser akan menghasilkan suatu barang dan konsumer akan mengkonsumsi barang yang dihasilkan oleh produser. produser dan konsumer ini akan mengakses bounded buffer yang sama. produser setelah menghasilkan suatu barang dia akan menaruh barang itu di bounded buffer sebaliknya konsumer ketika membutuhkan suatu barang, dia akan mengambilkannya dari bounded buffer.

Contoh kasus Readers and Writers Problem pada sinkronisasi Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya.Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.Dengan tidak ada prioritas khusus yang diberikan kepada kedua jenis proses. Contoh Kasus Dining – Philosophers Problem pada sinkronisasi Pada sebuah computer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak menggunakannya

dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer menjalankan aplikasi itu terusmenerus jika kita tidak mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian. Contoh Kasus semaphores sinkronisasi

Keterangan: · Mula-mula nilai s = 1, proses A, B, D, dan C berada dalam status ready; proses A dieksekusi, nilai s berkurang menjadi 0 · Proses A selesai masuk status ready; proses B dieksekusi s menjadi -1 proses B di-blok masuk antrian ·

Proses D dieksekusi

· semSignal s menjadi 0 proses B dibebaskan dari antrian; proses D selesai masuk status ready (mulai) lagi Urutan eksekusi: A, B, D ·

Proses C dieksekusi s menjadi -1 C di-blok masuk antrian; hal yang sama

terjadi pula untuk proses A dan B diblok masuk antrian s menjadi -3 ·

Proses D dieksekusi lagi

· semSignal s menjadi -2 proses C dibebaskan Urutan eksekusi: A, B, D, C, A, B, D, C, D, A, D, B, D, C, D, A, D, …

Contoh kasus monitors sinkronisasi

Penyelesaian Masalah Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga buah ruangan yaitu satu buah ruangan kontrol, satu buah ruang-tunggu-masuk, satu buah ruang-tunggudalam. Ketika suatu thread memasuki monitor, ia memasuki ruang-tunggu-masuk (enter). Ketika gilirannya tiba, thread memasuki ruang kontrol (acquire), di sini thread menyelesaikan tugasnya dengan shared resource yang berada di ruang kontrol (owning). Jika tugas thread tersebut belum selesai tetapialokasi waktu untuknya sudah habis atau thread tersebut menunggu pekerjaan thread lain selesai, thread melepaskan kendali atas monitor (release) dan dipindahkan ke ruang-tunggudalam (waiting queue). Ketika gilirannya tiba kembali, thread memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai, ia keluar dari monitor (release and exit)

Related Documents

Pengertian
June 2020 53
Pengertian
June 2020 50
Pengertian
May 2020 51
Pengertian Hardware.docx
November 2019 31

More Documents from "lisa"