Global interpreter lock: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Jazle (bicara | kontrib)
Membuat artikel tentang GIL
 
Jazle (bicara | kontrib)
k perbaikan minor
Baris 1:
'''Global interpreter lock''' ('''GIL''') atau dalam [[bahasa]] [[Indonesia]] disebut sebagai '''Kunci Penerjemah Global''' merupakan mekanisme yang digunakan dalam bahasa komputer berbasis [[penerjemah (komputasi)|penerjemahan (interpreter)]] untuk menyinkronisasikan eksekusi serangkaian [[utasthread|utas (thread)]] sehingga hanya satu utas yang dieksekusi dalam satu waktu. Keberadaan GIL yang membatasi eksekusi yang dilakukan program penerjemah hanya satu utas dalam satu waktu ini juga berlaku saat aplikasi dijalankan dalam sistem berbasis multi-prosesor, keberadaan ini menjadikan aplikasi penerjemah tidak dapat memanfaatkan secara penuh kapabilitas prosesor yang ada. Beberapa program penerjemah populer yang memiliki GIL adalah [[Python (bahasa pemrograman)|Python]]<ref>{{cite web
| url=http://www.ddj.com/linux-open-source/206103078?pgno=2
| title=Concurrency and Python
Baris 12:
 
==Latar belakang teknis==
GIL merupakan kunci ataupun mutex yang dimiliki oleh [[utasthread| utas (thread)]] [[bahasa pemrograman]] berbasis [[Penerjemah (komputasi)|penerjemahan]] yang dimaksudkan untuk menghindari akses kode ilegal atas data yang berasal dari utas lainnya. Dalam implementasinya, sebuah program penerjemah memiliki satu GIL untuk setiap satu sesi penerjemahan.
 
Aplikasi yang berjalan dalam implementasi penerjemahan yang memiliki GIL sebaiknya memanfaatkan mekanisme process (komputasi) untuk memungkinkan pemanfaatan kapabilitas multi prosesor secara penuh, dan tidak melalui pemanfaatan utas (thread). Dengan demikian, setiap proses akan memiliki satu sesi penerjemahan dan satu GIL yang tidak terkait antara satu dengan lainnya, tidak pula berbagi data antara masing-masing proses-nya. Apabila dikehendaki mekanisme berbagi data global, maka hal tersebut bisa dilakukan dengan memanfaatkan aplikasi caching external seperti [[memcached]], [[redis]] atau lainnya.