Jumat, 15 Maret 2019

3.2 Multitasking dan Konkurensi

 3.2 MULTITASKING DAN KONKURENSI


Awalnya, proses-proses dijalankan secara sekuensial atau berurut. Suatu proses akan dieksekusi sampai selesai baru kemudian berpindah ke proses berikutnya. Sistem yang sekuensial demikian memiliki kelemahan, yaitu tingkat penggunaan atau utilitas prosesor yang rendah. Ini dikarenakan ketika suatu proses sedang melakukan operasi I/O, prosesor harus menunggu sampai operasi I/O tersebut selesai dan prosesor tidak dapat dialokasikan ke proses berikutnya karena proses yang sedang berjalan belum selesai.


Masalah utilitas prosesor yang rendah ini mendorong lahirnya konsep multitasking atau multiprogramming pada sistem operasi. Sistem multi- tasking, yang merupakan subset dari sistem konkuren, berkebalikan dengan sistem sekuensial seperti ditunjukkan pada Gambar 3.1. Sistem


Konsep Proses


53


konkuren sendiri dapat didefinisikan sebagai sistem yang memiliki sejumlah aktivitas yang sedang bejalan secara "bersamaan".


Kata "bersamaan" di sini dapat memiliki sejumlah pengertian yang ber- beda. Sebagai contoh, ambil kasus pada sekelompok tukang yang sedang mengerjakan suatu rumah. Ada tukang yang mengerjakan keramik, ada yang mengerjakan pintu, dan lainnya mengerjakan bagian atap. Intinya masing-masing mengerjakan aktivitas yang berbeda tapi bersamaan. Ini merupakan pengertian "bersamaan" yang pertama. Pada sistem komputer, sistem yang seperti demikian disebut dengan sistem paralel atau multiprocessing. Sebagai contoh adalah sistem komputer yang memiliki dua atau lebih prosesor ataupun juga satu prosesor yang multicore. Sistem paralel dikelompokkan sebagai subset dari sistem multitasking.


Istilah "bersamaan" dalam sistem konkuren dapat juga memiliki penger- tian yang sedikit berbeda dengan penjelasan sebelumnya. Sebagai contoh, ambil kasus seorang tukang yang mendapat dua order pengerjaan rumah, misalkan rumah A dan rumah B. Karena masing-masing pemilik rumah menghendaki pengerjaan rumahnya dapat selesai secepatnya maka tukang tersebut harus menjadwal pengerjaan ke dua rumah tersebut. Misalkan, tukang tersebut menjadwal mengerjakan rumah A pada saat pagi dan siang hari, setelah itu dilanjutkan dengan mengerjakan rumah B pada saat sore dan malam. Jadi setiap hari tukang tersebut dikatakan mengerjakan rumah A dan rumah B. Setelah setahun, kedua rumah tersebut selesai. Sang tukang dikatakan telah mengerjakan kedua rumah tersebut secara bersamaan.


Perhatikan, sekalipun dikatakan secara bersamaan, tetapi sesungguhnya yang terjadi adalah tukang tersebut membagi atau menjadwal waktunya secara bergantian mengerjakan sebagian kecil dalam mengerjakan rumah A dan rumah B. Pada sistem komputer, sistem yang demikian disebut de- ngan sistem multitasking, tetapi tidak dapat dikatakan sebagai sistem paralel, karena pemrosesnya hanya berjumlah satu.


Dari penjelasan di atas, terlihat bahwa untuk membangun sistem yang multitasking, tidak harus senantiasa menggunakan komputer yang memi- liki lebih dari satu prosesor. Kunci implementasi sistem multitasking terletak pada sistem operasi yang dapat melakukan penjadwalan peng-


54


Sistem Operasi


gunaan prosesor untuk sejumlah aktivitas sehingga konkurensi dapat tercapai. Hubungan antara sistem sekuensial, sistem konkuren, sistem multitasking dan sistem paralel dapat dilihat pada Gambar 3.1. Sistem sekuensial dan sistem konkurens merupakan dua sistem yang terpisah satu sama lain. Sistem paralel merupakan subset dari sistem multitasking, yang artinya setiap sistem paralel pastilah sistem multitasking juga. Namun tidak semua sistem multitasking merupakan sistem paralel. Sistem multitasking sendiri merupakan subset dari sistem konkuren.


Sistem Konkurens


Sistem Sekuensial


Sistem Multitasking


Sistem Pararel













Gambar 3.1 Hubungan antara sistem konkuren, sistem sekuensial, sistem multitasking, dan sistem paralel


Konkurensi, dan khususnya multitasking, dapat dicapai pada sistem uni-- prosesor (berprosesor tunggal) dengan menjadwal eksekusi proses-proses secara bergantian (interleaving) seperti pada Gambar 3.2a. Pada gambar terlihat proses 1, proses 2, dan proses 3 secara bergantian dieksekusi oleh prosesor. Pergantian antar proses berlangsung dengan cepat sekali, dalam orde milidetik, sehingga pengguna komputer tidak akan menyadari terjadinya pergantian tersebut. Bagi pengguna, semua proses tampak berjalan bersamaan.


Pada sistem multiprosesor, konkurensi diimplementasikan dengan men- jalankan proses-proses secara bersamaan pada prosesor yang berbeda (overlapping) dan juga menjadwal proses-proses secara bergantian pada prosesor tertentu (interleaving) seperti pada Gambar 3.2b. Pada gambar tersebut diasumsikan terdapat dua prosesor. Terlihat pada saat proses 2 mulai melakukan eksekusi, proses 1 juga masih terus melakukan eksekusi.


Konsep Proses


55


Hal ini bisa terjadi karena eksekusi proses 1 dan proses 2 tersebut dilakukan pada prosesor yang berbeda (overlapping).


Proses 1


Proses 2


Proses 3


(a) interleaving


Proses 1


Proses 2


Proses 3


(a) interleaving dan overlapping

Gambar 3.2 Implementasi konkurensi (multitasking) pada sistem uniprosesor (a) dan multiprosesor (b)


Apakah konsekuensinya dari proses-proses yang berjalan secara konkuren pada suatu sistem multitasking? Berikut ini akan dijelaskan sejumlah pengaruh yang mungkin terjadi antara proses-proses yang berjalan bersamaan.


1. Proses tidak saling memengaruhi. Ini terjadi pada proses-proses yang tidak saling berhubungan dan tidak saling bekerja sama, kecuali dalam hal berbagai pakai prosesor. Sebagai contoh adalah aplikasi Microsoft Word dan Microsoft Media Player yang berjalan bersamaan.


2. Proses saling memengaruhi secara tidak langsung. Ini terjadi pada proses-proses yang tidak saling bekerja sama tetapi mengakses sumber daya yang sama sehingga proses-proses tersebut saling mempengaruhi satu sama lain. Sebagai contoh adalah aplikasi Microsoft Word dan Notepad yang sedang membuka suatu berkas yang sama.


3. Proses saling memengaruhi secara langsung. Ini terjadi pada proses-proses yang saling bekerja sama untuk untuk mencapai suatu tujuan khusus. Proses-proses yang saling bekerjasama dapat berjalan pada komputer yang sama maupun yang berlainan.


56


Sistem Operasi


Sebagai contoh adalah aplikasi akuntansi yang mengakses aplikasi server basis data lokal seperti MS SQL Server. Dalam kasus ini kedua proses aplikasi harus saling bekerja sama agar aliran data antar aplikasi dapat berjalan dengan baik. Contoh lain adalah aplikasi browser internet, seperti Internet Explorer (IE) yang mengakses dokumen pada suatu situs. Dalam kasus ini, antara proses browser internet dan proses web server saling bekerja sama secara langsung dan saling memengaruhi satu sama lain.


Terjadinya perebutan sumber daya pada proses-proses yang saling memengaruhi, baik secara langsung ataupun tidak, memunculkan sejumlah masalah yang harus ditangani oleh sistem operasi, antara lain: 1. Race condition (keadaanbalapan


Jika terdapat dua proses atau lebih yang berusaha mengakses dan melakukan operasi pada suatu sumber daya yang sama maka ada kemungkinan status sumber daya tersebut menjadi tidak valid dan tidak konsisten pada akhir seluruh operasi tersebut. Kondisi kompetisi seperti ini disebut dengan race condition dan sumber daya yang berada dalam kondisi ini disebut critical resource, sedangkan bagian dari kode instruksi program yang melakukan operasi tersebut disebut dengan critical section.


Kondisi race condition dapat ditangani dengan menerapkan mekanis- me sinkronisasi. Salah satu mekanisme sinkronisasi adalah mutual exclusive yang memastikan pada suatu waktu hanya satu proses yang diijinkan untuk menjalankan critical section. Pembahasan lebih lengkap mengenai sinkronisasi, mutual exclusive, dan mekanisme sinkronisasi lainnya akan dibahas pada Bab IV.


2. Deadlock


Deadlock merupakan kondisi kebuntuan dalam alokasi sumber daya yang dibutuhkan oleh proses dan akibatnya proses-proses yang ter- libat tidak dapat melanjutkan eksekusinya sama sekali. Deadlock terjadi ketika proses-proses yang terlibat saling membutuhkan sumber daya yang sedang digunakan oleh proses lainnya. Karena tidak ada satu pun proses yang bersedia mengalah, yaitu melepaskan sumber


Konsep Proses


57


daya yang sedang digunakannya, terjadilah kebuntuan. Pembahasan mengenai deadlock dan cara penanganannya akan dibahas di Bab IV.


3. Starvasion Starvasion merupakan kondisi di mana satu proses atau lebih selalu kalah dalam kompetisi untuk mendapatkan sumber daya yang diper- lukannya sehingga eksekusinya tertunda terus menerus. Berbeda dengan deadlock, penyebab utama starvasion bukanlah proses lain- nya, melainkan lebih oleh kebijakan alokasi sumber daya yang tidak adil dari sistem operasi.


Dari sejumlah penjelasan di atas terlihat bahwa di samping keuntungan- nya, yaitu peningkatan utilitas prosesor serta kemampuan multitasking, penerapan konkurensi pada sistem operasi juga menambah sejumlah kompleksitas baru, antara lain:


1. Sistem operasi harus dapat mengawasi berbagai proses yang aktif. Informasi untuk pengawasan dan pengelolaan masing-masing proses disimpan dalam suatu struktur data kendali yang disebut dengan Process Control Block (PCB).


2. Sistem operasi harus melakukan penjadwalan proses secara adil dan berusaha menjaga keoptimalan kinerja proses-proses secara kese- luruhan.


3. Sistem operasi harus melakukan alokasi dan dealokasi berbagai sumber daya (prosesor, memori, berkas, peranti I/O) untuk masing- masing proses yang aktif. Dalam melakukan alokasi sumber daya ini, sistem operasi harus mengantisipasi kemungkinan terjadinya kondisi deadlock dan starvasion.


4. Sistem operasi harus melindungi sumber daya yang sedang digunakan oleh suatu proses terhadap pengaksesan proses lain. Ketika terjadi peralihan eksekusi ke proses lain, sumber daya ini harus tetap dijaga agar tidak diakses oleh proses lainnya. Sistem operasi dapat melaku- kan hal ini dengan menggunakan mekanisme mutual exclusive (mutex), yang merupakan salah satu bentuk sinkronisasi.


5. Pada kasus tertentu, sistem operasi harus menjaga jumlah data yang dialirkan dari/ke peranti I/O selalu konstan. Sebagai contoh, jika

58


Sistem Operasi


aplikasi yang dijalankan adalah pemutar lagu maka sistem operasi bertanggung jawab agar aliran data ke kartu suara selalu konstan agar suara yang terdengar tidak terputus putus.


6. Sistem operasi pun harus memfasilitasi jika proses-proses konkuren memerlukan komunikasi satu sama lainnya.


Berbagai tugas pengelolaan oleh sistem operasi yang dijelaskan pada butir-butir di atas akan dibahas lebih rinci di Bab IV.


Tidak ada komentar:

Posting Komentar