Konkurensi & Paralel
Kriteria proses dikatakan konkuren ketika lebih dari satu proses berada pada saat yang sama (queues/jobs pool). Konkuren tidak sama dengan paralel, seperti yang dikemukakan oleh Rob Pike (kreator bahasa pemrograman Golang), menyatakan bahwa concurrently is about dealing with a lot of things at once, yang memiliki makna bagaimana cara menghadapi/menangani banyak pekerjaan sekaligus; sedangkan parallelism is about doing a lot of things at once, yang berarti bagaimana melakukan banyak pekerjaan dengan serentak/simultan.
Gambar Ilustrasi Konkuren dengan Parallel.
Dari gambar diatas dapat dianggap banyaknya coffee machine sebagai banyaknya processor/core dan banyaknya orang mengantri (queues) untuk membuat kopi, dianggap sebagai banyaknya pekerjaan (tasks/jobs pool). Pada proses paralel membutuhkan processor/core lebih dari satu (multi processor/core) agar dapat mengerjakan berbagai pekerjaan secara simultan (bersama-sama) dalam satu waktu, yaitu dengan cara menugaskan satu processor/core untuk setiap tugas atau sub-tugas, tetapi proses paralel tidak mengharuskan terdapat lebih dari satu pekerjaan agar dapat diproses. Sebaliknya proses konkuren terjadi pada single processor/core, bisa bersifat independen atau bisa juga saling berinteraksi.
Gambar Mekanisme Intelaving dan Overlapping.
Konkurensi pada uniprocessor dapat dicapai dengan melakukan penjadwalan eksekusi proses secara bergantian (interleaving), sedangkang konkurensi pada multiprocessor dapat dicapai dengan menjalankan proses-proses secara bersamaan (parallel) pada prosessor yang berbeda (overlapping) dan melakukan penjadwalan proses secara bergantian pada setiap prosessor tertentu (interleaving). Sehingga dari hal ini dapat dikatakan bahwa konkuren dapat menjadi bagian dari paralel tetapi tidak sebaliknya.
Kesimpulan
Kesimpulan yang dapat diperoleh dari pembahasan mengenai konkuren dan paralel ditas.
- Proses konkuren merupakan merupakan perkembangan dari batch processing yaitu menjalankan berbagai proses secara sekuensial/berurutan agar dapat berpindah atau melanjutkan menjalankan proses selanjutnya.
- Pengeksekusian proses konkurensi baik yang dijadwalkan secara interlaving maupun overlapping menghasilkan konsep multitasking, yaitu kemampuan untuk menjalankan banyak proses tanpa harus menunggu proses satu dengan yang lainnya selesai terlebih dahulu. Waktu pemrosesan multitasking lebih dinamis sehingga dapat meningkatkan pengunaan (utilitas) processor.
- Ketika terdapat lebih dari satu proses, kemungkinan proses-proses tersebut dapat berjalan secara paralel dan konkuren, yaitu jika diproses secara bersamaan pada multiprocessor/multicore. Sehinga dapat dikatakan bahwa pada proses paralel dapat terjadi proses konkuren, tetapi tidak sebaliknya.
- Pada proses konkuren diperlukan teknik multiprogramming yaitu untuk mengelolah multi-proses dalam sistem uniprocessor (single-core). Sedangkan pada proses paralel, selain menggunakan teknik multiprogramming untuk mengelolah proses, juga digunakan teknik multiprocessing yaitu mengelolah multi-process dalam sistem multiprocessor (multi-core), serta menggunakan teknik distributed-processing yaitu mengelolah banyak proses yang dijalankan pada beberapa sistem clustering.
- Secara garis besar salah satu tujuan dari desain sistem operasi adalah untuk mengelolah/memanajemen berbagai proses maupun thread, baik secara konkuren maupun paralel dengan menggunakan teknik multiprogramming, multiprocessing, maupun teknik distributed-processing.
Artikel Terkait
Karna pembahasan sistem operasi sangat kompleks, maka kita akan membaginya menjadi beberapa bagian, untuk sementara berikut beberapa artikel lainnya yang terkait atau berhubungan dengan pembahasan ini.
- 1 Gambaran Sistem Operasi - Komponen & Fungsi
- 1.1 Apa Yang Dikerjakan Sistem Operasi
- 1.2 Organisasi Sistem Komputer
- 1.3 Arsitektur Sistem Komputer
- 1.4 Struktur Sistem Operasi
- 1.5 Operasi Sistem Operasi - Trap Exception
- 2 Proses & Thread
- 3 Konkurensi: Mutual Exclusion dan Sinkronisasi
Referensi
- Operating Systems: Internals and Design Principles (8th Edition), William Stallings, 2014.
- Operating System Concepts (9th Edition in Chinese) by Abraham Silberschatz et al.
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook, Michael Kerrisk.
Warning!
We are not responsible for any loss whatsoever due to this site, also if you want to take this article please read terms of use or touch us via contact page.
If there is question, please discuss below. Very welcome and expected to provide corrections, criticisms, and suggestions.
Be the first :D