Minggu, 31 Mei 2015

Posted by Unknown On 08.39
Yap yap hari ini saya udah mempposting 2 post di blog saya ini, dan sekarang saya akan memposting satu post lagi yang masih terasa berat materinya menurut saya. Yak sekarang saya akan membagikan materi mengenai sinkronisasi dalam sistem operasi. Pertama-tama pastinya kita harus tahu terlebih dahulu apa itu sinkronisasi, barulah kita bisa membahas sinkronisasi lebih dalam lagi. Sinkronisasi merupakan suatu proses secara bersama sama dan saling berbagi data bersama dapat mengakibatkan race condition atau inkosistensi data. Sinkornisasi di perlukan untuk menghindari terjadinya ketidak konsistenan data akibat adanya akses secara konkuren. Proses-Proses tersebut disebut konkruen jika proses itu ada dan berjalan pada waktu yang bersamaan. Sinkronisasi bermanfaat sebagai penyimpanan data sementara dan non sementara agar dapat mempermudah pekerjaan.

Terdapat beberapa istilah yang ada dalam sinkronisasi sistem operasi ini, antara lain :
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.
Monitor digunakan untuk menangani masalah yang akan muncul karna pemakai semafor.
JVM iyalah mengimplementasikan monitor. monitor JVM dapat digunakan menggunakan keyword synchronized

Masalah pada  Sinkronisasi  terdapat dari masalah lainnya, seperti masalah Race Condition  dan Critical Section. 

Race Condition merupakan suatu kondisi dimana dua atau lebih proses mengakses sumber daya secara bersama sama. Jika suatu proses sedang menjalankan Critical Section, maka proses lain tidak bisa masuk kedalam Critical Section tersebut.
Critical Section merupakan suatu kode segmen dari proses-proses yang memungkinkan terjadinya Race Condition. Beberapa kode dalam Critical Section , kode tersebut iyalah :
  • Entry Section : kode yang difungsikan untuk masuk ke dalam critical section 
  • Critical Section : di mana kode ini hanya ada dalam satu proses yang dapat dieksekusi pada satu waktu. 
  • Exit Section: akhir dari critical section, dan mengizinkan proses lain. 
  • Remainder Section : kode istirahat setelah masuk ke proses critical section.
Solusi Critical Section adalah:
Mutual Exclusion : Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.)
Terjadinya Kemajuan (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 bias ditunda.
Adanya batas waktu tunggu (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.

Critical Section dalam kernel adalah:
Interupsi :
Interupsi merupakan pusat pada sistem operasi, yang menyediakan cara efisien bagi sistem operasi untuk berinteraksi terhadap lingkungannya. Pemrograman berbasis interupsi secara langsung didukung hampir dengan seluruh CPU modern.
Page Fault:
Page fault merupakan exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering disingkat fault.
Kernel code memanggil fungsi penjadwalan sendiri.

Ya sepertinya sudah cukup potingan saya kali ini. Dan untuk kalian yang ingin tahu lebih lanjut tentang proses sinkronisasi pada sistem operasi, kalian bisa membuka http://williamstallings.com/OS/Animation/Animations.html . Terdapat banyak animasi yang dapat membantu pemahaman kita mengenai hal ini. Yang terakhir untuk kalian yang ingin tahu lebih detail mengenai proses sinkronisasi dengan semaphore, kalian bisa membuka http://intip.in/gk91 .

Sumber :

0 komentar:

Posting Komentar