Phõn đoạn với phõn trang trong Intel 386:

Một phần của tài liệu Chương III QUẢN lý bộ NHỚ (Trang 26 - 27)

Trong chế độ bảo vệ của 80286 và trong chế độ ảo của 80386 khụng gian bộ nhớ của hệ thống được chia thành hai loại: khụng gian bộ nhớ toàn cục và khụng gian bộ nhớ cục bộ. Khụng gian nhớ toàn cục được dành cho dữ liệu hệ thống và cỏc tiến trỡnh của hệ điều hành. Mọi chương trỡnh của người sử dụng đều cú thể truy cập dữ liệu và cỏc tiến trỡnh ở khụng gian nhớ toàn cục này. Khụng gian nhớ cục bộ được dành riờng cho cỏc tiến trỡnh, cỏc tỏc vụ riờng biệt. Vỡ vậy, cỏc đoạn mó lệnh và dữ liệu của một tiến trỡnh, một tỏc vụ nằm trong khụng gian nhớ cục bộ sẽ được bảo vệ trỏnh sự truy xuất bất hợp lệ của cỏc tiến trỡnh, cỏc tỏc vụ khỏc trong hệ thống.

Trong kỹ thuật bộ nhớ ảo Intel 80386 sử dụng 2 bảng mụ tả: Bảng mụ tả cục bộ (LDT: Local Descriptor Table), để theo dừi khụng gian nhớ cục bộ và bảng mụ tả toàn cục (GDT: Global Descriptor Table), để theo dừi khụng gian nhớ toàn cục. Mỗi chương trỡnh sở hữu một LDT riờng, nhưng cú một GDT được chia sẻ cho tất cả cỏc chương trỡnh trờn hệ thống. LDT mụ tả cỏc segment cục bộ cho mỗi chương trỡnh, bao gồm code, data, stack, …, trong khi đú GDT mụ tả cỏc segment hệ thống, của chớnh hệ điều hành. Cỏc LDT, GDT được nạp vào bộ nhớ trong quỏ trỡnh hoạt động của hệ thống, Intel 80386 dựng thanh ghi GDTR để ghi địa chỉ cơ sở và giới hạn kớch thước của GDT và thanh ghi LDTR để ghi địa chỉ cơ sở và giới hạn kớch thước của LDT của tỏc vụ hiện tại.

Để truy cập một segment, đầu tiờn một chương trỡnh chạy trờn Intel 386 phải nạp một selector của segment đú vào 1 trong 6 thanh ghi đoạn của Intel 386. Trong quỏ trỡnh thực hiện chương trỡnh thanh ghi CS giữ selector cho code segment và thanh ghi DS giữ selector cho data segment. Mỗi selector dài 16 bớt và được mụ tả như sau:

+ +

S# P#

Off

Seg Table Page Table

0 Bớt 15

13 1 2

Index 0 = GDT

Trong đú:

• Hai bớt đầu tiờn cho biết mức đặc quyền truy cập của bộ chọn đoạn, cỏc bớt này phục vụ cho cụng tỏc bảo vệ bộ nhớ (segment).

• Một bớt tiếp theo cho biết segment là cục bộ hay toàn cục.

• Mười ba bớt cũn lại chỉ đến mục vào (entry) trong LDT hoặc GDT, vỡ thế mỗi bảng mụ tả (Descriptor Table) chỉ lưu giữ được 8k (213) cỏc bộ mụ tả đoạn (segment descriptor). Tức là LDT/GDT cú 213 mục vào/ phần tử.

Tại thời điểm một selector được nạp vào một thanh ghi segment, một descriptor tương ứng được nhận từ bảng LDT hoặc GDT và được lưu trữ trong cỏc thanh ghi microprogram, do đú cú thể được truy cập nhanh. Một descriptor gồm cú 8 byte, gồm cú địa chỉ, kớch thước, và cỏc thụng tin khỏc của segment. Hỡnh sau đõy mụ t m tả ộ

Một phần của tài liệu Chương III QUẢN lý bộ NHỚ (Trang 26 - 27)