Ôn tập hệ điều hành – Quản lí bộ nhớ


Hôm nay quyết tâm ôn hết đống câu hỏi lý thuyết và bài tập hệ điều hành của phần Quản lí bộ nhớ (quyết tâm vẫn chỉ là quyết tâm, :(( ). Nếu ai cũng đang ôn luyện thì có thể sử dụng thể tham khảo

Câu số 1: Hầu hết các hệ thống cho phép cấp phát bộ nhớ cho không gian địa chỉ của nó trong quá trình thực thi. Dữ liệu được cấp phát trong heap của chương trình là một ví dụ. Điều gì là cần thiết để hỗ trợ cấp phát động bộ nhớ trong các trường hợp sau:

a. Cấp phát bộ nhớ liên tục

b. Phân đoạn

c. Phân trang

Trả lời:

a. Cấp phát bộ nhớ liên tục: cần phải có sự tái định vị toàn bộ chương trình vì không có đủ không gian bộ nhớ để chương trình có thể lớn thêm

b. Phân đoạn: Cũng cần có sự tái định vị của phân đoạn mà cần được mở rộng vì không có đủ không gian trống để cấp phát.

c. Phân trang: Không cần thiết phải tái định vị

 

Câu số 2: Tại sao trong hệ thống sử dụng kỹ thuật phân trang, một tiến trình không thể truy xuất đến vùng nhớ không được cấp cho nó ? Làm cách nào hệ điều hành có thể cho phép sự truy xuất này xảy ra ? Hệ điều hành có nên cho phép điều đó không ? Tại sao ?Trong hệ thống sử dụng phân trang, một tiến trình không thể truy cập vào một địa chỉ mà nó không được phép.
Trả lời: Một địa chỉ trong hệ thống sử dụng kỹ thuật phân trang được xác định bằng số hiệu trang và offset. Địa chỉ vật lý của trang thì tìm thấy bằng việc tìm kiếm trong bảng dựa trên số hiệu trang logic. Bởi vì hệ điều hành điều khiển nội dung của bảng này, nó có thể giới hạn một tiến trình chỉ truy cập vào những trang nhớ cấp phát cho tiến trình đó. Không có cách nào để một tiến trình tham chiếu đến một trang nhớ mà nó không sở hữu bởi vì trang nhớ đó sẽ không tồn tại trong bảng phân trang. Để cho phép việc truy cập như vậy có thể xảy ra, hệ điều hành chỉ đơn giản cho phép những thêm các trang nhớ không thuộc tiến trình vào trong bảng phân trang. Điều này có thể hữu ích khi 2 hoặc nhiều tiến trình cần trao đổi dữ liệu – những tiến trình này chỉ cần đọc và viết tại cùng vị trí địa chỉ trong bộ nhớ.

Câu số 3: Tại sao đôi lúc người ta kết hợp giữa kỹ thuật phân trang và phân đoạn
Trả lời: Hai kỹ thuật này được kết hợp để có thể hỗ trợ lẫn nhau. Phân đoạn các trang thì có ích trong trường hợp các bảng trang trở nên rất lớn. Một vùng liên tục của bàng trang mà không được sử dụng có thể chia vào trong một mục trong bảng phân đoạn với địa chỉ trang là 0. Phân trang các đoạn xử lí trường hợp có nhiều đoạn dài mà cần nhiều thời gian để cấp phát. Bằng việc phân trang các đoạn, chúng ta giảm thiểu lãng phí bộ nhớ do phân mảnh ngoại cũng như đơn giản quá trình cấp phát.

Câu 4: Giải thích vì sao chia sẻ một module trong kỹ thuật phân đoạn lại dễ hơn trong kỹ thuật phân trang
Trả lời: Vì phân đoạn thì dựa trên sự phân chia logic bộ nhớ chứ không phải phân chia vật lý, do đó những đoạn có kích thước bất kì có thể được chia sẻ với chỉ một mục trong bảng phân đoạn của tiến trình. Trong phân trang thì bắt buộc phải có một mục chung trong bảng phân trang cho mỗi trang nhớ được chia sẻ.

 

Thôi tạm dừng ở đây,bỗng nhiên thấy mệt mệt. Hẹn bài tiếp theo…

Tác giả: xuanchien

Tran Xuan Chien. Japan Advanced Institute of Science and Technology - Japan. Senior Developer - NUS Technology.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s