Rabu, 30 Juni 2021

KOMPUTASI MODERN Tugas ke-3

 Komputasi Modern

 

Pengertian Komputasi Modern

Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann telah menjadi ilmuwan besar abad 21. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya . Beliau juga merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.

Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:

1.    Akurasi (big, Floating point) 

2.    Kecepatan (dalam satuan Hz) 

3.    Problem Volume Besar (Down Sizzing atau pararel) 

4.    Modeling (NN & GA) 

5.    Kompleksitas (Menggunakan Teori big O)

Karakteristik Komputasi Modern

Karakteristik komputasi modern ada 3 macam, yaitu :

·         Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang. 

·         Komputer-komputer terhubung ke jarinagn yang luas dengan kapasitas bandwidth yang beragam. 

·         Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.

Jenis - Jenis Komputasi Modern

Komputasi modern terbagi tiga macam, yaitu komputasi mobile (bergerak), komputasi grid, dan komputasi cloud (awan). Penjelasan lebih lanjut dari jenis-jenis komputasi modern sebagai berikut :

1. Mobile computing

Mobile Computing atau komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Contoh dari perangkat komputasi bergerak seperti GPS. Beberapa keterbatasan dan resiko dari mobile computing :

Kurangnya Bandwith akses internet pada peralatan ini umumnya lebih lambat dibandingkan dengan koneksi kabel.  Gangguan Transimisi, banyak faktor yang bisa menyebabkan gangguan sinyal pada mobile computing seperti cuaca, medan dan jarak alat mobile computing dengan titik pemancar sinyal terdekat.

2. Grid computing

Grid Computing komputasi grid menggunakan komputer yang terpisah oleh geografis, didistribusikan dan terhubung oleh jaringan untuk menyelesaikan masalah komputer skala besar. Beberapa daftar dapat digunakan untuk mengenali sistem komputasi grid, adalah :

·         Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat. 

·         Sistem menggunakan standard dan protocol yang terbuka. 

·         Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.

Jenis-jenis Grid Computing

1.    Computational Grid

2.    Data Grid

3.    Collaboration Grid

4.    Network Grid

5.    Utility Grid

3. Cloud computing

Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.

Konsep dalam Cloud Computing

  • Infrastructure asa a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

Komponen Cloud Computing

  • Cloud Clients
  • Cloud Service
  • Cloud Applications
  • Cloud Platform
  • Cloud Storage
  • Cloud Infrastructure

 Pengertian Database NoSQL

Database noSQL adalah Database yang tidak memiliki perintah SQL dan konsep penyimpanannya semistuktural atau tidak struktural dan tidak harus memiliki relasi layaknya tabel-tabel MySQL.

Tujuan Database NoSQL

Tujuan dari penggunaan database noSQL adalah untuk model data spesifik dan memiliki skema fleksibel dalam membuat aplikasi modern. Kebanyakan dalam beberapa kasus penggunaan Database noSQl berfungsi dalam pengembangan real time application.

Cara Kerja Database NoSQL

Cara kerja database noSQL yakni dengan menggunakan berbagai model database untuk mengelolah dan mengakses data, seperti dokument, key-value, grapik, in-memory dan search-engine.

1.    Kelebihan dan Kekurangan NoSQL

·         Kelebihan NoSQL:

1.    Memiliki kemampuan scaling yang baik, karena kemampuannya pada suatu kondisi.

2.    Penanganan data skema dan struktur data pada NoSQL mudah ditangani tanpa harus merubah konsistensi data pada database, karena skema data pada NoSQL tidak fixed seperti halnya pada SQL.

3.    Biaya maintenance terjangkau, karena tidak membutuhkan database administrator dengan skill yang tinggi.

4.    Sifat NoSQL adalah database horizontal yang semakin melebar ke samping utnuk mengikuti perkembangan data pada jenis yang sama, tetapi terdapat penambahan pada data lain yang tidak dapat dibedakan dengan data sebelumnya serta untuk memperbesar skala, anda hanya perlu melakukan penambahan server DB yang di cluster untuk load balancing.

5.    Memiliki kemampuan schema-less, yaitu tidak perlu mendefinisikan fields dan tipedata pada tabel seperti pada mysql. 

·         Kekurangan NoSQ:

1.    Tiap record atau row merupakan data yang unik dan tidak bisa digantika data yang lain.

2.    Setiap baris data konsisten, yang mana data akan tetap konsisten setelah di eksekusi dan server maupun client akan melihat data yang sama.

3.    Setelah transaksi selesai, akibat dari perubahan record akan tersimpan secara permanen dan solid.

4.    Tidak saling terkait antara transaksi record satu dengan lainnya.

Jenis - Jenis NoSQL

1.    Key-value

2.    Column-based

3.    Document-oriented

4.    Graph-based

Basis Data NoSQL yang populer

1.    MongoDB

2.    CouchDB

3.    Cassandra

Quantum Computing

quantum computing adalah perhitungan yang berfokus pada pengembangan teknologi, berdasarkan teori kuantum. teori kuantum didasari oleh kemungkinan bahwa setiap peristiwa memiliki kemungkinan untuk terjadi, meskipun terlihat tidak mungkin. Terdapat banyak partikel atau bagian dari apa pun itu. Dalam konteks ini, komputer biasanya hanya menuliskan kode informasi dalam “bits” dengan mengambil nilai 1 atau 0 atau dalam kata lain bersifat biner. Dalam quantum computing, ada yang dinamakan “bits” dan “qubits”.

Quantum Gates

QUANTUM GATES Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital.

Algoritma Shor

Algoritma Shor, dinamai oleh matematikawan Peter Shor, adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhadap bilangan integer atau bulat yang besar.

Parallelism Concept

Komputasi paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor / CPU dalam waktu yang bersamaan/simultan / concurrent dan prinsip ini disebut paralelisme. Konsep program parallel :

  Memerintahkan set instruksi (pandangan programmer).

  File executable (pandangan sistem operasi)

Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat(level) sebagai berikut :

1. Komputer Array :

a. Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)

b. Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.

2. Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.

3. Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.

Jenis-Jenis Pemrosesan Paralel

Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :

1. Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) Asymmetric Multiprocessing (ASMP)

b) Symmetric Multiprocessing (SMP)

c) ClusteringPoliteknik Telkom Sistem Komputer

2. Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) SISD (Single Instruction on Single Data Stream)

b) SIMD (Single Instruction on Multiple Data Stream)

c) MISD (Multiple Instruction on Single Data Stream)

d) MIMD (Multiple Instruction on Multiple Data Stream)

3. Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi

b) Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)

Distributed computation

Distributed computation atau komputasi terdistribusi adalah bidang ilmu komputer yang mempelajari sistem terdistribusi. Sistem terdistribusi adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut.

Distributed Processing

Mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Pengantar Thread Programming

Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapatdilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). Ulir sebenarnya mirip dengan  roses, tapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread dapat  dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing  (sama dengan time-division multipleks), di manasebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi denganthread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

Karakteristik Thread

Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu :

• Ruang alamat.

• Himpunan berkas yang dibuka.

• Proses-proses anak.

• Timer-timer.

• Snyal-sinyal.

• Sumber daya-sumber daya lain milik proses.

Jenis-jenis Thread Berdasarkan Waktu Penciptaannya

1. Static threads

2. Dynamic threads

Berdasarkan Pemetaan Thread

1. Many-to-One

2. One-to-One

3. Many-to-Many

Pengantar Massage Passing

Message Parsing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman berorientasi obyek, dan komunikasi antar. Dalam model ini, proses atau benda dapat mengirim dan menerima pesan (yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode) ke proses lainnya. Dengan menunggu pesan, proses juga dapat menyinkronkan.

Message passing adalah paradigma komunikasi di mana pesan dikirim dari pengirim ke satu atau lebih penerima. Bentuk pesan termasuk (remote) pemanggilan metode, sinyal, dan paket data.

 

Rabu, 16 Juni 2021

KOMPUTASI MODERN Tugas ke-2

 

Quantum Gates

QUANTUM GATES Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital.

Algoritma Shor

Algoritma Shor, dinamai oleh matematikawan Peter Shor, adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhadap bilangan integer atau bulat yang besar.

Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier, dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalami kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:

- Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.

- Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.

Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel, dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier, tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.

Algoritma Shor yang paling sederhana adalah menemukan faktor-faktor untuk  bilangan  15,  di mana membutuhkan sebuah komputer kuantum dengan tujuh qubit.  Para  ahli  kimia mendesain dan menciptakan sebuah molekul yang memiliki tujuh putaran nukleus. Nukleus dari lima atom fluorin dan dua atom karbon yang dapat berinteraksi satu dengan yang lain sebagai qubit, dapat diprogram dengan menggunakan denyut-denyut  frekuensi radio dan dapat dideteksi melalui peralatan resonansi  magnetis nuklir (nuclear magnetic resonance, atau NMR) yang mirip dengan yang banyak digunakan di rumah-rumah sakit dan laboratorium-laboratorium kimia.

Parallelism Concept

Komputasi paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor / CPU dalam waktu yang bersamaan/simultan / concurrent dan prinsip ini disebut paralelisme. Konsep program parallel :

  Memerintahkan set instruksi (pandangan programmer).

  File executable (pandangan sistem operasi)

Pada dasarnya, konsep parallel system merupakan suatu bentuk penawaran solusi dari proses computing yang terlalu berat, sehingga dapat dipecah sedemikian hingga tidak memberatkan system kerja komputer itu sendiri

Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat(level) sebagai berikut :

1. Komputer Array :

a. Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)

b. Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.

2. Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.

3. Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.

Jenis-Jenis Pemrosesan Paralel

Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :

1. Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) Asymmetric Multiprocessing (ASMP)

b) Symmetric Multiprocessing (SMP)

c) ClusteringPoliteknik Telkom Sistem Komputer

2. Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) SISD (Single Instruction on Single Data Stream)

b) SIMD (Single Instruction on Multiple Data Stream)

c) MISD (Multiple Instruction on Single Data Stream)

d) MIMD (Multiple Instruction on Multiple Data Stream)

3. Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a) Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi

b) Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)

Distributed Processing

Mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Architectural Parallel Computer

Arsitektur komputer paralel ada beberapa versi pengertian. Di sini akan menjelaskan sedikit tentang arsitektur komputer menurut Flynn. Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :

1.    SISD

Single Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

2.    SIMD

Single Instruction – Multiple Data. Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

3.    MISD

Multiple Instructions – Single Data. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel. Sampai saat ini belum ada komputer yang menggunakan model MISD karena sistemnya tidak mudah.

4.    MIMD

Multiple Instructions – Multiple Data. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Sistem komputer paralel dibedakan dari cara kerja memorinya menjadi shared memory dan distributed memory. Shared memory berarti memori tunggal diakses oleh satu atau lebih prosesor untuk menjalankan instruksi sedangkan distributed memory berarti setiap prosesor memiliki memori sendiri untuk menjalankan instruksi. Komponen-komponen utama dari arsitektur komputer paralel cluster PC antara lain:

1.    Prosesor (CPU). Bagian paling penting dalam sistem, untuk multicore terdapat lebih dari satu core yang mengakses sebuah memori (shared memory).

2.    Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.

3.    Sistem Operasi. Software dasar untuk menjalankan sistem komputer.

4.    Cluster Middleware. Antarmuka antara hardware dan software.

5.    Programming Environment dan Software Tools. Software yang digunakan untuk pemrograman paralel termasuk software pendukungnya.

6.    User Interface. Software yang menjadi perantara hardware dengan user.

7.    Aplikasi. Software berisi program permasalahan yang akan diselesaikan.

8.    Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan.

Pengantar Thread Programming

Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapatdilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). Ulir sebenarnya mirip dengan  roses, tapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread dapat  dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing  (sama dengan time-division multipleks), di manasebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi denganthread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

Karakteristik Thread

Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu :

• Ruang alamat.

• Himpunan berkas yang dibuka.

• Proses-proses anak.

• Timer-timer.

• Snyal-sinyal.

• Sumber daya-sumber daya lain milik proses.

Jenis-jenis Thread Berdasarkan Waktu Penciptaannya

1. Static threads

Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program. Tiap thread langsung dialokasikan stack tetap.

• Keunggulan = sederhana.

• Kelemahan = tidak fleksibel.

2. Dynamic threads

Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread biasanya menspesifikasikan fungsi utama thread (seperti pointer ke procedure) dan ukuran stack, dapat juga ditambah parameter-parameter lan seperti prioritas panjadwalan.

• Keunggulan = fleksibel.

• Kelemahan = lebih rumit.

Jenis – Jenis Proses Thread

A. Single Thread Process

Sebuah proses tradisional atau heavyweight process mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread (terstruktur) dan hanya mengerjakan satu tugas dalam satu waktu.

B. Multithread Process

Merupakan satu atau beberapa thread yang dijalankan secara bersamaan(multiproses), dimana masing-masing thread tersebut dijalankan pada jalur masing-masing. Setiap thread pada multithread menjalankan kode atau script program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu. Multithread sering pula disebut dengan multiproses atau multitasking pada system operasi.

Berdasarkan Pemetaan Thread

Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga bagian, yaitu:

1. Many-to-One

Banyaknya User-Level thread yang dipetakan ke kernel thread tunggal, akan tetapi dari beberapa user thread dapat menggunakan satu kernel thread saja.

Contoh :

• Solaries Green Thread

• GNU Portable Thread

2. One-to-One

Setiap user-level thread memetakan ke kernel thread, akan tetapi user thread hanya dapat menggunakan satu kernel thread.

Contoh :

• Windows NT/XP/2000

• Linux

• Solaris 9 and later

3. Many-to-Many

• Mengijinkan beberapa user-level thread memakai beberapa kernel thread.

• Mengijinkan system operasi untuk menciptakan beberapa kernel thread.

• Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

Pengantar Massage Passing

Message Parsing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman berorientasi obyek, dan komunikasi antar. Dalam model ini, proses atau benda dapat mengirim dan menerima pesan (yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode) ke proses lainnya. Dengan menunggu pesan, proses juga dapat menyinkronkan.

Message passing adalah paradigma komunikasi di mana pesan dikirim dari pengirim ke satu atau lebih penerima. Bentuk pesan termasuk (remote) pemanggilan metode, sinyal, dan paket data.

 

Referensi :

https://www.slideshare.net/IrfannurCahyo3/quantum-gates

http://melthaalhidaya.blogspot.com/2018/04/quantum-computation-komputer-kuantum.html#:~:text=Algoritma%20Shor%2C%20dinamai%20oleh%20matematikawan,berguna%20untuk%20faktorisasi%20bilangan%20bulat.&text=Efisiensi%20algoritma%20Shor%20adalah%20karena,Transformasi%20Fourier%2C%20dan%20modular%20eksponensial.

http://aliciaos.blogspot.com/2018/04/parallelism-concept.html

http://ridwanraa.blogspot.com/2015/12/parallelism-concept.html

http://muhammadmiftahpratama.blogspot.com/p/pengertian-distributedprocessing.html

https://fikrinm93.wordpress.com/2016/06/17/242/

https://dindajsmn.wordpress.com/2019/06/16/analisis-jurnal-pengantar-message-passing-openmp/

KOMPUTASI MODERN Tugas ke-3

  Komputasi Modern   Pengertian Komputasi Modern Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyim...