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 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, yaitu:
1. Mutual Exclusion
2. Deadlock
3. Startvation
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 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.
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.
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 periodikSkenario 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).
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.
Demikian sedikit pembahasan
tentang konkurensi,,mungkin masih banyak lagi blog yang lebih lengkap dari
pembahasan yg saya buat ini. Terima kasih udah mampir….. ^^,
0 komentar:
Posting Komentar