9 Kelebihan dan Kekurangan Cooperative Multitasking

Multitasking kooperatif menyediakan teknik di mana lebih dari 2 program perangkat lunak dapat berbagi sumber daya dan waktu dari prosesor host yang sama. Dalam teknik ini, antrian harus dapat mengalokasikan sumber daya prosesor secara merata dalam program. Itu berarti tugas harus membebaskan CPU, memungkinkan tugas berikutnya untuk dijalankan.

Kadang-kadang disebut “multitasking non-preventif.”

Ketika struktur ini digunakan, sistem operasi tidak memulai peralihan konteks dari menjalankan satu proses ke menjalankan proses lain. Sebagai gantinya, proses akan secara sukarela melepaskan kendali prosesor pada saat-saat tertentu, ketika mereka menganggur atau jika mereka menggantung untuk memungkinkan aplikasi lain berjalan.

Sebagian besar sistem telah beralih dari multitasking kooperatif hari ini. Sistem operasi populer di masa lalu, saat menggunakan aplikasi 16-bit, menggunakan proses ini. Hari ini, biasanya ditemukan dalam sistem tertanam dengan kendala memori dan dalam aplikasi atau subsistem tertentu.

Daftar keuntungan multitasking kooperatif

1. Sangat mudah untuk diimplementasikan.

Multitasking kooperatif adalah pilihan terbaik bagi pengguna individu yang memiliki beberapa tugas yang perlu diselesaikan. Anda tidak perlu khawatir tentang keberadaan kode penangguhan karena setiap utas bertanggung jawab ketika meninggalkan waktu pengkodeannya. Itu membuat proses pengkodean lebih mudah bagi pemrogram individu, meskipun keterampilan pembuat enkode akan menentukan efektivitas sistem.

2. Mempermudah pertukaran data.

Dengan sistem operasi jenis ini, orang yang berbeda dapat berbagi pandangan yang sama, bahkan jika mereka tidak berada dalam proyek yang sama pada waktu yang sama. Proses yang terlibat dapat diprediksi, memungkinkan pengujian dan pembuatan profil individual, bahkan jika insiden terjadi pada waktu yang berbeda. Hal ini memungkinkan efisiensi yang lebih baik dalam proses sambil mempertahankan satu CPU.

3. Tawarkan kerangka waktu tertentu untuk pertimbangan Anda.

Pengkodean dapat mencakup penghitung waktu yang mengonfigurasi peristiwa dan loop yang mencari utas kooperatif saat proses diimplementasikan. Itu berarti Anda perlu memastikan bahwa setiap utas mengakses prosesor untuk memaksimalkan manfaatnya tanpa terlalu lama mengakses sumber daya. Jika utas atau program memakan waktu terlalu lama, Anda akan kehilangan peluang untuk maju.

Agar adil, proses yang tepat ini kurang dari mikrokernel kooperatif multitasking dan lebih dari implementasi siklus / pengatur waktu, meskipun masih diklasifikasikan sebagai proses dalam jenis struktur ini.

4. Maksimalkan apa yang dapat disediakan oleh CPU.

Karena multitasking kooperatif memerlukan utas atau proses individual pada waktu tertentu, CPU dapat mendedikasikan sumber dayanya ke item tertentu yang sedang berjalan. Dalam bentuk multitugas lainnya, mungkin ada beberapa utas atau program yang berjalan secara bersamaan, mengurangi efek dari kekuatan pemrosesan yang tersedia untuk masing-masing utas. Saat coding secara efektif, multitasking kooperatif memaksimalkan kekuatan pemrosesan karena memiliki fokus yang kuat pada individualitas.

5. Memberikan lebih sedikit masalah re-entry.

Ketika multitasking kooperatif diimplementasikan dengan satu inti CPU, umumnya lebih sedikit masalah masuk kembali. Ini karena utas, program, atau tugas yang sedang berjalan tidak dapat diinterupsi secara sewenang-wenang oleh tugas lain. Satu-satunya interupsi yang terjadi pada sistem jenis ini adalah pada posisi yang ada dalam panggilan kernel, yang diizinkan oleh encoder.

Manfaat ini tidak berlaku untuk inti multiprosesor. Hanya berlaku dengan kernel prosesor tunggal.

6. Memungkinkan Anda untuk sepenuhnya mempertahankan tanggapan secara real time.

Meskipun multitasking kooperatif mencegah respons pada tingkat tugas, itu sepenuhnya mempertahankan respons tersebut dalam penangan interupsi. Driver ini terus menggunakan kotak surat dan semaphore dalam sistem multitasking, memungkinkan modul untuk berjalan terlepas dari algoritme yang sedang aktif.

Daftar Kekurangan Cooperative Multitasking

1. Sulit untuk menghentikan tugas setelah dimulai.

Tidak ada cara untuk menangguhkan utas yang sedang berjalan saat menggunakan multitasking kooperatif. Itu berarti bahwa utas yang mengambil sumber daya CPU akan terus meminta perhatian hingga utas selesai. Jika terjadi kesalahan dalam utas atau program, atau tidak ada eksekusi yang terjadi, maka CPU dapat dipaksa ke posisi di mana pengguna harus menghentikan operasi secara manual untuk memulihkan kemampuannya.

2. Itu tidak menjamin bahwa semua tugas dapat mengakses prosesor.

Karena utas beroperasi secara independen satu sama lain, tidak ada jaminan bahwa setiap utas atau program bisa mendapatkan waktu dengan CPU yang dibutuhkannya. Jika proses penjadwalan tidak dihitung dengan benar, sangat mungkin bahwa beberapa sumber daya tidak akan pernah mengakses prosesor tanpa intervensi manual. Dalam keadaan seperti itu, proyek membutuhkan waktu lebih lama untuk diselesaikan karena kinerja kooperatif dari banyak tugas perlu terus ditinjau.

3. Tidak berfungsi dengan baik untuk waktu respons tertentu.

Multitasking kooperatif paling baik digunakan ketika program tidak memerlukan waktu respons pada urutan milidetik atau mikrodetik pada tingkat tugas. Jika garis waktu itu diperlukan, struktur yang berbeda sangat disarankan.

Keuntungan dan kerugian dari multitasking kooperatif biasanya digunakan ketika satu pengguna, dengan beberapa utas atau program, perlu memaksimalkan sumber daya lokal. Karena keterbatasan alami mereka, situasi kelompok biasanya tidak mendapat manfaat dari jenis proses ini. Selalu ada pengecualian untuk aturan tersebut, tentu saja, jadi pastikan untuk memeriksa semua opsi Anda sebelum memutuskan jenis multitasking yang akan digunakan.