Powered By Blogger

Jumat, 10 Desember 2010

PROSES KONGKURENSI YANG ADA DI WINDOWS

PROSES KONGKURENSI YANG ADA DI WINDOWS

Kongkurensi timbul akibat berkembangnya dunia IT. Berawal dari tuntutan kebutuhan pengguna komputer yang semakin komplek maka lahir kongkurensi dengan segala keterhubungannya. Pengguna komputer membutuhkan pelayanan dari komputer yang bisa melayani beberapa proses sekaligus dalam waktu yang bersamaan.

Kongkurensi merupakan landasan umum perancangan sistem operasi. Prosesproses disebut kongkurensi jika proses-proses (lebih dari satu proses) berada pada saat yang sama. Saat yang sama ini maksudnya proses-proses tersebut berlangsung pada waktu yang sama dan menggunakan sumber daya yang sama. Kita ambil contoh pada system operasi Windows, jika kita menjalan Microsoft Word bersamaan dengan Winamp maka itu adalah kongkurensi. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik.

Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.

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

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.

TERDAPAT 2 JENIS RESOURCE YANG DIGUNAKAN :

preemtable resource

resource yang dapat diambil dan dilepas dari proses yang sedang memakainya tanpa memberikan efek apapun pada proses tersebut.

Non-preemtable resource

resource tidak dapat diambil dari proses yang sedang membawanya, karena akan mengakibatkan kegagalan komputasi, contoh : printer, bila suatu proses sedang menggunakan printer untuk mencetak, maka proses lain tidak dapat menggunakan printer tersebut.