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 suatu proses yang dapat dijadwalkan untuk dieksekusi. Semua utas proses berbagi ruang alamat virtual dan sumber daya sistemnya. Selain itu, setiap utas mempertahankan handler pengecualian, prioritas penjadwalan, penyimpanan lokal untuk utas, pengidentifikasi utas unik, dan sekumpulan 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 tersendiri yang dapat digunakan untuk mengimitasi klien.
Microsoft Windows mendukung multitugas preemptif, yang menciptakan efek pelaksanaan serentak dari beberapa utas dari beberapa proses. Pada komputer multiprosesor, sistem dapat secara bersamaan menjalankan utas sebanyak ada 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 pekerjaan, mengaitkan pekerjaan dengan handle 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 terblokir di kernel. Setiap utas UMS memiliki konteks utasnya 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 pelaksanaan yang harus dijadwalkan secara manual oleh aplikasi. Serat berfungsi dalam konteks thread yang menjadwalkannya. Setiap utas dapat menjadwalkan beberapa fiber. Secara umum, serat tidak memberikan keuntungan daripada aplikasi multithread yang dirancang dengan baik. Namun, menggunakan serat dapat mempermudah port aplikasi yang dirancang untuk menjadwalkan utas mereka sendiri.
Untuk informasi selengkapnya, lihat topik berikut ini:
- Multitugas
- Penjadwalan
- Beberapa Thread
- Proses Anak
- Kumpulan Utas
- Objek Pekerjaan
- User-Mode Penjadwalan
- Fibers