Rate this post

Trong Hệ điều hành, Segmentation là một kỹ thuật quản lý bộ nhớ, trong đó bộ nhớ được chia thành các phần có kích thước thay đổi. Mỗi phần được gọi là một Segmentation có thể được phân bổ cho một quy trình.

Các bài viết liên quan:

Các chi tiết về mỗi Segmentation được lưu trữ trong một bảng được gọi là bảng Segmentation. Bảng Segmentation được lưu trữ trong một (hoặc nhiều) Segmentation.

Bảng Segmentation chủ yếu chứa hai thông tin về Segmentation:

  1. Cơ sở: Đây là địa chỉ cơ sở của phân khúc
  2. Giới hạn: Là độ dài của đoạn.

Tại sao cần phải Segmentation?

Cho đến bây giờ, chúng tôi đang sử dụng Phân trang làm kỹ thuật quản lý bộ nhớ chính của chúng tôi. Phân trang gần với Hệ điều hành hơn là Người dùng. Nó chia tất cả các quy trình thành dạng trang bất kể thực tế là một quy trình có thể có một số phần tương đối của các chức năng cần được tải trong cùng một trang.

Hệ điều hành không quan tâm đến chế độ xem của Người dùng về quy trình. Nó có thể chia cùng một chức năng thành các trang khác nhau và các trang đó có thể được tải hoặc không cùng lúc vào bộ nhớ. Nó làm giảm hiệu quả của hệ thống.

Tốt hơn là nên có Segmentation chia quá trình thành các Segmentation. Mỗi Segmentation chứa cùng một loại chức năng chẳng hạn như chức năng chính có thể được bao gồm trong một Segmentation và các chức năng thư viện có thể được bao gồm trong Segmentation khác.

Dịch địa chỉ lôgic thành địa chỉ vật lý theo bảng Segmentation

CPU tạo ra một địa chỉ logic có hai phần:

  1. Số Segmentation
  2. Bù lại

Ví dụ:

Giả sử địa chỉ 16 bit được sử dụng với 4 bit cho số Segmentation và 12 bit cho độ lệch Segmentation do đó kích thước Segmentation tối đa là 4096 và số Segmentation tối đa có thể được tham chiếu là 16.

Khi một chương trình được tải vào bộ nhớ, hệ thống Segmentation sẽ cố gắng xác định không gian đủ lớn để chứa Segmentation đầu tiên của quá trình, thông tin không gian được lấy từ danh sách miễn phí do trình quản lý bộ nhớ duy trì. Sau đó, nó cố gắng định vị không gian cho các Segmentation khác. Sau khi có đủ không gian cho tất cả các Segmentation, nó sẽ tải chúng vào các khu vực tương ứng.

Hệ điều hành cũng tạo một bảng bản đồ Segmentation cho mỗi chương trình.

Với sự trợ giúp của các bảng bản đồ Segmentation và sự trợ giúp của phần cứng, hệ điều hành có thể dễ dàng dịch một địa chỉ logic thành địa chỉ vật lý khi thực hiện một chương trình.

Số Segmentation được ánh xạ vào bảng Segmentation. Giới hạn của Segmentation tương ứng được so sánh với phần bù. Nếu độ lệch nhỏ hơn giới hạn thì địa chỉ hợp lệ, ngược lại nó sẽ tạo ra lỗi vì địa chỉ không hợp lệ.

Trong trường hợp địa chỉ hợp lệ, địa chỉ cơ sở của Segmentation được thêm vào phần bù để lấy địa chỉ vật lý của từ thực trong bộ nhớ chính.

Hình trên cho thấy cách dịch địa chỉ được thực hiện trong trường hợp Segmentation.

Ưu điểm của Segmentation

  1. Không có phân mảnh nội bộ
  2. Kích thước Segmentation trung bình lớn hơn kích thước trang thực tế.
  3. Ít chi phí hơn
  4. Dễ dàng di chuyển các Segmentation hơn toàn bộ không gian địa chỉ.
  5. Bảng Segmentation có kích thước nhỏ hơn so với bảng trang trong phân trang.

Nhược điểm

  1. Nó có thể có sự phân mảnh bên ngoài.
  2. rất khó để cấp phát bộ nhớ liền kề cho phân vùng có kích thước thay đổi.
  3. Các thuật toán quản lý bộ nhớ tốn kém.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now