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

Một phần của tài liệu Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 105 - 108)

- Đọ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

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 Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 105 - 108)

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

(200 trang)