TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------------------
BÁO CÁO BÀI TẬP LỚN
MÔN: NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề số 4: Chế độ phân trang
Hãy trình bày cách IBM PC quản lý bộ nhớ theo
chế độ phân trang
Giảng viên hướng dẫn: Nguyễn Thanh Tùng
Sinh viên thực hiện: Phan Mai Hoa – 1810A01
Nguyễn Thị Vy Anh – 1810A01
Nguyễn Thị Hường – 1810A01
Hà Nội – 2020
Yêu cầu đề tài
Đề số 4: Chế độ phân trang
Hãy trình bày cách IBM PC quản lý bộ nhớ theo chế độ phân trang
Sau khi tìm hiểu và phân tích, bài làm cần đáp ứng được một số yêu cầu sau:
Về nội dung:
Công việc của quản lý bộ nhớ?
Hiểu được chế độ phân trang là như thế nào; đặc điểm của quản lý bộ nhớ
theo chế độ phân trang
Cách IBM PC quản lý bộ nhớ theo chế độ phân trang
Về hình thức
Bài báo cáo được in trên một mặt giấy trắng khổ A4 (210 x 297 mm)
Sử dụng font Times New Roman, bảng mã Unicode, cỡ chữ 14
Mật độ chữ bình thường, khơng được nén hoặc kéo dãn khoảng cách giữa
các chữ
Dãn dòng ở chế độ 1,5 line
Căn lề
Có mục lục, đánh số trang ở giữa cuối mỗi trang giấy
2
MỤC LỤC
I. Giới thiệu chung ......................................................................................... 4
1.
Công việc quản lý bộ nhớ ............................................................................. 4
2.
Quản lý bộ nhớ ở chế độ phân trang ........................................................... 5
II.
Cách IBM PC quản lý bộ nhớ theo chế độ phân trang ......................... 9
1.
Bộ nhớ trong IBM PC .................................................................................. 9
2.
Cách IBM PC quản lý bộ nhớ theo chế độ phân trang ............................. 11
III. Tài liệu tham khảo ................................................................................ 20
3
I.
Giới thiệu chung
1. Công việc quản lý bộ nhớ
Bộ nhớ trong là thành phần không thể thiếu trong bất cứ hệ thống tính tốn
nào. Kích thước bộ nhớ trong là một trong những đặc trưng quan trọng của
hệ thống. Mọi thơng tin xử lý trong máy tính điện tử đều phải đưa vào bộ
nhớ trong. Việc sử dụng bộ nhớ hợp lý sẽ tác động rất nhiều lên độ phức
tạp của giải thuật. Việc quản lý bộ nhớ phải giải quyết hai vấn đề trái ngược:
- Tận dụng tối đa bộ nhớ cho phép để giảm độ phức tạp của giải thuật
- Tiết kiệm bộ nhớ để tạo môi trường cho các chương trình khác cùng
hoạt động.
- Ngồi ra, một vấn đề không kém phần quan trọng trong môi trường đa
nhiệm và mạng là bảo vệ thông tin.
Ở mỗi thời điểm cụ thể, trên thực tế phần lớn bộ nhớ khơng tham gia vào
q trình xử lý mà chỉ đóng vai trị lưu trữ thơng tin, chuẩn bị cho các bước
xử lý tiếp theo. Những bytes ở thời điểm hiện tại tham gia vào q trình xử
lý thơng tin được gọi là các bytes tích cực. Vai trị các bytes tích cực là vơ
cùng to lớn. Hiệu quả sử dụng bộ nhớ cũng như năng suất của hệ thống phụ
thuộc nhiều vào việc có nhanh chóng đưa những bytes cần thiết vào trạng
thái tích cực hay khơng.
Nếu hạn chế dung lượng bộ nhớ trong thì khơng thể tăng tốc độ thực hiện
của bất kỳ chương trình nào cũng như khơng thể đơn giản hóa cấu trúc của
chương trình đó. Những chương trình lớn và những khối dữ liệu lớn thường
chỉ có một phận được lưu ở bộ nhớ trong, phần lớn khối lượng còn lại – lưu
ở bộ nhớ ngoài. Nhiều chiến lược quản lý bộ nhớ cho phép sử dụng bộ nhớ
ngoài như sự mở rộng trực tiếp bộ nhớ trong. Điều này đã tạo hiệu ứng như
ta có một nhớ trong kích thước vơ hạn, dẫn đến việc đơn giản hóa trong
thiết kế giải thuật và lập trình. Tuy vậy giá phải trả cho sự thuận tiện này là
4
giảm tốc độ thực hiện chương trình. Nhiệm vụ của việc quản lý bộ nhớ là
phải đảm bảo sao cho giá phải trả cho sự thuận tiện là nhỏ nhất.
Một chức năng quan trọng của hệ điều hành là bảo vệ chương trình và dữ
liệu khỏi bị hư hỏng, bị truy nhập một cách không hợp thức khi các chương
trình khác hoạt động.
Đối với các máy IBM PC thì phương pháp tổ chức và quản lý bộ nhớ được
thực hiện như sau:
- IBM PC XT chỉ thực hiện một chế độ quản lý gọi là chế độ thực (real
mode), vì vậy chế độ này cịn được gọi là chế độ XT. Không gian và bộ
nhớ vật lý và không gian bộ nhớ logic là trùng nhau.
- PC AT 286 thực hiện được cả hai chế độ quản lý bộ nhớ là chế độ thực
(real mode) và chế độ bảo vệ (protect mode). Cách quản lý ở chế độ bảo
vệ theo kiểu phân đoạn.
- PC AT 386 có hai chế độ làm việc với bộ nhớ là chế độ thực (real mode)
và chế độ bảo vệ (protect mode). Ở chế độ bảo vệ, cách quản lý được
thực hiện theo hai kiểu phân đoạn và phân trang.
2. Quản lý bộ nhớ ở chế độ phân trang
Ở chế độ này bộ nhớ được chia thành các phần bằng nhau có kích thước cố
định gọi là trang (page).
Kích thước một trang có thể là 256B, 512B, 1KB, 2KB hoặc 4KB.
Các trang được đánh số từ 0 trở đi, tạo thành địa chỉ trang.
Các máy tính IBM PC từ 386 trở lên có chế độ phân trang với kích thước
trang là 4 KB. Chương trình phải có cấu trúc phân trang và một trang biên
tập phải có kích thước bằng kích thước trang vật lý.
5
Hệ thống tạo bảng quản lý trang PCB (Page Control Block).
PCB bao gồm các phần tử, mỗi phần tử tương ứng với một trang chương
trình hoặc dữ liệu. Mỗi phần tử có 2 trường Dp và Ap.
- Dp là dấu hiệu cho biết trang đã được nạp vào bộ nhớ hay chưa.
▫ Dp = 0 – trang chưa được nạp vào bộ nhớ
▫ Dp = 1 – đã được nạp.
- Nếu trang đã được nạp vào bộ nhớ thì Ap chứa địa chỉ trang của nơi nạp.
Địa chỉ trong chương trình phải được biểu diễn dưới dạng tuyến tính,
bao gồm 2 thành phần: trang và địa chỉ tương đối tính từ đầu trang.
6
Khi thực hiện chương trình, bảng quản lý trang PCB phải được nạp vào
trong bộ nhớ và địa chỉ đầu của nó được đưa vào thanh ghi quản lý trang
Rp (Page Register).
Để đọc hoặc ghi một dữ liệu hệ thống cần 2 lần truy nhập tới bộ nhớ:
- Lần thứ nhất: lấy nội dung của thanh ghi Rp cộng với p và truy nhập tới
phần tử thứ p của PCB
7
- Lần thứ hai:
▫ Nếu Dp = 0 thì hệ thống sẽ cấp phát một trang bộ nhớ, tìm, nạp và
định trang cần thiết vào nơi đã cấp phát, cập nhật lại phần tử thứ p của
PCB
▫ Nếu Dp = 1 – lấy địa chỉ Ap ghép với d và truy nhập tới dữ liệu.
Ví dụ, với Rp = 400 và địa chỉ tuyến tính là (81, 532) ta có thể có bức tranh
truy nhập sau:
Sơ đồ truy nhập trong chế độ phân trang
Chế độ phân trang có các đặc điểm:
Hiệu quả sử dụng bộ nhớ rất cao: do đơn vị phân phối nhỏ nên lãng phí
bộ nhớ ở mỗi lần phân phối, nếu có cũng khơng lớn
Khơng có hiện tượng phân đoạn ngồi: nếu cịn bộ nhớ tự do thì có nghĩa
là cịn một số ngun lần trang, do đó yêu cầu mới, nếu có – luôn luôn
đáp ứng được (chỉ cần đúng một trang để đáp ứng yêu cầu)
8
Hiệu quả không phụ thuộc vào cấu trúc chương trình nguồn ban đầu
Truy nhập nhanh hơn chế độ quản lý theo mơ đun vì một phép tính số
học đã được thay bằng phép tính bít
Việc định vị trang thuần túy bằng con đường phần mềm sẽ mất rất nhiều
thời gian, vì vậy chỉ có các máy tính có thiết bị kỹ thuật hỗ trợ định vị
trang mới có thể triển khai chế độ quản lý này.
Nhược điểm:
Không sử dụng chung mô đun được
Việc thông báo lỗi kém tường minh
Các chương trình kích thước lớn PCB cũng sẽ lớn gây lãng phí bộ nhớ.
Tuy khơng có hiện tượng phân đoạn ngồi nhưng hệ thống vẫn cần các
cơng cụ bố trí lại để xử lý trường hợp thiếu bộ nhớ.Việc bố trí lại do hệ
thống đảm nhiệm và không bị mất thông tin. Nội dung của việc bố trí lại là
đưa một trang ra bộ nhớ ngồi, giải phóng chỗ để nạp trang mới. Tiêu chuẩn
chọn trang đưa ra được đặt dưới dạng tùy chọn một trong số các cách:
Đưa ra trang tồn tại lâu nhất trong bộ nhớ
Đưa ra trang có lần sử dụng cuối cùng cách đây lâu nhất (chế độ LRU)
Đưa ra trang có tần xuất sử dụng thấp nhất.
Trong chế độ phân trang của các máy tính IBM PC từ 386 trở lên chế độ
chọn trang đưa ra ngầm định là LRU.
II.
Cách IBM PC quản lý bộ nhớ theo chế độ phân trang
1. Bộ nhớ trong IBM PC
Bộ nhớ trong máy tính IBM PC được chia thành 4 mức ưu tiên (Privilege
Levels), đánh số từ 0 đến 3. Số càng bé thì mức ưu tiên càng cao.
- Mức 0 chứa các chương trình và dữ liệu nhân của hệ thống
- Mức 1 chứa các chương trình và dữ liệu quản lý file và thiết bị
9
- Mức 2 chứa các chương trình và dữ liệu phục vụ hệ thống (System
Utilities)
- Mức 3 chứa chương trình và dữ liệu ứng dụng.
Mức ưu tiên sẽ được gán khi xin cấp phát bộ nhớ.
Một chương trình chỉ được quyền truy nhập tới các khối chương trình và
dữ liệu cùng mức ưu tiên hay kém ưu tiên hơn.
Ví dụ chương trình phục vụ hệ thống (mức ưu tiên 2) được quyền truy nhập
tới chương trình phục vụ khác (cùng mức ưu tiên) hay truy nhập tới chương
trình ứng dụng hoặc dữ liệu của nó (kém ưu tiên hơn).
Mọi truy nhập ngược vào trong sẽ bị hệ thống chặn với lỗi “Vi phạm quy
tắc bảo vệ”.
Mức ưu tiên được triển khai để đảm bảo hệ thống hoạt động một cách có tổ
chức và đồng bộ giữa các thành phần tồn tại trong hệ thống. Chương trình
ở mức ngồi có thể liên hệ với các chương trình ở mức trong thơng qua
dịng xếp hàng các u cầu. Hệ thống sẽ định kỳ xem xét các dòng xếp hàng
yêu cầu và đáp ứng theo trình tự phù hợp.
10
Bộ nhớ phân phối cho chương trình bao gồm 2 loại: bộ nhớ chung (G) và
bộ nhớ riêng (L).
- Bộ nhớ chung là vùng bộ nhớ mà mọi chương trình cùng mức ưu tiên
đều có thể truy nhập. Bộ nhớ chung dùng để cho các chương trình trao
đổi thơng tin với nhau, tương tự vai trò của đĩa Public trong mạng LAN
- Bộ nhớ riêng phân phối cho chương trình nào thì chỉ có chương trình đó
biết và được quyền truy nhập.
2. Cách IBM PC quản lý bộ nhớ theo chế độ phân trang
Máy tính IBM PC có hai chế độ làm việc với bộ nhớ: Chế độ thực (Real
Mode) và Chế độ bảo vệ (Protected Mode).
- Máy tính IBM PC XT chỉ có thể làm việc trong chế độ thực (Chế độ XT)
- Các máy tính IBM PC AT có hai chế độ làm việc với bộ nhớ là chế độ
thực (real mode) và chế độ bảo vệ (protect mode). Còn được gọi là Chế
độ AT.
11
(Ở đây, chúng ta chỉ xét cách quản lý bộ nhớ theo chế độ phân trang của các
máy IBM PC có chế độ phân trang. Cụ thể, đó là các máy tính IBM PC từ 386
trở lên)
Chế độ thực chỉ hạn chế bộ nhớ trong phạm vi 1MB và được chia thành 16
khối đánh số từ 0 đến FH, mỗi khối 64KB.
Các khối từ 0 đến 9 tạo thành bộ nhớ cơ sở. Khối 0 dùng để chứa các tham
số và dữ liệu điều khiển hệ thống. Với máy AT các khối khác trong bộ nhớ
cơ sở chủ yếu phục vụ các chương trình hệ thống
Các khối AH và BH dùng làm phòng đệm cho các phương pháp truy nhập
AM làm việc.
Các khối từ CH đến FH là bộ nhớ ROM chứa ROM BASIC và ROM BIOS.
12
Mỗi khối, khi phân phối cho chương trình được quản lý bằng một MCB
(Memory Control Block). Mỗi MCB có kích thước 16 bytes.
Bộ nhớ trong chế độ bảo vệ
Trong chế độ bảo vệ, các chương trình ln ln được biên tập trong bộ
nhớ logic bao gồm 16K khối, đánh số từ 0 đến 3FFFH. Các số thứ tự này
được gọi là chỉ số khối (Index). Mỗi khối được quản lý bằng một MCB.
Trong chế độ bảo vệ MCB có kích thước 8 bytes.
Bộ nhớ chung bao gồm một số khối. Các MCB tương ứng với những khối
này được quản lý trong Bảng mô tả bộ nhớ chung (Global Descriptor Table
– GDT).
Mỗi bộ nhớ riêng bao gồm một số khối và các MCB tương ứng với các khối
đó được quản lý trong một Bảng mơ tả bộ nhớ riêng (Local Descriptor
Table – LDT).
13
Khi thực hiện chương trình Bảng mơ tả bộ nhớ chung và Bảng mô tả bộ
nhớ riêng được nạp vào bộ nhớ vật lý, địa chỉ đầu của các bảng này được
đưa tương ứng vào các thanh ghi GDTR và LDTR (Global Descriptor Table
Register và Local Descriptor Table Registe). Tồn tại các lệnh phục vụ đọc
và cất giữ các thanh ghi này (các lệnh LGDTR, SGDTR, LLDTR, SLDTR).
Cấu trúc của MCB cho máy 286 không khác nhiều so với cấu trúc MCB
của 386 trở lên.Với các máy IBM PC 32 bít MCB có cấu trúc:
Cấu trúc MCB ở máy IBM PC 32 bit chế độ Intel 64
14
Ý nghĩa các trường
Bit
Ý nghĩa
Tên
trường
7
P
Present
P = 0 – khối thơng tin chưa có trong bộ nhớ vật lý
P = 1 – đã được định vị với địa chỉ đầu ở trường A
6-5
DPL
Descriptor Privillege Level – mức ưu tiên của chương
trình yêu cầu tạo ra khối bộ nhớ này
4
S
System
S = 0 – khối chứa chương trình/dữ liệu
S = 1 – khối chứa thông tin hệ thống
3
E
Excutable (với S = 0)
E = 0 – khối chứa dữ liệu
E = 1 – chứa chương trình
2
ED
Expansion Direction (với S = 0)
ED = 0 – khối tuyến tính, truy nhập theo chiều tăng dần
của địa chỉ trong khối
ED = 1 – stack, truy nhập theo chiều giảm dần của địa
chỉ trong khối.
1
W
Writable (với S = 0)
W = 0 – Cấm ghi (RO)
W = 1 – cho phép ghi (W/R).
0
A
Accessed – Mỗi lần truy nhập tới khối, bít A sẽ được xác
lập bằng 1
15
Vai trị các bít G, D và L:
Bít G (Granularity):
- G = 0 là chế độ quản lý theo mơ đun, đơn vị tính kích thước khối là
byte, như vậy kích thước tối đa của mỗi khối là 220 = 1MB
- G = 1 là chế độ quản lý phân trang, đơn vị tính kích thước khối là trang,
kích thước tối đa của mỗi khối là 220 trang = 220×212 = 232 = 4GB.
Bít D (Data):
- D = 0 – chế độ dữ liệu 16 bít
- D = 1 – chế độ dữ liệu 32 bít.
Bít L:
- L = 0 – chế độ hệ thống 32 bít,
- L = 1 – chế độ hệ thống 32 bít (kiểu IA 32)
Ở chế độ phân trang kích thước tối đa của bộ nhớ lôgic sẽ là:
Địa chỉ tuyến tính của các máy 32 bít có độ dài 48 bít và có cấu trúc:
16
Ý nghĩa các trường trong địa chỉ tuyến tính cho máy 32 bít:
- RPL – Mức ưu tiên truy nhập (Request Privilege Level), mức ưu tiên
của chương trình truy nhập sẽ được ghi vào trường RPL
- TI – Loại bộ nhớ (Table Indicator)
TI = 0 là truy nhập tới bộ nhớ chung G, hệ thống sẽ làm việc với thanh
ghi GDTR
TI = 1 – truy nhập tới bộ nhớ riêng L, hệ thống sẽ làm việc với thanh
ghi LDTR.
- Index – chỉ số khối truy nhập.
- Trường d có kích thước 32 bít, cho phép truy nhập tới địa chỉ bất kỳ của
khối trong mọi chế độ sử dụng bộ nhớ.
Máy IBM PC loại 32 bít có thanh ghi địa chỉ AR (Adrress Register) 32 bít.
Vì vậy bộ nhớ vật lý tối đa chỉ có thể là 232 = 4GB. Như vậy bộ nhớ lôgic
tối đa của máy 32 bít lớn gấp 16×210 = 214 = 16184 lần bộ nhớ vật lý tối đa.
Ở chế độ phân trang, mỗi phần tử quản lý trang có kích thước 32 bít và có
cấu trúc nêu ở hình Cấu trúc phần tử quản lý trang của máy IBM PC 32 bít.
Ý nghĩa các trường của thuộc tính:
-
P (Present) – Dấu hiệu nạp trang vào bộ nhớ:
17
Chỉ ra liệu một trang hay một bảng trang đang được chỉ đến bởi một
điểm nào và có được nạp vào hiện thời trong bộ nhớ vật lý.
Khi cờ này được thiết lập lên 1, trang đó nằm trong bộ nhớ vật lý và việc
chuyển đổi địa chỉ được thực hiện
Khi cờ này bị xóa, trang đó khơng có trong bộ nhớ và nếu bộ xử lý cố
gắng để truy nhập vào trang này, nó sẽ sinh ra một thơng báo trang cha
có trong bộ nhớ
- R/W (Read/Write) – Dấu hiệu cho phép Đọc/Ghi hay cấm ghi
Chỉ rõ đặc quyền đọc, ghi của một trang hay một nhóm trang
Khi cờ này bị xóa, trang này chỉ được đọc (read only)
Khi cờ này được thiết lập lên 1 thì trang đó có thể được đọc và ghi tên
- U/S (Chế độ User/Supervisor) – Ở chế độ Supervisor mọi lệnh trong
hệ lệnh đều có thể được thực hiện, ở chế độ User không được phép thực
hiện các lệnh đặc quyền hệ thống,
- PWT (Write-Through) – Dấu hiệu ghi đồng bộ nội dung của trang vào
bộ nhớ và vào cache
- PCD (Cache Disable) – Có cho phép đưa trang vào cache hay khơng
- A (Accessed) – Dấu hiệu truy nhập tới trang
- D (Dirty) – Dấu hiệu phong tỏa trang khi đang ghi thơng tin vào trang.
Vai trị bít A trong phần tử quản lý trang cũng tương tự vai trị bít A trong
thuộc tính của MCB. Với sự tồn tại của bít này và hoạt động của chương
trình thống kê các cơng cụ bố trí lại bộ nhớ có thể lựa chọn trang đưa ra
theo tùy chọn cài đặt trong hệ thống.
Theo mục đích sử dụng, bộ nhớ RAM có thể coi là được chia thành 3 phần,
các phần đều có kích thước là số ngun lần trang.
- Phần PD (Page Directory) để chứa SCB (trong trường hợp cụ thể này là
GDT và các LDT)
18
- Phần PT (Page Table) để chứa PCB (chứa các phần tử quản lý trang)
- Phần còn lại (Pages) chứa các trang chương trình và dữ liệu.
Để truy nhập một thông tin trong phần Page cần 3 lần tới bộ nhớ:
- Tới PD để xác định địa chỉ phần tử quản lý trang
- Tới PT để xác định địa chỉ thông tin
- Tới phần Page để đọc hoặc ghi thông tin.
Như vậy chế quản lý bộ nhớ ở đây là kết hợp mô đun và phân trang.
Trong CPU có một bộ nhớ cache được gọi là TLB (Translation Lookaside
Buffer) dùng để lưu các thông tin về các phần tử quản lý trang ứng với
những trang có tần suất sử dụng cao nhất. Việc truy nhập tới thông tin do
những trang này quản lý được thực hiện qua TLB. Với những thơng tin có
trong TLB hệ thống truy nhập thẳng tới PT, vì vậy chỉ cần 2 lần truy cập
tới bộ nhớ cho mỗi phép đọc/ghi thông tin. Đây là quy trình truy nhập theo
chế độ quản lý phân trang.
TLB có dung lượng chứa thơng tin của 32 phần tử quản lý trang, vì vậy nó
khống chế được 4×32 =128KB. Nhưng đây là vùng bộ nhớ có tần suất sử
dụng cao nhất và không cố định.
19
Các số liệu thống kê cho thấy có đến 98% số lần truy nhập được thực hiện
thông qua TLB và như vậy chỉ cịn có 2% số lần truy nhập thực hiện theo
sơ đồ 3 lần đi tới bộ nhớ.
III.
Tài liệu tham khảo
1. Giáo trình Nguyên lý hệ điều hành - Nguyễn Thanh Tùng, Trần Duy Hùng
khoa Công nghệ Thông Tin, Đại học Mở Hà Nội (lưu hành nội bộ)
2. Intel Architecture Software Developers Manual – Volumn 3: System
Programming
3. />
20