Sabtu, 30 April 2011

about THREAD

PENGERTIAN THREAD

Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.

Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
Membuat subclass dari thread Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run()

Keuntungan dari THREAD :
-      Membuat aplikasi yang interaktif menjadi multithreading dapt membuat sebuah program terus berjalan meskipun sebagian dari program tersebut doblok atau melakukan operasi yang panjang. Karena itu dapt meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading. Sebuah thread dapt melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
-      Thread berbagi memori daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
-      Utilisasi arsitektur multiprocessor, yaitu keuntungan dati multithreading dapat sangat meningkat pada arsitektur multiprosessor.

Penjelasan dari User THREAD
-      User Thread didukung diatas kernel dan diimplementasikan oleh thread library pada level user.
-      Library mendukung pembuatan thread, penjadwalan, dan manajemen tanpa dukungan langsung dari kernel.
-      Karena kernel tidak menyadari adanya user-level threads maka pembuatan semua thread dan penjadwalan dilakukan didalam user space tanpa intervensi dari kernel.
-      Three primary threads libraries :
·        POSIX pthread
·        Win32 thread
·        Java thread

Penjelasan dari kernel Thread :
-      Kernel thread didukung secara langsung dari system operasi. Pembuatan thread, penjadwalan, dan manajemen di lakukan oleh SO.. atau secara umun user thread lebih cepat di buat dari pada membuat kernel thread.

Penjelasan dari Model MultiThreading
a.      Thread pengguna:  Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan threadthread pengguna cepat dibuat dan dikendalikan.
b.     Thread Kernel:  Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Model-Model MultiThreading




Model-Model MultiThreading:
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 jumlahthread 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.


Penjelasan dari Thread Cancellation :
-      Thread cancellation adalah sebuah tugas untuk memberhentikan thread tersbut selesai. missal, JVM akan mematikan seluruh thread sebelum end.
-      Thread uang akan diberhentikan disebut targer thread.
-      2 skrenario thread cancellation:
·        Asynchronous cancellation : satu thread memberhentikan target thread seketika itu juga.
·        Deferred cancellation : target thread secara periodik dapat mengecek apakah dia harus berhenti, skrenario ini dapat member kesempatan kepada target thread untuk memberhentkan dirinya sendiri.

Penjelasan dari Thread Pool Arsitektur

Aplikasi berikut bisa mendapatkan keuntungan dari menggunakan kolam thread:
  • Sebuah aplikasi yang sangat paralel dan dapat mengirimkan sejumlah besar item pekerjaan kecil asynchronously (seperti pencarian indeks didistribusikan atau jaringan I / O).
  • Sebuah aplikasi yang menciptakan dan menghancurkan sejumlah besar thread yang masing-masing berjalan untuk waktu yang singkat. Menggunakan kolam thread dapat mengurangi kompleksitas pengelolaan benang dan overhaed terlibat dalam pembuatan benang dan kehancuran.
  • Sebuah aplikasi yang proses item pekerjaan independen di latar belakang dan secara paralel (seperti memuat banyak tab).
  • Sebuah aplikasi yang harus melakukan menunggu eksklusif pada objek kernel atau memblokir pada peristiwa masuk pada objek. Menggunakan kolam thread dapat mengurangi kompleksitas manajemen benang dan meningkatkan kinerja dengan mengurangi jumlah switch konteks.
  • Sebuah aplikasi yang menciptakan benang pelayan kustom untuk menunggu peristiwa.

Penjelasan dari LINUX Thread
-      Thread pada Linux mulai digunakan di kernel versi 2.2
-      Thread lebih dianggap sebagai tasks
-      Linux menyediakan 2 sistem call yang berhubungan dengan thread :
·        Fork (), duplikasi proses, dimana proses anakk independen
·        Clone (), mirip seperti fork(), namun selain meng-copy proses yang akan memanggilnya, method ini membuat proses baru yang berbagi addres space yang sama dengan proses yang memanggilnya, sehingga sama persis dengan induknya.
-      Context switch Linux lebih cepat


Penjelasan dari JAVA Thread


Suatu thread bisa berada pada salah satu dari status berikut :

 N ew. 
T h re a d yang berada di status ini adalah objek dari kelasThread yang baru dibuat,
yaitu saat instansiasi objek dengan statement new. Saatt hre a d berada di statusnew, belumada sumber daya yang dialokasikan, sehinggathread belum bisa menjalankan perintahapapun.
 Menjalankant hre a d. Agart hre a d bisa menjalankan tugasnya, methodstart() dari
kelasThread harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method
start(), yaitu alokasi memori untukth rea d yang dibuat dan pemanggilan method
run().

 Ru n n a b le. 
Saat methodrun() dipanggil, statusth rea d berubah menjadirunnabl e, artinya
thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang
berjalan juga dikategorikan dalam statusrunnable.
 Blocking statement dan interupsi M/K, yaitu kondisi yang menghalangi
pengeksekusiant hre a d. Ada berbagai jenis blocking statement. Yang pertama adalahpemanggilan method sleep(), suatu method yang menerima argumen bertipeint egerdalam bentuk milisekon. Argumen tersebut menunjukkan seberapa lamath rea d akan"tidur". Selainsleep(), dulunya dikenal methodsuspend(), tetapi sudahdisarankan untuk tidak digunakan lagi karena mengakibatkan terjadinyadeadlock.Di samping blocking statement, adanya interupsi M/K juga dapat menyebabkan
threadmenjadi blocked.



 Blocked.

 Statusbloc king menunjukkan bahwa sebuaht h re a d terhalang untuk menjalankan
tugasnya, sehingga dapat dikatakant hre a d tersebut terhenti untuk sementara.
Thred akanmenjad irunnable kembali jika interval methodsleep() nya sudah berakhir, ataupemanggilan methodresume() untuk mengakhiri methodsuspend(,) atau karena M/Ksudah tersedia lagi.

MakaLah Android ;))




Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Pada awalnya dikembangkan oleh Android Inc, sebuah perusahaan kemudian dibeli oleh Google, dan akhir-akhir ini oleh Open Handset Alliance. Hal ini memungkinkan para pengembang untuk menulis kode dikelola dalam bahasa Java, pengendalian perangkat melalui Library-Javanya Google.
Distribusi Android pada 5 November 2007 dengan mendirikan Open Handset Alliance, sebuah konsorsium dari 50 hardware, software, dan perusahaan telekomunikasi yang ditujukan untuk memajukan standar terbuka untuk perangkat selular. Google merilis kode Android di bawah Lisensi Apache, sebuah perangkat lunak berlisensi bebas dan open source.

Sejarah
Pada Juli 2005, Google mengakuisisi Android, Inc, sebuah perusahaan pemula yang berbasis di Palo Alto, California, Amerika Serikat. Pendiri Android yang pergi untuk bekerja di Google termasuk Andy Rubin, Rich Miner, Nick Sears, dan Chris White (ketua desain dan pengembangan antarmuka di webtv). Pada waktu itu, hanya sedikit yang diketahui tentang fungsi Android, Inc lain dari itu mereka membuat perangkat lunak untuk ponsel. Hal ini dimulai desas-desus bahwa Google berencana untuk memasuki pasar telepon seluler, meskipun masih belum jelas pada saat itu
Tim Google yang dipimpin oleh Rubin mengembangkan platform perangkat mobile didukung oleh kernel Linux yang mereka dipasarkan ke produsen handset dan operator dengan menjanjikan memberikan yang fleksibel, sistem upgradeable. Tahun 2006 Google telah memberi isyarat untuk mitra operator untuk berbagai tingkat kerjasama pada pihak mereka.
Pada bulan September 2007, InformationWeek melaporkan bahwa Google telah mengajukan beberapa aplikasi paten di bidang telepon selular.



Open Handset Alliance

Pada tanggal 5 November 2007, Open Handset Alliance, sebuah konsorsium dari beberapa perusahaan yang termasuk Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel dan T-Mobile diperkenalkan dengan tujuan untuk mengembangkan standar terbuka untuk perangkat selular. Seiring dengan pembentukan Open Handset Alliance, OHA juga mengumumkan produk pertama mereka, Android, sebuah platform perangkat mobile yang dibangun di atas kernel Linux versi 2.6.
Pada tanggal 9 Desember 2008, diumumkan bahwa 14 anggota baru akan bergabung dengan proyek Android termasuk: ARM Holdings Plc, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc.
Ketua dan CEO Google Eric Schmidt mengambil beberapa waktu dalam siaran pers resmi untuk menghilangkan semua rumor dan spekulasi sebelumnya tentang keberadaan Google yang diisukan berdiri sendiri seputar seluler.


Lisensi

Kecuali update berkala, Android telah tersedia sebagai open source sejak 21 Oktober 2008. Google membuka seluruh kode sumber (termasuk jaringan dan telepon di bawah Lisensi Apache.

Dengan lisensi Apache, vendor bebas untuk menambah kepemilikan ekstensi tanpa mengirimkan mereka kembali ke komunitas open source.

Fitur
Handset layouts
The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 1.0 specifications, and traditional smartphone layouts.
Storage
The Database Software SQLite is used for data storage purposes
Connectivity
Android supports connectivity technologies including GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth, and Wi-Fi.
Messaging
SMS and MMS are available forms of messaging including threaded text messaging.
Web browser
The web browser available in Android is based on the open-source WebKit application framework.
Java support
Software written in Java can be compiled to be executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.
Media support
Android supports the following audio/video/still media formats: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP,AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP.
Additional hardware support
Android can utilize video/still cameras, touchscreens, GPS, accelerometers, magnetometers, accelerated 2D bitblits (with hardware orientation,scaling,pixel format conversion) and accelerated 3D graphics.
Development environment
Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE.
Market
Like many phone-based application stores, the Android Market is a catalog of applications that can be downloaded and installed to target hardware over-the-air, without the use of a PC. Originally only freeware applications were supported. Paid-for apps have been available on the Android Market in the United States since 19 February 2009.The Android Market has been expanding rapidly and after a year of availability, it currently offers over 10,000 applications for download.
Multi-touch
Android has native support for multi-touch which is available in newer handsets such as the HTC Hero. The feature was initially disabled at the kernel level (possibly to avoid infringing Apple patents on touch-screen technology).


2007-2008: Produk awal

Sekitar September 2007 sebuah studi melaporkan bahwa Google mengajukan hak paten aplikasi telepon seluler (akhirnya Google mengenalkan Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2010).
Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi olehAsustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.
Telepon pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan Android.

 

Android versi 1.1

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

 

Android versi 1.5 (Cupcake)

Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.

 

Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan;CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.

 

Android versi 2.0/2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.
Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps- aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.
Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.

 

Android versi 2.2 (Froyo: Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.

 

Android versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

 

Android versi 3.0 (Honeycomb)

Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom.

Kelebihan Sistem operasi ANDROID :
·         Multitasking –  ponsel Android bisa menjalankan berbagai aplikasi, itu artinya Anda bisa browsing, Facebookan sambil dengerin lagu.
·         Kemudahan dalam Notifikasi – Setiap ada SMS, Email, atau bahkan artikel terbaru dari RSS Reader, akan selalu ada notifikasi di Home Screen Ponsel Android, tak ketinggalan Lampu LED Indikator yang berkedip-kedip, sehingga Anda tidak akan terlewatkan satu SMS, Email ataupun Misscall sekalipun.
·         Akses Mudah terhadap Ribuan Aplikasi Android lewat Google Android App Market – Kalau Anda seneng install aplikasi ataupun games, lewat Google Android App Market Anda bisa mendownload berbagai aplikasi dengan gratis. Ada banyak ribuan aplikasi  dan games yang siap untuk Anda download di ponsel Android.
·         Pilihan Ponsel yang beranekaragam - Bicara ponsel Android, akan terasa ‘beda’ dibandingkan dengan iOS, jika iOS hanya terbatas pada iPhone dari Apple, maka Android tersedia di ponsel dari berbagai produsen, mulai dari Sony Ericsson, Motorola, HTC sampai Samsung. Dan setiap pabrikan ponsel pun menghadirkan ponsel Android dengan gaya masing-masing, seperti Motorola dengan Motoblur-nya, Sony Ericsson dengan TimeScape-nya. Jadi Anda bisa leluasa memilih ponsel Android sesuai dengan ‘merk’ favorite.
·         Bisa menginstal ROM yang dimodifikasi – tak puas dengan tampilan standar Android, jangan khawatir ada banyak Costum ROM yang bisa Anda pakai di ponsel Android.
·         Widget – benar sekali, dengan adanya Widget di homescreen, Anda bisa dengan mudah mengakses berbagai setting dengan cepat dan mudah.
·         Google Maniak – Jika Anda pengguna setia layanan Google mulai dari Gmail sampai Google Reader, ponsel Android telah terintegrasi dengan layanan Google, sehingga Anda bisa dengan cepat mengecek email dari gMail.

Kekurangan Sistem Operasi ANDROID :
·         Koneksi Internet yang terus menerus – kebanyakan ponsel Android memerlukan koneksi internet yang simultan alias terus menerus aktif. Penulis sendiri menggunakan Motorola Milestone, dan koneksi internet GPRS selalu aktif setiap waktu, itu artinya Anda harus siap berlangganan paket GPRS yang sesuai dengan kebutuhan.
·         Iklan – Aplikasi di Ponsel Android memang bisa didapatkan dengan mudah dan gratis, namun konsekuensinya di setiap Aplikasi tersebut, akan selalu Iklan yang terpampang, entah itu bagian atas atau bawah aplikasi.

daftar pustaka :: http://google.com/definisiandroid