Friday, November 4, 2022

Definisi dan Perbedaan antara Threads dan Processes

MUHAMMAD ENDI
22312023
IF 22 A

Threads 
Thread adalah unit dasar yang digunakan oleh CPU dan terdiri dari Thread_ID, program counter, register set dan stack. Sebuah Thread berbagi segmen kode, segmen data, dan sumber daya sistem operasinya dengan Thread lain yang termasuk dalam proses yang sama. Thread juga biasa disebut sebagai proses ringan.

Proses tradisional atau kelas berat memiliki Thread yang bertindak sebagai pengontrol. Banyak sistem operasi modern telah mengembangkan konsep yang memungkinkan proses untuk melakukan multi-threading agar dapat mengetik dan menjalankan pemeriksaan ejaan secara terus-menerus dalam proses yang sama, memungkinkan suatu proses untuk menjalankan banyak tugas sekaligus. Thread berbagi bagian program, bagian data, dan sumber daya sistem operasi dengan Thread lain yang mereferensikan proses yang sama. Sebuah thread terdiri dari thread ID, program counter, register set, dan stack, sehingga dengan multiple thread control, sebuah proses dapat mengeksekusi beberapa pekerjaan pada saat yang bersamaan.


Processes


Secara informal, proses adalah program yang sedang dieksekusi. Suatu proses bukan hanya kode program, kadang-kadang disebut bagian tertulis. Suatu proses juga mencakup aktivitas saat ini, yang diwakili oleh nilai dalam penghitung program dan isi register prosesor. Sebuah proses juga biasanya mencakup tumpukan proses, yang berisi data sementara (seperti parameter metode, alamat pengirim, dan variabel lokal) dan segmen data, yang berisi variabel global. Sebuah program bukanlah sebuah proses itu sendiri, sebuah program adalah sebuah entitas pasif, seperti isi dari sebuah file yang disimpan pada sebuah floppy disk, seperti sebuah proses dalam sebuah entitas aktif, dengan program counter yang menentukan instruksi selanjutnya untuk dijalankan dan sebuah kumpulan sumber daya yang terkait dengannya. Meskipun dua proses dapat dihubungkan ke program yang sama, keduanya dianggap sebagai dua perintah eksekusi yang berbeda. Misalnya, beberapa pengguna mungkin menjalankan salinan program email yang berbeda, atau pengguna yang sama mungkin meminta beberapa salinan dari program editor. Masing-masing proses ini adalah proses yang berbeda, dan sementara bagian penulisan teksnya sama, bagian datanya berbeda. Ini juga umum di SO untuk menelurkan banyak proses setelah dijalankan.

Saat proses berlangsung, ia mengubah status (statis/asli). Bagian keadaan dari suatu proses ditentukan oleh aktivitas proses yang ada. Setiap proses mungkin berada dalam salah satu status berikut:

1. New             : Proses sedang dikerjakan/ dibuat.
2. Running       : Instruksi sedang dikerjakan.
3. Waiting        : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
                            
penyelesaian I/O atau penerimaan sebuah tanda/ signal). 
4. Ready          : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
5. Terminated  : Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Kesimpulan : 

Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak (Multi thread) adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.  
 


Wednesday, November 2, 2022

SIMD ( Single Instruction Multiple Data )

 MUHAMMAD ENDI
22312023
IF 22 A


SIMD, yang merupakan singkatan dari Single Instruction Multiple Data, adalah istilah dalam komputasi yang mengacu pada serangkaian operasi yang digunakan untuk secara efisien memproses sejumlah besar data secara paralel, seperti yang terjadi pada prosesor vektor atau prosesor array. SIMD pertama kali dipopulerkan di superkomputer besar, meskipun sekarang telah ditemukan di komputer pribadi. Contoh aplikasi yang dapat memanfaatkan SIMD adalah aplikasi yang memiliki nilai tambah yang sama untuk beberapa titik data, hal yang biasa terjadi pada aplikasi multimedia. Contoh operasinya adalah mengubah kecerahan gambar. Setiap piksel gambar 24-bit berisi tiga nilai luminansi 8-bit untuk komponen merah, hijau, dan biru. Untuk mengubah kecerahan, nilai R, G, B dibaca dari memori, nilai baru ditambahkan (atau dikurangi) ke nilai R, G, B ini, dan nilai akhir dikembalikan (ditulis kembali) ke memori . 

Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni: 

·         Data langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data, prosesor dapat memuat data secara keseluruhan pada waktu yang sama. Daripada melakukan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu, dst", sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja, yaitu "ambil semua pixel itu!" (istilah "semua" adalah nilai yang berbeda dari satu desain ke desain lainnya). Jelas, hal ini dapat mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan hanya satu untuk sekumpulan data), jika dibandingkan dengan desain prosesor tradisional yang tidak memiliki SIMD (yang memberikan satu instruksi untuk satu data saja).

·         Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD dapat bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap titik data secara sekaligus.

      Sayangnya, beberapa desainer SIMD menghadapi pertimbangan desain di luar kendali mereka. Salah satu pertimbangannya adalah jumlah register yang besar harus ditambahkan untuk menampung data yang akan diproses. Idealnya, ini akan dicapai dengan menambahkan unit SIMD ke prosesor untuk memiliki register sendiri, tetapi beberapa desainer terpaksa menggunakan register yang ada, biasanya register floating-point. Register floating-point biasanya berukuran 64 bit, lebih kecil dari yang dibutuhkan agar SIMD bekerja secara optimal, meskipun ini bisa menjadi masalah jika kode mencoba menggunakan instruksi floating-point dan SIMD.

    Dalam desain awal SIMD, ada beberapa prosesor yang secara khusus disiapkan untuk melakukan tugas ini, sering disebut sebagai prosesor sinyal digital (DSP). Perbedaan utama antara SIMD dan DSP adalah DSP adalah prosesor yang lengkap dengan serangkaian instruksinya sendiri (walaupun lebih sulit digunakan), sedangkan SIMD hanya mengandalkan register tujuan umum untuk menangani detail program, sedangkan instruksi SIMD hanya menangani manipulasi data.

    Penggunaan instruksi SIMD pertama kali dilakukan pada superkomputer vektor dan dipopulerkan oleh Cray pada tahun 1970-an. Baru-baru ini, SIMD kecil (64-bit atau 128-bit) telah menjadi populer di CPU tujuan umum, mulai tahun 1994 dengan set instruksi MAX yang diterapkan pada Hewlett-Packard PA-RISC. Instruksi SIMD, sekarang ditemukan di sebagian besar prosesor, seperti AltiVec di prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3, SSE4, AMD 3DNow! Di prosesor Intel x86; VIS di prosesor SPARC; MAX di HP PA-RISC; MDMX dan MIPS-3D di MIPS dan MVI di prosesor DEC Alpha. Namun, perangkat lunak umumnya tidak menggunakan instruksi, dan bahkan instruksi ini hanya digunakan untuk aplikasi khusus, seperti pemrosesan grafik.

    Meskipun ini sering terbukti sulit untuk menemukan aplikasi komersial yang didedikasikan untuk prosesor SIMD, ada beberapa keberhasilan, seperti aplikasi GAPP yang dikembangkan oleh Lockheed Martin. Versi GAPP yang lebih baru bahkan menjadi aplikasi yang dapat memproses video secara real-time dan mengkonversi antara berbagai standar video (seperti NTSC ke PAL atau sebaliknya, NTSC ke HDTV atau sebaliknya, dll), melakukan de-interlacing, pengurangan kebisingan, dll., kompresi video dan peningkatan gambar.

 


Definisi dan Perbedaan antara Threads dan Processes

MUHAMMAD ENDI 22312023 IF 22 A Threads   Thread adalah unit dasar yang digunakan oleh CPU dan terdiri dari Thread_ID, program counter, regis...