Kontrol Konkurensi Dalam Transaksi Atau Proses Pada Sistem Operasi

Kontrol Konkurensi Dalam Transaksi Atau Proses Pada Sistem Operasi - Artikel ini dilatar belakangi oleh tugas yang diberikan oleh dosen saya pada mata kuliah sistem operasi terdistribusi dan saya bermaksud memberikan referensi untuk teman-teman pelajar atau mahasiswa/i sebagai referensi untuk menyelesaikan tugasnya dan mohon untuk membaca sampai selesai agar teman-teman dapat memahaminya secara keseluruhan.

Kontrol Konkurensi Dalam Transaksi Atau Proses Pada Sistem Operasi

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.

Kongkurensi merupakan landasan umum perancangan sistem operasi. Proses proses 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 dan Mozilla secara bersamaan 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.

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

Mutual Exclusion
Mutual Exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval tertentu. Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaan (mis. printer).  Sumber daya ini disebut dengan sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/station. Hanya satu program pada satu saat yang diijinkan masuk critical region. Programmer tidak dapat bergantung pada system operasi untuk memehami dan memaksa batasan ini karena maksud program tidak dapat diketahui.

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.

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.

Baca Juga : Pembagian Dan Pencegahan Deadlock, Mutual Exclusion, Startvation Serta Sinkronisasi

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.

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

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.

  4. Untuk Strukturisasi Satu Proses
    Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.


Beberapa 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:

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

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

  • Pencarian Kesalahan Pemrograman (Debuging)
    Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.

  • Mengetahui Proses-Proses Aktif
    Sistem operasi harus mengetahui proses-proses yang aktif.

  • Alokasi Dan Dealokasi Bragam Sumber Daya Untuk Tiap Proses Aktif
    Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:

    1. Waktu pemroses
    2. Memori
    3. Berkas-berkas
    4. Perangkat I/O

  • Proteksi Data Dan Sumber Daya Fisik
    Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.

  • Hasil-Hasil Harus Independen
    Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

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:

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

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.

Baca Juga : Analisis Dan Perancangan Sistem Operasi Serta Definisi Menurut Para Ahli

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.

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.

Demikianlah artikel ini saya buat terkait Kontrol Konkurensi Dalam Transaksi Atau Proses Pada Sistem Operasi dan pembagian nya untuk membantu para mahasiswa/i untuk menyelesaikan tugas atau makalah yang telah diberikan dosen. Semoga artikel ini bisa bermanfaat, silahkan untuk meninggalkan komentar dibawah ini dan memberikan masukan setelah membaca. Terima kasih.

0 komentar:

Post a Comment