JavaScript is required

Tại thời điểm biên dịch (Compile), nếu biết trước địa chỉ bộ nhớ vật lý được cấp cho tiến trình thì Compiler có thể liên kết địa chỉ như thế nào?

A.

Biên dịch ngay “Relocatable address” thành “Physical address”.

B.

Biên dịch ngay “Physical address” thành “Relocatable address”.

C.

Biên dịch ngay “Symbolic address” thành “Relocatable address”.

D.

Biên dịch ngay “Symbolic address” thành “Physical address”.

Trả lời:

Đáp án đúng: D


Câu hỏi đề cập đến quá trình biên dịch (compile) và cách compiler xử lý địa chỉ bộ nhớ khi đã biết trước địa chỉ vật lý. Trong quá trình biên dịch, nếu compiler biết trước địa chỉ bộ nhớ vật lý mà tiến trình sẽ được cấp phát, nó sẽ chuyển đổi trực tiếp các địa chỉ tượng trưng (symbolic address) trong mã nguồn thành địa chỉ vật lý (physical address) cụ thể. Điều này cho phép mã máy được tạo ra có thể truy cập trực tiếp các vị trí bộ nhớ mà không cần qua giai đoạn liên kết (linking) hoặc tải (loading) phức tạp. * **Đáp án A:** Sai. "Relocatable address" (địa chỉ có thể di dời) là địa chỉ tương đối, cần được điều chỉnh khi chương trình được tải vào bộ nhớ. Nếu biết trước địa chỉ vật lý, compiler sẽ không tạo ra relocatable address. * **Đáp án B:** Sai. Không có quá trình biên dịch địa chỉ vật lý thành địa chỉ có thể di dời. Địa chỉ vật lý là cuối cùng và cụ thể. * **Đáp án C:** Sai. Compiler thường chuyển đổi symbolic address thành relocatable address trước, nhưng nếu biết trước physical address, nó sẽ bỏ qua bước này và chuyển đổi trực tiếp sang physical address. * **Đáp án D:** Đúng. Compiler chuyển đổi "Symbolic address" (địa chỉ tượng trưng) trực tiếp thành "Physical address" (địa chỉ vật lý) khi địa chỉ vật lý đã được xác định trước trong quá trình biên dịch.

Câu hỏi liên quan