Quản lý bộ nhớ

Một phần của tài liệu Bài giảng kiến trúc máy tính it02 Đại học mở hà nội (Trang 97 - 103)

BÀI 3: NỘI DUNG: TỔ CHỨC BUS VÀ TỔ CHỨC BỘ NHỚ

3.8. Quản lý bộ nhớ

Bộ nhớ máy tính được xây dựng trên nhiều loại công nghệ và thiết bị nhớ khác nhau. Bộ nhớ máy tính được tổ chức thành một hệ thống có phân cấp, nhằm đáp ứng được yêu cầu về một bộ nhớ có tốc độ truy nhập cao, dung lượng nhớ lớn và có giá thành thấp. Trong hệ thống bộ nhớ nhiều mức, bộ nhớ chính và bộ nhớ thứ cấp nằm ở hai mức khác nhau, được xây dựng trên cơ sở các thiết bị công nghệ khác nhau, nhưng khi cấp cho người sử dụng thì lại ở dưới dạng một bộ nhớ đơn nhất. Hệ điều hành của máy tính cung cấp cho

Kiến trúc máy tính – Bài 3 Trang 24 người sử dụng một bộ nhớ có dung lượng lớn, đơn nhất và có địa chỉ tuyến tính. Kiểu bộ nhớ này còn được gọi là bộ nhớ ảo (vitual memory). Địa chỉ của

ô nhớ trong bộ nhớ ảo gọi là địa chỉ ảo hoặc địa chỉ logic. Lý do của việc tổ chức, xây dựng và quản lý bộ nhớ ảo là để giải phóng chương trình của người

sử dụng khỏi việc phải quản lý trực tiếp vị trí vật lý của các ô nhớ và không gian nhớ, làm cho việc viết và thực hiện chương trình không bị phụ thuộc vào kích thước của bộ nhớ vật lý thực và cấu tạo của nó. Bộ nhớ nhiều mức được quản lý thống nhất còn cho phép tạo ra một bộ nhớ với không gian địa chỉ (ảo) rất lớn, tạo khả năng sử dụng không gian nhớ một cách tối ưu, cũng như cho phép bảo vệ các vùng nhớ trước những truy cập trái phép từ bên trong một quá trình hoặc từ các quá trình khác. Việc quản lý bộ nhớ được thực hiện bởi hệ điều hành của máy tính. Có hai kỹ thuật được sử dụng để quản lý bộ nhớ ảo,

đó là kỹ thuật phân đoạn (segmentation) và kỹ thuật phân trang (paging).

3.8.1. Quản lý bộ nhớ theo phân đoạn

Cơ chế quản lý bộ nhớ ảo theo phân đoạn (cơ chế phân đoạn) là cơ chế trong đó bộ nhớ được chia nhỏ, được định vị và giám sát theo đoạn. Phân đoạn (segmentation) cho phép người viết chương trình nhìn bộ nhớ (ảo) như là tập hợp của các đoạn (segment), do vậy người viết chương trình có thể tổ chức, quản lý chương trình và dữ liệu của mình một cách khá thuận tiện, như tổ chức chương trình thành các module chương trình chính, chương trình con và các module dữ liệu. Trong cơ chế phân đoạn mỗi một chương trình không được xem là một chuỗi liên tục của mã lệnh và dữ liệu mà được chia thành các module mã lệnh, dữ liệu, ngăn xếp v.v. Hệ điều hành cấp một vùng nhớ (một vùng địa chỉ) trong bộ nhớ ảo cho mỗi module mã lệnh và dữ liệu của

Kiến trúc máy tính – Bài 3 Trang 25 chương trình cần được thực thi, các vùng nhớ đó được gọi là đoạn (segment). Mỗi một đoạn được hệ điều hành gán một tên hoặc một địa chỉ, gọi là địa chỉ đoạn (Hình 45). Quản lý bộ nhớ theo phân đoạn cho phép gán các thuộc tính như mức đặc quyền và quyền truy nhập cho đoạn v.v., qua đó tạo khả năng quản lý các đoạn chương trình và dữ liệu đó. Việc phân đoạn còn cho phép hệ điều hành quản lý nhiều chương trình cùng chạy đồng thời trong bộ nhớ và

sử dụng tối ưu không gian nhớ (hình sau đây)

Đoạn A

Đoạn B

Đoạn C

Đoạn D

Đoạn E

Đoạn D

Đoạn E

Đoạn A

Đoạn B

Cơ chế ánh xạ đoạn

Chương trình X

Chương trình Y

Mỗi một ô nhớ trong mỗi đoạn được định vị bằng một địa chỉ ảo, địa chỉ

ảo còn được gọi là địa chỉ logic của ô nhớ. Địa chỉ logic là một cặp con số: địa chỉ đoạn và địa chỉ offset. Địa chỉ đoạn xác định vị trí của đoạn trong bộ nhớ

ảo. Địa chỉ offset là con số xác định vị trí của ô nhớ (khoảng dịch-displacement) so với nền đoạn chứa nó. Về mặt vật lý, chương trình cần được thực thi được chứa ở bộ nhớ thứ cấp. Khi chương trình được thực hiện, nó được hệ điều hành nạp từ bộ nhớ thứ cấp vào bộ nhớ chính. Việc chuyển chương trình từ bộ nhớ thứ cấp vào bộ nhớ chính (bộ nhớ vật lý) và truy nhập

bộ nhớ chính được thực hiện theo cơ chế ánh xạ địa chỉ (cơ chế ánh xạ đoạn). Việc ánh xạ không gian nhớ ảo sang bộ nhớ vật lý thực và chuyển địa chỉ ảo sang địa chỉ vật lý thực có thể được thực hiện theo nhiều cơ chế. Địa chỉ thực

Kiến trúc máy tính – Bài 3 Trang 26 của ô nhớ vật lý có thể được tính từ địa chỉ nền đoạn vật lý và địa chỉ offset, trong đó địa chỉ nền đoạn vật lý có thể được tính trực tiếp từ địa chỉ đoạn (ảo), hoặc được xác định qua bộ chọn đoạn và bảng đoạn. Bảng đoạn chứa địa chỉ nền vật lý của các đoạn (hình dưới đây), nằm ở bộ nhớ chính. Trong trường hợp sử dụng bảng đoạn, địa chỉ logic của ô nhớ là một cặp con số: bộ chọn đoạn và địa chỉ offset. Bộ chọn đoạn là con số chỉ ra nơi chứa địa chỉ vật lý nền đoạn trong bảng đoạn (hình dưới đây)

Kiểu tổ chức và quản lý bộ nhớ theo phân đoạn mang lại hàng loạt lợi ích:

o Do mỗi cấu trúc dữ liệu được gán một đoạn riêng (có địa chỉ và kích thước riêng), nên hệ điều hành có thể co giãn đoạn nếu cần, ví dụ như với trường hợp cấu trúc dữ liệu kiểu ngăn xếp. Nhờ vậy mà người viết chương trình không buộc phải dự đoán về

sự thay đổi của kích thước dữ liệu để đăng ký sử dụng bộ nhớ.

o Cho phép người lập trình có thể thay đổi chương trình và dịch lại từng phần chương trình mà không cần phải dịch và liên kết lại toàn bộ chương trình.

o Phương pháp quản lý bộ nhớ thông qua bảng đoạn tạo khả năng quản lý không gian nhớ ảo rất lớn.

o Cho phép hệ điều hành sử dụng hiệu quả các vùng nhớ được giải phóng khi một quá trình nào đó kết thúc.

o Cho phép gán các thuộc tính bảo vệ hoặc quyền truy nhập cho đoạn, qua đó có thể thực hiện cơ chế bảo vệ đoạn chứa chương trình hoặc dữ liệu.

3.8.2. Quản lý bộ nhớ theo phân trang

Kiểu quản lý bộ nhớ ảo theo phân đoạn rất thích hợp cho việc sử dụng tối

ưu bộ nhớ và quản lý tiến trình và cũng thuận tiện cho cả người lập trình. Tuy

Kiến trúc máy tính – Bài 3 Trang 27 nhiên khi quản lý một bộ nhớ có nhiều mức, hệ điều hành còn luôn phải thực hiện thao tác hoán đổi dữ liệu giữa các mức nhớ, ví dụ như hoán đổi dữ liệu giữa bộ nhớ chính (RAM) và bộ nhớ thứ cấp (thiết bị đĩa từ v.v.). Phương pháp quản lý bộ nhớ phù hợp ở đây là phương pháp phân trang (paging), trong đó bộ nhớ ảo được chia thành các trang. Đơn vị thông tin cơ bản được dùng trong việc hoán đổi là một khối có kích thước cố định, ví dụ 4 Kbyte, gọi

là trang (page). Mỗi một chương trình hoặc dữ liệu khi được thực hiện sẽ được cấp một vùng nhớ trong bộ nhớ ảo, gồm các trang (ảo) cùng địa chỉ trang tương ứng và người viết chương trình không nhìn thấy điều này. Địa chỉ của ô nhớ trong bộ nhớ ảo, còn gọi là địa chỉ ảo hoặc địa chỉ logic, là một cặp con số: địa chỉ trang và khoảng dịch. Để phù hợp với cách quản lý bộ nhớ theo phân trang, bộ nhớ chính vật lý cũng được chia thành các khung trang (page frames). Khung trang có kích thước giống như trang của bộ nhớ ảo.

Chương trình cần được thực hiện nằm ở bộ nhớ thứ cấp, được coi như là tập hợp của các trang chương trình, sẽ được nạp vào bộ nhớ chính theo từng trang khi có yêu cầu và từ bộ nhớ chính các lệnh máy mới được nhập vào CPU để thực thi. Việc chuyển các trang chương trình từ bộ nhớ thứ cấp vào bộ nhớ chính (bộ nhớ vật lý) và truy nhập bộ nhớ chính được thực hiện theo cơ chế ánh xạ địa chỉ (cơ chế chuyển địa chỉ). Quá trình chuyển địa chỉ ảo và địa chỉ trang ảo thành địa chỉ khung trang và địa chỉ vật lý được thực hiện nhờ một bảng trang (hình dưới đây). Bảng trang là tập hợp của các mục bảng trang, trong đó mỗi mục bảng trang chứa một địa chỉ vật lý của khung trang. Bảng trang, có một tên gọi khác là bảng địa chỉ bộ nhớ, nằm ở bộ nhớ vật lý. Địa chỉ trang (ảo) xác định vị trí của mục bảng trang, nơi chứa địa chỉ vật lý của

Kiến trúc máy tính – Bài 3 Trang 28 khung trang tương ứng. Địa chỉ vật lý của ô nhớ cần truy cập trong bộ nhớ vật

lý được tính bằng cách cộng địa chỉ khung trang vật lý với khoảng dịch.

Trang 0

Trang 1

Trang 4 Trang 2

Trang 5 Trang 3

Trang 0 C.t. X

Trang 2 C.t. X

Trang 3 C.t. X Trang 1 C.t. X

Trang 4 C.t. X 24

25

32 26

31

24 50

1 50

Trang 6

23

24

25

26 . . . . . . . . . . 31

32 Địa chỉ vật lý

(thực)

Bộ nhớ vật lý

Bảng trang Chương trình X

Bộ nhớ ảo

Địa chỉ logic (ảo)

Địa chỉ Khung trang

Chương trình

X

Chương trình

Y

Mỗi một phương pháp quản lý bộ nhớ, kiểu phân đoạn hay phân trang, đều có những ưu điểm riêng, do vậy trên nhiều hệ thống máy tính người ta đã kết hợp hai phương pháp này với nhau để tạo nên một phương pháp kết hợp quản lý bộ nhớ kiểu phân đoạn-phân trang. Máy vi tính PC sử dụng hệ điều hành Windows là một ví dụ về cách quản lý bộ nhớ theo kiểu kết hợp này.

Bộ đệm TLB.

Với cơ chế quản lý theo phân trang, mỗi một lần quy chiếu bộ nhớ cần hai lần truy cập bộ nhớ vật lý, một lần để đọc mục bảng trang và một lần để truy cập dữ liệu trong bộ nhớ vật lý. Nếu như vậy cơ chế quản lý này sẽ làm tăng gấp đôi thời gian truy cập bộ nhớ. Để giảm thời gian truy cập bộ nhớ,

Kiến trúc máy tính – Bài 3 Trang 29 một phần của bảng trang, gồm các mục bảng trang được truy cập thường xuyên nhất, được đặt trong đơn vị quản lý bộ nhớ MMU (Memory

Management Unit) của đơn vị xử lý trung tâm CPU. Phần chứa thông tin này được gọi là bộ đệm TLB (Translation Look-aside Buffer) (hình dưới đây).

Khi cần truy cập bộ nhớ vật lý, bộ đệm TLB được đọc đầu tiên và địa chỉ trang ảo (trong địa chỉ logic) được dùng để chỉ ra mục bảng trang (nơi chứa địa chỉ khung trang vật lý) ở trong TLB. Địa chỉ khung trang này được cộng với khoảng dịch để tạo ra địa chỉ vật lý của ô nhớ.

Một phần của tài liệu Bài giảng kiến trúc máy tính it02 Đại học mở hà nội (Trang 97 - 103)

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

(222 trang)