Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa phân bổ bộ nhớ liền kề và không liên tục

Bộ nhớ là một mảng lớn các byte, trong đó mỗi byte có địa chỉ riêng. Phân bổ bộ nhớ có thể được phân loại thành hai phương pháp cấp phát bộ nhớ liền kề và phân bổ bộ nhớ không liền kề. Sự khác biệt chính giữa cấp phát bộ nhớ liền kề và không liên tục là phân bổ bộ nhớ liền kề gán các khối bộ nhớ liên tiếp cho một quá trình yêu cầu bộ nhớ trong khi phân bổ bộ nhớ không liên tục gán các khối bộ nhớ riêng biệt ở vị trí khác nhau trong không gian bộ nhớ theo cách không liên tục một quá trình yêu cầu bộ nhớ. Chúng tôi sẽ thảo luận thêm một số khác biệt giữa phân bổ bộ nhớ liền kề và không liền kề với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

Biểu đồ so sánh

Cơ sở so sánhPhân bổ bộ nhớ liền kềPhân bổ bộ nhớ không liên tục
Căn bảnPhân bổ các khối bộ nhớ liên tiếp vào một quá trình.Phân bổ các khối bộ nhớ riêng biệt cho một quá trình.
Chi phí chungCấp phát bộ nhớ liền kề không có chi phí dịch thuật địa chỉ trong khi thực hiện quy trình.Cấp phát bộ nhớ không liên tục có chi phí dịch thuật địa chỉ trong khi thực hiện quy trình.
Tỷ lệ thực hiệnMột quá trình thực hiện chất béo trong phân bổ bộ nhớ liền kềMột quá trình thực hiện khá chậm so với việc cấp phát bộ nhớ không liên tục.
Dung dịchKhông gian bộ nhớ phải được chia thành phân vùng có kích thước cố định và mỗi phân vùng chỉ được phân bổ cho một quy trình duy nhất.Chia quá trình thành nhiều khối và đặt chúng vào các phần khác nhau của bộ nhớ theo sự sẵn có của không gian bộ nhớ.
BànMột bảng được duy trì bởi hệ điều hành duy trì danh sách phân vùng có sẵn và bị chiếm dụng trong không gian bộ nhớMột bảng phải được duy trì cho mỗi quy trình mang địa chỉ cơ sở của từng khối đã được thu nhận bởi một quy trình trong bộ nhớ.

Định nghĩa phân bổ bộ nhớ liền kề

Cả hai hệ điều hành và các quy trình của người dùng phải được cung cấp trong bộ nhớ chính. Do đó bộ nhớ chính được chia thành hai phân vùng: tại một phân vùng, hệ điều hành cư trú và tại phân vùng người dùng khác cư trú. Trong các điều kiện thông thường, một số quy trình người dùng phải nằm trong bộ nhớ cùng một lúc, và do đó, điều quan trọng là phải xem xét việc phân bổ bộ nhớ cho các quy trình.

Phân bổ bộ nhớ liền kề là một trong những phương pháp cấp phát bộ nhớ. Trong cấp phát bộ nhớ liền kề, khi một quy trình yêu cầu bộ nhớ, một phần liền kề của các khối bộ nhớ được gán cho quy trình theo yêu cầu của nó.

Phân bổ bộ nhớ liền kề có thể đạt được bằng cách chia bộ nhớ thành phân vùng có kích thước cố định và chỉ phân bổ mỗi phân vùng cho một quy trình duy nhất. Nhưng điều này sẽ gây ra mức độ đa chương trình, giới hạn số lượng phân vùng cố định được thực hiện trong bộ nhớ. Việc phân bổ bộ nhớ liền kề cũng dẫn đến sự phân mảnh bên trong . Giống như, nếu một khối bộ nhớ có kích thước cố định được phân bổ cho một tiến trình lớn hơn một chút so với yêu cầu của nó thì không gian bộ nhớ còn lại trong khối được gọi là phân mảnh bên trong. Khi quá trình cư trú trong phân vùng chấm dứt, phân vùng sẽ khả dụng cho quy trình khác.

Trong sơ đồ phân vùng biến, hệ điều hành duy trì một bảng cho biết, phân vùng nào của bộ nhớ là miễn phí và chiếm bởi các quy trình. Việc cấp phát bộ nhớ liền kề sẽ nhanh chóng thực hiện quy trình bằng cách giảm chi phí dịch thuật địa chỉ.

Định nghĩa Phân bổ bộ nhớ không liền kề

Phân bổ bộ nhớ không liền kề cho phép một quá trình thu được một số khối bộ nhớ tại vị trí khác nhau trong bộ nhớ theo yêu cầu của nó. Việc cấp phát bộ nhớ không liên tục cũng làm giảm lãng phí bộ nhớ do phân mảnh bên trong và bên ngoài. Vì nó sử dụng các lỗ nhớ, được tạo ra trong quá trình phân mảnh bên trong và bên ngoài.

Phân trang và phân đoạn là hai cách cho phép không gian địa chỉ vật lý của một quá trình không tiếp giáp nhau. Trong phân bổ bộ nhớ không liền kề, quá trình được chia thành các khối (trang hoặc phân đoạn) được đặt vào khu vực khác nhau của không gian bộ nhớ theo tính khả dụng của bộ nhớ.

Phân bổ bộ nhớ không liên tục có một lợi thế là giảm lãng phí bộ nhớ, nhưng nó làm tăng chi phí dịch thuật địa chỉ. Vì các phần của quy trình được đặt ở một vị trí khác trong bộ nhớ, nó làm chậm quá trình thực thi bộ nhớ vì thời gian được sử dụng trong dịch địa chỉ.

Ở đây, hệ điều hành cần duy trì bảng cho từng quy trình chứa địa chỉ cơ sở của từng khối được quy trình thu được trong không gian bộ nhớ.

Sự khác biệt chính giữa Phân bổ bộ nhớ liền kề và không liên tục

  1. Sự khác biệt cơ bản giữa phân bổ bộ nhớ liền kề và không liên tục là phân bổ liền kề phân bổ một khối bộ nhớ liền kề duy nhất cho quá trình trong khi đó, phân bổ không liên tục chia quá trình thành nhiều khối và đặt chúng vào không gian địa chỉ khác nhau của bộ nhớ tức là theo cách không liên tục .
  2. Trong phân bổ bộ nhớ liền kề, quá trình được lưu trữ trong không gian bộ nhớ liền kề; do đó không có chi phí dịch thuật địa chỉ trong quá trình thực thi. Nhưng trong phân bổ bộ nhớ không liên tục, có một chi phí dịch thuật địa chỉ trong khi thực hiện quy trình, vì các khối quy trình được trải trong không gian bộ nhớ.
  3. Quá trình được lưu trữ trong bộ nhớ liền kề thực thi nhanh hơn so với quá trình được lưu trữ trong không gian bộ nhớ không liền kề.
  4. Giải pháp cho việc cấp phát bộ nhớ liền kề là phân chia không gian bộ nhớ thành phân vùng có kích thước cố định và chỉ phân bổ một phân vùng cho một quy trình duy nhất. Mặt khác, trong phân bổ bộ nhớ không liên tục, một quá trình được chia thành nhiều khối và mỗi khối được đặt ở những vị trí khác nhau trong bộ nhớ tùy theo sự sẵn có của bộ nhớ.
  5. Trong phân bổ bộ nhớ liền kề, hệ điều hành phải duy trì một bảng cho biết phân vùng nào có sẵn cho quy trình và phân vùng nào bị chiếm bởi quy trình. Trong cấp phát bộ nhớ không liên tục, một bảng được duy trì cho mỗi quy trình cho biết địa chỉ cơ sở của từng khối của quy trình được đặt trong không gian bộ nhớ.

Phần kết luận:

Phân bổ bộ nhớ liền kề không tạo ra bất kỳ chi phí nào và tăng tốc độ thực thi của quy trình nhưng làm tăng lãng phí bộ nhớ . Đổi lại, việc cấp phát bộ nhớ không liên tục tạo ra các chi phí dịch thuật địa chỉ, làm giảm tốc độ thực thi của một quá trình, nhưng làm tăng việc sử dụng bộ nhớ . Vì vậy, có những ưu và nhược điểm của cả hai phương pháp phân bổ.

Top