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.
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.
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
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.
- Deadlock.
-
Startvation.
Kriteria
penyelesaian mutual exclusion:
1. Mutual
exclusion harus dijamin, hanya satu proses pada saat yang
diijinkan masuk ke critical section.
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.
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.
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak
ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
proses yang ada.
2. Deadlock.
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.
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
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.
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
.
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.
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.
- See more at: http://cahgantenggg.blogspot.com/2013/06/masalah-masalah-konkuren-tugas-sistem.html#sthash.7cKO1efd.dpuf
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.
- Deadlock.
-
Startvation.
Gambar 1. Dead Lock
Gambar 2. Starvation
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