Mơ hình phân đoạn (Segmentation)

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 105)

- Đọc/Ghi ngày, tháng, năm

b/ Sử dụng danh sách liên kết: mỗi nút của danh sách liên kết lưu thơng tin một vùng nhớ chứa tiến trình (P) hay vùng nhớ trống giữa hai tiến trình (H).

4.2.2.1 Mơ hình phân đoạn (Segmentation)

Một chương trình được người lập trình chia thành nhiều phân đoạn, mỗi phân đoạn cĩ ngữ nghĩa khác nhau và hệđiều hành cĩ thể nạp các phân đọan vào bộ nhớ tại các vị trí khơng liên tục. Ví dụ: chương trình chia làm 5 phân đoạn (segment), mỗi phân đoạn được nạp vào vùng nhớ trống cĩ thể khơng liên tục.

Hình 4.9: mơ hình phân đoạn trong kỹ thuật cấp phát bộ nhớ khơng liên tục

* Cơ chế MMU trong kỹ thuật phân đoạn:

Khi chương trình được nạp vào bộ nhớ, MMU ghi các vị trí lưu trữ và kích thước các phân đoạn vào bảng phân đoạn cịn CPU làm nhiệm vụ chuyển đổi tất cả các địa chỉ tương đối trong chương trình thành địa chỉảo.

Phần tử thứ s trong bảng phân đoạn gồm hai phần (base, limit), base là địa chỉ vật lý bắt đầu phân đoạn s, limit là chiều dài của phân đoạn s. Mỗi địa chỉảo gồm hai phần (s,d) với s là số hiệu phân đoạn , d là địa chỉ tương đối trong phân đoạn s.

Để chuyển địa chỉ ảo (s,d) thành địa chỉ vật lý, MMU truy xuất phần tử thứ s trong bảng phân đoạn, lấy được giá trị limit và base của phân đoạn s, sau đĩ kiểm tra điều kiện (d<limit), nếu sai thì thơng báo lỗi “ truy xuất địa chỉ khơng hợp lệ”, nếu đúng thì tính điạ chỉ vật lý theo cơng thức: đcvl =base + d.

Theo ví dụ trên, giả sử tiến trình truy xuất địa chỉảo (s,d)=(4,1500) thì MMU sẽ thơng báo lỗi!. Nếu tiến trình truy xuất địa chỉ ảo (4,100) thì MMU sẽ chuyển thành địa chỉ vât lý là 4700+100=4800.

Hình 4.10: cơ chế MMU trong mơ hình phân đoạn

* Cài đặt bảng phân đoạn:

Cĩ thể sử dụng các thanh ghi để lưu trữ bảng phân đoạn nếu cĩ ít phân đoạn. Nếu chương trình cĩ nhiều phân đoạn, bảng phân đoạn phải được lưu trong bộ nhớ chính. Phần cứng cần cung cấp một thanh ghi nền STBR (Segment Table Base Register) để lưu địa chỉ bắt đầu của bảng phân đoạn và một thanh ghi STLR lưu số phân đoạn (Segment Table Limit Register) mà chương trình sử dụng. Với một địa chỉ logic (s,d), trước tiên số hiệu phân đoạn s được kiểm tra tính hợp lệ (s<STLR). Kế tiếp, cộng giá trị s với STBR (STBR+s) để cĩ được địa chỉ của phần tử thứ s trong bảng phân đoạn và điạ chỉ vật lý cuối cùng là (base + d)

Hình 4.11: cơ chế MMU trong mơ hình phân đoạn. sử dụng thanh ghi STLR và STBR

* Bảo vệ phân đoạn

Vì mỗi phân đoạn do người lập trình xác định và người lập trình biết được một phân đoạn chứa những gì bên trong, do vậy họ cĩ thể chỉđịnh các thuộc tính bảo vệ thích hợp cho mỗi phân đoạn. Khi đĩ mỗi phần tử của bảng phân đoạn cần cĩ thêm một thành phần gọi là thuộc tính bảo vệ. MMU sẽ kiểm tra giá trị của thuộc tính này để ngăn chặn các thao tác xử lý bất hợp lệđến phân đoạn. Giá trị của thuộc tính cĩ thể là R (chỉđọc), X (thực thi), W (ghi),…

Hình 4.12: Cấu trúc một phần tử trong bảng phân đoạn cĩ sử dụng thuộc tính bảo vệ

* Chia sẻ phân đoạn

Muốn hai tiến trình dùng chung một phân đoạn nào đĩ, MMU chỉ cần gán hai phần tử trong hai bảng phân đoạn của hai tiến trình cùng giá trị.

Hình 4.13: hai tiến trình P1,P2 dùng chung phân đoạn 0 (phân đoạn editor)

+ Nhận xét

Trong hệ thống sử dụng kỹ thuật phân đoạn , hiện tượng phân mảnh ngoại vi vẫn xảy ra khi các khối nhớ trống đều quá nhỏ, khơng đủđể chứa một phân đoạn. Ưu điểm của kỹ thuật phân đoạn là mã chương trình và dữ liệu được tách riêng thành những khơng gian địa chỉđộc lập nên dễ dàng bảo vệ mã chương trình và dễ dàng dùng chung dữ liệu hoặc hàm.

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 105)

Tải bản đầy đủ (PDF)

(200 trang)