Senin, 10 Januari 2022

PERBEDAAN ANTARA THREADS DAN PROSES

 Nama : Monica Efniasari

Npm : 18311196

Kelas : SI 18 ABCDEX

Universitas Teknookrat                             : http://www.teknokrat.ac.id/

Fakultas Teknik dan Ilmu Komputer        : http://www.ftik.teknokrat.ac.id/


Perbedaan Antara Threads dan Proses

Proses merupakan sebuah peristiwa pada sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tersebut. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya  juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, addressyang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready,running, waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya.Saya tekankan bahwa program itu sendiri bukanlah sebuah proses. Suatu programadalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket,sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yangmengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumberdaya/resource yang berkenaan dengannya.

Proses memiliki dua karakteristik namun kedua karakteristik dilakukan secara independen oleh sistem operasi :

  • Resource ownership (kepemilikan sumber daya) Proses mempunyai ruang alamat virtual untuk menangani image proses yangdidefinisikan dalam PCB.
  • Scheduling-execution (penjadwalan-eksekusi)Mengikuti suatu path eksekusi (trace), ada pergatian dari satu proses kelainnya Unit dari kepemilikan sumber daya diacu sebagai proses atau taskuatu threadyang salah dapat menganggu thread yang lain didalam proses yang sama,karenathread berbagai pakai ruang memori virtual dan sumber daya lain yang sama.

Thread merupakan unit dasar dari penggunaan CPU, thread mengandung Thread ID, program counter, register set, dan stack. Sebuah Thread berbagi code section, data section,dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama.Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah prosesdengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Berikut Merupakan Perbedaan proses dan thread :

  1. Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
  2. Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
  3. Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
  4. Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya.Proses memiliki ruang alamat sendiri-sendiri.
  5. Thread memiliki akses langsung ke segemen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent process-nya.
  6. Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar prosesharus menggunakan komunikasi antar proses.
  7. Thread hampir tidak memiliki overhead. Proses memiliki overhead.
  8. Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses anakannya.
  9. Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapatmempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada parent proses tidak mempengaruhi proses anakan.

Sedangkan persamaan antara proses dan thread adalah antara lain :

  1. Proses dan thread merupakan bagian dari program yang sedang dijalankan danmemerlukan resources register, PC, stack pointer.
  2. Proses dan thread mempunyai status (ready, run, block) pada saat menggunakan CPUdan diatur oleh scheduler. (Full credit jika telah menyebutkan diatur oleh scheduler)
Dan berikut merupakan contoh jika Threads dan Proses di implementasikan dalam kernel

  • Kernel Windows
    Pada sistem operasi Windows, kernel ditangani oleh file kernel32.dll. Kernel inimenangani manajemen memori, operasi masukan / keluaran dan interrupt. Ketika bootWindows, kernel32.dll di-load ke dalam spasi protected memory sehingga spasi memorinyatidak digunakan oleh aplikasi lain. Apabila ada aplikasi yang mencoba mengambil spasimemori kernel32.dll, akan muncul pesan kesalahan "invalid page fault".

  • Kernel Linux
    Kernel Linux adalah kernel yang digunakan dalam sistem operasi GNU/Linux. Kernel ini merupakan turunan dari keluarga sistem operasi UNIX, dirilis dengan menggunakanlisensi GNU General Public License (GPL), dan dikembangkan oleh pemrogram di seluruhdunia. Linux merupakan contoh utama dari perangkat lunak bebas dan sumber terbuka.Linux pertama kali ditulis oleh Linus Benedict Torvalds pada tahun 1991. Pada saatitu, Proyek GNU telah membuat banyak komponen yang dibutuhkan untuk membentuksebuah sistem operasi yang bebas, tapi belum memiliki kernel yang melandasi komponenaplikasi tersebut. Sebenarnya waktu itu, sudah ada kandidat kuat sebagai fondasi sistemoperasi GNU, yang dinamakan dengan Hurd, tapi pengembangannya belum selesai. Pada saatawal pengembangannya, Linux sangat sederhana. Tapi berkat dukungan semua pihak(khususnya komunitas sistem operasi Minix) yang menyumbang ide ke dalam Linuxsehingga dapat berkembang dengan pesat.

Jumat, 07 Januari 2022

Multiple Processor Organization MIMD

 Nama : Monica Efniasari
Npm : 18311196
Kelas : SI 18 ABCDEX

Universita Teknokrat Indonesia                :  http://www.teknokrat.ac.id/           
Fakultas Teknik Dan Ilmu Komputer        :  http://www.ftik.teknokrat.ac.id/                                                                                                                                      


Multiple Processor Organization MIMD


Dalam komputasi, MIMD (multiple instruction, multiple data) adalah teknik yang digunakan untuk mencapai paralelisme. Mesin yang menggunakan MIMD memiliki sejumlah prosesor yang berfungsi secara tidak sinkron dan independen. Setiap saat, prosesor yang berbeda dapat menjalankan instruksi yang berbeda pada bagian data yang berbeda. Arsitektur MIMD dapat digunakan di sejumlah area aplikasi seperti desain dengan bantuan komputer / manufaktur dengan bantuan komputer, simulasi, pemodelan, dan sebagai sakelar komunikasi. Mesin MIMD dapat berupa memori bersama atau kategori memori terdistribusi. Klasifikasi ini didasarkan pada bagaimana prosesor MIMD mengakses memori. Mesin memori bersama mungkin berjenis bus-based, extended, atau hierarchical. Mesin memori terdistribusi mungkin memiliki skema interkoneksi hypercube atau mesh.

Shared Memory Model

Semua prosesor terhubung ke memori yang "tersedia secara global", baik melalui perangkat lunak maupun perangkat keras. Sistem operasi biasanya menjaga koherensi memorinya.

Dari sudut pandang programmer, model memori ini lebih dipahami daripada model memori terdistribusi. Keuntungan lain adalah bahwa koherensi memori dikelola oleh sistem operasi dan bukan program tertulis. Dua kelemahan yang diketahui adalah: skalabilitas melebihi tiga puluh dua prosesor adalah sulit, dan model memori bersama kurang fleksibel daripada model memori terdistribusi.

Ada banyak contoh shared memory (multiprosesor): UMA (Uniform Memory Access), COMA (Cache Only Memory Access).

Berbasis bus

Mesin MIMD dengan memori bersama memiliki prosesor yang berbagi memori pusat yang sama. Dalam bentuk yang paling sederhana, semua prosesor dipasang ke bus yang menghubungkannya ke memori. Ini berarti bahwa setiap mesin dengan memori bersama berbagi CM tertentu, sistem bus umum untuk semua klien.

Sebagai contoh, jika kita menganggap bus dengan klien A, B, C terhubung di satu sisi dan P, Q, R terhubung di sisi yang berlawanan, salah satu klien akan berkomunikasi dengan yang lain melalui antarmuka bus di antara mereka.

Hierarchical

Mesin MIMD dengan memori bersama hierarkis menggunakan hierarki bus (seperti, misalnya, dalam "Pohon lemak") untuk memberi prosesor akses ke memori satu sama lain. Prosesor pada papan yang berbeda dapat berkomunikasi melalui bus antar-nodal. Bus mendukung komunikasi antar papan. Dengan jenis arsitektur ini, mesin tersebut dapat mendukung lebih dari sembilan ribu prosesor.

MIMD memiliki karakteristik sebagai berikut :

  • Proses didistribusikan ke beberapa prosesor independent
  • Berbagi sumbar daya, termasuk memori, processor
  • Operasi tiap processor secara independent dan simultan
  • Tiap processor menjalankan programnya sendiri

Intel iPSC Machines

Sistem iPSC terdiri dari: 1, 2 atau 4 unit komputesi (cube) dan prosesor host (cube manager). Cube merupakan processing nodes yang terinterkoneksi hypercube yang mempunyai memori dan prosesor sendiri. Contoh: iPSC/1 terdiri dari 32 nodes, cube manager dan 16 Mbytes memory unshared. Tiap node mempunyai arsitektur seperti pada gambar berikut:


Symmetry Machine

SM dapat memperkejakan 30 processor, dimana merupakan contoh UMA MIMD (tightly coupled)

Carnegie-Mellon Multi-Mini_Processor (C.mmp)

Processor dikelompokkan ke dalam cluster local dan diorganisasikan kedalam struktur tree dan berkoneksi lewat Inter-Cluster Buses. Seperti terlihat pada gambar berikut.


Arsitektur Hibrid SIMD-MIMD

Arsitektur hibrid SIMD-MIMD adalah sistem pemrosesan paralel dengan struktur yang dapat diubah sebagai satu atau lebih arsitektur SIMD dan /atau MIMD independen dengan ukuran yang bervariasi.

Ada tiga kategori utama arsitektur SIMD-MIMD:

  • PASM: Partionable SIMD-MIMD systems
  • VLIW: Very Long Instruction Word systems
  • MSIMD: Multiple SIMD systems

PERBEDAAN ANTARA THREADS DAN PROSES

 Nama : Monica Efniasari Npm : 18311196 Kelas : SI 18 ABCDEX Universitas Teknookrat                                    :   http://www.tekno...