Anda di halaman 1dari 13

KATA PENGANTAR

Puji Syukur kepada Tuhan Yang Maha Esa, karena berkat pertolonganNya saya
berhasil menyelesaikan makalah “Konkurensi” ini. Adapun makalah ini disusun untuk
memenuhi tugas mata kuliah Sistem Operasi. Dalam makalah ini terkandung definisi serta
semua pembahasan tentang Konkurensi. Makalah ini di susun juga agar supaya para pembaca
bisa mengerti dan memahami tentang apa itu Konkurensi.

Dalam penyusunan makalah ini ada banyak pihak yang membantu, untuk itu saya
berterimakasih yang sebesar-besarnya kepada semua pihak yang membantu dalam
penyusunan makalah ini. Makalah ini masih belum bisa di katakan sempurna karena masih
banyak yang masih perlu untuk di perbaiki untuk itu saya harap para pembaca bisa
memahami serta memberi saran yang baik. Semoga makalah ini dapat berguna bagi para
pembaca dan bagi Dosen mata kuliah Sistem Operasi yang akan memeriksa serta
membacanya.
BAB I
PENDAHULUAN

1.1 Latar Belakang


Sistem operasi merupakan sebuah penghubung antara pengguna dari komputer
dengan perangkat keras komputer. Sebelum ada sistem operasi, orang hanya
mengunakan komputer dengan menggunakan sinyal analog dan sinyal digital. Seiring
dengan berkembangnya pengetahuan dan teknologi, pada saat ini terdapat berbagai
sistem operasi dengan keunggulan masing-masing. Untuk lebih memahami sistem
operasi maka sebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar mengenai
sistem operasi itu sendiri.
Pengertian sistem operasi secara umum ialah pengelola seluruh sumber-daya yang
terdapat pada sistem komputer dan menyediakan sekumpulan layanan (system calls) ke
pemakai sehingga memudahkan dan menyamankan penggunaan serta pemanfaatan
sumber-daya sistem komputer.

1.2 Rumusan Masalah


1. Apa itu konkurensi, dan apa saja yang terdapat didalamnya.
2. Apa saja prinsip – prinsip yang terdapat dalam Konkurensi.
3. Apa saja Kesulitan yang ditimbulkan oleh Konkurensi.

1.3 Tujuan
1. Setelah mahasiswa mengetahui mutual exclusion dan deadlock diharapkan
mereka bisa mengetahui tanda-tandanya.
2. Diharapkan juga setelah itu mahasiswa dapat mencari dan memahami dengan
baik cara-cara mengindarinya.
3. Diharapkan juga mahasiswa dapat memahami sinkronisasi sebagai solusi untuk
mengatasi masalah- masalah pada sistem operasi.
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. Pada proses-proses yang konkuren atau
berada pada saat yang bersamaan, terdapat beberapa masalah yang harus diselesaikan.
Masalah-masalah tersebut antara lain :
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:
a. Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali
dirinya sendiri. Di sini terjadi proses tunggal.
b. Proses yang berada di noncritical section, dilarang mem-blocked proses-
proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
c. 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.
d. Ketika tidak ada proses pada critical section, maka proses yang ingin masuk
critical section harus ijinkan masuk tanpa waktu tunda.
e. Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses
yang ada.
f. Proses hanya tinggal pada critical section selama satu waktu yang tidak
terhingga
2. Sinkronisasi
Sinkronisasi merupakan akses bersama yang mengakibatkan inkosistensi data
yang memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.
Sinkronisasi diperlukan untuk menghindari terjadinya ketidak-konsistenan data
akibat adanya akses data secara konkuren. Proses-proses disebut konkuren jika
proses-proses itu ada dan berjalan pada waktu yang sama, proses-proses konkuren
ini bisa bersifat independen atau bisa juga saling berinteraksi. Proses-proses
konkuren yang saling berinteraksi memerlukan sinkronisasi agar terkendali dan
juga menghasilkan output yang benar. Solusi masalah bounded-buffer ini adalah
shared memory yang mengijinkan maksimum n-1 materi dalam buffer pada waktu
yang sama. Bila semua N buffer digunakan tidak sederhana, misal untuk
memodifikasi producer-consumer code dengan menambah suatu variable counter
dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru diberikan
kepada buffer.
Tujuan utama dari sinkronisasi ini untuk 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.
Sinkronisasi sederhananya adalah saling bertukar data agar memiliki jumlah
data yang sama. Tujuan utama mungkin lebih condong ke arah back-up (membuat
cadangan) tapi ada pula sinkronisasi jadwal kerja (kalender) untuk menciptakan
suatu event yang tepat secara bersamaan diantara pelaku sinkronisasi. Sinkronisasi
umumnya dilakukan dengan bantuan perangkat sinkronisasi. Nilai akhir counter
akan mengikuti eksekusi terakhir yang dilakukan komputer. Untuk itu dibutuhkan
sinkronisasi yang merupakan salah satu upaya yang dilakukan agar proses salimg
bekerja sama dieksekusi secara beraturan untuk mencegah keadaan race condition
(situasi dimana beberpapa proses mengakses dan memanipulasi data pada waktu
yang bersamaan).
Ada tiga hal yang selalu menjadi masalah klasik pada proses sinkronisasi, yaitu :
a. Problem Bounded buffer : merupakan suatu struktur data yang mampu
untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika
diperlukan
b. Problem Reades and Writer :merupakan salah satu masalah sinkronisasi
klasik yang sering digunakan untuk mendiskusikan dan membandingkan
berbagai cara untuk menyelesaikan masalah sinkronisasi
c. Problem Dining Philosophers : Masalah ini memodelkan masalah
enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam
masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya
memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di
sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada
sebuah piring berisi mie dan di antara dua piring yang bersebelahan
terdapat sebuah sumpit.Salah satu solusi yang mungkin langsung terlihat
adalah dengan menggunakan semafor. Setiap sumpit mewakili sebuah
semafor. Kemudian, ketika seorang filusuf lapar, maka dia akan mencoba
mengambil sumpit di kiri dan di kanannya, atau dengan kata lain dia akan
menunggu sampai kedua sumpit tersebut dapat ia gunakan. Setelah selesai
makan, sumpit diletakkan kembali dan sinyal diberikan ke semafor
sehingga filusuf lain yang membutuhkan dapat menggunakan sumpitnya.

3. 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
a. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan
pernah mengalami deadlock.
b. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera
dapat memperbaikinya.
c. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah
terjadi lagi di dalam sistem.

Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
a. Mengabaikan adanya deadlock.
b. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode
Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan
pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat
kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan
mencapai deadlock.
c. 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
a. 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.
b. 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.
c. 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.
d. Meniadakan Circular Wait.
Memberi nomor pada setiap resource yang ada, dan setiap resource hanya
boleh mengakses resource secara berurutan.

Mendeteksi Deadlock dan Memulihkan Deadlock


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

4. 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:
a. Terdapat tiga proses, P1, P2, dan P3.
P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi:
 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.2 Prinsip – Prinsip 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:
1. 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.
2. 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.
3. 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.
4. 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:
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.

2.3 INTERAKSI ANTAR PROSES


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.4 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.
3. 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:
 Waktu pemroses.
 Memori
 Berkas-berkas
 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.

2.5 Pokok – Pokok Penyelesaian Masalah Pada Konkurensi


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.
BAB III
PENUTUP
3.1 Kesimpulan
Demikianlah makalah tentang konkurensi ini kami buat dengan sebaik-baiknya. Kami
berharap mahsisawa/I dapat mengerti tentang sinkronisasi ini. Selain itu, kami berharap
dapat membantu teman-teman untuk memecahkan masalah yang sering terjadi dalam
sistem operasi.
Akhirnya kami ucapkan terima kasih kepada semua pihak yang telah membantu
tersusunnya makalah ini. Dan sekali lagi kami harap saran dan kritik dari para pembaca
apabila ada sesuatu yang kurang dalam tugas ini, demi kesempurnaannya.
SUMBER

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://nur-walendah-fst13.web.unair.ac.id/artikel_detail-103351-Sistem%20Operasi-

Sinkronisasi%20&%20Deadlock.html

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

Anda mungkin juga menyukai