Threads di Sistem Operasi

Definisi

Sebuah Thread juga disebut proses ringan, adalah penggunaan CPU dasar; itu mengkompromikan ID utas, penghitung program, satu set register, dan tumpukan. Utas adalah entitas dalam proses yang dapat dijadwalkan untuk dieksekusi.
 

Jika kita ingin proses untuk dapat mengeksekusi pada beberapa CPU sebuah t waktu, untuk mengambil keuntungan dari sistem multi-core, proses tersebut harus memiliki beberapa eksekusi-konteks yang disebut benang. Utas adalah entitas aktif yang menjalankan bagian dari suatu proses.Beberapa utas dijalankan secara bersamaan satu sama lain yang menghasilkan eksekusi satu proses keseluruhan. Karena beberapa utas proses dijalankan pada saat yang sama, mereka diminta untuk menjaga koordinasi satu sama lain. Koordinasi antara utas diperlukan untuk berbagi sumber daya sistem seperti perangkat I / O, memori, dan tentu saja CPU. Untaian proses adalah bagian dari ruang alamat virtual yang sama (yaitu mereka berbagi semua pemetaan virtual ke fisik), mereka berbagi semua data, kode dan file. Namun, mereka akan menjalankan instruksi yang berbeda, mereka akan mengakses bagian ruang alamat yang berbeda atau berbeda dengan cara lain. Utas yang berbeda memiliki tumpukan yang berbeda, register penunjuk tumpukan yang berbeda, Program Counter yang berbeda , dan register lainnya. The Block Kontrol Proses (PCB) dari proses multi-berulir lebih kompleks dari proses berulir tunggal seperti yang ditunjukkan pada gambar di bawah. Ini berisi semua informasi yang dibagikan di antara utas dan konteks eksekusi terpisah dari semua utas.


Manfaat Multi-threading

Paralelisasi: Dalam arsitektur multi-prosesor , utas yang berbeda dapat menjalankan instruksi yang berbeda pada satu waktu, yang menghasilkan paralelisasi yang mempercepat eksekusi proses.

Spesialisasi: Dengan mengkhususkan utas berbeda untuk melakukan tugas berbeda, kita dapat mengelola utas, misalnya, kita dapat memberikan prioritas lebih tinggi ke utas yang menjalankan tugas yang lebih penting. Juga dalam spesialisasi arsitektur multi-prosesor mengarah ke cache yang lebih panas yang meningkatkan kinerja.

Efisien: Program multi-utas lebih efisien dibandingkan dengan program multi-proses dalam hal kebutuhan sumber daya karena utas berbagi ruang alamat sementara proses tidak, sehingga program multi-proses akan memerlukan alokasi ruang memori terpisah. Selain itu, program Multi-threaded dikenakan biaya overhead yang lebih rendah karena komunikasi antar-thread lebih murah.

Sembunyikan Latensi: Karena peralihan konteks di antara proses adalah operasi yang mahal, karena semua utas proses berbagi pemetaan alamat virtual ke fisik yang sama dan sumber daya lainnya, peralihan konteks di antara utas adalah operasi yang murah dan membutuhkan lebih sedikit waktu. Ketika jumlah utas lebih besar dari jumlah CPU dan utas dalam keadaan diam (menghabiskan waktu untuk menunggu hasil dari beberapa interupsi) dan waktu idle lebih dari dua kali waktu yang diperlukan untuk mengalihkan konteks ke yang lain utas, itu akan mengalihkan konteks sakelar ke utas lain untuk menyembunyikan waktu idling. 

Thread dukungan sistem operasi dengan berbagai abstraksi 

- Sebuah struktur data yang diperlukan untuk menyimpan informasi benang yang memungkinkan kita untuk mengidentifikasi benang khusus dan melacak penggunaan sumber daya mereka.

- Mekanisme untuk membuat dan mengelola Thread.

- Mekanisme untuk berkoordinasi dengan aman di antara utas yang berjalan secara bersamaan di ruang alamat yang sama. Saat utas berbagi ruang alamat virtual dan fisik, utas yang berjalan secara bersamaan dapat menimpa masukan satu sama lain atau hasil masing-masing. Mungkin juga satu utas membaca input sementara utas lainnya menulis pada saat yang sama.

Posting Komentar

0 Komentar