Sabtu, 14 Desember 2013

ARTIKEL KONKURENSI
SISTEM INFORMASI




TUGAS ARTIKEL SISTEM INFORMASI 
Diajukan untuk memenuhi salah satu syarat tugas artikel Sistem Informasi

Disusun oleh :
Diki Prayugo                : 12125388


Jurusan Manajemen Informatika
Akademi Manajemen Informatika dan Komputer Bina Sarana Informatika
Jakarta

2013




MASALAH – MASALAH KONKURENSI

1.1.  Pengertian Konkurensi.
Konkurensi adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan:
1.    Mutual Exclusion
2.    Sinkronisasi
3.    Deadlock
4.    Startvation

1.2. Prinsip-prinsip Konkurensi
Konkurensi meliputi hal-hal sbb:
•    Alokasi waktu pemroses untuk proses-proses
•    Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
•    Komunikasi antarproses
•    Sinkronisasi aktivitas banyak proses.
Konkurensi dapat muncul pada konteks berbeda, antara lain:
1.    Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2.         Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
3.    Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
4.         Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

A.           Kesulitan-kesulitan yang ditimbulkan konkurensi.
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
a)    Aktivitas proses-proses lain
b)    Cara sistem operasi menangani interupsi
c)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.
2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:
a)    Pemakaian bersama sumber daya global.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b)    Pengelolaan alokasi sumber daya agar optimal.
Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c)    Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:
a)    Sistem operasi harus mengetahui proses-proses yang aktif.
b)   Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1)    Waktu pemroses.
(2)    Memori
(3)    Berkas-berkas
(4)    Perangkat I/O
c)    Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses    dari gangguan proses-proses lain.
d)    Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.
B.        Tiga katagori interaksi dengan banyak proses (konkuren).
Proses-proses tidak saling peduli (independent) => Prosesproses tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu.
Proses-proses saling mempedulikan secara tidak langsung => Prosesproses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama-sama mengakses objek tertentu (seperti buffer Input/Output). Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu.
Proses-proses saling mempedulikan secar langsung Prosesproses dapat saling bekomunikasi dan dirancang bekerja sama untuk suatu aktivitas.


B.                 Masalah-masalah Akibat Kongkurensi.
Proses proses yang kongkuren akan menyebabkan beberapa kemungkinan masalah yang muncul. Masalah ini muncul setelah atau ketika proses berlangsung. Adapun kemungkinan-kemungkinan masalah tersebut adalah :
a.      Mutual exclusion (pengeluaran timbal balik).
Merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section. Hanya satu program pada satu saat yang diijinkan masuk ke critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahui oleh sistem operasi. Hanya saja, system operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu. Pemrograman harus menspesifikasikan bagian-bagian critical section, sehingga sistem operasi akan menjaganya. Pentingnya mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu.Pemaksaan atau pelanggaranmutual exclusion menimbulkan :
Ø Deadlock
Ø Starvation
b.          Deadlock (buntu).
Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar. Ilustasi deadlock, misalnya :
Ø    Terdapat dua proses, yaitu P1 dan P2 dan dua sumber daya kritis, yaitu R1 dan R2.
Ø    Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan kondisi ini terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2.
                      Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisideadlock, yang tidak dapat membuat kemajuan apapun dan deadlock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semuanya tidak dapat mengakhiri prosesnya secara benar.
c.           Starvation(kelaparan).
Starvation adalah keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya. Ilustasi deadlock, misalnya :
Ø       Terdapat tiga proses, yaitu P1, P2 dan P3.
Ø       P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik Skenario berikut terjadi :
Ø       P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R.
  Ø       Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
   Ø      Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembalidiberikan ke P1 yang saat itu kembali membutuhkan sumber daya R. Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).
d.    Sinkronisasi.
   Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. tujuan utama sinkronisasi adalah menghindari terjadinya inkonsitensi 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 dan starvation. Sinkronisasi umumnya dilakukan dengan bantuan perangkat sinkronisasi. Penyelesaian terhadap masalah ini sangat penting karena perkembangan teknologi sistem komputer menuju ke sistem multiprocessing, terdistribusi dan paralel yang mengharuskan adanya proses-proses kongkuren.
C.                Pokok Penyelesaian Masalah Kongkurensi.
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1.    Mengasumsikan adanya memori yang digunakan bersama.
 2.    Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih memudahkan penyelesaian masalah kongkurensi. Metode memori bersama dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem tersebar.

D.        Keamanan sistem.
            1.         Masalah-masalah Keamanan.
                                    Pada keamanan, terdapat dua masalah penting, yaitu :
a.         Kehilangan data
Kehilangan data dapat disebabkan antara lain :
1)                 Bencana seperti kebakaran, banjir, gempa bumi dll
2)                 Kesalahan perangkat keras dan perangkat lunak Ketidakfungsian pemroses Disk yang tidak bisa terbaca Kesalahan telekomunikasi Kesalahan program
3)                 Kesalahan atau kelalaian manusia Kesalahan pemasukan data Memasang disk yang salah Eksekusi program, Kehilangan disk
2.         Peyusup
a.                   Penyusup aktif, yaitu yang mengubah data yang tidak diotorisasi.
b.                   Penyusup pasif, yaitu yang membaca data yang tidak diotorisasi.
3.      Kebutuhan keamanan sistem komputer dikategorikan menjadi 3 aspek, yaitu :



a.                  Kerahasiaan.
Kerahasiaan adalah keterjaminan bahwa informasi di sistem komputer hanya dapat diakses oleh pihak-pihak yang diotorisasi dan dimodifikasi tetap menjaga konsistensi dan keutuhan data di sistem.
b.                  Integritas.
Integritas adalah keterjaminan bahwa sumber daya sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang diotorisasi.
c.                  Ketersediaan.
Ketersediaan adalah keterjaminan bahwa sumber daya sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan.
4.         Ancaman terhadap sistem komputer dikategorikan menjadi 4 ancaman, yaitu :
a.         Interupsi.
Sumber daya sistem komputer dihancurkan atau menjadi tidak tersedia atau tidak berguna. Hal ini merupakan ancaman terhadap ketersediaan.
Contoh : Penghancuran bagian perangkat keras, seperti hardisk. Pemotongan kabel komunikasi.
b.                  Intersepsi.
Pihak yang tidak diotorisasi dapat mengakses sumber daya. Hal ini merupakan ancaman terhadap kerahasiaan.
Contoh : Penyadapan untuk mengambil data rahasia Mengkopi file tanpa diotorisasi
c.                   Modifikasi.
Pihak yang tidak diotorisasi tidak hanya mengakses tapi juga merusak sumber daya. Hal ini merupakan ancaman terhadap integritas,
Contoh : Mengubah nilai-nilai file data Mengubah program sehingga bertindak secara berbeda. Memodifikasi pesan-pesan yang ditransmisikan pada jaringan.
d.                  Fabrikasi.
Pihak yang tidak diotorisasi menyisipkan/memasukkan objek-objek palsu ke sistem. Fabrikasi merupakan ancaman terhadap integritas,
Contoh : Memasukam pesan-pesan palsu ke jaringan. Penambahan record ke file.
5.                   Mekanisme Proteksi Sistem Komputer.
Pada sistem komputer banyak objek yang perlu diproteksi, yaitu :
Objek Perangkat Keras => objek perangkat keras yang perlu diproteksi, anatara lain : pemroses, segmen memory, terminal, disk drive, printer, dsb.
Objek Perangkat Lunak => objek perangkat lunak yang perlu diproteksi, anatara lain : proses, file, basis data, semaphore, dsb.
6.         Program jahat.
1.         Bacteria.
Bacteria adalah program yang mengkonsumsi sumber daya sistem dengan mereplikasi dirinya sendiri. Bacteria tidak secara eksplisit merusak file. Tujuan program ini hanya satu yaitu mereplikasi dirinya. Program bacteria yang sederhana hanya mengeksekusi dua kopian dirinya secara simultan pada sistem multiprogramming atau menciptakan dua file baru, masing-masing adalah kopian file program bacteria. Kedua kopian ini kemudian mengkopi dua kali, dan seterusnya. Bacteria bereproduksi secara eksponensial, dengan cepat mengambil alih seluruh kapasitas pemproses, memori atau ruang disk, mengakibatkan penolakan pengaksesan pemakai ke sumber daya.
2.                  Logic bomb.
Logic bomb adalah logik yang ditempelkan pada program komputer agar memeriksa suatu kumpulan kondisi di sistem. Ketika kondisi-kondisi yang dimaksud ditemui, logik mengeksekusi suatu fungsi yang menghasilkan aksi-aksi tak diotorisasi. Logic bomb menempel pada suatu program resmi yang di-set “meledak” ketika kondisi-kondisi tertentu dipenuhi. Contoh kondisi-kondisi untuk memicu logic bomb adalah ada atau tidaknya file-file tertentu, hari tertentu dari minggu atau tanggal, atau pemakai menjalankan aplikasi tertentu. Begitu terpicu, bombmengubah atau menghapus data, mesin mati, atau mengerjakan perusakan lain.

3.                  Trapdoor.
Trapdoor adalah titik masuk tak terdokumentasi rahasia di satu program untuk memberikan akses tanpa metode-metode otentifikasi normal. Trapdoor telah dipakai secara benar selama bertahun-tahun, oleh pemrogram untuk mencari kesalahan program.
Trapdoor menjadi ancaman ketika digunakan pemprogram jahat untuk memperoleh pengaksesan tak diotorisasi.
4.                  Trojan horse.
             Trojan horse adalah rutin tak terdokumentasi rahasia ditempelkan dalam suatu program berguna. Program yang berguna mengandung kode tersembunyi yang ketika dijalankan melakukan suatu fungsi yang tak diinginkan . Eksekusi program menyebabkan eksekusi rutin rahasia. Program Trojan horse yang sulit dideteksi adalah kompilator yang dimodifikasi sehingga menyisipkan kode tambahan ke program-program tertentu begitu dikompilasi, seperti programlogin. Kode menciptakan Trapdoor pada program login yang mengijinkan penciptalog ke sitem menggunakan password khusus. Trojan horse jenis ini tak pernah dapat ditemukan jika hanya membaca program sumber.
Motivasi lain dari Trojan horse adalah penghancuran data. Program muncul dengan melakukan fungsi-fungsi berguna (seperti kalkulator), tapi juga secara diam-diam menghapus file-file pemakai. Trojan horsebiasa ditempelkan pada program-program atau rutin-rutin yang diambil dari BBS, intrrnet, dsb.
5.                  Virus.
Virus adalah kode yang ditempelkan dalam satu program yang menyebabkan pengkopian dirinya disispkan ke satu program lain atau lebih. Program “menginfeksi” program-program lain dengan memodifikasi program-program itu. Modifikasi itu termasuk memasukkan kopian program virus yang kemudian dapat “menginfeksi’ program-program lain. Selain hanya propagasi, virusbiasanya melakukan fungsi yang tak diinginkan.
Seperti virus biologis, pada virus komputer terdapat kode instruksi yang dapat membuat kopian sempurna dirinya. Ketika komputer yang terinfeksi berhubungan (kontak) dengan perangkat lunak yang belum terinfeksi, kopianvirus memasuki program baru. Infeksi dapat menyebar dari komputer ke komputer melaui pemakai-pemakai yang menukarkan disk atau mengirim program melaui jaringan. Pada lingkungan jaringan, kemampuan mengakses aplikasi clan layanan-layanan komputer lain merupakan fasilitas sempurna penyebaran virus.
6.                  Worm.
Worm adalah program yang dapat mereplikasi dirinya dan mengirim kopian-kopian dari komputer ke komputer lewat hubungan jaringan. Begitu tiba, wormdiaktifkan untuk mereplikasi dan propagasi kembali. Selain hanya propagasi,worm biasanya melakukan fungsi yang tidak diinginkan.
Network worm menggunakan hubungan jaringan untuk menyebar dari sistem ke sistem lain. Sekali aktif di suatu sistem, network worm dapat berlaku sepertivirus atau bacteria, atau menempelkan program Trojan horse atau melakukan sejumlah aksi menjengkelkan atau menghancurkan.
Untuk mereplikasi dirinya, network worm menggunakan suatu layanan jaringan, seperti :
Fasilitas surat elektronik, yaitu worm mengirimkan kopian dirinya ke sistem-sistem lain.
Kemampuan eksekusi jarak jauh, yaitu worm mengeksekusi kopian dirinya di sistem lain.
Kemapuan login jarak jauh, yaitu worm log pada sistem jauh sebagai pemakai dan kemudian menggunakan perintah untuk mengkopi dirinya dari satu sistem ke sistem lain.

1.      Mutual Exclusion
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDkVaP-8G968tfm9iL6GLzCtVtbUQUIK29eSY76Ki2L763kK0Yjn47VAkJS49pZwVS9JUS15Z1FLcZwWh2OqhoX_DXFx2S56WpcFt8Du7fnbrL6AJCgFNsmOTfJUWEX5wO9AXddm1wr5aa/s303/g1.png

Adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. Proses-proses yang lain dilarang mengerjakan hal yang sama. Bagian program yang sedang mengakses memori atau sumber daya yang dipakai bersama disebut Critical Section/Region. Mutual Exclusion merupakan jaminan untuk mengatasi kondisi pacu agar tidak boleh 2 proses atau lebih memasuki Critical Section secara bersamaan.
Kesuksesan proses- proses kongkuren memerlukan pendefinisian Critical Section dan memaksakan Mutual Exclusion di antara proses-proses kongkuren yang sedang berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.
Pemaksaan adanya mutual eclusion menimbulkan dua maslah, yaitu:
-      Deadlock.
-           Startvation.
Kriteria penyelesaian mutual exclusion:
1.      Mutual exclusion harus dijamin, hanya satu proses pada saat yang
diijinkan masuk ke critical section.
2.      Prosesyang berada di noncritical section,  dilarang memblocked proses lain yang ingin masuk critical section.
3.      Harus dijamin proses yang ingin masuk critical section tidak menunggu
selama waktu yang tak berhingga.
4.      Ketika tidak ada proses pada critical section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
5.      Tidak ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
  
2.      Deadlock. 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm2YDazsTB3FWw4jYhjruug2DkgLxKeTjOY6gAbOXWOBuqFHuTX2Qr6uhHmTlXRWeop2L6N-C44RtWYkj3VazLDhur0WXfGwabYsC5AKplv0vaHseiZo9YpAe8ZSzU5MAXHlm-JHDzEwN1/s320/g2.png
Gambar 1. Dead Lock
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai resource Y.
Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
  
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ciKBmaFjVU9Jot7_0k73XOAs6VXVUXyePwzQvOrnWlAQwjkai8vOcIfpM168yK1yGQ7rYJRprZvY2nPb1YA9V0GSDYNADJUN9ltU-g5ocG0AE8c-TWqhPbrgp91wD53VBsdztSuFx-En/s174/g3.png
Gambar 2. Dead lock
Ilustrasi:
-          Terdapat dua proses P1 dan P2
-          Dua sumber kritis R1 dan R2
-          Proses P1 dan P2 harus mengakses kedua sumber daya itu (R1 dan R2).
-          R1 diberikan pada P1 sedang R2 diberikan pada P2.
-          Karena untuk melanjutkan eksekusi memerlukan dua sumber daya sekaligus maka proses akan saling menunggu sumber daya lain selamanya.
Syarat terjadinya deadlock:
-                Mutual exclusion
Tiap sumber daya saat diberikan pada satu proses.
-           Hold and wait Condition
Proses-proses yang sedang menggenggam sumber daya, menunggu
sumberdaya-sumberdaya baru
-          Non Preemption Condition
-          Circulair Wait Condition
Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi deadlock :
1.      Pencegahan terjadinya deadlock
2.      Pengindaran terjadinya deadlock
3.      Deteksi dan pemulihan deadlock
3.         Starvation.
Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan).
Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran
.  
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh36T4C3MyszMkHqYvXa3P1Ybwyr3u1Jc1bHk5bkIyuj7I8ZOVhefPzufYv9k7VlYTUklDPnQNdqVrNEtlttgXHM3oUNGLNxO-WkLzVWI3VLQdawOEPuoc3hPTVg6KcMDn4AvAVOxgvrCZ1/s320/g4.png
Gambar 2. Starvation
Ilustrasi:
Misal terdapat 3 (tiga) proses P1,P2 dan P3. P1,P2 dan P3.memerlukan akses sumber daya R secara periodik. Selanjutnya : P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber sumber daya R. Ketika P1 keluar dari critical region, P2 dan P3 diijinkan mengakses R. Asumsi P3 diberi hak akses.  Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R. Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.
4.      Sinkronisasi. 
Adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan 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.
Latar Belakang :
1.      Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten.
2.      Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja. 
3.      Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.
4.      Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.
Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1.      Mengasumsikan adanya memori yang digunakan bersama         
2.      Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih memudahkan penyelesaian masalah kongkurensi.
Metode memori bersama dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori bersama.
Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem tersebar.
A.        Mutual Exclusion. 
Adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. Proses-proses yang lain dilarang mengerjakan hal yang sama.
Bagian program yang sedang mengakses memori atau sumber daya yang dipakai bersama disebut Critical Section/Region. Mutual Exclusion merupakan jaminan untuk mengatasi kondisi pacu agar tidak boleh 2 proses atau lebih memasuki Critical Section secara bersamaan.
Kesuksesan proses- proses kongkuren memerlukan pendefinisian Critical Section dan memaksakan Mutual Exclusion di antara proses-proses kongkuren yang sedang berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.
Pemaksaan adanya mutual eclusion menimbulkan dua maslah, yaitu:
- Deadlock.
- Startvation.
Gambar 1. Dead Lock
Description: http://tentangsistemoperasi.files.wordpress.com/2010/10/dead-lock.jpg?w=497
Gambar 2. Starvation
Description: http://tentangsistemoperasi.files.wordpress.com/2010/10/starvation.jpg?w=497
B.        Deadlock.
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai resource Y.
Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
C.        Starvation.
Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan).
Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvationkarena resource(jembatan) selalu dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
D.        Sinkronisasi. 
Adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan 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.
Sumber:





semoga bermanfaat yaa... ^_^

Tidak ada komentar:

Posting Komentar