Tentang Proses dan Utas

Setiap proses menyediakan sumber daya yang diperlukan untuk menjalankan program. Proses memiliki ruang alamat virtual, kode yang dapat dieksekusi, handel terbuka ke objek sistem, konteks keamanan, pengidentifikasi proses unik, variabel lingkungan, kelas prioritas, ukuran set kerja minimum dan maksimum, dan setidaknya satu utas eksekusi. Setiap proses dimulai dengan satu utas, sering disebut utas utama, tetapi dapat membuat utas tambahan dari salah satu utasnya.

Utas adalah entitas dalam proses yang dapat dijadwalkan untuk eksekusi. Semua utas proses berbagi ruang alamat virtual dan sumber daya sistemnya. Selain itu, setiap utas mempertahankan handler pengecualian, prioritas penjadwalan, penyimpanan lokal utas, pengidentifikasi utas unik, dan serangkaian struktur yang akan digunakan sistem untuk menyimpan konteks utas hingga dijadwalkan. Konteks utas mencakup kumpulan register mesin utas, tumpukan kernel, blok lingkungan utas, dan tumpukan pengguna di ruang alamat proses utas. Utas juga dapat memiliki konteks keamanan mereka sendiri, yang dapat digunakan untuk meniru klien.

Microsoft Windows mendukung multitugas preemptive, yang menciptakan efek eksekusi simultan dari beberapa utas dari beberapa proses. Pada komputer multiprosesor, sistem dapat secara bersamaan mengeksekusi utas sebanyak prosesor di komputer.

Objek pekerjaan memungkinkan grup proses dikelola sebagai unit. Objek pekerjaan adalah objek yang dapat diubah namanya, dapat diamankan, dan dapat dibagikan yang mengontrol atribut proses yang terkait dengannya. Operasi yang dilakukan pada objek pekerjaan memengaruhi semua proses yang terkait dengan objek pekerjaan.

Aplikasi dapat menggunakan kumpulan utas untuk mengurangi jumlah utas aplikasi dan menyediakan manajemen utas pekerja. Aplikasi dapat mengantre item kerja, mengaitkan pekerjaan dengan handel yang dapat ditunggu, secara otomatis mengantre berdasarkan timer, dan mengikat dengan I/O.

Penjadwalan mode pengguna (UMS) adalah mekanisme ringan yang dapat digunakan aplikasi untuk menjadwalkan utas mereka sendiri. Aplikasi dapat beralih antara utas UMS dalam mode pengguna tanpa melibatkan penjadwal sistem dan mendapatkan kembali kontrol prosesor jika utas UMS memblokir di kernel. Setiap utas UMS memiliki konteks utas sendiri alih-alih berbagi konteks utas dari satu utas. Kemampuan untuk beralih antar utas dalam mode pengguna membuat UMS lebih efisien daripada kumpulan utas untuk item kerja durasi pendek yang memerlukan beberapa panggilan sistem.

Serat adalah unit eksekusi yang harus dijadwalkan secara manual oleh aplikasi. Serat berjalan dalam konteks utas yang menjadwalkannya. Setiap utas dapat menjadwalkan beberapa serat. Secara umum, serat tidak memberikan keuntungan daripada aplikasi multithreaded yang dirancang dengan baik. Namun, menggunakan serat dapat mempermudah aplikasi port yang dirancang untuk menjadwalkan utas mereka sendiri.

Untuk informasi selengkapnya, lihat topik berikut: