Sunday, October 6, 2019

MUTUAL EXCLUSION (SISTEM OPERASI)


MUTUAL EXCLUSION


A.Definisi
Beberapa proses terkadang membutuhkan sumber daya yang 
sama pada saat bersamaan. Sumber daya seperti ini disebut 
sumber daya kritis. Bagian program yang menggunakan sumber 
daya kritis disebut memasuki critical region/section
Hanya satu program pada saat yang diijinkan masuk critical region
Kondisi yang tidak dapat diprediksi hasilnya, bergantung pada 
proses-proses berjalan yang sedang bersaing disebut Kondisi Pacu 
(Race Condition). Kondisi pacu harus dihilangkan agar hasil-hasil 
proses dapat diprediksi dan tidak bergantung pada jalannya 
proses-proses tersebut.

Sistem operasi hanya menyediakan layanan (berupa system call
untuk mencegah proses masuk critical section yang sedang 
dimasuki proses lain. Pemrogram harus menspesifikasikan 
bagian-bagian critical region sehingga sistem operasi akan menjaganya
dengan suatu mekanisme untuk mencegah proses lain masuk 
critical region yang sedang dipakai proses lain. inilah yang dimaksud 
dengan mutual exclusion. Mutual Exclusion adalah suatu cara yang 
menjamin jika ada sebuah proses yang menggunakan variabel atau
berkas yang sama (digunakan juga oleh proses lain), maka proses 
lain akan dikeluarkan dari pekerjaan yang sama.


Kriteria penyelesaian Mutual Exclusion : 
1.Mutual Exclusion harus dijamin.
2.Hanya satu proses pada satu saat yang diizinkan masuk 
   Critical Section/Region.
3.Proses yang berada di noncritical section, dilarang memblok 
   proses-proses yang ingin masuk critical section.
4.Harus dijamin proses yang ingin masuk critical section tidak 
   menunggu lama hingga waktu tak terhingga, agar tidak terjadi 
   deadlock atau starvation.
5.Ketika ada proses di critical section maka proses yang ingin masuk 
   critical section harus diijinkan segera masuk tanpa waktu tunda.
6.Tidak ada asumsi mengenai kecepatan relative proses atau 
    jumlah proses yang ada.


B.Metode-metode Penjamin Mutual Exclusion

   1.Metode Naif
   Sebenarnya metode ini tidak menyelesaikan mutual exclusion, 
   karena masih terdapat scenario proses yang membuat situasi 
   kacau. Metode ini sering disebut metode variable lock sederhana.
   Ketika proses hendak masuk critical section, proses lebih dulu 
   memeriksa variable lock dengan ketentuan :
   a.Jika variable lock bernilai 0, proses mengeset variable lock 
      menjadi 1 dan segera masuk critical section.
   b.Jika variable lock bernilai 1, proses menunggu sampai nilai 
      variabel lock menjadi 0. 

  2.Metode untuk situasi tertentu
     Metode ini sering disebut metode bergantian secara ketat yang 
     mengasumsikan proses proses yang hendak masuk critical 
     section secara bergantian terus menerus. Proses memeriksa 
     terus menerus sehingga kondisi siap untuk diproses. Kondisi ini 
     tidak dapat ditentukan lamanya waktu sehingga menyia-nyiakan 
     waktu pemroses. Suatu saat kondisi akan crash ketika ada proses 
     yg harus segera masuk sementara ada proses lain yg masih berjalan.

  3.Metode Busy Waiting
     a.Metode Penyelesaian Dekker
        Algoritma Dekker mempunyai property-property berikut :
        =>Tidak memerlukan instruksi-instruksi perangkat keras khusus.
        =>Proses yang beroperasi di luar critical section tidak dapat 
            mencegah proses lain memasuki critical section.
        =>Proses yang ingin masuk critical section akan segera masuk 
            bila dimungkinkan.
     b.Metode Penyelesaian Peterson
        Sebelum masuk critical section, proses memanggil 
        enter_critical_section, namun sebelumnya proses memeriksa 
        sampai kondisi aman. Terjadi busy waiting, setelah selesai 
        proses menandai pekerjaan dan mengijinkan proses lain masuk.
        Keadaan awal tidak ada proses di critical section. Proses 0 akan 
        masuk critical section. Proses menandai elemen arraynya 
        dan mengeset turn ke 0. Proses memeriksa kondisi,dan prosedur 
        enter_critical_section dilaksanakan. Jika kemudian, proses 1 
        akan masuk, proses akan menunggu sampai interest(0) 
        menjadi FALSE. Kondisi ini hanya terjadi jika proses 0 mengeset 
        elemen itu dan keluar dari critical section.
     c.Metode Pematian Interupsi
       Proses mematikan interupsi ke pemroses dan segera masuk 
       ke critical section. Proses kembali mengaktifkan interupsi segera 
       setelah meninggalkan critical section. Metode ini mengakibatkan :
       =>Pemroses tidak dapat beralih ke proses lain karena interupsi 
           clock dimatikan sehingga penjadual pun tidak dieksekusi. 
           Karena penjadual tidak beroperasi maka tidak terjadi alih proses.
       =>Proses dapat memakai memori bersama tanpa takut terinvensi 
           proses lain karena memang tidak ada proses lain yang dieksekusi 
           saat itu. 
           Kelemahan utama :
           1.Bila proses yang mematikan interupsi mengalami gangguan 
              maka proses tidak akan pernah menghidupkan interupsi 
              kembali. Kejadian ini mengakibatkan kematian seluruh system.
           2.Jika terdapat dua pemroses atau lebih, mematikan interupsi 
              hanya berpengaruh pada pemroses yang sedang 
              mengeksekusi intruksi itu. Proses lain masih dapat memasuki 
              critical section.
     d.Metode Test and Set Lock (TSL)
        Metode ini membaca isi memori ke register dan kemudian menyimpan 
        nilai bukan 0  ke alamat memori. Pemroses yang mengeksekusi 
        instruksi tsl mengunci bus memori, mencegah pemroses lain 
        mengkases memori.
     e.Metode Exchange (XCHG)
        Metode ini menggunakan instruksi exchange (xchg). Instruksi xchg 
        menukarkan dua isi memori.
      f.Metode Instruksi Mesin
        Keunggulan :
        1.Sederhana dan mudah diverifikasi
        2.Dapat diterapkan ke sembarang jumlah proses
        3.Dapat digunakan untuk mendukung banyak critical region
        Kelemahan :
        1.Merupakan metode dengan busy waiting, sangat tidak efisien.
        2.Adanya busy waiting memungkinkan terjadi deadlock dan starvation.

  4.Metode Penyelesaian Level Tinggi (Metode Semapore)
     Dua proses atau lebih dapat bekerja sama dengan menggunakan 
     penanda-penanda sederhana. Proses berhenti sampai proses 
     memperoleh penanda tertentu. Variabel khusus untuk 
     penandaan ini disebut semaphore.Semaphore mempunyai dua property:
     a.Semaphore dapat diinisialisasi dengan nilai bukan negative.
     b.Ada dua operasi terhadap semaphore yaitu Operasi Up dan 
        Operasi Down.
    
    Operasi Down
    Operasi ini menurunkan nilai semaphore. Jika nilai semaphore 
    menjadi bukan positif maka proses yang mengeksekusinya diblok. 
    Operasi Down adalah atomic (atomic action), tidak dapat diinterupsi 
    sebelum selesai. Menurunkan nilai, memeriksa nilai,menempatkan 
    proses pada antrian dan memblok sebagai instruksi tunggal. Tidak 
    ada proses lain yang dapat diakses sampai proses selesai.
   
   Operasi Up
   Operasi ini menaikkan nilai semaphore. Jika satu proses atau lebih 
   telah diblok pada suatu semaphore tidak dapat menyelesaikan 
   operasi down maka salah satu dipilih oleh system dan dibolehkan 
   menyelesaikan operasi downnya. Operasi Up menaikan nilai 
   semaphore, memindahkan dari antrian dan menempatkan satu 
   proses ke senarai ready tidak dapat diinterupsi. Sebelum masuk 
   critical section, proses melakukan down. Bila berhasil maka proses 
   masuk critical section. Bila tidak berhasil maka proses diblok 
   pada semaphore. Proses yang diblok dapat melanjutkan jika 
   proses yang berada di critical section keluar dan melakukan operasi 
   up dan menjadikan proses yang diblok menjadi ready dan berlanjut 
   hingga operasi downnya berhasil.


C.Implementasi Semaphore

1.Pematian Interupsi
   Sistem operasi mematikan interupsi selagi memeriksa semaphore, 
   memperbarui, dan menjadikan proses diblok. Karena semua 
   aksi hanya memerlukan beberapa instruksi,pematian interupsi 
   tidak merugikan.
2.Instruksi tsl
   Pada banyak pemroses, tiap semaphore dilindungi variable lock 
   dan instruksi tsl agar menjamin hanya satu pemroses yang 
   saat itu memanipulasi semaphore.

Sumber: Diolah dari berbagai sumber


                            >>>>>TERIMAKASIH<<<<<


No comments:

Post a Comment

ARSITEKTUR & ORGANISASI KOMPUTER (UNIT MASUKAN & KELUARAN)

UNIT MASUKAN DAN KELUARAN Definisi dan Fungsi: Unit masukan dan keluaran merupakan bagian komponen   utama dari sistem komputer ...