Rabu, 24 Maret 2010

Aplikasi Sistem Waktu Nyata

Diposting oleh zaki di 09.44
Sistem waktu nyata adalah sebuah sistem komputer yang tidak hanya membutuhkan hasil komputasi yang benar tetapi juga harus sesuai dengan batas waktu yang dikehendaki. Hasil dari komputasi yang dilakukan (jika benar) mungkin tidak dalam nilai real.
Sistem waktu nyata banyak digunakan dalam bermacam-macam aplikasi. Sistem waktu nyata tersebut ditanam di dalam alat khusus seperti di kamera, mp3 players, serta di pesawat dan mobil. Sistem waktu nyata bisa dijumpai pada tugas-tugas yang mission critical, misal sistem untuk sistem pengendali reaktor nuklir atau sistem pengendali rem mobil. Juga sering dijumpai pada peralatan medis, peralatan pabrik, peralatan untuk riset ilmiah, dan sebagainya.
Multitasking dan Multithreading
a. Multitasking
Multitasking adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada sebuah metode dimana banyak pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama. Dalam kasus sebuah komputer dengan prosesor tunggal, hanya satu instruksi yang dapat bekerja dalam satu waktu, berarti bahwa CPU tersebut secara aktif mengolah instruksi untuk satu pekerjaan tersebut.
Multitasking memecahkan masalah ini dengan menjadwalkan pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang lain disebut context switch.
Ketika context switch terjadi dengan sangat cepat -- kondisi ini cukup untuk memberikan ilusi pengolahan-paralel. Bahkan dalam komputer yang memiliki lebih dari satu CPU (disebut multi-prosesor), Multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan jumlah CPU yang tersedia.
Dalam system waktu nyata, teradapat suatu alur multitasking yang disebut Loop Multitasking (telah dibahas pada pertemuan sebelumnya), yaitu dimana dalam multitaskin terjadi perulangan task yang dapat dikontrol dengan menggunakan Interrupt Service Routine (ISR).
Keuntungan sistem ini adalah :
- Suatu perintah dapat dilaksanakan secara tuntas sampai berakhir dengan prioritas tertinggi.
- Mampu memproses lebih dari satu perintah dalam waktu yang bersamaan.hal ini dapat terjadi karena kemampuan membagi sumber daya yang tersedia. Jika suati perintah datang membutuhkan sumber daya media simpan menyelesaikan perintah/pekerjaan yang telah ditentukan, apabila datang perintah lain yang membutuhkan sumber daya memori misalnnya, perintah tersebut dapat langsung dikerjakan tanpa menunggu perintah sebelumnya selesai dierjakan.

Kelemahan dari sistem ini adalah jika terdapat banyak perintah, maka akan terjadi antian perintah yang cukup panjang. Pengguna harus menunggu perintah selesai dilaksanakan untuk memasukkan perintah selanjutnya.
Manfaat metode ini akan terasa ketika banyak terdapat perintah yang menggunakan sumber daya yang berbeda, sehingga rangkaina perintah dapat diselesaikan dengan lebih cepat
b. Multithreading
Multithreading adalah cara pengeksekusian yang mengizinkan beberapa alur terjadi dalam satu proses. Multithreading atau yang lebih dikenal Thread pada suatu istilah komputer dapat diartikan sebagai sebuah proses untuk melakukan suatu pekerjaan tertentu. Suatu program yang kita buat walaupun sangat sederhana, misalnya program “hello world” memiliki thread. Prosessor akan mengeksekusi suatu program berdasarkan thread yang diberikan oleh program tersebut.
Disamping program yang dibuat, program bawaan dari sistem operasi juga memiliki thread. Ketika program dijalankan dan program lain pada saat bersamaan juga dijalankan, maka prosessor harus menjalankan thread itu semua secara sekuensial. Setelah program selesai dijalankan, thread dari program lainnya menunggu dalam antrian untuk dieksekusi. Tentunya banyak algoritma untuk menentukan thread milik program siapa dulu dan juga waktu pemrosesan untuk tiap thread. Jadi prosessor akan istirahat (idle) jika tidak ada permintaan untuk melayani thread.
Bagaimana untuk membuat supaya prosessor terus bekerja dalam waktu yang bersamaan ? Salah satunya dengan Multithreading. Sebagai contoh multithreading dalam dunia nyata adalah ketika Anda bermain gitar sambil bernyanyi dan Anda juga membaca liriknya atau kunci gitarnya. Dalam contoh ini terdapat minimal tiga buah thread yang dijalankan oleh otak Anda (otak Anda dianalogikan sebagai sebuah prosessor). Pertama tangan Anda (kiri dan kanan) harus menekan dan memetik senar, kedua mulut Anda juga harus bersuara tentunya harus ada nadanya, ketiga mata Anda juga harus melihat teks lirik atau kunci gitar. Hal ini semakin sulit bila Anda harus memainkan melodi sambil bernyanyi dan melihat notasi balok dengan tempo yang cepat . Tentu otak Anda akan kewalahan, harus mensinkronkan semua dalam waktu yang bersamaan tentunya butuh konsentrasi tinggi dan juga stamina yang cukup.
Melalui multithreading, program yang kita buat dapat mengerjakan beberapa perintah secara bersamaan, efeknya waktu yang dibutuhkan untuk menyelesaikan semua perintah tersebut dari awal sampai akhir menjadi lebih sedikit. Namun demikian, membuat aplikasi yang multithreading haruslah berhati-hati, karena bila semakin banyak perintah yang dijalankan sementara penanganan untuk multithreading ini tidak teliti maka output program dapat terjadi kesalahan atau juga dapat terjadi deadlock. Untuk itu pada umumnya pada aplikasi multithreading dikenal adanya istilah Unsyncronized dan Syncronized Threads.
Multithreading mempunyai beberapa model, yaitu :
a. Model Many-to-One . Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.
b. Model One-to-One . Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
c. Model Many-to-Many . Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

c. Perbedaan antara Multitasking dan Multithreading
Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.

0 komentar:

Posting Komentar

 

my story Copyright © 2010 Design by Ipietoon Blogger Template Graphic from Enakei