Quản lý bộ nhớ-Tóm tắt
Có nhiều cách tiếp cận khác nhau để tổ chức quãn lý bộ nhớ, nhưng tựu chung mong đạt đến các mục tiêu sau : Có thể đáp ứng được đầy đủ các nhu cầu bộ nhớ của chương trình với một bộ nhớ vật lý giới hạn Quá trình chuyển đổi địa chỉ, tổ chức cấp ...
Có nhiều cách tiếp cận khác nhau để tổ chức quãn lý bộ nhớ, nhưng tựu chung mong đạt đến các mục tiêu sau :
Có thể đáp ứng được đầy đủ các nhu cầu bộ nhớ của chương trình với một bộ nhớ vật lý giới hạn
Quá trình chuyển đổi địa chỉ, tổ chức cấp phát bộ nhớ là trong suốt với người dùng, và có khả năng tái định vị.
Tận dụng hiệu quả bộ nhớ ( ít có vùng nhớ không sử dụng được)
Bộ nhớ được bảo vệ tốt
Có khả năng chia sẻ bộ nhớ giữa các tiến trình
Một số cách tiếp cận tổ chức bộ nhớ chính
Cấp phát liên tục : có thể cấp phát các vùng nhớ liên tục cho các tiến trình trong những phân vùng có kích thước cố định hay biến động. Điểm yếu của cách tiếp cận này là kích thước các chương trình có thể dược xử lý bị giới hạn bởi các kích thước của khối nhớ liên tục có thể sử dụng. Các hiện tượng phân mảnh ngoại vi, nội vi đều có thể xuất hiện
Cấp phát không liên tục : có thể cấp phát các vùng nhớ không liên tục cho một tiến trình. Hai kỹ thuật thường được áp dụng là phân trang và phân đoạn. Kỹ thuật phân trang cho phép loại bõ hiện tượng phân mảnh ngoại vi, kỹ thuật phân đoạn loại bỏ hiện tượng phân mảnh nội vi, nhưng phải giải quyết vấn đề cấp phát động.
Các câu hỏi cần trả lời được sau bài học này :
1. Nhiệm vụ quản lý bộ nhớ bao gồm các công việc nào ? Giai đoạn nào do hệ điều hành thực hiện , giai đoạn nào cần sự trợ giúp của phần cứng?
2. Các khái niệm : phân mảnh nội vi, phân mảnh ngoại vi, bài toán cấp phát động, điạ chỉ logic, điạ chỉ physic
3. Phân tích ưu khuyết của các mô hình tổ chức bộ nhớ.
Bài 1. Giải thích sự khác biệt giữa địa chỉ logic và địa chỉ physic?
Bài 2. Giải thích sự khác biệt giữa hiện tượng phân mảnh nội vi và ngoại vi?
Bài 3. Giả sử bộ nhớ chính được phân thành các phân vùng có kích thước là 600K, 500K, 200K, 300K ( theo thứ tự ), cho biết các tiến trình có kích thước 212K, 417K, 112K và 426K ( theo thứ tự ) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng :
a) Thuật toán First fit
b) Thuật toán Best fit
c) Thuật toán Worst fit
Thuật toán nào cho phép sử dụng bộ nhớ hiệu qủa nhất trong trường hợp trên ?
Bài 4. Xét một hệ thống trong đó một chương trình khi được nạp vào bộ nhớ sẽ phân biệt hoàn toàn phân đoạn code và phân đoạn data. Giả sử CPU sẽ xác định được khi nào cần truy xuất lệnh hay dữ liệu , và phải truy xuất ở đâu. Khi đó mỗi chương trình sẽ được cung cấp 2 bộ thanh ghi base-limit : một cho phân đoạn code, và một cho phân đoạn data. Bộ thanh ghi base-limit của phân đoạn code tự động được đặt thuộc tính readonly. Thảo luận các ưu và khuyết điểm của hệ thống này.
Bài 5. Tại sao kích thước trang luôn là lũy thừa của 2 ?
Bài 6. Xét một không gian địa chỉ có 8 trang, mỗi trang có kích thước 1K. ánh xạ vào bộ nhớ vật lý có 32 khung trang.
a) Địa chỉ logic gồm bao nhiêu bit ?
b) Địa chỉ physic gồm bao nhiêu bit ?
Bài 7. 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 ?
Bài 8. Xét một hệ thống sử dụng kỹ thuật phân trang, với bảng trang được lưu trữ trong bộ nhớ chính.
a) Nếu thời gian cho một lần truy xuất bộ nhớ bình thường là 200nanoseconds, thì mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này ?
b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là 75%, thời gian để tìm trong TLBs xem như bằng 0, tính thời gian truy xuất bộ nhớ trong hệ thống ( effective memory reference time)
Bài 9. Nếu cho phép hai phần tử trong bảng trang cùng lưu trữ một số hiệu khung trang trong bộ nhớ thì sẽ có hiệu qủa gì ? Giải thích làm cách nào hiệu qủa này có thể được sử dụng để giảm thời gian cần khi sao chép một khối lượng lớn vùng nhớ từ vị trí này sang vị trí khác. Khi đó nếu sửa nội dung một trang thì sẽ tác động đến trang còn lại thế nào?
Bài 10. Vì sao đôi lúc người ta kết hợp hai kỹ thuật phân trang và phân đoạn ?
Bài 11. Mô tả cơ chế cho phép một phân đoạn có thể thuộc về không gian điạ chỉ của hai tiến trình.
Bài 12. 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?
Bài 13. Xét bảng phân đoạn sau đây :
Cho biết địa chỉ vật lý tương ứng với các địa chỉ logique sau đây :
a. 0,430
b. 1,10
c. 2,500
d. 3,400
e. 4,112