Selasa, 25 Oktober 2016

THREADS PADA WINDOWS

THREADS Threads dapat dikatakan sebagai suatu atau beberapa kegiatan dalam suatu proses. Threads merupakan unit terkecil dari suatu proses yang dapat dijadwalkan oleh suatu sistem operasi. Suatu thread memiliki : - Thread ID - Program counter - Register set - Stack Suatu threads berbagi memory, code section, data section dan sumber daya sistem operasi dengan threads lainnya yang berada pada proses yang sama. Keuntungan dari adanya threads - Pembuatan thread baru lebih cepat dari pada proses baru, - Penghentian thread lebih singkat daripada penghentian proses, - Switching antara dua thread lebih singkat daripada switching antar proses, - Thread dapat berkomunikasi satu sama lain. User Threads User threads merupakan threads yang berjalan pada user level. Pengaturan dan penjadwalan dari thread ini sepenuhnya dilakukan pada user level tanpa campur tangan dari kernel level. Setiap proses memiliki thread table untuk menyimpan informasi thread yang dimilikinya. User threads secara umum lebih ringan dalam proses pembentukan dan penjadwalan. Akan tetapi tidak dapat berjalan secara multi threading.

Kernel Threads Kernel threads merupakan threads yang dicipatakan dan berjalan pada kernel level. Penjadwalan dan manajemen dilakukan oleh kernel pada kernel level. Kernel threads sering disebut juga proses yang ringan (Lightweight Process/LWP). Kernel threads lebih lambat proses pembentukan dan penjadwalan jika dibandingan dengan user threads. Kernel threads mendukung multithreading dimana beberapa thread dapat dijalankan dalam waktu yang bersamaan.
Terdapat relasi diantara user threads dan kernel threads. Relasi ini secara umum dapat dimodelkan menjadi 3 bentuk yaitu :
1.    Many-to-One
     Many-to-One model memetakan semua user thread ke dalam satu kernel thread. Manajemen pengaturan thread dilakukan pada user level sehingga kinerja lebih cepat. Kekurangannya adalah jika suatu thread melakukan blocking maka thread yang lain tidak dapat berjalan. Hanya satu thread yang dapat dijalankan pada satu waktu.
2.    One-to-One
     Satu user thread memiliki satu kernel thread. Keuntungan dari model ini adalah lebih dari satu thread dapat berjalan secara bersamaan. Jika satu thread melakukan blocking, thread yang lain tetap dapat berjalan. Karena setiap penciptaan user thread harus dibarengi dengan kernel thread maka model ini cenderung lebih lambat dibandingkan dengan many-to-one. Gambar 2 . Kernel Threads
3.    Many-to-Many
Memetakan beberapa user thread ke dalam sejumlah kernel thread, dimana jumlah kernel thread yang dapat digunakan sama atau lebih sedikit dari jumlah user thread. Pada model ini hanya satu thread yang dapat dijadwalkan oleh kernel thread dalam satu waktu.

THREADS PADA WINDOWS
Windows mengunakan Win32 API sebagai API utama dalam hampir semua sistem operasi Microsoft. Selain itu windows mengimplementasi model relasi One-to-One, dimana terdapat satu kernel thread yang berasosiasi dengan masing – masing user thread. Thread pada windows secara umum mempunyai komponen sebagai berikut :
• Thread ID
• Register set
• User stack dan kernel stack
• Private storage area.

Register set, stacks dan private data storage disebut sebagai context dari sebuah thread. Struktur data utama dari sebuah thread :
• ETHREAD (executive thread block)
• KTHREAD (kernel thread block)
• TEB (thread environment block)

Bagian penting dari ETHREAD adalah KTHREAD, Process ID, Thread start address. Blok KTHREAD merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID juga merupakan suatu pointer yang menunjuk pada proses utama yang memiliki thread tersebut dan Thread start address adalah alamat dari rutin awal thread.

KTHREAD (kernel thread block)
KTHREAD menyimpan informasi yang dibutuhkan oleh kernel untuk dapat melakukan penjadwalan dan sinkronisasi thread. Pada KTHREAD juga terdapat kernel stack, yang mana akan digunakan ketika thread berjalan pada kernel mode. Juga terdapat pointer yang menunjuk TEB.

TEB (thread environment block)
TEB menyimpan informasi image loader dan beberapa DLLs dari windows. Komponen - komponen ini berjalan pada user mode, maka dibutuhkan suatu struktur data yang dapat dimanipulasi(writable) pada user mode. Oleh karena itu, tidak seperti KTHREAD dan ETHREAD yang berada pada kernel space, TEB berada pada user space.


Proses Pembentukan Thread
Sebelum sebuah thread dibuat, diperlukan stack dan context dimana thread akan dijalankan. Proses pembentukan stack dilakukan dengan pemanggilan fungsi CreateThread. Fungsi ini terdapat dalam Kernel32.dll. Process manager akan mengalokasikan space untuk object dari thread yang baru dan memanggil kernel untuk membuat kernel thread block. Berikut ini langkah – langkah pembentukan thread :
1. Memanggil fungsi CreateThread membuat stack untuk thread pada user-level.
2. Thread's hardware context diinilisasi oleh CreateThread.
3. Fungsi NtCreateThread dipanggil untuk membuat executive thread object.

NtCreateThread memanggil fungsi PspCreateThread dan menjalankan proses – proses berikut :
• Thread count pada program/proses akan dinaikan 1.
• Executive thread block (ETHREAD) dibuat dan diinisialisasi.
• Thread ID dibuat untuk thread yang baru
 • TEB di setup (user- mode)
• Thread start address pada user-mode disimpan dalam ETHREAD
• Fungsi KelnitThread dipanggil untuk membuat KTHREAD block.
KelnitThread mengalokasikan kernel stack dan inisialisasi machinedependent hardware context termasuk didalamnya context, trap, dan exception frames.
• Thread access token di set sesuai dengan proces acces token dan akan dicek apakah program/proces tersebut memiliki hak untuk membuat thread atau tidak. Proses cek ini akan selalu berhasil jika thread yang diciptakan bersifat lokal, dimana thread yang diciptakan masih berada dalam program/proces yang sama. Kemungkinan gagal jika thread yang akan dibuat untuk program/proces yang lain.

4. Thread baru diinformasikan oleh CreateThread kepada Windows subsystem dan subsystem melakukan beberapa proses setup untuk thread yang baru.
5. Thread handle dan thread ID dikembalikan kepada proses/program yang membuat thread tersebut.
6. Thread dijalankan.

KESIMPULAN
Windows dalam mengimplementasikan thread memakai model One-to-One. Sehingga windows mendukung multithreading. Win32 API adalah pustaka thread yang digunakan oleh windows. Struktur data utama dalam thread windows : ETHREAD (executive thread block), KTHREAD (kernel thread block) yang keduanya berada pada kernel-level dan TEB (thread environment block) yang berada pada user-level.

DAFTAR PUSTAKA
Russinovich, M., and Solomon, D. Microsoft Windows, Internals Fourth Edition:
Microsoft Windows Server 2003, Windows XP, and Windows 2000. Microsoft Press, 2005. hal 289 – 322 Silberschatz, A., Galvin, P., Gagne, G. 2004. Operating Systems Concepts with Java. Sixth Edition. John Wiley & Sons. hal 181 - 212

Kamis, 13 Oktober 2016

SmarTech, Antara Pelanggaran Privacy dan Kebutuhan Pengguna

Pada kuartal 2 di tahun 2015, jumlah pengiriman (shipment) Android masih melesat jauh di atasplatform smartphone lain. Gambar di bawah ini merupakan statistik yang dikeluarkan oleh idc.com; suatu lembaga yang membantu organisasi dalam membuat keputusan berdasarkan fakta dan data yang ada.





Diagram histogram dari frekuensi di atas:




Terlihat pada gambar tersebut sebanyak 82% (dari 341,5 juta pemesanan) lebih merupakan pengguna Android. Dari data di atas, dapat disimpulkan bahwa mayoritas penggunasmartphone di dunia adalah pengguna Android.


Android mendominasi pasar sistem operasi ponsel pintar dengan kecanggihan yang ditawarkan. Mungkin diantara pembaca juga pengguna dari sistem operasi ini, bukan?
Sistem operasi ini memiliki banyak ‘kebisaan’ yang semua ‘kebisaan’ itu disemat dalam berbagai macam aplikasi. Di dalamnya terdapat ribuan bahkan jutaan aplikasi yang dapat memenuhi kebutuhan bahkan memanjakan keinginan Anda. Berbagai aplikasi telah digunakan oleh banyak orang. Mulai dari aplikasi ‘coba-coba’ hingga aplikasi yang wajib menjadi kebutuhan pengguna.
Namun, di sisi lain tanpa diketahui oleh pengguna, ternyata tidak sedikit pembuat aplikasi yang merugikan privasi mereka (baca: pengguna). Mengapa dirugikan? Untuk menggunakan aplikasi pada OS ini, pengguna diwajibkan untuk menginstal aplikasi terlebih dahulu. Ketika proses instalasi akan berlangsung, pengguna diminta untuk memberikan izin akses terhadap resourcetertentu yang diminta oleh aplikasi, tanpa menjelaskan mengapa resource tersebut dibutuhkan oleh aplikasi. Banyak pengguna yang tidak sadar/tidak tahu/masa bodoh dengan permintaan ini, sehingga mereka akan mengizinkan untuk menginstal aplikasi. Langkah pemberian ‘izin’ pun cukup beralasan, karena mereka (baca: pengguna) butuh aplikasi tersebut (mungkin untuk hiburan, atau memang untuk kebutuhan sehari-hari).
Dari aturan seperti ini, para pembuat aplikasi dapat saja mensyaratkan pengguna untuk mengizinkan mereka (developer) untuk dapat mengakses resource yang krusial seperti penyimpanan, kontak, perpesanan, serta resource lainnya. Sayangnya, tidak sedikit pengguna yang tidak membaca terms and conditions ini dan langsung menginstal aplikasi yang mereka inginkan. Akibatnya, memang mereka dapat menggunakan aplikasi, namun di pihak developer, pun dapat mengakses data pengguna. Terjadilah simbiosis mutualisme – pengguna dapat menggunakan aplikasi, penyedia aplikasi mendapatkan data pengguna, sama-sama senang. Pengguna senang, developer pun senang 
Selain itu, pada OS ini terdapat aplikasi yang sangat canggih yaitu location history. Aplikasi (dalam hal ini adalah Google), akan mencatat lokasi Anda dengan informasi yang komprehensif. Informasi tersebut seperti seperti posisi, waktu, jarak, dan lain sebagainya. Aplikasi ini sebenarnya sangat membantu bagi pengguna yang ingin mengetahui posisi ia berada dalam beberapa waktu yang lalu, atau mungkin ingin mengetahui posisi kekasih? Atau bahkan bisa melacak ponsel yang hilang. Satu syarat dari aplikasi ini agar dapat berjalan yaitu GPS (Global Positioning System) pengguna harus aktif. Aplikasi ini sebenarnya sudah diketahui oleh banyak orang, namun mungkin karena tidak ada bukti otentik dan belum ada tulisan seperti ini, para pengguna belum sadar akan keamanan privasi mereka.
Lalu dimana letak pelanggaran privacy?
Aplikasi ini akan mengetahui banyak informasi mengenai diri Anda meskipun Anda tidak memberikan informasi tersebut. Misalnya, pada waktu rush hour kantor (waktu pergi dan pulang kantor), orang-orang menggunakan commuter line untuk mencapai tujuan (baik kantor maupun rumah). Karena banyak orang yang menggunakan OS ini, maka fitur ini pun akan mencatat pada waktu tersebut bahwa terdapat sekelompok orang/banyak orang yang berada di suatu titik yang sama kemudian berpindah dengan sangat cepat ke suatu titik tertentu. Aktivitas rutin seperti ini selalu dilakukan pada waktu yang sama sehingga aplikasi akan membuat statistik serta menganalisa bahwa di titik tersebut terdapat suatu kendaraan cepat (commuter-line) yang akan membawa sebanyak x orang (mungkin 1000 atau 2000 orang) pada waktu rush hour.
Dari contoh di atas, dapat dipastikan bahwa aplikasi akan mengetahui aktivitas serta informasi pengguna meskipun pengguna tidak memberikan informasi sedikitpun mengenai data dan aktivitas mereka.

History Location:


Rincian Aktivitas:


Gambar di atas merupakan history location saya beberapa bulan lalu ketika saya berada di suatu tempat. Aplikasi ini akan mencatat setiap aktivitas yang dilakukan. Apakah Anda berjalan ke tempat tujuan menggunakan kendaraan, atau hanya jalan kaki, berapa jauh tujuan Anda, berapa lama Anda mencapai tujuan, semuanya akan tercatat oleh aplikasi. Canggih bukan? Bahkan aplikasi ini mengetahui dimana Anda tinggal. Apakah Anda bisa menebak bagaimana aplikasi ini mengetahui dimana Anda tinggal? Gampang! Aplikasi ini akan membuat statistik waktu yang paling banyak Anda habiskan di malam hari. Apabila data statistik telah terpenuhi, maka sangat mudah bagi aplikasi mengetahui rumah Anda, serta kegiatan Anda sehari-hari.
Hal ini dapat terjadi karena pengguna mengaktifkan GPS pada ponsel mereka. GPS yang diaktifkan akan mengirimkan data lokasi pada periode tertentu pada Google, sehingga Google dapat mencatat dimana Anda berada pada detik:menit:jam:hari:bulan:tahun.
Hingga saat ini masih sangat banyak pengguna yang mengaktifkan GPS mereka (baik untuk tracking lokasi, maupun sebagai penunjuk jalan, dan lain sebagainya). Statistik di bawah ini menunjukkan bahwa banyak pengguna yang menggunakan ponsel mereka sebagai alat bantu dalam navigasi.


Di bawah ini merupakan diagram kurva ogivenya:


Diagram Pie Chart:


Statistik di atas diambil hanya dari pengguna yang berada di US saja. Terlihat bahwa sangat banyak pengguna yang mengaktifkan GPS mereka untuk berbagai macam kebutuhan[2]. Ya, tentu saja saya tidak bisa men-judge para pengguna untuk tidak mengaktifkan GPS. Kebutuhan GPS merupakan hak pengguna yang tentu berbeda dengan kebutuhan pengguna lain, seperti saya.
Jika saya tidak mengaktifkan GPS, apakah lokasi saya masih dapat diketahui? (Mungkin) Tidak.
Asumi saya mengatakan (Mungkin) Tidak adalah karena kita tidak tahu apakah memang hanya satu-satunya tombol GPS yang tidak diaktifkan itu, atau apakah ada ‘tombol’ GPS lain yang pengguna tidak mengetahuinya.
Selain itu, jika Anda tidak mengaktifkan GPS, data-data Anda juga akan dapat diakses. Akses data dapat dilakukan melalui aplikasi yang sudah ada install, seperti aplikasi chatting, atau aplikasi maps/traffic.


Jadi, data Anda akan tetap diakses dan dikirimkan melalui aplikasi yang telah ada install.

Jadi bagaimana solusinya?
Saat ini, kita tidak bisa menghindar dari teknologi yang disuguhkan. Teknologi yang begitu canggih, menggiurkan, serta dapat membantu pekerjaan kita secara signifikan, memang tidak bisa benar-benar lepas dari teknologi yang ada.
Ada dua solusi yang bisa diterapkan.
Pertama adalah membuat aplikasi sendiri. Poin pertama saya rasa sangat sulit untuk diimplementasikan karena di sisi lain kita sebagai pengguna membutuhkan aplikasi tersebut saat ini, tidak ada waktu untuk membuat apalagi harus berkutat dengan code yang njelimet, infrastruktur, biaya perawatan, dan lain sebagainya.

Jumat, 17 Juni 2016

Peranan Komputer untuk Manusia

Di era globaliksai ini banyak hal yang dapat dilakukan seseorang dengan komputer. “Komputer adalah system elektronik untuk memanipulasi data, serta dirancang secara otomatis menerima dan menyimpan data input, memprosesnya, dan menghasilkan output berdasarkan instruksi yang dibuat” (Donald Sanders, 1985). Selain dapat mengakses informasi dari segala penjuru dunia, komputer juga menyajikan pelajaran yang menarik dan kreatif baik di sekolah, di rumah, atau dimanapun kita berada. Setiap informasi didapatkan dengan cepat karena adanya jaringan internet. Internet yang terhubung di dalam komputer dapat membantu kita mencari informasi yang dibutuhkan. Melalui internet kita menemukan materi untuk mendukung pekerjaan yang akan kita presentasikan. Hal tersebut merupakan sebagian dari peranan komputer untuk manusia.


Peranan yang pertama adalah komputer sebagai sarana mempermudah pekerjaan. Komputer yang dapat menyelesaikan pekerjaan dengan mudah karna kita dapat mengetik, mengedit, dan menyimpan dokumen untuk diedit berulang-ulang. Berbeda dengan era sebelumnya, kita mengetik surat harus dengan mesin tik, dan bila ada kesalahan makan kertas tersebut akan disobek dan diketik ulang. Peranan selanjutnya adalah komputer sebagai sarana alat hiburan. Komputer dapat menghibur diri kita dengan berbagai fasilitas yang terdapat dalam komputer seperti mendengarkan lagu, menonton video, bermain game, dan berhubungan dengan teman melalui fasilitas chatting atau webcam.


Berikutnya peranan membantu dalam bidang kesehatan. Komputer dapat mempermudah dokter dan perawat dalam memonitor kesehatan pasien, monitor detak jantung pasien, aliran darah, dan memeriksa organ dalam pasien dengan sinar X. Kemudian komputer sebagai sarana informasi yang terdiri dari informasi pendidikan, hiburan, travel, produk, pekerjaan, berita, cuaca, lalulintas, kesehatan, politik, perdagangan, usaha, dan masih banyak lagi yg bias dapat diperoleh melalui komputer. Dalam sarana usaha komputer bias mendatangkan penghasilan, yaitu dengan membuat rental komputer, membuat warnet, usaha percetakan, usaha video editing, usaha sablon, servis komputer, desain arsitektur, desain grafis, desain web, kursus komputer, bahkan membuat buku online. Terakhir adalah komputer sebagai sarana control sudah digunakan di beberapa pabrik, perhotelan, dan perusahaan seperti mengontrol kamera cctv, escalator, tata lampu ruangan dan masih banyak kegunaannya.


Daftar Pustaka



Agung Prasetya.2015.Manfaat komputer dalam kehidupan sehari-hari.u-trik.com

Kamis, 16 Juni 2016

Hardware Komputer

Pengertian hardware dalam bahasa Indonesia disebut dengan nama perangkat keras. Perangkat keras adalah salah satu komponen dari sebuah komputer yang sifatnya dapat dilihat dan diraba secara langsung atau berbentuk nyata berfungsi untuk mendukung proses komputerisasi. “Hardware dapat memanipulasi data dengan cepat dan tepat serta dirancang agar secara otomatis menerima kemudian menyimpan data input, memprosesnya, dan menghasilkan ouput berdasarkan instruksi-instruksi yang telah tersimpan dalam memori yang digabungkan dalam satu wadah yaitu komputer” (Sanders, 1985).  Hardware dapat bekerja berdasarkan perintah yang telah ditentukan disebut dengan istilah instruction set. Perintah yang dijalankan oleh hardware tersebut dapat melakukan berbagai kegiatan yang telah ditentukan oleh si pemberi perintah.

Secara fisik, komputer terdiri dari beberapa komponen merupakan suatu sistem. “Sistem adalah himpunan dari komponen-komponen yang saling berkaitan sehingga membantuk suatu kesatuan yang utuh dan terpadu” (Raymond Mcleod, 2001). Sistem dibuat untuk mencapai suatu tujuan yang meliputi ruang lingkup yang luas. Apabila salah satu dari komponen tidak dapat berfungsi, maka akan mengakibatkan proses-proses pada komputer tidak berfungsi dengan baik. Komponen-komponen ini termasuk dalam kategori elemen perangkat keras yaitu hardware.

Contoh dari komponen tersebut terdiri dari perangkat input, perangkat proses, dan perangkat output. Input merupakan perangkat keras yang digunakan untuk memasukkan data dari pengguna untuk diproses oleh komputer. Kemudian perangkat proses adalah perangkat keras yang berguna untuk memproses masukan yang telah diberikan oleh pengguna. Serta yang terakhir perangkat ouput adalah perangkat keras yang digunakan untuk menampilan hasil dari proses komputer selanjutnya diberikan kepada pengguna. Pada intinya, tujuan dari masing-masing komponen computer yaitu sama-sama menghasilkan sebuah informasi.

Daftar Pustaka

Habibullah Al Faruq.2015.Pengertian Hardware.habibullahurl.com


Muhammad Sahid.2014.Pengertian dan Fungsi Hardware Komputer Beserta Contohnya.ilmusahid.com

Jumat, 22 April 2016

Software Komputer



Software Komputer merupakan perangkat lunak komputer untuk mengontrol perangkat keras. Software juga bisa disebut sebagai data yang diprogram secara digital dalam bentuk aplikasi, program komputer,dokumentasi, dan informasi yang bisa dibaca dan ditulis oleh komputer. Dengan demikian bagian sistem komputer yang tidak berwujud atau bekerja dibelakang layar dan sistem. Karena disebut sebagai perangkat lunak, maka sifatnya juga berbeda dengan perangkat keras atau hardware. Hardware merupakan perangkat yang nyata sedangkan software kebalikan dari hardware. Software juga bermacam-macam jenisnya, yaitu freeware, Shareware, Firmware, Commersial Software, Free Software, Open Source Software, dan Malware.

Freeware adalah perangkat lunak komputer yang memiliki hak cipta yang gratis dan bisa digunakan tanpa batasan waktu. Berbeda dengan shareware, shareware mewajibkan pemakainya membayar dalah jangka waktu tertentu atau untuk penambahan fitur. Kemudian Firmware adalah aplikasi yang mengacu terhadap perangkat lunak yang disimpan di dalam ROM (Read Only Memory). Lalu, Commercial Software adalah perangkat lunak yang disalurkan untuk tujuan komersial. Jadi, setiap pengguna yang ingin menggunakan software tersebut bisa langsung membeli kepada developers atau pengembang software. Setelah itu ada Free Software yang digunakan terhadap perangkat lunak yang bebas, hal ini bisa dipelajari dan diubah serta dimodifikasi dengan beberapa aturan agar dapat dinikmati oleh pengguna-pengguna berikutnya. Kemudian, Open Source Software adalah perangkat lunak yang kode sumbernya terbuka secara umum, yang bisa dipelajari, dikembangkan, dan disebarluaskan. Terakhir adalah Malware, yang merupakan perangkat perusak yang diciptakan untuk menyusup atau merusak sistem komputer tanpa izin dari pemiliknya.

sumber:
http://www.websitekomputer.com/2014/10/pengertian-software-komputer-paling-lengkap.html