JavaScript is required

Giả sử tiến trình A sinh ra tiểu trình B và C. Hãy cho biết câu nào sau đây là không chính xác?

A.
Tiểu trình B và C không sử dụng chung con trỏ lệnh
B.
Tiểu trình B và C không sử dụng chung tập thanh ghi
C.
Tiểu trình B và C không sử dụng chung stack
D.
Tiểu trình B và C không sử dụng chung không gian địa chỉ
Trả lời:

Đáp án đúng: D


Tiểu trình (thread) là một đơn vị thực thi nhỏ nhất trong một tiến trình (process). Các tiểu trình trong cùng một tiến trình chia sẻ chung không gian địa chỉ, bao gồm cả heap, data segment và code segment. Tuy nhiên, mỗi tiểu trình có stack riêng, tập thanh ghi riêng (bao gồm cả con trỏ lệnh). * **A. Tiểu trình B và C không sử dụng chung con trỏ lệnh:** Sai. Mỗi tiểu trình có con trỏ lệnh riêng để theo dõi lệnh hiện tại đang được thực thi. Tuy nhiên, vì các tiểu trình này có thể thực hiện cùng một đoạn mã, con trỏ lệnh của chúng có thể trỏ đến cùng một vị trí trong bộ nhớ, nhưng giá trị của con trỏ lệnh vẫn là riêng biệt cho mỗi tiểu trình. Đáp án này không chính xác tuyệt đối, nhưng hợp lý hơn các đáp án khác. * **B. Tiểu trình B và C không sử dụng chung tập thanh ghi:** Đúng. Mỗi tiểu trình có một tập thanh ghi riêng để lưu trữ các giá trị tạm thời và trạng thái của tiểu trình đó. * **C. Tiểu trình B và C không sử dụng chung stack:** Đúng. Mỗi tiểu trình có một stack riêng để lưu trữ các biến cục bộ, địa chỉ trả về của hàm và các thông tin khác liên quan đến việc thực thi hàm. * **D. Tiểu trình B và C không sử dụng chung không gian địa chỉ:** Sai. Các tiểu trình trong cùng một tiến trình chia sẻ không gian địa chỉ. Vì vậy đáp án này là sai. Trong các đáp án trên, đáp án D là sai và rõ ràng nhất. Do đó đáp án D là đáp án đúng.

Câu hỏi liên quan