Status proses disimpan di PCB dan status thread disimpan di TCB

Asumsikan proses p0 telah dibuat. P0 memiliki dua thread (thread utama) t0 dan t1. Jadi di suatu tempat ada PCB0 untuk p0, TCB0 untuk t0 dan TCB1 untuk t1. (5 status eksekusi untuk kesederhanaan: dibuat, siap, berjalan, diblokir, dihentikan)

  1. P0 dalam keadaan berjalan ketika setidaknya salah satu utasnya dalam keadaan berjalan?

  2. Yang pasti di TCB harus ada kolom untuk status thread. Jika keadaan p0 dapat dihitung langsung dari keadaan threadnya: Apakah ada bidang keadaan eksekusi di PCB dan mengapa?

  3. Jika jawaban di nomor 2 adalah ya: Setiap kali status thread berubah, apakah kita harus memeriksa status semua thread proses agar status PCB tetap mutakhir? Ini tidak berlebihan?


person marmotas    schedule 06.12.2015    source sumber
comment
Mengapa suatu proses memerlukan status eksekusi padahal proses tersebut bukan merupakan unit eksekusi?   -  person Martin James    schedule 07.12.2015
comment
Saya bisa saja menanyakan pertanyaan Anda. Ini semacam dan jauh lebih komprehensif.   -  person marmotas    schedule 07.12.2015


Jawaban (1)


P0 dalam keadaan berjalan ketika setidaknya salah satu utasnya dalam keadaan berjalan?

Tidak setiap saat. Status proses dan status thread bisa berbeda. Jadi tidak perlu ketika thread sedang berjalan p0 tetap berjalan bisa dalam keadaan blok atau siap. Beberapa kemungkinan situasi antara thread dan proses:

Proses dalam keadaan siap, salah satu thread proses dalam keadaan berjalan.

Proses diblokir dalam keadaan diblokir, salah satu thread proses dalam keadaan berjalan.

misalnya ketika aplikasi berulir dimulai sebagai proses yang berisi utas tunggal. Pada saat itu proses sedang dalam keadaan berjalan. Kemudian aplikasi menggunakan pustaka thread tingkat pengguna untuk membuat thread tambahan. Sekarang ketika thread A mulai berjalan, ia akan memasuki status berjalan. Misalkan Thread A melakukan panggilan sistem I/O. Dalam situasi ini kontrol ditransfer ke kernel yang memblokir proses. Dalam hal ini thread A masih berjalan, meskipun proses dalam keadaan diblokir. Ini adalah salah satu contoh ketika proses diblokir tetapi thread sedang berjalan.

Yang pasti di TCB harus ada kolom untuk status thread.

ya ada bidang untuk status (misalnya running ,terminate , ready , block dll ) di tcb.

Apakah ada bidang status eksekusi di PCB dan mengapa?

Ya, ada bidang negara di PCB juga. Tapi itu tidak dihitung dari status tcb karena seperti yang saya katakan kedua status bisa berbeda. Thread umumnya akan memanggil prosedur yang berbeda dan dengan demikian memiliki riwayat eksekusi yang berbeda.

Semoga Anda puas dengan jawaban saya. Semoga beruntung :-)

---› Periksa tautan ini untuk referensi

---› periksa tautan untuk konten TCB dan PCB

person Punit Vara    schedule 06.12.2015
comment
Bolehkah saya memberikan komentar untuk memberikan suara negatif sehingga saya dapat memperbaiki jawabannya? - person Punit Vara; 06.12.2015
comment
Saya memperbarui jawabannya, silakan baca referensi jika menurut Anda jawaban ini salah. - person Punit Vara; 06.12.2015
comment
Saya hanya menjawab pertanyaan pertama, bukan masing-masing pertanyaan. Saya harap Anda memikirkan kembali keputusan Anda untuk tidak memilih - person Punit Vara; 06.12.2015
comment
Terima kasih telah mempertimbangkan untuk tidak memberikan suara pada jawaban ini. Saya sangat berterima kasih kepada Anda. :-) - person Punit Vara; 06.12.2015