Jumat, 23 April 2021

MAKALAH

SINGKRONISASI

SISTEM OPERASI





DEGI REYVAL FEBRIAN

20316051

TEKNIK KOMPUTER




Kata pengantar
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil menyelesaikan Makalah ini yang alhamdulillah tepat pada waktunya yang berjudul SINKRONISASI ” Makalah ini berisikan tentang informasi mengenai sinkronisasi atau yang lebih khususnya membahas tentang pengenalan lebih jelas tentang sinkronikasi , tujuan sinkronikasi pada sistem operasi dan lain-lainKami menyadari bahwa makalah ini masih jauh dari sempurna, oleh karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan makalah ini.
 Akhir kata, kami sampaikan terima kasih kepada bapak dosen yang memberi tugas ini dan berterima kasih kepada Allah Swt karena telah memberikan kami kesehatan sehingga kami dapat mengerjakan makalah ini. Semoga Allah SWT senantiasa meridhai segala usaha kami. Amin




                                                                                         
                                                                                         


Daftar isi
Kata pengantar...........................................................................
BAB I PENDAHULUAN...............................................................
BAB II ISI......................................................................................
Pengertian sinkronisasi...................................................................
Manfaat sinkronisasi......................................................................
Tujuan sinkronisasi .......................................................................
Masalah dalam sinkronisasi...........................................................
Sinkronisasi hardware....................................................................
Semaphores ...................................................................................
Monitors ........................................................................................
Contoh kasus..................................................................................
BAB III PENUTUP......................................................................
Review     








BAB I
 PENDAHULUAN


                Sinkornisasi di perlukan untuk menghindari terjadinya ketidak konsistenan data akibat adanya akses secara konkuren. Proses-Proses tersebut disebut konkuren jika Proses itu ada dan berjalan pada waktu yang bersamaan.
            Istilah Sinkronisasi sering terdengar ketika kita menggunakan alat elektronik.  Sinkronisasi sendiri berasal dari bagian sistem operasi.
            Sistem operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi seperti program-program pengolah kata dan peramban web.
            Jadi, agar sinkronisasi bisa berjalan, sangat di butuhkan yang namanya sistem operasi. Dalam kehidupan sehari-hari tanpa di sadari, kita sering melakukan sinkronisasi dalam berbagai hal. Mulai pada saat menggunakan smartphone, komputer dan lain sebagainya.















BAB II
ISI

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 proses-proses 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 kerjsama 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 variabel-variabel 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 terus-menerus 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-tunggu-dalam. 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-tunggu-dalam (waiting queue). Ketika gilirannya tiba kembali, thread memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai, ia keluar dari monitor (release and exit)

BAB III
 PENUTUP

Demikian yang dapat saya susun mengenai materi yang menjadi pokok bahasan dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, kerena terbatasnya pengetahuan yang saya ketahui dan kurangnya rujukan atau referensi yang ada hubungannyadengan            judul makalah ini.

    Saya  banyak berharap para pembaca dan kepada bapak dosen sudi memberikan kritik dan saran yang membangun kepada diri saya demi sempurnanya makalah ini dan untuk penulisan makalah di kesempatan – kesempatan berikutnya menjadi lebih baik lagi.
  Semoga makalah ini berguna bagi saya pada khususnya juga para pembaca pada umumnya.



Alamat web Program studi, Fakultas, Universitas :

NAMA MAHASISWA : DEGI REYVAL FEBRIAN

Tidak ada komentar:

Posting Komentar

ANALISA ALGORITMA

  ANALISA ALGORITMA Nama : Degi Reyval Febrian Npm  : 20316051 Kelas  : Teknik Komputer   CONTOH BUBBLE SORT 1. Algoritma Bubble Sort 1.    ...