Sabtu, 08 Oktober 2011

Multitasking

Multitasking adalah istilah yang mengacu kepada sebuah metode dimana banyak pekerjaan atau di kenal juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama.
Umpamakan sebuah komputer berprosessor tunggal, maka komputer itu hanya bisa menyelesaikan satu instruksi dalam satu waktu. Multitasking dapat menjadwalkan mana pekerjaan yang dapat berjalan, dan kapan pekerjaan lain bisa berstatus waiting untuk di kerjakan.
Seperti yang sudah di katakan, bahwa dalam multitasking hanya satu CPU yang terlibat, tapi CPU tersebeut secara mengganti satu program ke program yang lain secara cepat sehingga terlihat mengeksekusikan program dalam satu waktu.
Ada 2 tipe dasar dalam proses multitasking. Yaitu preemptive dan cooperative.
1. Preemptive : Dalam preemptive multitasking, sebuah Sistem Operasi memaket kan setiap program pada CPU. Contoh OS yang menggunakan Preemptive Multitasking adalah OS/2, Windows 95, Windows NT, the Amiga, dan UNIX
2. Cooperative : setiap program dapat mengontrol CPU selama dibutuhkan. Jika sebuah program tidak menggunakan CPU, maka program lain bisa menggunakan nya secara sementara. Windows 3.x dan Multifinder pada Macintosh menggunaka cooperative multitasking.

Dalam komputasi, preemption (kadang pre-emption) adalah tindakan sementara mengganggu tugas yang sedang dilakukan oleh sistem komputer, tanpa memerlukan kerjasama, dan dengan maksud melanjutkan tugas di lain waktu.Perubahan seperti ini dikenal sebagai context switch. Hal ini biasanya dilakukan oleh tugas istimewa atau bagian dari sistem yang dikenal sebagai preemptive scheduler, yang memiliki kekuatan untuk mendahului, atau mengganggu, dan kemudian melanjutkan, tugas-tugas lain dalam sistem.
Istilah preemptive multitasking digunakan untuk membedakan sistem operasi multitasking, yang memungkinkan preemption tugas, dari sistem multitasking koperasi dimana proses atau tugas harus secara eksplisit diprogram untuk menghasilkan ketika mereka tidak membutuhkan sumber daya sistem.
Dalam hal sederhana: Preemptive multitasking melibatkan penggunaan mekanisme interupsi yang menunda proses yang sedang dijalankan dan memanggil scheduler untuk menentukan proses harus melaksanakan berikutnya. Oleh karena itu semua proses akan mendapatkan beberapa jumlah waktu CPU pada suatu waktu tertentu.
Pada preemptive multitasking, kernel sistem operasi juga dapat memulai konteks sebuah saklar untuk memenuhi kendala prioritas kebijakan penjadwalan, dengan demikian preempting tugas aktif.Secara umum, preemption berarti "penyitaan sebelumnya". Ketika tugas prioritas tinggi pada contoh yang merebut tugas yang sedang berjalan, ini dikenal sebagai penjadwalan preemptive.
Istilah "preemptive multitasking" kadang-kadang keliru digunakan ketika arti yang diinginkan lebih spesifik, mengacu bukan untuk kelas yang dikenal sebagai kebijakan penjadwalan penjadwalan waktu bersama, atau time-sharing.
Preemptive multitasking memungkinkan sistem komputer untuk lebih andal menjamin setiap proses "slice" biasa waktu operasi.Hal ini juga memungkinkan sistem untuk cepat menangani peristiwa eksternal penting seperti data yang masuk, yang mungkin memerlukan perhatian segera dari satu atau proses lain. 
Pada setiap waktu tertentu, proses dapat dikelompokkan menjadi dua kategori: yang sedang menunggu untuk input atau output (disebut "I / O terikat"), dan mereka yang sepenuhnya menggunakan CPU ("CPU terikat"). Dalam sistem awal, proses sering akan "jajak pendapat", atau "busywait" sambil menunggu input diminta (seperti disk, keyboard atau input jaringan).Selama ini, proses tersebut tidak melakukan pekerjaan yang berguna, namun masih terjaga kontrol dari CPU. Dengan munculnya interrupt dan preemptive multitasking, ini I / O proses terikat bisa "diblokir", atau ditunda, sambil menunggu kedatangan data yang diperlukan, yang memungkinkan proses-proses lain untuk menggunakan CPU. Sebagai kedatangan data yang diminta akan menghasilkan interrupt, diblokir proses dapat jaminan kembali tepat waktu untuk eksekusi. 
Meskipun teknik multitasking pada awalnya dikembangkan untuk mengijinkan beberapa pengguna untuk berbagi satu mesin, segera menjadi jelas bahwa multitasking berguna terlepas dari jumlah pengguna. Banyak sistem operasi, dari mainframe ke single-user komputer pribadi dan sistem kontrol tidak ada pengguna-(seperti di pesawat ruang angkasa robot), telah mengakui manfaat multitasking dukungan untuk berbagai alasan.Multitasking memungkinkan pengguna tunggal untuk menjalankan beberapa aplikasi pada saat yang sama, atau untuk menjalankan "latar belakang" dengan tetap mengontrol proses komputer.
Periode waktu yang suatu proses diperbolehkan untuk dijalankan dalam sistem preemptive multitasking umumnya disebut potongan waktu, atau kuantum. The scheduler dijalankan sekali setiap irisan waktu untuk memilih proses selanjutnya untuk menjalankan. Jika irisan waktu terlalu pendek maka penjadwal akan memakan waktu proses terlalu banyak.
Interrupt dijadwalkan untuk memungkinkan kernel sistem operasi untuk beralih di antara proses-proses ketika irisan waktu mereka berakhir, efektif sehingga waktu prosesor untuk dibagi antara sejumlah tugas, memberikan ilusi bahwa berurusan dengan tugas-tugas secara bersamaan, atau secara bersamaan. Sistem operasi yang mengontrol desain seperti ini disebut sistem multi-tasking.

Sistem pendukung preemptive multitasking
Hampir semua sistem operasi mendukung preemptive multitasking, termasuk versi terbaru Windows, Mac OS, Linux, IOS dan Android. Contoh awal sistem operasi preemptive termasuk AmigaOS, yang 95/98/ME Windows (32-bit hanya aplikasi) [2] dan Windows keluarga NT (termasuk 2000, XP, Vista, dan 7), Linux, * BSD, OS / 2 2.x - OS / 2 Warp 3-4,5, Mac OS X. Unix dan sistem berbasis Unix, dan VMS, serta sistem lainnya yang digunakan di pasar bisnis akademik dan menengah sampai besar, selalu mendukung preemptive multitasking, tapi untuk waktu yang lama berada di luar jangkauan kebanyakan pengguna baik karena biaya lisensi atau perangkat keras yang mahal diperlukan untuk mendukung mereka.
Contoh yang lebih tua, non-preemptive (koperasi) sistem operasi termasuk Windows 1.x, 2.x, 3.x, Windows for Workgroups, Windows 95/98/ME (ketika menjalankan aplikasi 16-bit), NetWare, dan Classic Mac versi OS (sistem 5.0 dan ke atas). Non-multitasking sistem operasi termasuk versi Mac OS, MS DOS, dan Commodore 64 OS yang hanya bisa menjalankan satu program pada satu waktu. Beberapa sistem operasi yang paling awal yang tersedia untuk pengguna rumahan menampilkan preemptive multitasking adalah Sinclair QDOS (1984 [3]) dan Amiga OS (1985). Kedua berlari pada mikroprosesor Motorola 68000-keluarga tanpa manajemen memori. Meskipun ada sistem Unix-like lainnya seperti Xenix dan koheren, mereka sering bisa mahal untuk digunakan di rumah.Amiga OS digunakan pembebanan dinamis dari blok kode yang dapat direlokasikan ("bakhil" dalam jargon Amiga) untuk multitask Terlebih Dahulu semua proses dalam ruang alamat yang sama datar. Awal sistem operasi PC, seperti MS-DOS dan DR-DOS, tidak mendukung multitasking sama sekali. Novell NetWare, Microsoft Windows dan OS / 2 sistem diperkenalkan koperasi multitasking ke PC, tetapi tidak mendukung preemptive multitasking. Dalam hal PC, lambat awal sebagian karena kebutuhan untuk mendukung kode warisan besar perangkat lunak DOS tertulis untuk menjalankan dalam modus single-user, sedangkan sistem Amiga dirancang untuk multitask dari awal. Versi awal Windows untuk mendukung bentuk terbatas preemptive multitasking adalah Windows 2.1x, yang menggunakan Intel 80386 Virtual 8086 mode untuk menjalankan aplikasi DOS di mesin virtual 8086 - dikenal sebagai "kotak DOS" - yang dapat mendahului. Pada Windows 95, 98 dan ME, aplikasi 32-bit dibuat memesan efek terlebih dahulu dengan menjalankan masing-masing dalam ruang alamat yang terpisah, tapi aplikasi 16 bit tetap kooperatif. [2] Windows NT selalu mendukung preemptive multitasking.
Meskipun ada rencana untuk meng-upgrade koperasi multitasking Mac OS untuk model preemptive (dan API preemptive memang ada di Mac OS 9, walaupun dalam arti yang sangat terbatas [4] dan jarang dieksploitasi), ini adalah ditinggalkan mendukung Mac OS X , hibrida dari MacOS dan sistem operasi nextstep, yang didasarkan pada kernel Mach dan menyediakan Unix-like preemptive multitasking. OS / 2 Warp, IBM menulis ulang dari sebuah kolaborasi / IBM sebelumnya Microsoft, OS / 2, ditargetkan pada 386 sistem, didukung preemptive multitasking aplikasi asli, dan juga beberapa diijinkan berbeda Windows sesi yang akan multitasked Terlebih Dahulu.
Sebuah sistem operasi preemptive mengambil kendali dari prosesor dari tugas dalam dua cara:
Ketika waktu kuantum tugas (atau time slice) berjalan keluar.Setiap tugas yang diberikan hanya diberikan kontrol untuk menetapkan jumlah waktu sebelum sistem operasi interrupts dan jadwal yang lain untuk menjalankan tugas.
Ketika sebuah tugas yang memiliki prioritas lebih tinggi menjadi siap dijalankan. Tugas yang sedang berjalan kehilangan kontrol prosesor ketika tugas dengan prioritas yang lebih tinggi siap dijalankan terlepas dari apakah itu memiliki waktu tersisa di kuantum atau tidak

Tidak ada komentar:

Posting Komentar