Definisi dan Perbedaan Threads dan Processes
Definisi Threads dan Processes
Definisi Threads
Thread adalah unit dasar penggunaan CPU. Utas dalam suatu proses melakukan satu tugas (pekerjaan) pada suatu waktu. Dalam proses tradisional, setiap proses hanya memiliki satu utas, sehingga program hanya dapat menjalankan satu tugas dalam satu waktu. Namun, jika suatu proses memiliki banyak utas, proses tersebut dapat melakukan banyak tugas secara bersamaan. Ini disebut multithreading.
Misalnya, jika program terdiri dari proses berulir tunggal, pengguna dapat memasukkan teks (pengolah kata) dan pemeriksaan ejaan (pemeriksaan ejaan). Saat pengguna mengetik ke dalam program, fungsi pemeriksa ejaan berjalan setelah pengguna selesai mengetik. Setelah utas selesai menghitung algoritme ejaan, pengguna dapat menulis ulang postingan. Kedua, jika program Anda memiliki proses dua utas, Anda dapat menjalankan pemeriksa ejaan secara bersamaan saat pengguna mengetik ke dalam program. Artinya setiap tugas tidak harus bergantian menunggu tugas yang lain.
Pada prosesor inti tunggal yang menjalankan proses dengan banyak utas, CPU menjalankan utas tersebut, mengeksekusi setiap utas secara bergantian. Tampaknya sistem memiliki banyak unit pemrosesan, tetapi pada kenyataannya unit pemrosesan melakukan tugasnya dengan cepat tanpa menyelesaikan setiap tugas. Ini disebut konkurensi. Misalnya, jika program terdiri dari proses berulir, pengguna dapat memasukkan teks (pengolah kata) dan periksa ejaan (ejaan). Saat pengguna mengetik ke dalam program, fungsi pemeriksa ejaan berjalan setelah pengguna selesai mengetik. Setelah utas selesai menghitung algoritme ejaan, pengguna dapat menulis ulang postingan. Kedua, jika program Anda memiliki proses dua utas, Anda dapat menjalankan pemeriksa ejaan secara bersamaan saat pengguna mengetik ke dalam program. Artinya setiap tugas tidak harus bergantian menunggu tugas yang lain.
Dalam prosesor inti tunggal yang menjalankan proses dengan banyak utas, CPU menjalankan utas, yang pada gilirannya menjalankan setiap utas. Tampaknya sistem memiliki banyak unit pemrosesan, tetapi pada kenyataannya unit pemrosesan melakukan tugasnya dengan cepat tanpa menyelesaikan setiap tugas. Ini disebut konkurensi
Dalam prosesor inti tunggal yang menjalankan proses dengan banyak utas, CPU menjalankan utas, yang pada gilirannya menjalankan setiap utas. Tampaknya sistem memiliki banyak unit pemrosesan, tetapi pada kenyataannya unit pemrosesan melakukan tugasnya dengan cepat tanpa menyelesaikan setiap tugas. Ini disebut konkurensi
Definisi Processes
Secara informal, sebuah proses adalah program yang sedang berjalan. Suatu proses kadang-kadang disebut bagian tertulis daripada hanya kode program. Suatu proses juga mencakup aktivitas saat ini yang diwakili oleh nilai penghitung program dan isi register prosesor. Sebuah proses juga biasanya berisi tumpukan proses yang berisi data sementara (parameter metode, alamat pengirim, variabel lokal, dll.) dan bagian data yang berisi variabel global. Sebuah program itu sendiri bukanlah sebuah proses, melainkan sebuah program adalah entitas pasif, seperti isi file yang disimpan pada floppy disk, dan entitas aktif dengan penghitung program yang menunjukkan instruksi berikutnya yang akan dieksekusi dan serangkaian sumber daya yang terkait. Dua proses dapat dihubungkan ke dalam program yang sama, tetapi mereka dianggap sebagai dua urutan eksekusi yang berbeda. Misalnya, beberapa pengguna mungkin menjalankan salinan program email yang berbeda, atau pengguna yang sama dapat meminta beberapa salinan program Notepad. Masing-masing proses tersebut merupakan proses yang terpisah, bagian penulisan teksnya sama, tetapi bagian datanya berbeda.
Pada SO untuk memiliki proses yang memunculkan banyak proses saat berjalan. Saat proses bekerja, ia mengubah status (statis/status awal). Keadaan suatu proses ditentukan sebagian oleh aktivitas yang ada dari proses itu. Setiap proses memiliki salah satu status berikut:
- New : Proses sedang dikerjakan/dibuat
- Running : Instruksi sedang dikerjakan
- Waiting : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/signal.
- Ready : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor
- Terminated : Proses telah selesai melaksanakan tugasnya/mengeksekusi.
Kesimpulan dan Perbedaan :
Proces dan Threads adalah dua teknik yang digunakan programmer untuk secara efisien dan efektif mengontrol pelaksanaan instruksi pada prosesor dan komputer. Suatu proses dapat memiliki banyak threads. Threads menyediakan cara yang efisien untuk berbagi memori saat beberapa proses sedang berjalan. Dengan demikian, utas merupakan alternatif untuk beberapa proses. Dengan tren yang meningkat menuju prosesor multicore, thread menjadi alat yang paling penting di dunia pemrograman.
Perbedaan antara proses single-threaded dan proses multithreaded adalah bahwa proses multithreaded dapat melakukan banyak tugas sekaligus.
Link UTI : https://teknokrat.ac.id/
Link FTIK : https://ftik.teknokrat.ac.id/
Komentar
Posting Komentar