Sabtu, 26 Maret 2011

Tugas Operating Sistem Non Preemptive dan Preemptive

1.      NON PREEMPTIVE

Nonpreemptive multitasking adalah gaya komputer multitasking di mana sistem operasi tidak pernah memulai context switch dari proses yang berjalan kepada proses lain. Sistem seperti ini baik statis dijadwalkan, paling sering sistem periodik, atau menunjukkan beberapa bentuk koperasi multitasking, dalam hal ini tugas-tugas komputasi yang dapat menyela diri dan secara sukarela memberikan kontrol kepada tugas-tugas lain. Ketika memesan efek terlebih dahulu tidak digunakan, proses yang menerima sumber daya tersebut tidak dapat terganggu sampai selesai.
Koperasi multitasking adalah jenis multitasking di mana saat ini mengendalikan proses CPU harus menawarkan kontrol untuk proses lainnya. Hal ini disebut "koperasi" karena semua program harus bekerjasama agar ini bekerja. Sebaliknya, preemptive multitasking aplikasi menyela dan memberikan kontrol ke proses lain di luar kontrol aplikasi.
Program yang berjalan dibawah sistem operasi non-preemptive harus khusus ditulis untuk bekerja sama dalam multitasking oleh kontrol menghasilkan prosesor pada interval yang sering. Program yang tidak menghasilkan cukup sering menyebabkan sistem non-preemptive untuk tetap "terkunci" dalam program yang datang tidak menghasilkan. Contoh gagal non-preemptive multitasking adalah ketidak mampuan untuk melakukan hal lain saat mencetak dokumen di Microsoft Word for Windows 2.0a. Hal ini terjadi karena firman tidak menyerah kontrol prosesor cukup sering saat mencetak dokumen Anda. Kasus terburuk dari program tidak menghasilkan adalah ketika sebuah crash program. Kadang-kadang, program yang crash di Windows 3.1 akan crash keseluruhan sistem hanya karena tidak ada tugas-tugas lain dapat menjalankan sampai jatuh hasil program. 

2.      PREENTIVE
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.