Senin, 07 Juli 2008

multitasking dengan multithreading


Kemarin lihat presentasinya Faran soal Thread muncul ide buat nulis soal multiproses, multitask sama multithread. begini ceritanya .......
ilustrasi diperankan oleh model. kesamaan nama dan wujud adalah tanpa disengaja.
java mendukung multithreading lho, mungkin itu yang dikenal selama ini. apa sih artinya ? trus ada juga gue bosen kerja disana karena gue disuruh multitasking (sama sekali bukan aku :)). apaan juga itu ?

gambar disamping ilustrasi multitasking. adalah metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya. dalam contoh ini kalau orang yang duduk sambil BAB sambil bekerja dengan komputer dan mengirim fax. dia menjalani beberapa proses dan terjadi pembagian sumberdaya pikiran dalam hal ini otak. Pada komputer sumberdaya ini adalah CPU dan memori.
sementara ilustrasi multithread adalah dalam satu proses terjadi eksekusi thread lebih dari satu pada waktu yang sama. contohnya dalam mengetik di komputer kedua tangan mengetik bersamaan dengan mata sambil melihat monitor.

dari http://blog.wired.com/gadgets/1090532200multitasking2.png

















from http://java.sun.com/docs/hotspot/threads/threadModel.gif

Thread ini berdasarkan terminologinya dibagi menjadi 4:

Thread pengguna: dibuat menggunakan library pada applikasi contoh thread di java.
Thread dilibrary OS : Solaris Thread.
Thread LWP: yang memungkinkan concurrent (eksekusi bersamaan) syscall dalam 1 proses.
Thread kernel: terdapat dilayer kernel.









Model-Model MultiThreading:

  1. 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.

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

  3. 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.

referensi :

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11s03.html
http://java.sun.com/docs/hotspot/threads/threads.html
http://opensolaris.org/os/community/edu/curriculum_development/

Tidak ada komentar:

Posting Komentar