Quản lý bộ nhớ trong hệ điều hành: Liền kề, Hoán đổi, Phân mảnh

Mục lục:

Anonim

Quản lý bộ nhớ là gì?

Quản lý bộ nhớ là quá trình kiểm soát và điều phối bộ nhớ máy tính, gán các phần được gọi là khối cho các chương trình đang chạy khác nhau để tối ưu hóa hiệu suất tổng thể của hệ thống.

Đây là chức năng quan trọng nhất của hệ điều hành quản lý bộ nhớ chính. Nó giúp các tiến trình di chuyển qua lại giữa bộ nhớ chính và đĩa thực thi. Nó giúp OS theo dõi mọi vị trí bộ nhớ, bất kể nó được cấp cho một số tiến trình hay nó vẫn còn trống.

Trong phần hướng dẫn về hệ điều hành này, bạn sẽ học:

  • Quản lý bộ nhớ là gì?
  • Tại sao sử dụng Quản lý bộ nhớ?
  • Kỹ thuật quản lý bộ nhớ
  • Hoán đổi là gì?
  • Cấp phát bộ nhớ là gì?
  • Phân trang là gì?
  • Phương pháp phân mảnh là gì?
  • Phân khúc là gì?
  • Tải động là gì?
  • Liên kết động là gì?
  • Sự khác biệt giữa tải tĩnh và tải động
  • Sự khác biệt giữa liên kết tĩnh và liên kết động

Tại sao sử dụng Quản lý bộ nhớ?

Dưới đây là những lý do để sử dụng quản lý bộ nhớ:

  • Nó cho phép bạn kiểm tra lượng bộ nhớ cần được cấp phát cho các tiến trình quyết định bộ xử lý nào sẽ nhận được bộ nhớ vào thời điểm nào.
  • Theo dõi bất cứ khi nào khoảng không quảng cáo được giải phóng hoặc không được phân bổ. Theo nó sẽ cập nhật trạng thái.
  • Nó phân bổ không gian cho các quy trình ứng dụng.
  • Nó cũng đảm bảo rằng các ứng dụng này không can thiệp vào nhau.
  • Giúp bảo vệ các quy trình khác nhau khỏi nhau
  • Nó đặt các chương trình vào bộ nhớ để bộ nhớ được sử dụng hết mức.

Kỹ thuật quản lý bộ nhớ

Dưới đây là một số kỹ thuật quản lý bộ nhớ quan trọng nhất:

Phân bổ liền kề đơn

Đây là kỹ thuật quản lý bộ nhớ dễ dàng nhất. Trong phương pháp này, tất cả các loại bộ nhớ của máy tính ngoại trừ một phần nhỏ được dành riêng cho hệ điều hành đều có sẵn cho một ứng dụng. Ví dụ, hệ điều hành MS-DOS cấp phát bộ nhớ theo cách này. Hệ thống nhúng cũng chạy trên một ứng dụng duy nhất.

Phân bổ phân vùng

Nó chia bộ nhớ chính thành các phân vùng bộ nhớ khác nhau, chủ yếu là các vùng bộ nhớ liền kề. Mọi phân vùng đều lưu trữ tất cả thông tin cho một nhiệm vụ hoặc công việc cụ thể. Phương pháp này bao gồm phân bổ một phân vùng cho một công việc khi nó bắt đầu và hủy phân bổ khi nó kết thúc.

Quản lý bộ nhớ theo trang

Phương pháp này chia bộ nhớ chính của máy tính thành các đơn vị có kích thước cố định được gọi là khung trang. Đơn vị quản lý bộ nhớ phần cứng này ánh xạ các trang thành các khung nên được phân bổ trên cơ sở trang.

Quản lý bộ nhớ được phân đoạn

Bộ nhớ phân đoạn là phương pháp quản lý bộ nhớ duy nhất không cung cấp cho chương trình của người dùng một không gian địa chỉ tuyến tính và liền kề.

Phân đoạn cần hỗ trợ phần cứng dưới dạng bảng phân đoạn. Nó chứa địa chỉ vật lý của phần trong bộ nhớ, kích thước và các dữ liệu khác như các bit và trạng thái bảo vệ truy cập.

Hoán đổi là gì?

Swapping là một phương pháp trong đó quá trình sẽ được hoán đổi tạm thời từ bộ nhớ chính sang bộ lưu trữ sao lưu. Sau đó nó sẽ được đưa trở lại bộ nhớ để tiếp tục thực hiện.

Kho lưu trữ sao lưu là một đĩa cứng hoặc một số thiết bị lưu trữ phụ khác phải đủ lớn để chứa các bản sao của tất cả hình ảnh bộ nhớ cho tất cả người dùng. Nó cũng có khả năng cung cấp quyền truy cập trực tiếp vào các hình ảnh bộ nhớ này.

Lợi ích của Hoán đổi

Dưới đây là những lợi ích / ưu điểm chính của việc hoán đổi:

  • Nó cung cấp mức độ đa chương trình cao hơn.
  • Cho phép di dời năng động. Ví dụ, nếu ràng buộc địa chỉ tại thời điểm thực thi đang được sử dụng, thì các quá trình có thể được hoán đổi ở các vị trí khác nhau. Trong trường hợp ràng buộc thời gian biên dịch và tải, các quy trình phải được chuyển đến cùng một vị trí.
  • Nó giúp sử dụng bộ nhớ tốt hơn.
  • Mức lãng phí thời gian CPU tối thiểu khi hoàn thành để có thể dễ dàng áp dụng phương pháp lập lịch dựa trên mức độ ưu tiên để cải thiện hiệu suất của nó.

Cấp phát bộ nhớ là gì?

Cấp phát bộ nhớ là một quá trình mà các chương trình máy tính được cấp phát bộ nhớ hoặc không gian.

Ở đây, bộ nhớ chính được chia thành hai loại phân vùng

  1. Bộ nhớ thấp - Hệ điều hành nằm trong loại bộ nhớ này.
  2. Bộ nhớ cao - Các quy trình của người dùng được lưu giữ trong bộ nhớ cao.

Phân bổ phân vùng

Bộ nhớ được chia thành các khối hoặc phân vùng khác nhau. Mỗi quy trình được phân bổ theo yêu cầu. Phân bổ phân vùng là một phương pháp lý tưởng để tránh phân mảnh nội bộ.

Dưới đây là các lược đồ phân bổ phân vùng khác nhau:

  • First Fit : Trong kiểu phù hợp này, phân vùng được cấp phát, là khối đủ đầu tiên tính từ đầu của bộ nhớ chính.
  • Phù hợp nhất: Nó phân bổ quá trình cho phân vùng là phân vùng nhỏ nhất đầu tiên trong số các phân vùng miễn phí.
  • Worst Fit: Nó phân bổ tiến trình vào phân vùng, đây là phân vùng đủ tự do đủ lớn nhất trong bộ nhớ chính.
  • Fit tiếp theo: Nó gần giống với Fit đầu tiên, nhưng Fit này, tìm kiếm phân vùng đủ đầu tiên từ điểm phân bổ cuối cùng.

Phân trang là gì?

Phân trang là một cơ chế lưu trữ cho phép OS truy xuất các tiến trình từ bộ nhớ thứ cấp vào bộ nhớ chính dưới dạng các trang. Trong phương pháp phân trang, bộ nhớ chính được chia thành các khối nhỏ có kích thước cố định của bộ nhớ vật lý, được gọi là khung. Kích thước của khung phải được giữ bằng kích thước của một trang để sử dụng tối đa bộ nhớ chính và tránh phân mảnh bên ngoài. Phân trang được sử dụng để truy cập dữ liệu nhanh hơn và nó là một khái niệm logic.

Phân mảnh là gì?

Các quy trình được lưu trữ và xóa khỏi bộ nhớ, điều này tạo ra không gian bộ nhớ trống, quá nhỏ để các quy trình khác sử dụng.

Đôi khi, các tiến trình không thể cấp phát cho các khối bộ nhớ vì kích thước nhỏ và các khối bộ nhớ luôn không được sử dụng được gọi là phân mảnh. Loại vấn đề này xảy ra trong hệ thống cấp phát bộ nhớ động khi các khối trống khá nhỏ, vì vậy nó không thể đáp ứng bất kỳ yêu cầu nào.

Hai loại phương pháp Phân mảnh là:

  1. Phân mảnh bên ngoài
  2. Phân mảnh nội bộ
  • Có thể giảm phân mảnh bên ngoài bằng cách sắp xếp lại nội dung bộ nhớ để đặt tất cả bộ nhớ trống lại với nhau trong một khối duy nhất.
  • Sự phân mảnh bên trong có thể được giảm bớt bằng cách gán phân vùng nhỏ nhất, vẫn đủ tốt để thực hiện toàn bộ quá trình.

Phân khúc là gì?

Phương pháp phân đoạn hoạt động gần như tương tự như phân trang. Sự khác biệt duy nhất giữa hai phân đoạn là các phân đoạn có độ dài thay đổi, trong khi, trong phương pháp phân trang, các trang luôn có kích thước cố định.

Một phân đoạn chương trình bao gồm chức năng chính của chương trình, các cấu trúc dữ liệu, các chức năng tiện ích, v.v. Hệ điều hành duy trì một bảng bản đồ phân đoạn cho tất cả các quá trình. Nó cũng bao gồm danh sách các khối bộ nhớ trống cùng với kích thước, số phân đoạn và vị trí bộ nhớ của nó trong bộ nhớ chính hoặc bộ nhớ ảo.

Tải động là gì?

Tải động là một quy trình của một chương trình không được tải cho đến khi chương trình gọi nó. Tất cả các quy trình phải được chứa trên đĩa ở định dạng tải có thể di chuyển lại được. Chương trình chính sẽ được nạp vào bộ nhớ và sẽ được thực thi. Tải động cũng cung cấp khả năng sử dụng không gian bộ nhớ tốt hơn.

Liên kết động là gì?

Liên kết là một phương pháp giúp OS thu thập và hợp nhất các mô-đun mã và dữ liệu khác nhau thành một tệp thực thi duy nhất. Tệp có thể được tải vào bộ nhớ và thực thi. Hệ điều hành có thể liên kết các thư viện cấp hệ thống thành một chương trình kết hợp các thư viện tại thời điểm tải. Trong phương pháp liên kết động, các thư viện được liên kết tại thời điểm thực thi, vì vậy kích thước mã chương trình có thể vẫn nhỏ.

Sự khác biệt giữa tải tĩnh và tải động

Tải tĩnh Tải động
Tải tĩnh được sử dụng khi bạn muốn tải chương trình của mình một cách tĩnh. Sau đó, tại thời điểm biên dịch, toàn bộ chương trình sẽ được liên kết và biên dịch mà không cần bất kỳ mô-đun bên ngoài hoặc phụ thuộc chương trình nào. Trong chương trình được tải động, các tham chiếu sẽ được cung cấp và quá trình tải sẽ được thực hiện tại thời điểm thực thi.
Tại thời điểm tải, toàn bộ chương trình được tải vào bộ nhớ và bắt đầu thực thi. Các quy trình của thư viện chỉ được tải vào bộ nhớ khi chúng được yêu cầu trong chương trình.

Sự khác biệt giữa liên kết tĩnh và liên kết động

Dưới đây là sự khác biệt chính giữa Liên kết tĩnh và Liên kết động:

Liên kết tĩnh Liên kết động
Liên kết tĩnh được sử dụng để kết hợp tất cả các mô-đun khác, được chương trình yêu cầu thành một mã thực thi duy nhất. Điều này giúp OS ngăn chặn bất kỳ sự phụ thuộc nào vào thời gian chạy. Khi liên kết động được sử dụng, nó không cần phải liên kết mô-đun hoặc thư viện thực với chương trình. Thay vì nó sử dụng một tham chiếu đến mô-đun động được cung cấp tại thời điểm biên dịch và liên kết.

Tóm lược:

  • Quản lý bộ nhớ là quá trình kiểm soát và điều phối bộ nhớ máy tính, gán các phần được gọi là khối cho các chương trình đang chạy khác nhau để tối ưu hóa hiệu suất tổng thể của hệ thống.
  • Nó cho phép bạn kiểm tra lượng bộ nhớ cần được cấp phát cho các tiến trình quyết định bộ xử lý nào sẽ nhận được bộ nhớ vào thời điểm nào.
  • Trong Phân bổ Liền kề Đơn, tất cả các loại bộ nhớ của máy tính ngoại trừ một phần nhỏ được dành riêng cho Hệ điều hành đều có sẵn cho một ứng dụng
  • Phương pháp phân bổ phân vùng chia bộ nhớ chính thành các phân vùng bộ nhớ khác nhau, chủ yếu là các vùng bộ nhớ liền kề
  • Phương pháp quản lý bộ nhớ theo trang chia bộ nhớ chính của máy tính thành các đơn vị có kích thước cố định được gọi là khung trang
  • Bộ nhớ phân đoạn là phương pháp quản lý bộ nhớ duy nhất không cung cấp cho chương trình của người dùng một không gian địa chỉ tuyến tính và liền kề.
  • Swapping là một phương pháp trong đó quá trình sẽ được hoán đổi tạm thời từ bộ nhớ chính sang bộ lưu trữ sao lưu. Sau đó nó sẽ được đưa trở lại bộ nhớ để tiếp tục thực hiện.
  • Cấp phát bộ nhớ là một quá trình mà các chương trình máy tính được cấp phát bộ nhớ hoặc không gian.
  • Phân trang là một cơ chế lưu trữ cho phép OS truy xuất các tiến trình từ bộ nhớ thứ cấp vào bộ nhớ chính dưới dạng các trang.
  • Phân mảnh đề cập đến tình trạng của đĩa trong đó các tệp được chia thành nhiều phần nằm rải rác xung quanh đĩa.
  • Phương pháp phân đoạn hoạt động gần như tương tự như phân trang. Sự khác biệt duy nhất giữa hai phân đoạn là các phân đoạn có độ dài thay đổi, trong khi, trong phương pháp phân trang, các trang luôn có kích thước cố định.
  • Tải động là một quy trình của một chương trình không được tải cho đến khi chương trình gọi nó.
  • Liên kết là một phương pháp giúp OS thu thập và hợp nhất các mô-đun mã và dữ liệu khác nhau thành một tệp thực thi duy nhất.