
Hari ini saya mau share makalah mengenai Concurency Of Component. makalah ini jarang ditemukan di Google, pembahasannya pun sangat sedikit sekali, tetapi saya berusaha mencari materinya sampai terbentuklah sebuah makalah yang menurut saya lumayanlah pembahasannya ...
Oke langsung saja ini dia makalahnya.....
Makalah
PENGOLAHAN
DATA TERDISTRIBUSI
(
Concurrency Of Component
)
DI SUSUN OLEH:
NIM : C1257201119
Nama : Sakinah Lisdawati
Jurusan : Sistem Informasi
Semester : V ( Lima)
JURUSAN/PROGRAM
STUDI SISTEM INFORMASI
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA DAN KOMPUTER
PALANGKA RAYA
2014
KATA PENGANTAR
Dengan
mengucapkan Puji dan Syukur kepada Tuhan
Yang Maha Esa, karena dengan pertolonganNya kami dapat menyelesaikan makalah
kami yang berjudul “Concurrency
of Component” Meskipun ada
banyak permasalahan yang kami alami dalam proses pengerjaannya, tapi kami
berhasil menyelesaikannya dengan baik dan tepat waktu.
Tak lupa kami
mengucapkan terima kasih kepada dosen pengampu mata kuliah Pengolahan Data Terdistribusi (PDT) yang telah memberikan judul mengenai concurrency of
componenti sehingga dapat membantu
kami dalam mengerjakan makalah ini. Kami juga mengucapkan terima kasih kepada
teman-teman mahasiswa yang juga sudah memberi kontribusi baik langsung maupun
tidak langsung dalam pembuatan makalah ini. Tentunya ada hal-hal yang ingin
kami berikan kepada mahasiswa dari hasil makalah ini. Karena itu kami berharap
semoga makalah ini dapat menjadi sesuatu yang berguna bagi kita semua.
Tentunya dalam
makalah ini juga masih terdapat kekurangan-kekurangan, untuk itulah penulis
mengharapkan kritik, saran dan masukan yang membangun agar makalah ini dapat bermanfaat bagi
kita semua.
Akhir kata penulis
meminta maaf yang sebesar-besarnya apabila ada kesalahan dalam penulisan kata
yang terdapat dalam makalah ini. Terima kasih.
Tim
Penyusun
DAFTAR
ISI
Halaman Judul.................................................................................................. i
Kata Pengantar................................................................................................. ii
Daftar Isi........................................................................................................... iii
BAB I
PENDAHULUAN
A. Latar
Belakang........................................................................................... 1
B.
Rumusan
Masalah ..................................................................................... 1
C.
Tujian Penulis............................................................................................. 2
D. Manfaat Penulisan ..................................................................................... 2
BAB II
PEMBAHASAN
A.
Definisi Concurrency of Component....................................................... 3
B. Prinsip-prinsip
Konkurensi ....................................................................... 3
C. Kerjasama
diantara Proses ........................................................................ 5
D. Masalah
Umum Concurrency (Konkurensi) ............................................. 7
E.
Penyelesaian Masalah
Konkurensi dalam Mutual exclusion..................... 10
BAB III PENUTUP
A. Kesimpulan................................................................................................. 15
B. Saran........................................................................................................... 15
Daftar Pustaka
BAB I
PENDAHULUAN
A.
Latar Belakang
Concurrency of component merupakan salah satu karakteristik pengolahan data
terdistribusi, dimana sifatnya setiap komputer/aplikasi dapat melakukan
pekerjaan masing-masing tanpa terjadi konflik diantaranya. Hal yang wajar
apabila proses eksekusi program harus berjalan secara konkuren terkadang di
perlukan juga untuk mengatur layanan seperti file sharing.
Setiap komputer memiliki clock yang berbeda dalam
sistem terdistribusi. Agar tidak terjadi konflik maka diperlukan koordinasi
agar tidak terjadi konflik clock antar komputer. Saat program membutuhkan
koordinasi antarkomputer, dilakukan proses pertukaran pesan antar komputer.
Berdasarkan
uraian diatas penulis merasa perlu untuk menjabarkan lebih dalam tentang
Concurrency Of component yang meliputi definisi, prinsip-prinsip, masalah-masalah
umum dalam Konkurensi dan bagaimana penyelesaian dari masalah-masalah tersebut.
B.
Rumusan
Masalah
Adapun masalah yang akan dikaji di
dalam makalah ini yaitu :
1.
Apa yang dimaksud dengan
concurrency of component?
2.
Prinsip-prinsip
concurrency of component?
3.
Masalah umum dalam
sistem concurrency of component?
4.
Bagaimana Penyelesaian Masalah
Umum Deadlock dan Starvation ?
C. Tujuan
Penulisan
Adapun
tujuan dari penulisan makalah ini
yaitu :
1.
Mahasiswa mengetahui Definisi
dari concurrency of component.
2.
Mahasiswa mengetahui Prinsip-prinsip
dari concurrency of component.
3. Mahasiswa
Mengetahui Masalah umum dari sistem
concurrency of component.
4.
Mahasiswa mengetahui Penyelesaian Masalah Deadlock dan Starvation
D. Manfaat
Penulisan
Manfaat
penulisan makalah ini
adalah Sebagai salah satu aset studi pembuatan karya tulis ilmiah, dan menambah wawasan
bagi pembaca dan
penulis tentang concurrency of component
dalam Sistem terdistribusi.
BAB II
PEMBAHASAN
A.
Definisi
Concurrency of Component
Concurrency of component
adalah pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan
bersama dalam jaringan komputer)
meliputi ( hardware/software) secara bersamaan.
B.
Prinsip-prinsip Konkurensi
Konkurensi
meliputi hal-hal sebagai berikut :
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses.
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses.
Sistem berbagi
memori
Sistem berbagi memori atau yang disebut juga sebagai
Shared Memory System merupakan salah satu cara komunikasi antar proses dengan
cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar
proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh
pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan
memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara
efektif.
Sistem
berkirim pesan
Sistem berkirim pesan adalah proses komunikasi antar
bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan
dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem
ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah
membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu
dapat saling bertukar pesan melalui link komunikasi tersebut. Sistem berkirim
pesan sangat penting dalam sistem operasi. Karena dapat diimplementasikan dalam
banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang
membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.
Terdapat dua macam cara berkomunikasi, yaitu:
Komunikasi langsung.
Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus
mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat
mencegah pesan salah terkirim ke proses yang lain.
Karakteristiknya antara lain:
Ø Link dapat otomatis dibuat
Ø Sebuah link berhubungan dengan tepat satu proses
komunikasi berpasangan
Ø Diantara pasangan itu terdapat tepat satu link
Ø Link tersebut biasanya merupakan link komunikasi dua arah
b. Komunikasi tidak langsung
Berbeda dengan komunikasi langsung, jenis komunikasi ini
menggunakan sejenis kotak surat atau port yang mempunyai ID unik untuk menerima
pesan. Proses dapat berhubungan satu sama lain jika mereka membagi port mereka.
Karakteristik komunikasi ini antara lain:
Ø Link hanya terbentuk jika beberapa proses membagi kotak
surat mereka
Ø Sebuah link dapat terhubung dengan banyak proses
Ø Setiap pasang proses dapat membagi beberapa link komunikasi
Ø Link yang ada dapat merupakan link terarah ataupun link
yang tidak terarah
C.
Kerjasama diantara
Proses
Kerjasama diantara proses terbagi kedalam 2
bagian, diantaranya :
a. Kerjasama diantara proses dengan pemakaian bersama
Dalam kasus kerjasama pemakaian sumber daya bersama
meliputi proses-proses yang saling berinteraksi tanpa dinyatakan secara
eksplisit. Contoh : Banyak proses mengakses variabel atau berkas yang dipakai
bersama. Proses-proses dapat menggunakan dan memperbarui data yang dipakai bersama
tanpa peduli proses-proses lain. Proses mengetahui bahwa proses-proses lain
dapat juga mengakses data yang sama. Proses-proes harus bekerja sama untuk
menjamin integritas data yang dipakai bersama tersebut.
Kerjasama diantara proses-proses dalam pemakaian bersama
mempunyai masalah:
Kerjasama diantara proses-proses dalam pemakaian bersama
mempunyai masalah:
Ø Mutual exclusion
Ø Deadlock
Ø Starvation
Karena data disimpan pada suatu sumber daya (peralatan,
memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan
starvation. Perbedaannya adalah item-item data dapat diakses dengan dua mode, yaitu :
1.
Operasi pembacaan
dan penulisan harus mutually exclusive (yaitu benar-benar hanya satu proses
yang berada di critical section).
2.
Operasi penulisan
saja yang harus mutually exclusive.
Pada situasi ini, masalah baru muncul yaitu mengenai
koherensi data. Critical section digunakan untuk menjamin integritas data.
b. Kerjasama diantara proses dengan komunikasi
Pada kasus persaingan, proses-proses memakai sumber daya
tanpa peduli prosesproses lain. Pada kasus kedua, proses-proses memakai bersama
nilai dan meski masingmasing proses tidak secara eksplisit peduli proses-proses
lain. Tapi proses-proses peduli untuk menjaga integritas data. Ketiak
proses-proses bekerja sama dengan komunikasi, beragam proses berpartisipasi
dalam suatu usaha dengan menghubungkan semua proses. Komunikasi menyediakan
cara untuk sinkronisasi atau koordinasi beragam aktivitas. Komunikasi dicirikan
dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk mengirim dan
menerima pesan disediakan sebagai bagian bahasa pemrograman atau disediakan
kernel sistem operasi. Karena tak ada sesuatu yang dipakai bersama diantara
proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah mutual
exclusion. Tetapi masalah deadlock dan starvation dapat muncul.
D.
Masalah Umum Concurrency
(Konkurensi)
Yang dimaksud dengan concurrency
(sistem atau program yang berjalan bersama-sama) disini adalah suatu
karakteristik yang dimiliki oleh sistem terdistribusi dimana sifatnya setiap
komputer/aplikasi dapat melakukan pekerjaan masing-masing tanpa terjadi konflik
diantaranya. Hal yang wajar apabila proses eksekusi program harus berjalan
secara konkuren. Melakukan koordinasi konkurensi terkadang diperlukan juga
untuk mengatur layanan seperti file sharing.
Pada proses-proses konkuren yang
berinteraksi mempunyai beberapa masalah yang harus diselesaikan yaitu :
1.
Mutual Exclusion (pengeluaran timbal balik)
Mutual
exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu
interval waktu tertentu, 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
2.
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 kondisi deadlock, yang tidak dapat
membuat kemajuan apapun dan deadlock merupakan kondisi terparah
karena dapat melibatkan banyak proses dan semuanya tidak dapat mengakhiri
prosesnya secara benar.
3. Starvation
(kelaparan)
Starvation
adalah
keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses
yang tidak mendapatkan gilirannya.
Ilustasi
starvation, 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 kembali diberikan 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).
E.
Penyelesaian Masalah Konkurensi dalam Mutual
exclusion
a.
Penanganan
DEADLOCK
Secara umum
terdapat 4 cara untuk menangani keadaan deadlock, yaitu:
1.
Pengabaian. Maksud dari
pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan
pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan
cara ini dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini
adalah sistem tidak mendeteksi adanya deadlock dan secara otomatis
mematikan proses atau program yang mengalami deadlock.
2.
Pencegahan. Penanganan
ini dengan cara mencegah terjadinya salah satu karakteristik deadlock.
Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada
sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock.
3.
Penghindaran. Menghindari
keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah
bahwa antara pencegahan dan penghindaran adalah dua hal yang berbeda.
Pencegahan lebih kepada mencegah salah satu dari empat karakteristik deadlock
terjadi, sehingga deadlock pun tidak terjadi. Sedangkan penghindaran
adalah memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan
permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock.
4.
Pendeteksian dan Pemulihan. Pada sistem
yang sedang berada pada kondisi deadlock, tindakan yang harus diambil
adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan
mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses
pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau
tidak serta proses mana yang mengalami deadlock.
PERBAIKAN DARI DEADLOCK
Terdapat dua pilihan untuk membebaskan deadlock. Satu solusi sederhana adalah dengan menghentikan satu atau beberapa
proses untuk membebaskan kondisi menunggu sirkular. Pilihan kedua adalah
menunda beberapa sumber daya dari satu atau lebih proses yang deadlock.
1.
Terminasi
Proses
Untuk
memperbaiki deadlock dengan terminasi proses, dapat digunakan salah satu dari dua metode di bawah ini :
• Menghentikan (abort) semua proses yang deadlock
• Menghentikan satu proses setiap waktu sampai siklus deadlock hilang.
Untuk menentukan urutan proses yang harus dihentikan ada beberapa faktor
yang harus diperhatikan :
• Prioritas proses.
• Berapa lama proses dijalankan dan berapa lama lagi selesai.
• Sumber daya yang digunakan proses.
• Sumber daya proses yang diperlukan untuk menyelesaikan task.
• Berapa proses yang perlu diterminasi.
• Apakah proses interaktif atau batch.
2.
Menunda Sumber Daya
Untuk menghilangkan deadlock dengan menunda sumber daya, sumber daya dari
proses harus ditunda dan memberikan sumber daya tersebut ke proses lain sampai
siklus deadlock hilang.
Jika penundaan dibutuhkan untuk menghilangkan deadlock, terdapat tiga hal yang
perlu diperhatikan :
• Pilihlah korban (sumber daya) yang mempunyai biaya minimal.
• Lakukan rollback yaitu memulai kembali (restart) proses
pada state yang selamat.
• Harus dijamin starvation tidak akan terjadi karena kemungkinan
beberapa proses selalu terpilih sebagai korban termasuk jumlah rollback sebagai
faktor biaya.
b.
Penanganan STARVATION
Gambar 1.1 Flowchart Penyelesaian
Masalah dengan AGING
Ada beberapa cara untuk mengatasi Starvation, salah
satunya dengan Aging. Pada flowchart di atas, proses awal yang ada diberi
urutan (N) pemrosesan dengan rumus N = (
P+T ) / P. N maksimum akan mulai dikerjakan dan proses yang lain dinaikkan
tingkat urutan prosesnya agar nanti jika ada proses lain yang masuk, proses
terdahulu mendapatkan bagian resource dan dapat dikerjakan. Jika ada beberapa
proses yang memiliki N maksimum, maka diantara proses tersebut dilihat dari
waktu yang dibutuhkan untuk menyelesaikannya. Jika masih sama juga, maka
dilihat waktu kedatangannya.
Selain itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara
Round Robin. Pada Round Robin, proses yang masuk akan dimasukkan ke dalam
antrian menurut kedatangan proses tersebut. Dalam penyelesainnya, suatu proses
tidak akan langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum
yang diberikan. Waktu kuantum adalah waktu yang diberikan untuk menyelesaikan
suatu proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari
proses tersebut dikembalikan ke antrian paling belakang dan resource
dipindahkan ke proses selanjutnya. Dengan cara ini, semua proses yang
mengantri, akan mendapatkan resource secara bergantian ( tidak ada proses yang
memonopoli resource ) sehingga semua proses dapat diselesaikan.
Gambar 1.2 Flowchart Penyelesaian
Masalah dengan Round Robin
|
BAB III
PENUTUP
A. KESIMPULAN
Concurrency
Of Component merupakan salah satu karakteristik dari sistem terdistribusi,
concurrency (konkurensi) sangat berperan dalam mencegah terjadinya konflik
antar komponen pada sebuah sistem terdistribusi atau sistem yang bekerja dalam
sebuah jaringan.
Konkurensi
meliputi hal-hal sebagai berikut :
•
Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses.
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
• Komunikasi antar proses
• Sinkronisasi aktivitas banyak proses.
Pada
proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus
diselesaikan yaitu :
Ø Mutual exclusion
Ø Deadlock
Ø Starvation
B. SARAN
Makalah ini masih jauh dari
sempurna, karena masih terbatasnya referensi atau literatur yang membahas
secara khusus tentang Concurrency Of Component khususnya yang berhubungan
dengan Sistem terdistribusi. Semoga kedepannya akan lebih banyak lagi pustaka
yang membahas tentang Concurrency of Component khususnya dalam sistem
terdistribusi, agar dapat menyempurnakan kembali isi dari makalah ini.
DAFTAR PUSTAKA
- Hartanto, Rudy,
Ir, MT(2003), Dasar-dasar Teknik
komputer’
Penerbit Gava Media Yogyakarta. - Silberschatz, Avi, dkk(2000), Apled Operating System : First Edition, Edisi Pertama.
- http://tugasso.blog.com/2010/11/02/konkurensi-dan-keamanan-data/
( Diakses
tanggal 5 Oktober 2014)
- http://ka2forefer.blogspot.com/2013/04/konkurensi.html
( Diakses tanggal 5 Oktober
2014)
Demikianlah Makalah yang saya buat, semoga bermanfaat yaa.. masalah penulisannya di Blog ini memang aneh, sudah saya rapikan di Ms. Word malah jd ancur gini setelah di copas ke editor blog.
izin sedot mba..?
ReplyDelete