Một chương trình sau khi được biên dịch (Compile), bộ nạp (Loader) tiến hành nạp chương trình đó vào bộ nhớ. Không gian địa chỉ do Loader chuyển đổi từ chương trình dịch thuộc loại nào?
Trả lời:
Đáp án đúng: C
Sau khi biên dịch, chương trình được biên dịch sẽ ở dạng mã đối tượng, sử dụng các địa chỉ tương đối (relocatable address). Bộ nạp (Loader) sẽ đảm nhiệm việc chuyển đổi các địa chỉ tương đối này thành địa chỉ vật lý (physical address) khi nạp chương trình vào bộ nhớ. Địa chỉ tương đối cho phép chương trình được nạp vào bất kỳ vị trí nào trong bộ nhớ mà không cần sửa đổi mã nguồn.
* **A. Symbolic address:** Địa chỉ tượng trưng, được sử dụng trong mã nguồn trước khi biên dịch.
* **B. Relocatable address:** Địa chỉ tương đối, được sử dụng trong mã đối tượng sau khi biên dịch và trước khi nạp.
* **C. Physical address:** Địa chỉ vật lý, địa chỉ thực tế trong bộ nhớ.
* **D. Logical address:** Địa chỉ logic, không gian địa chỉ được nhìn thấy bởi chương trình.
Vậy, đáp án đúng là B.
50 câu hỏi 60 phút
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Câu hỏi đề cập đến kỹ thuật mà hệ điều hành biên dịch sẵn các hàm, thủ tục thành các module ngoài (external module) dùng chung cho nhiều tiến trình để tối ưu hóa việc sử dụng bộ nhớ.
* Static linking: Liên kết tĩnh là quá trình kết hợp tất cả các thư viện cần thiết vào một tệp thực thi duy nhất trong quá trình biên dịch. Điều này có nghĩa là mỗi tiến trình sẽ có một bản sao của các thư viện này, dẫn đến lãng phí bộ nhớ nếu nhiều tiến trình sử dụng cùng một thư viện.
* Dynamic linking: Liên kết động là kỹ thuật cho phép các tiến trình chia sẻ các thư viện (external module) trong bộ nhớ. Khi một tiến trình cần một hàm hoặc thủ tục từ một thư viện, nó sẽ được liên kết đến thư viện đó trong thời gian chạy. Điều này giúp tiết kiệm bộ nhớ vì chỉ có một bản sao của thư viện được lưu trữ trong bộ nhớ.
* Overlay: Kỹ thuật overlay được sử dụng trong các hệ thống có bộ nhớ hạn chế, cho phép các phần khác nhau của một chương trình lớn hơn được tải vào bộ nhớ khi cần thiết và ghi đè lên các phần không còn cần thiết. Tuy nhiên, overlay không liên quan trực tiếp đến việc sử dụng các module dùng chung.
* Swapping: Swapping là một kỹ thuật quản lý bộ nhớ trong đó các tiến trình hoặc các phần của tiến trình được chuyển đổi giữa bộ nhớ chính và bộ nhớ thứ cấp (ví dụ: ổ cứng) để giải phóng bộ nhớ cho các tiến trình khác. Swapping không liên quan đến việc sử dụng các module dùng chung.
Do đó, đáp án đúng là Dynamic linking (Liên kết động).
* Static linking: Liên kết tĩnh là quá trình kết hợp tất cả các thư viện cần thiết vào một tệp thực thi duy nhất trong quá trình biên dịch. Điều này có nghĩa là mỗi tiến trình sẽ có một bản sao của các thư viện này, dẫn đến lãng phí bộ nhớ nếu nhiều tiến trình sử dụng cùng một thư viện.
* Dynamic linking: Liên kết động là kỹ thuật cho phép các tiến trình chia sẻ các thư viện (external module) trong bộ nhớ. Khi một tiến trình cần một hàm hoặc thủ tục từ một thư viện, nó sẽ được liên kết đến thư viện đó trong thời gian chạy. Điều này giúp tiết kiệm bộ nhớ vì chỉ có một bản sao của thư viện được lưu trữ trong bộ nhớ.
* Overlay: Kỹ thuật overlay được sử dụng trong các hệ thống có bộ nhớ hạn chế, cho phép các phần khác nhau của một chương trình lớn hơn được tải vào bộ nhớ khi cần thiết và ghi đè lên các phần không còn cần thiết. Tuy nhiên, overlay không liên quan trực tiếp đến việc sử dụng các module dùng chung.
* Swapping: Swapping là một kỹ thuật quản lý bộ nhớ trong đó các tiến trình hoặc các phần của tiến trình được chuyển đổi giữa bộ nhớ chính và bộ nhớ thứ cấp (ví dụ: ổ cứng) để giải phóng bộ nhớ cho các tiến trình khác. Swapping không liên quan đến việc sử dụng các module dùng chung.
Do đó, đáp án đúng là Dynamic linking (Liên kết động).
Lời giải:
Đáp án đúng: C
Câu hỏi đề cập đến một hiện tượng trong quản lý bộ nhớ, cụ thể là tình trạng có những vùng trống bên trong không gian bộ nhớ đã được cấp phát cho một tiến trình. Để trả lời câu hỏi này, chúng ta cần hiểu rõ về các khái niệm phân mảnh bộ nhớ.
- Phân mảnh nội (Internal Fragmentation): Xảy ra khi bộ nhớ được cấp phát lớn hơn kích thước thực tế mà tiến trình yêu cầu, dẫn đến lãng phí bộ nhớ bên trong vùng đã cấp phát đó. Đây chính là đáp án phù hợp với mô tả trong câu hỏi.
- Phân mảnh ngoại (External Fragmentation): Xảy ra khi có đủ tổng lượng bộ nhớ trống để đáp ứng yêu cầu của một tiến trình, nhưng bộ nhớ này lại không liên tục, bị chia nhỏ thành nhiều vùng nhỏ rải rác, khiến hệ thống không thể cấp phát cho tiến trình đó.
- Bộ nhớ phân tán: Đây là một kiến trúc bộ nhớ trong đó bộ nhớ vật lý được trải rộng trên nhiều máy tính được liên kết mạng.
- Bộ nhớ không liên tục: Là phương pháp cấp phát bộ nhớ mà một tiến trình có thể được cấp phát nhiều vùng nhớ không liền kề nhau.
Do đó, đáp án chính xác là C. Phân mảnh nội.
Lời giải:
Đáp án đúng: B
Để đánh giá tính an toàn của chuỗi tiến trình B -> A, ta cần phân tích trạng thái tài nguyên:
1. Tài nguyên hiện có: 12
2. B thực thi trước:
* B đang giữ: (1, 2, 2)
* B cần thêm: (4, 1, 0)
* Sau khi B hoàn thành, tài nguyên trả lại: 1 + 2 + 2 = 5
* Tổng tài nguyên có sẵn sau khi B kết thúc: 12 + 5 = 17
3. A thực thi sau B:
* A đang giữ: (2, 0, 0)
* A cần thêm: (3, 0, 3)
* Để A có thể hoàn thành, cần (3, 0, 3) tài nguyên.
* Số tài nguyên A cần thêm (3, 0, 3) < số tài nguyên sẵn có (17, ?, ?). Vì A cần (3,0,3) mà sau khi B trả lại tài nguyên, hệ thống có tổng 17 tài nguyên, A hoàn toàn có thể lấy đủ để hoàn thành.
* Vậy chuỗi B -> A là an toàn.
Vậy đáp án đúng là: "B. Sẽ là an toàn (safe) vì số tài nguyên A cần thêm ít hơn (số sẵn + số B đang giữ)."
1. Tài nguyên hiện có: 12
2. B thực thi trước:
* B đang giữ: (1, 2, 2)
* B cần thêm: (4, 1, 0)
* Sau khi B hoàn thành, tài nguyên trả lại: 1 + 2 + 2 = 5
* Tổng tài nguyên có sẵn sau khi B kết thúc: 12 + 5 = 17
3. A thực thi sau B:
* A đang giữ: (2, 0, 0)
* A cần thêm: (3, 0, 3)
* Để A có thể hoàn thành, cần (3, 0, 3) tài nguyên.
* Số tài nguyên A cần thêm (3, 0, 3) < số tài nguyên sẵn có (17, ?, ?). Vì A cần (3,0,3) mà sau khi B trả lại tài nguyên, hệ thống có tổng 17 tài nguyên, A hoàn toàn có thể lấy đủ để hoàn thành.
* Vậy chuỗi B -> A là an toàn.
Vậy đáp án đúng là: "B. Sẽ là an toàn (safe) vì số tài nguyên A cần thêm ít hơn (số sẵn + số B đang giữ)."
Lời giải:
Đáp án đúng: C
Để xác định chuỗi thực thi tiến trình nào là an toàn, ta cần kiểm tra xem với thứ tự đó, hệ thống có thể cấp phát tài nguyên cho từng tiến trình một cách tuần tự hay không mà không rơi vào trạng thái deadlock. Tổng số tài nguyên là 12.
* Kiểm tra đáp án A (A > B > C):
* Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa để hoàn thành. Hệ thống hiện có 12 - 3 - 4 - 2 = 3 tài nguyên đang không được sử dụng. Vì 3 < 4, tiến trình A không thể hoàn thành ngay lập tức.
* Tuy nhiên, sau khi tiến trình A hoàn thành (giả sử), hệ thống sẽ có 3 + 3 + 4 = 10 tài nguyên. Lúc này, tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 10 > 5, tiến trình B có thể hoàn thành.
* Sau khi B hoàn thành, hệ thống có 10 + 4 + 5 = 19 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 19 > 5, tiến trình C có thể hoàn thành.
* Vậy, chuỗi A > B > C là an toàn.
* Kiểm tra đáp án B (A > C > B):
* Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 4, tiến trình A không thể hoàn thành ngay lập tức. (Tương tự như trên).
* Sau khi tiến trình A hoàn thành (giả sử), hệ thống sẽ có 10 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 10 > 5, tiến trình C có thể hoàn thành.
* Sau khi C hoàn thành, hệ thống có 10 + 2 + 5 = 17 tài nguyên. Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 17 > 5, tiến trình B có thể hoàn thành.
* Vậy chuỗi A > C > B cũng an toàn.
* Kiểm tra đáp án C (B > A > C):
* Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 5, tiến trình B không thể hoàn thành ngay lập tức.
* Sau khi tiến trình B hoàn thành (giả sử), hệ thống sẽ có 3 + 4 + 5 = 12 tài nguyên. Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa để hoàn thành. Vì 12 > 4, tiến trình A có thể hoàn thành.
* Sau khi A hoàn thành, hệ thống có 12 + 3 + 4 = 19 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 19 > 5, tiến trình C có thể hoàn thành.
* Vậy chuỗi B > A > C cũng an toàn.
* Kiểm tra đáp án D (B > C > A):
* Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 5, tiến trình B không thể hoàn thành ngay lập tức.
* Sau khi tiến trình B hoàn thành (giả sử), hệ thống sẽ có 12 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 12 > 5, tiến trình C có thể hoàn thành.
* Sau khi C hoàn thành, hệ thống có 12 + 2 + 5 = 19 tài nguyên. Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa. Vì 19 > 4, tiến trình A có thể hoàn thành.
* Vậy chuỗi B > C > A cũng an toàn.
Như vậy, cả 4 đáp án đều cho chuỗi thực thi an toàn. Có lẽ đề bài bị sai sót, vì thông thường chỉ có 1 đáp án đúng duy nhất.
* Kiểm tra đáp án A (A > B > C):
* Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa để hoàn thành. Hệ thống hiện có 12 - 3 - 4 - 2 = 3 tài nguyên đang không được sử dụng. Vì 3 < 4, tiến trình A không thể hoàn thành ngay lập tức.
* Tuy nhiên, sau khi tiến trình A hoàn thành (giả sử), hệ thống sẽ có 3 + 3 + 4 = 10 tài nguyên. Lúc này, tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 10 > 5, tiến trình B có thể hoàn thành.
* Sau khi B hoàn thành, hệ thống có 10 + 4 + 5 = 19 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 19 > 5, tiến trình C có thể hoàn thành.
* Vậy, chuỗi A > B > C là an toàn.
* Kiểm tra đáp án B (A > C > B):
* Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 4, tiến trình A không thể hoàn thành ngay lập tức. (Tương tự như trên).
* Sau khi tiến trình A hoàn thành (giả sử), hệ thống sẽ có 10 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 10 > 5, tiến trình C có thể hoàn thành.
* Sau khi C hoàn thành, hệ thống có 10 + 2 + 5 = 17 tài nguyên. Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 17 > 5, tiến trình B có thể hoàn thành.
* Vậy chuỗi A > C > B cũng an toàn.
* Kiểm tra đáp án C (B > A > C):
* Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 5, tiến trình B không thể hoàn thành ngay lập tức.
* Sau khi tiến trình B hoàn thành (giả sử), hệ thống sẽ có 3 + 4 + 5 = 12 tài nguyên. Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa để hoàn thành. Vì 12 > 4, tiến trình A có thể hoàn thành.
* Sau khi A hoàn thành, hệ thống có 12 + 3 + 4 = 19 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa. Vì 19 > 5, tiến trình C có thể hoàn thành.
* Vậy chuỗi B > A > C cũng an toàn.
* Kiểm tra đáp án D (B > C > A):
* Tiến trình B đang giữ 4 tài nguyên và cần thêm 5 tài nguyên nữa. Hệ thống hiện có 3 tài nguyên đang không được sử dụng. Vì 3 < 5, tiến trình B không thể hoàn thành ngay lập tức.
* Sau khi tiến trình B hoàn thành (giả sử), hệ thống sẽ có 12 tài nguyên. Tiến trình C đang giữ 2 tài nguyên và cần thêm 5 tài nguyên nữa để hoàn thành. Vì 12 > 5, tiến trình C có thể hoàn thành.
* Sau khi C hoàn thành, hệ thống có 12 + 2 + 5 = 19 tài nguyên. Tiến trình A đang giữ 3 tài nguyên và cần thêm 4 tài nguyên nữa. Vì 19 > 4, tiến trình A có thể hoàn thành.
* Vậy chuỗi B > C > A cũng an toàn.
Như vậy, cả 4 đáp án đều cho chuỗi thực thi an toàn. Có lẽ đề bài bị sai sót, vì thông thường chỉ có 1 đáp án đúng duy nhất.
Lời giải:
Đáp án đúng: C
Phân tích đồ thị cấp phát tài nguyên (RAG) để xác định trạng thái deadlock:
* Đồ thị cấp phát tài nguyên (RAG): Mô tả trạng thái cấp phát tài nguyên cho các tiến trình.
* Deadlock (tắc nghẽn): Xảy ra khi hai hoặc nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên, dẫn đến không tiến trình nào có thể tiếp tục.
Trong đồ thị đã cho, ta thấy:
* P3 đang yêu cầu một instance của R2 mà R2 hiện đang được P4 nắm giữ.
* Nếu P4 không giải phóng instance này, P3 sẽ tiếp tục chờ đợi.
* Nếu có một chu trình trong đồ thị (ví dụ: P1 -> R1 -> P2 -> R2 -> P3 -> R2 -> P4 -> ... -> P1), thì có khả năng cao xảy ra deadlock.
Đánh giá các phương án:
* A. chắc chắn không xảy ra Deadlock (tắc nghẽn). Sai, vì có khả năng xảy ra deadlock nếu có chu trình chờ đợi.
* B. chắc chắn xảy ra Deadlock (tắc nghẽn). Sai, vì deadlock chỉ xảy ra nếu có chu trình chờ đợi và các điều kiện cần khác đáp ứng.
* C. sẽ xảy ra Deadlock nếu P4 không trả instance trong R2. Đúng, vì nếu P4 không trả instance của R2, P3 sẽ tiếp tục chờ, và nếu điều này tạo ra một chu trình chờ đợi, deadlock sẽ xảy ra.
* D. không xảy ra Deadlock nếu P2 không trả tài nguyên R1. Sai, việc P2 có trả hay không R1 không ảnh hưởng trực tiếp đến khả năng xảy ra deadlock giữa P3 và P4.
Vậy đáp án đúng là C.
* Đồ thị cấp phát tài nguyên (RAG): Mô tả trạng thái cấp phát tài nguyên cho các tiến trình.
* Deadlock (tắc nghẽn): Xảy ra khi hai hoặc nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên, dẫn đến không tiến trình nào có thể tiếp tục.
Trong đồ thị đã cho, ta thấy:
* P3 đang yêu cầu một instance của R2 mà R2 hiện đang được P4 nắm giữ.
* Nếu P4 không giải phóng instance này, P3 sẽ tiếp tục chờ đợi.
* Nếu có một chu trình trong đồ thị (ví dụ: P1 -> R1 -> P2 -> R2 -> P3 -> R2 -> P4 -> ... -> P1), thì có khả năng cao xảy ra deadlock.
Đánh giá các phương án:
* A. chắc chắn không xảy ra Deadlock (tắc nghẽn). Sai, vì có khả năng xảy ra deadlock nếu có chu trình chờ đợi.
* B. chắc chắn xảy ra Deadlock (tắc nghẽn). Sai, vì deadlock chỉ xảy ra nếu có chu trình chờ đợi và các điều kiện cần khác đáp ứng.
* C. sẽ xảy ra Deadlock nếu P4 không trả instance trong R2. Đúng, vì nếu P4 không trả instance của R2, P3 sẽ tiếp tục chờ, và nếu điều này tạo ra một chu trình chờ đợi, deadlock sẽ xảy ra.
* D. không xảy ra Deadlock nếu P2 không trả tài nguyên R1. Sai, việc P2 có trả hay không R1 không ảnh hưởng trực tiếp đến khả năng xảy ra deadlock giữa P3 và P4.
Vậy đáp án đúng là C.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng