Anda di halaman 1dari 10

BAB II

PEMBAHASAN

2.1 Pengertian Konkurensi

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses


disebut konkuren jika proses-proses berada pada saat yang sama. Dikatakan sebagai landasan
umum perancangan sistem operasi karena dalam menciptakan suatu sistem operasi, sistem
operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih dari satu proses)
pada saat yang bersamaan.

Konkurensi menjadi penting karena pada saat ini hampir seluruh sistem adalah
multiprograming ataupun multithereading, serta menuju pemerosesan tersebar yang
mengharuskan adanya proses-proses konkuren.

2.2 Masalah Yang Terdapat Di Dalam Konkurensi


Pada proses-proses yang konkuren atau berada pada saat yang bersamaan, terdapat
beberapa masalah yang harus diselesaikan yaitu:

1. Mutual exclusion

2. Sinkronisasi

3. Deadlock

4. Starvation

Dengan kata lain, masalah-masalah diatas akan timbul apabila sistem operasi
menjalankan beberapa proses pada saat yang bersamaan.

1. Mutual Exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya
pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat
bersamaan.
Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus
memenuhi kriteria sbb:
Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini
terjadi proses tunggal.
Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang
ingin masuk critical section. Hal ini bisa terjadi startvation.
Harus dijamin bahwa proses yang ingin masuk critical section tidak menunggu selama waktu
yang tak terhingga. Ini bisa mengakibatkan masalah deadlock dan antrian proses bertambah
panjang.
Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section
harus ijinkan masuk tanpa waktu tunda.
Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.
Proses hanya tinggal pada critical section selama satu waktu yang tidak terhingga.

2. Deadlock

Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan
eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami
startvation, yaitu suatu job yang sedang dieksekusi dan eksekusi job tersebut tidak ada
hentinya, tidak diketahui kapan berhentinya proses tersebut atau bahkan job yang antri bisa
dikatakan mempunyai status mati, padahal proses-proses lain sedang menunggu sumber daya
proses.

Kondisi Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat
dan semuanya tidak dapat mengakhiri prosesnya secara benar.

Metode Mengendalikan Deadlock

1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak pernah mengalami
deadlock.
2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat
memperbaikinya.
3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di
dalam sistem.

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

1. Mengabaikan adanya deadlock.

2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan,
dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi.
3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling
mendukung, yaitu:
- Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.

-Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses
yang memintanya.

Pencegahan Deadlock

1. Meniadakan Mutual exclusion.

Harus tetap menjaga resource-resource yang bersifat non-shareable. Yaitu, proses


menahan sebuah resource, proses lain yang meminta resource tsb harus menunggu sampai
proses melepaskannya. Jika terjadi pada perangkat I/O dan berkas, maka sulit untuk
menghindari mutual exclusion pada sumber daya non shareable.

2. Meniadakan Syarat Hold & Wait.

Apabila suatu proses minta ijin untuk mengakses suatu resource, maka proses tersebut
tidak boleh membawa resource yang lainnya. Sebleum proses meminta resource, maka harus
melepas semua resource yang dibawa.

3. Meniadakan Non Preemption.

Jika suatu proses minta ijin mengakses resource, sementara resource tersebut tidak
dapat dipenuhi secepatnya, maka proses tersebut harus membebaskan semua resourcenya
terlebih dahulu.

4. Meniadakan Circular Wait.

Memberi nomor pada setiap resource yang ada, dan setiap resource hanya boleh
mengakses resource secara berurutan.

Mendeteksi Deadlock dan Memulihkan Deadlock

Metode deteksi digunakan pada system yang mengijinkan terjadinya deadlock. Tujuan
metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses
dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat
ditentukan, system dipulihkan dari deadlock dengan metode pemulihan.
Metode pemulihan dari deadlock berupaya untuk menghilangkan deadlock dari
system sehingga system beroperasi kembali, bebas dari deadlock. Proses-proses yang terlibat
deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-
sumberdayanya.

3. Startvation

Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan
ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi
bila beberapa proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara
proses-proses lain dapat memperoleh alokasi sumber daya.

Hal ini disebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi
seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi dikehendaki
penghindaran dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit
untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi Sistem Operasi.

Perhatikan contoh berikut:

Terdapat tiga proses, P1, P2, dan P3.

1. P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik.


Skenario berikut terjadi:

1. P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R.


Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1
yang satu 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, meski tidak ada deadlock. Pada situasi ini,
P2 mengalami situasi yang disebut dengan startvation.

2.3 Prinsip-Prinsip Yang Terdapat Di Dalam Konkurensi


Karena konkurensi merupakan landasan umum pada perancangan suatu sistem
operasi, maka beberapa hal yang merupakan prinsip-prinsip konkurensi harus ada dalam
sistem operasi yang akan dirancang. Konkurensi meliputi beberapa hal berikut ini:
Alokasi waktu pemroses untuk proses-proses.
Hal ini berkaitan dengan penjadwalan proses pada suatu sistem operasi. Penjadwalan
proses merupakan kumpulan kebijakan dan mekanisme dalam sistem operasi yang berkaitan
dengan urutan kerja yang dilakukan sistem operasi. Penjadwalan proses bertugas untuk
mengatur proses mana yang harus berjalan, kapan dan seberapa lama proses tersebut
dijalankan.

Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.


Dalam hal ini, sebuah sistem operasi harus bisa mengatur pemakaian sumber daya
pada saat terjadinya konkurensi. Sumber daya yang ada jumlahnya terbatas, sehingga pada
saat banyak proses yang berjalan sistem harus dapat mengatur pengalokasian sumberdaya
agar tidak terjadi starvation. Selain itu terdapat juga sumber daya yang tidak bersifat
shareable atau tidak dapat digunakan secara bersaman, sumber daya seperti itu disebut
sumber daya kritis.

Komunikasi antar proses.


Untuk mengatur kegiatan proses yang berjalan bersamaan, mereka harus dapat saling
berkomunikasi, dimana proses-proses yang ingin dikomunikasikan harus memiliki sebuah
cara untuk berkomunikasi satu dengan lainnya. Mereka dapat menggunakan komunikasi
secara langsung atau tak langsung.

Sinkronisasi aktivitas banyak proses.


Sinkronisasi aktivitas banyak proses ini mencakup semua hal di atas. Untuk terjadinya
sinkronisasi antar proses-proses yang berjalan diperlukannya komunikasi antar proses yang
berjalan. Setelah proses-proses tersebut berkomunikasi, sistem akan dapat membagi sumber
daya yang ada baik itu sumber daya kritis atau tidak. Selan itu, sistem juga dapat mengatur
penjadwalan proses dengan baik.

Konkurensi dapat muncul pada konteks berbeda, antara lain:

- 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.

- 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.

- 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.

2.4 Kesulitan Yang Ditimbulkan Oleh 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 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.

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.

2.5 Interaksi Antarproses Di Dalam Konkurensi


Pada sistem dengan banyak proses (kongkuren), terdapat 3 katagori interaksi
antar proses berdasarkann derajat pengetahuan keberadaan proses lainnya, yaitu:

1. Proses tidak saling mengetahui keberadaannya.

Proses seperti ini merupakan proses yang tidak dimaksudkan untuk bekerjasama. Pada
multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif,
atau campuran keduanya. Walaupun proses saling tidak melakukan kerjasama, sistem operasi
perlu memperhatikan kompetisi sumber daya. Misalnya dua aplikasi independen dapat sama-
sama menginginkan akses ke disk, file , atau printer yang sama. Sistem operasi harus
mengatur akses tersebut.

2. Proses mengetahui keberadaan proses lainnya secara tidak langsung.

Proses seperti ini adalah proses yang tidak harus saling mengetahui akan keberadaan
proses lainnya berdasarkan namanya namun memiliki akses berbagi ke beberapa objek,
misaslkan bufer I/O. Proses seperti itu menunjukkan adanya kooperasi dalam melakukan
berbagi pemakaian ojek.

3. Proses mengetahui keberadaan proses lainnya secara langsung.

Proses-proses seperti ini adalah proses yang dapat berkomunikasi satu dengan lainnya
berdasarkan nama dan merupakan proses yang dirancang untuk bekerja sama dalam
melakukan aktivitas-aktivitas tertentu. Demikian pula, proses seperti ini menunjukkan adanya
kooperasi.

2.6 Kerjasama Diantara Proses-Proses Dengan Pemakaian Bersama & Dengan Komunikasi
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 memperbaharui data yang dipakai bersama tanpa peduli proses-proses lain.
Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Proses-
proses harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut.
Kerja sama di antara proses-proses dalam pemakaian bersama mempunyai masalah (Mutual
exclusion, Deadlock dan Starvation).
Sedangkan ketika 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 kernel sistem operasi. Karena tak ada sesuatu yang
di pakai bersama di antara proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah
mutual exclusion. Tetapi masalah deadlock dan starvation dapat muncul.
Contoh
Deadlock adalah dua proses menjadi Blocked dalam hal ini masing-masing proses menjadi
Blocked karena menunggu komunikasi dari proses lain. Kedua proses saling menunggu
komunikasi dari lainnya dan tidak dapat beranjak dari kondisi ini.

2.7 Pokok Penyelesaian Masalah Dengan 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 dalam penyelesaian masalah konkurensi.


Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor
yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk
multiprocessor tanpa memori bersama atau untuk sistem tersebar.
BAB III
PENUTUP

3.1.Kesimpulan
Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses
disebut konkuren jika proses-proses berada pada saat yang sama. Dikatakan sebagai landasan
umum perancangan sistem operasi karena dalam menciptakan suatu sistem operasi, sistem
operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih dari satu proses)
pada saat yang bersamaan.

Pada proses-proses yang konkuren atau berada pada saat yang bersamaan, terdapat
beberapa masalah yang harus diselesaikan yaitu ( Mutual exclusion, Sinkronisasi, Deadlock
dan Starvation ). Penyelesaian masalah kongkurensi terbagi menjadi 2 yaitu Mengasumsikan
adanya memori yang digunakan bersama dan tidak mengasumsikan adanya memori yang
digunakan bersama.

Adanya memori bersama lebih memudahkan dalam penyelesaian masalah konkurensi.


Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor
yang mempunyai memori bersama.

DAFTAR PUSTAKA

Hariyanto, B.,"Sistem Operasi", Bandung: Informatika, Desember 1997

http://catatanharianboy.blogspot.com/2012/05/konkurensi-adalah-

pengertian-tentang.html

http://jeleeeee.blogspot.com/2013/04/pengertian-konkurensi.html
http://marieyanalian.blogspot.com/2012/11/konkurensi-konkurensi-

merupakan.html

http://ka2forefer.blogspot.com/2013/04/konkurensi.html

Anda mungkin juga menyukai