Assalamualaikum
wr. wb.
Pada
thread blog kali ini saya akan memberikan ulasan (ulasan 1) dari
video berdurasi 1:11:46 jam dari alamat ini.
Ini merupakan video yang diunggah oleh akun bernama “Learn
Forever” dengan judul Advanced Net Threading – Part 1 –
Thread Fundamentals. Konten di dalam video tersebut secara
original telah dibuat oleh Jeffrey Richter dari Microsoft Virtual
Academy dan diproduksi oleh Wintellect Now. Alasan untuk
memilih topik ini, karena selain sebagai tugas mata kuliah Sistem
Operasi sekaligus sebagai bahan dasar untuk melakukan eksplorasi .Net
System Development di kantor tempat saya bekerja. Selain itu,
konten dalam video ini mencakup teknologi informasi secara umum, dan
mencakup Sistem Operasi secara khusus.
Sejarah
keberadaan thread secara umum adalah berasal dari lemahnya eksekusi
yang dilakukan sistem operasi terhadap aplikasi-aplikasi yang
terdapat didalamnya. Salah satu contohnya adalah terjadinya infinite
loop pada proses aplikasi yang dapat menyebabkan mesin berada pada
kondisi Freeze. Hal ini sangat tidak User friendly
untuk sebuah konsep User Experience pada Sistem Operasi.
Kebanyakan orang menganggap bahwa thread akan meningkatkan kinerja
dari sistem operasi, namun pada kenyatannya, thread digunakan untuk
memvirtualisasikan memori pada komputer sehingga membuat komputer
berjalan dengan lebih lambat. Masalah lain muncul kemudian, yaitu 1
CPU hanya dapat menjalankan 1 thread dalam satu waktu, selanjutnya
disebut Quantum. Quantum berjalan dengan kecepatan
3milidetik setiap proses. Kemudian Microsoft akhirnya
membangun Windows yang mendukung adanya 1+threads per
proses. Hal ini akan mendukung Sistem Operasi untuk menjalankan
proses yang Infinite loop. Jadi, pengguna dapat membuka task
manager untuk melakukan kill terhadap aplikasi yang
infinite loop tersebut serta me-release alamat memori
yang digunakan oleh aplikasi yang infinite loop tadi dengan
tanpa mematikan komputernya. Tujuan utama thread dibuat pada tahap
ini adalah untuk alasan ketahanan, keresponsifan dan kereliabelan.
Dengan kata lain, thread merupakan teknologi untuk memvirtualisasikan
CPU, yang pada dasarnya memiliki sebuah overhead, dalam hal ini
adalah waktu eksekusi dan ukuran alokasi memori. Setiap kali thread
dipanggil oleh sistem operasi, ia akan membuat sebuah struktur data
disebut thread kernel object untuk memenej waktu hidup alokasi
memori. Struktur data ini menyimpan informasi tentang waktu pembuatan
thread tersebut, penjadwalan, berapa banyak CPU time yang
digunakan, posisi apa yang sedang thread kerjakan (create, wait,
running atau terminating). thread kernel object terdiri dari context, Thread Local Storage (TLS), dan Graphics Devise Interface. Bagian terpenting di dalam thread adalah Stacks. Satu thread terdiri dari 2 Stacks, yaitu user mode stack dengan kapasitas memori 1MB, dan kernel mode stack dengan kapasitas memori 12KB atau 24KB tergantung besarnya bit sistem operasi yang digunakan. Kemudian hal penting berikutnya dalam thread overhead adalah time overhead yaitu waktu yang digunakan mengalokasi memori dan mendealokasi memori. Time overhead disimpan dalam bentuk DLL.
Kemudian, 2 alasan utama mengapa kita harus menggunakan thread dalam programming adalah 1) untuk mengisolasi suatu kode ke dalam kode yang lain, atau dengan kata lain untuk menciptakan kode yang reliabel dan mudah untuk dibuat, 2) untuk mengeksekusi lebih dari 1 proses dalam sekali waktu secara bersamaan, karena pada saat ini kebanyakan komputer telah mendukung multi-processor. Benefit yang bisa didapatkan ketika menggunakan thread dalam membuat program adalah 1) menjaga agar CPU tetap sibuk, karena jika 1 CPU dan 1 thread selesai mengeksekusi suatu proses, context switch dapat menjadwalkan proses lain untuk dieksekusi selanjutnya, hal ini akan membuat efisiensi sumber daya yang ada di dalam komputer, misalnya daya baterai, 2) Dalam sekali menjalankan aplikasi, pengguna dapat melakukan eksekusi terhadap lebih dari satu fitur aplikasi, dan 3) Untuk membuat aplikasi yang reliabel, tanpa hangs, dapat ditunda, dan UI yang responsif atau user friendly. Contoh fungsi yang dapat dibuat dengan menggunakan thread adalah 1) file indexing untuk pencarian yang lebih cepat, 2) mengurutkan pengalamatan pada memori fisik untuk mempercepat pengaksesan I/O, 3) Spelling dan Grammar pada saat pengetikan kata di aplikasi pengolah kata.
Tujuan utama dari video ini sebenarnya adalah untuk mengajarkan bagaimana membuat thread dengan menggunakan bahasa pemrograman C#. Namun, penyaji lebih memilih untuk memberikan materi tentang fundamental atau dasar-dasar materi yang harus diketahui tentang threading dengan bahasa yang mudah dipahami dan lengkap terlebih dahulu. Itu berarti penyaji membiarkan pembacanya untuk benar-benar mengerti konsep threading pada C#, tidak hanya sekedar mengikuti apa yang dia buat atau kerjakan. Oleh karena itu saya pribadi sangat setuju dengan cara penyampainnya, walaupun ada bagian yang seharusnya dioptimalkan untuk membuat penggunanya cepat dan mudah memahaminya, yaitu dengan slide presentasi yang unik disertai gambar-gambar pendukung.
Berikut merupakan data pribadi saya yang bisa diakses:
Kemudian, 2 alasan utama mengapa kita harus menggunakan thread dalam programming adalah 1) untuk mengisolasi suatu kode ke dalam kode yang lain, atau dengan kata lain untuk menciptakan kode yang reliabel dan mudah untuk dibuat, 2) untuk mengeksekusi lebih dari 1 proses dalam sekali waktu secara bersamaan, karena pada saat ini kebanyakan komputer telah mendukung multi-processor. Benefit yang bisa didapatkan ketika menggunakan thread dalam membuat program adalah 1) menjaga agar CPU tetap sibuk, karena jika 1 CPU dan 1 thread selesai mengeksekusi suatu proses, context switch dapat menjadwalkan proses lain untuk dieksekusi selanjutnya, hal ini akan membuat efisiensi sumber daya yang ada di dalam komputer, misalnya daya baterai, 2) Dalam sekali menjalankan aplikasi, pengguna dapat melakukan eksekusi terhadap lebih dari satu fitur aplikasi, dan 3) Untuk membuat aplikasi yang reliabel, tanpa hangs, dapat ditunda, dan UI yang responsif atau user friendly. Contoh fungsi yang dapat dibuat dengan menggunakan thread adalah 1) file indexing untuk pencarian yang lebih cepat, 2) mengurutkan pengalamatan pada memori fisik untuk mempercepat pengaksesan I/O, 3) Spelling dan Grammar pada saat pengetikan kata di aplikasi pengolah kata.
Tujuan utama dari video ini sebenarnya adalah untuk mengajarkan bagaimana membuat thread dengan menggunakan bahasa pemrograman C#. Namun, penyaji lebih memilih untuk memberikan materi tentang fundamental atau dasar-dasar materi yang harus diketahui tentang threading dengan bahasa yang mudah dipahami dan lengkap terlebih dahulu. Itu berarti penyaji membiarkan pembacanya untuk benar-benar mengerti konsep threading pada C#, tidak hanya sekedar mengikuti apa yang dia buat atau kerjakan. Oleh karena itu saya pribadi sangat setuju dengan cara penyampainnya, walaupun ada bagian yang seharusnya dioptimalkan untuk membuat penggunanya cepat dan mudah memahaminya, yaitu dengan slide presentasi yang unik disertai gambar-gambar pendukung.
Berikut merupakan data pribadi saya yang bisa diakses:
- Github account: novidaws
- URL Ulasan blog: https://mathisgold.blogspot.co.id/2016/12/thread-fundamentals-advanced-net.html
- URL konten Youtube: https://www.youtube.com/watch?v=2AQ0CgPfKEQ&t=3071s
- Tanggal submisi revisi pertama:
- Tanggal submisi revisi kedua:
0 comments:
Post a Comment