III.5 Sự phõn trang/đoạn trong hệ điều hành Windown NT

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

Windows NT được thiết kế để cài đặt trờn nhiều họ processor khỏc nhau, đặc biệt là trờn cỏc processor Intel 486. Trờn cỏc hệ thống PC IBM và tương thớch sử dụng Intel 486,

Chương III: Quản lý Bộ nhớ 129

Windows chấp nhận kớch thước của một page là 4KB, đõy là cơ sở để thực hiện chiến lược bộ nhớ ảo của Windows NT.

III.5.a. Segmentation:

Khi sự phõn đoạn được sử dụng, mỗi địa chỉ ảo (trong cỏc tài liệu 80386 được gọi là địa chỉ logic) bao gồm 16 bớt segment và 32 bớt offset. Hai bớt đầu tiờn của segment được sử dụng trong chiến lược bảo vệ bộ nhớ, 14 bớt cũn lại dựng để chỉ đến một segment cụ thể. Do đú với bộ nhớ khụng được phõn đoạn, bộ nhớ ảo của chương trỡnh người sử dụng là 232 = 4GB. Với bộ nhớ được phõn đoạn, tổng khụng gian bộ nhớ ảo được nhỡn bởi chương trỡnh người sử dụng là 246 = 64TB. Khụng gian địa chỉ vật lý 32 bớt cho kớch thước tối đa là 4GB. Lượng bộ nhớ ảo thực tế cú thể lớn hơn 64TB: Đối với 80386 địa chỉ ảo phụ thuộc vào processor đang sử dụng. Một nửa khụng gian địa chỉ ảo (8K segment x 4GB) là khụng gian chung, được chia sẻ cho tất cả cỏc tiến trỡnh, phần cũn lại là địa chỉ cục bộ và dành riờng cho mỗi tiến trỡnh.

Gắn liền với mỗi đoạn là 2 dạng thức của sự bảo vệ: mức đặc quyền (privilege level) và thuộc tớnh truy cập (access attribue). Cú 4 mức đặc quyền, từ được bảo vệ cao nhất đến được bảo vệ thấp nhất: level 0, level 1, level 2, level 3. Mức đặc quyền cú thể được gắn với segment dữ liệu hoặc với program segment. Một chương trỡnh thực hiện chỉ cú thể truy cập dữ liệu trong segment khi mức đặc quyền của nú thấp hơn hoặc bằng mức đặc quyền gắn với segment dữ liệu. Phần cứng khụng bắt buộc sử dụng cấp đặc quyền nào, việc này do cỏc nhà thiết kế hệ điều hành quyết định. Thuộc tớnh truy cập của một segment dữ liệu chỉ ra cú hay khụng sự cho phộp truy cập read/write hoặc read-only. Đối với cỏc segment program, thuộc tớnh truy cập chỉ ra cú hay khụng truy cập read/excute hoặc read-only.

Chiến lược chuyển đổi địa chỉ cho sự phõn đoạn gồm ỏnh xạ một địa chỉ ảo thành địa chỉ tuyến tớnh và địa chỉ tuyến tớnh thành địa chỉ thực. Dạng thức của địa chỉ ảo trong NT được mụ tả trong hỡnh sau:

47 35 34 33 31 0

Segment number TI RPL Offset

a. Địa chỉ ảo

31 21 12 0

Directory Page Offset

b. Địa chỉ tuyến tớnh

Hỡnh 3.18.a: Địachỉ ảo và địa chỉ tuyến tớnh của Intel 80486

Table indecator (TI): 1 bớt, cho biết cú hay khụng một global segment table hay local segment table là được sư dụng cho việc chuyển đổi địa chỉ.

Segment number: 13 bớt, là số hiệu của segment, nú được xem như là một chỉ mục vào segment table.

Offset: 32 bớt, khoảng cỏch từ một byte được đỏnh địa chỉ so với đầu segment.

Requested privilege level (RPL): 2 bớt, mức đặc quyền truy cập được yờu cầu cho truy cập này.

Mỗi phần tử trong segment table bao gồm 64bit, được mụ tả như hỡnh sau:

31 21 15 0

Base 31..24 G 000 Limit 19..16 P Dpl 1 Type A Base 23..16 Segment Base 0...15 Segment Limit 15...0

Hỡnh 3.18.b: Một phần tử trong segment table

Limit: đõy là kớch thước của segment. Kớch thước tối đa của một segment cú thể là 1Mb (1 đơn vị = 1byte) hoặc 4Gb (1 đơn vị = 4Kb, điều này phụ thuộc vào bớt Granularity).

Base: cho biết địa chỉ bắt đầu của segment trong khụng gian tuyến tớnh 4Gb.

Accessed bit (A): khi segment tương ứng được truy cập thỡ bớt này bằng 1. Cỏc hệ điều hành sử dụng hệ thống bộ nhớ segmented – nonpaged dựng bớt này để theo dừi việc sử dung cỏc segment. Đối với cỏc hệ thống paged thỡ bớt này bỏ qua.

Type: cho biết đặc tớnh của cỏc loại segment khỏc nhau và chỉ ra cỏc thuộc tớnh truy cập.

Descriptor privilege level (DPL): chỉ ra mức đặc quyền của segment (0-3).

Segment present bit (P): trong cỏc hệ thống khụng được phõn trang, bớt này cho biết segment cú trong bộ nhớ chớnh hay khụng. Trong cỏc hệ thống phõn trang bớt này luụn luụng bằng a.

Granularity bit (G): cho biết một đơn vị cấp phỏt là là 1 byte hay 4Kb (page). Bớt này kết hợp với trường limit để tớnh kớch thước của một segment.

III.5.b. Paging:

Sự phõn đoạn là sự lựa chọn cho tương lai và cú thể khú cài đặt được. Khi sự phõn đoạn được sử dụng, địa chỉ được sử dụng trong chuơng trỡnh là địa chỉ ảo và được chuyển thành địa chỉ tuyến tớnh. Khi sự phõn đoạn khụng được sử dụng, địa chỉ được sử dụng trong chuơng trỡnh là địa chỉ tuyến tớnh. Trong cả hai trường hợp địa chỉ tuyến tớnh đều được chuyển thành địa chỉ thực 32bit.

Trong chiến lược phõn trang của 80386, 80386 sử dụng bản trang 2 cấp. Cấp đầu tiờn là thư mục bản trang (page directory), cấp thứ hai là bản trang (page table). Page directory cú thể gồm 1024 phần tử. Tức là nú chia 4Gb khụng gian địa chỉ bộ nhớ thành 1024 nhúm trang, mỗi nhúm trang gồm 4Mb và sở hữu một bản trang riờng. Mỗi bản trang gồm 1024 phần tử, mỗi phần tử tương ứng với một trang đơn 4KB. Cỏc hệ điều hành cú thể lựa chọn sử dụng một page directory cho tất cả cỏc tiến trỡnh hoặc mỗi tiến trỡnh cú một page directory riờng hoặc kết hợp cả hai. Page directory của tỏc vụ hiện tại nằm trong bộ nhớ chớnh, page table cú thể được chứa trong bộ nhớ ảo.

Sau đõy là dạng thức của cỏc phần tử trong page directory và page table:

31 11 0Page Table Address 31..12 Avail 00 D A 00 US RW P

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