You are on page 1of 31

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

BÀI IV. QUẢN LÝ BỘ NHỚ

Nội dung của Bài IV là xét các phương pháp quản lý bộ nhớ
lô gic và bộ nhớ vật lý, cách xác lập quan hệ giữa hai loại bộ nhớ
này, các kỹ thuật phân phối lại bộ nhớ và bảo vệ thông tin.

Trong 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.

Mỗi chương trình đều cần bộ nhớ cho 2 loại thông tin khác nhau:
Vùng bộ nhớ để lưu trữ chương trình,
Vùng bộ nhớ lưu trữ dữ liệu cần thiết cho việc xử lý.

Nếu như để quản lý vùng bộ nhớ dành cho dữ liệu người ta chỉ cần biết điểm
đầu và kích thước vùng bộ nhớ được phân phối là đủ thì quản lý và tổ chức dữ liệu
cho vùng bộ nhớ dành cho chương trình phức tạp hơn nhiều. Lưu ý rằng đối với
quản lý bộ nhớ mọi thông tin ghi vào đó đều là dữ liệu, chỉ có khác biệt đó là dữ
liệu câu lệnh (program codes) hay dữ liệu phục vụ tính giá trị các loại biểu thức
(data). Loại dữ liệu thứ 2 không thay đổi dù ta ghi nó ở nơi nào trong bộ nhớ, còn
loại dữ liệu thứ nhất nói chung có nội dung phụ thuộc vào địa chỉ đầu của khối bộ
nhớ chứa nó. Chính vì vậy nội dung các phần sẽ xét dưới đây chủ yếu xoay quanh
việc quản lý bộ nhớ dành cho chương trình.
Ngày nay phần lớn các chương trình được viết trên các ngôn ngữ lập trình
như Java, C++, Visual Basic, Pascal hay Macro Assembler, . . . Người lập trình

Hình 4.1. Các phép ánh xạ nhiệm vụ quản lý

Nguyên lý Hệ điều hành - Bài 4 Trang 1


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
khai báo các biến và nêu quy trình xử lý nội dung của các biến đó. Trên thực tế
chương trình là một bảng ánh xạ từ tên sang giá trị. Việc ánh xạ xẩy ra khi thực
hiện chương trình. Các hệ thống lập trình cung cấp các phương tiện để người lập
trình có thể theo dõi quá trình ánh xạ này ở các mức độ chi tiết khác nhau.
Đối với máy tính điện tử chỉ có ánh xạ từ địa chỉ sang giá trị. Trước khi thực
hiện chương trình các tên phải được ánh xạ sang địa chỉ.
Nhiệm vụ quản lý bộ nhớ là giải quyết các vấn đề liên quan ánh xạ từ tên sang
địa chỉ và sự thay đổi ánh xạ này trong các tình huống khác nhau.
Như vậy để xem xét và giải quyết các vấn đề về quản lý bộ nhớ việc đầu tiên
phải làm là khảo sát quá trình hệ thống xử lý một chương trình và các môi trường
tồn tại của các đối tượng liên quan.
4.1 – Các bước xử lý chương trình

Khi có một chương trình nguồn việc đầu tiên hệ thống làm là kiểm tra cú
pháp (Syntax Analys) xem chương đã viết đúng quy tắc của ngôn ngữ lập trình hay
không và thông báo nếu có lỗi.

Hình 4.2. Các bước xử lý chương trình.

Với một chương trình đã sạch lỗi cú pháp hệ thống sẽ tiến hành phân tích ngữ
nghĩa (Semantic Analys).Một trong những công việc quan trọng ở giai đoạn này là
tách các tên do người sử dụng đặt, chuẩn hóa chúng thành tên trong và tạo bảng
tên với các thuộc tính cho biết kiểu dữ liệu ứng với tên, bộ nhớ cần thiết và các
phép tính có thể áp dụng đối với nó. Nhóm công cụ thực hiện công việc này được
gọi chung là Hàm tên.
Dựa vào bảng tên hệ thống xây dựng bản đồ bộ nhớ cho các biến, tiến hành
phân tích các câu lệnh, thay tên bằng địa chỉ, thay phép tính bằng mã phép tính và
được một mô đun chương trình trên ngôn ngữ máy. Nhóm công cụ thực hiện các

Nguyên lý Hệ điều hành - Bài 4 Trang 2


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
công việc này có tên chung là Hàm địa chỉ. Sản phẩm của hàm địa chỉ là Mô đun
đích – một file chương trình thông thường có đuôi .OBJ.
Mô đun đích không còn phụ thuộc vào ngôn ngữ dùng để viết chương trình
nguồn. Nhưng nó chưa phải là một chương trình hoàn thiện vì còn thiếu nhiều
thông tin liên quan tới các mô đun khác mà nó tham chiếu và sử dụng (các hằng
ngoài, các chương trình con thư viện, . . .). Những thông tin còn thiếu này được gọi
là các móc nối ngoài.
Việc tạo mô đun đích bao gồm các trình sinh mã và tối ưu hóa chương trình
nhận được.
Toàn bộ quá trình xử lý chương trình nguồn cho tới khi nhận được mô đun
đích do chương trình dịch đảm nhiệm.
Về nguyên tắc, sau khi nhận được mô đun đích các công việc còn lại không
phụ thuộc vào chương trình dịch. Tuy nhiên, để thuận tiện khai thác, các hệ thống
lập trình thường đảm nhiệm luôn xử lý khâu biên tập để có một chương trình độc
lập hoàn thiện. Đó là khâu xử lý các móc nối ngoài. Một mô đun, sau khi đã được
biên tập có thể tham gia vào quá trình biên tập các mô đun khác. Sản phẩm của
biên tập là chương trình hoàn thiện với file chương trình đuôi .COM hoặc .EXE.
Tuy nhiên đây chỉ là khâu tạo chương trình. Chương trình nhận được chỉ là đầu ra
của biên tập, chưa gắn với môi trường cụ thể để thực hiện. Vì vậy chương trình
được xây dựng như chỉ có một mình nó trong bộ nhớ, được ghi từ đầu bộ nhớ và
lưu trữ ở bộ nhớ ngoài. Để thực hiện nó, hệ thống cần phân phối bộ nhớ trong, nạp
chương trình vào vùng bộ nhớ đã được phân phối, sửa lại các địa chỉ trong các câu
lệnh của chương trình để tạo ra một phiên bản làm việc phù hợp với vùng bộ nhớ
chứa chương trình. Đây là việc Nạp và định vị do thành phần FETCH của hệ thống
đảm nhiệm.
Quá trình quản lý bộ nhớ bao trùm lên các khâu xử lý, từ biên tập đến hết
khâu thực hiện chương trình.
Việc thực hiện chương trình còn liên quan tới các vấn đề về tiến trình và hoạt
động của processor. Những vấn đề này sẽ được xét ở các chương sau.
Như vậy việc xử lý một chương trình liên quan tới 3 không gian: Không gian
tên, Không gian bộ nhớ lô gic và không gian bộ nhớ vật lý.
Với các không gian bộ nhớ có 3 nhóm vấn đề phải giải quyết:
Cách quản lý bộ nhớ lô gic,
Cách quản lý bộ nhớ vật lý,
Cách xác lập quan hệ giữa 2 bộ nhớ: như thế nào và khi nào?
Nguyên lý Hệ điều hành - Bài 4 Trang 3
Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Tổ chức bộ
Tổ lô
nhớ chức
gic?bộ
nhớ lô gic?

Xác lập quan hệ:


Xác lập thế
Như quan hệ:
nào?
Như
Khi nào?thế nào?
Khi nào?

Tổ chức bộ
Tổ chức bộ
nhớ vật lý?
nhớ vật lý?

Hình 4.3. Các vấn đề cần giải quyết.

Mỗi cách giải quyết vấn đề sẽ đưa tới một cách quản lý bộ nhớ và một phạm
vi ứng dụng hiệu quả trong điều kiện môi trường nhất định.
4.2 – Cấu trúc chương trình

Bộ nhớ lô gic dùng để chứa chương trình và ở mỗi thời điểm chỉ chứa một
chương trình. Chính vì vậy có thể đồng nhất cách tổ chức bộ nhớ lô gic với cách tổ
chức chương trình. Mỗi cách tổ chức chương trình sẽ tương ứng với một cấu trúc.
Tồn tại nhiều loại cấu trúc chương trình khác nhau và mọi cấu trúc đều đang được
sử dụng trong thực tế.
4.2.1 – Cấu trúc tuyến tính
Khi xây dựng chương trình theo cấu trúc tuyến tính chương trình biên tập sẽ
tìm tất cả các mô đun cần thiết cho việc thực hiện chương trình, kết nối chúng
thành một file chương trình duy nhất.

Nguyên lý Hệ điều hành - Bài 4 Trang 4


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Hình 4.4. Cấu trúc tuyến tính


Đây là loại cấu trúc thường dùng nhất đối với các chương trình ứng dụng
kích thước nhỏ.
Cấu trúc tuyến tính có các đặc điểm:
Đơn giản và dễ quản lý: Toàn bộ chương trình là một file, công việc lưu trữ,
tìm kiếm, bảo vệ đều do hệ thống quản lý file đảm nhiệm,
Thời gian thực hiện nhanh nhất: Tất cả các thông tin cần thiết đều được lưu
trữ trong file, sau khi nạp và định vị, hệ thống không mất thời gian tìm kiếm
thông tin phụ, việc nạp và định vị cũng chỉ phải thực hiện một lần trước khi
thực hiện chương trình,
Có tính lưu động (mobilable) cao: Dễ dàng di chuyển cài đặt sang các hệ
thống khác, dễ dàng xóa khi không còn cần dùng, việc cập nhật nâng cấp
đơn thuần là sao file mới ghi đè lên file hiện có,
Tốn bộ nhớ: Với mỗi bộ dữ liệu thông thường chỉ có từ 13% đến 17% các
câu lệnh trong chương trình đóng vai trò tích cực, tức là có tham gia vào
việc xử lý dữ liệu,
Không cho phép khả năng dùng chung mô đun: Một mô đun nếu tham gia
vào nhiều chương trình thì sẽ được lưu trữ nhiều lần cả ở bộ nhớ trong lẫn ở
bộ nhớ ngoài.
4.2.2 – Cấu trúc động (Dynamic Structure)
Sử dụng cấu trúc này người lập trình phải chủ động đưa ra các lệnh nạp và
định vị mô đun khi cần thiết và xóa khỏi bộ nhớ mô đun không còn cần dùng. Việc
nạp và xóa mô đun được tiến hành trong giai đoạn thực hiện chương trình. Hệ
thống cung cấp một loạt các lệnh macro hỗ trợ như LOAD, ATTACH, DELETE, .
. . Mỗi lệnh macro có nhiều tham số với các chế độ hoạt động khác nhau, ví dụ như
lệnh LOAD có thể đơn thuần nạp và định vị mô đun vào trong bộ nhớ, nhưng cũng
có tham số cho phép nạp, định vị mô đun vào trong bộ nhớ và tự động xóa khỏi bộ
nhớ mô đun này sau lần gọi mô đun thứ n.
Cấu trúc động có các ưu và nhược điểm sau:

Nguyên lý Hệ điều hành - Bài 4 Trang 5


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Tiết kiệm bộ nhớ: Nếu tổ chức nạp và xóa mô đun một cách hợp lý có thể
cực tiểu hóa chi phí bộ nhớ cần thiết cho việc thực hiện chương trình,
Thời gian thực hiện chương trình
tăng: Công việc tìm kiếm, nạp,
định vị và xóa mô đun được tiến
hành trong thời gian thực hiện
chương trình,
Người lập trình phải tham gia vào
công tác quản lý bộ nhớ: Người
lập trình phải biết các lệnh macro
hệ thống để điều khiển quá trình
nạp – xóa mô đun, đây là một yêu
cầu rất khắt khe với người dùng,
Hình 4.5. Cấu trúc động.
đồng thời cấu trúc chung của
chương trình cũng trở nên phức
tạp hơn đòi hỏi người lập trình phải có tay nghề cao,
Kém lưu động: Khó có thể chuyển chương trình từ máy này sang máy khác
vì ngoài mô đun chính (mô đun gốc) còn phải mang theo và cài đặt đúng chỗ
các mô đun có thể được nạp trong quá trình điều khiển động. Điều này cũng
là cho việc xóa hoặc cập nhật, nâng cấp chương trình trở nên rất khó khăn.

Cấu trúc động rất thích hợp với các chương trình hệ thống vì một trong những
yêu cầu quan trọng đối với các chương trình hệ thống là tiết kiệm bộ nhớ dành cho
hệ thống. Với những người lập trình hệ thống việc tham gia quản lý bộ nhớ không
phải là rào cản.
4.2.3 – Cấu trúc Overlay

Cấu trúc Overlay là cơ chế phân phối động các mô dun theo sơ đồ bộ nhớ
tĩnh. Hiệu quả tiết kiệm bộ nhớ bị giảm sút một phần so với cấu trúc động thuận
tiện hơn nhiều đối với người lập trình.Các mô đun được phân thành các lớp, mỗi
lớp bao gồm các mô đun không cần tồn đồng thời trong quá trình thực hiện chương
trình. Lớp 0 chỉ chứa mô đun gốc. Lớp i chứa các các mô đun được gọi từ lớp i-1
và không cần tồn tại đồng thời (i = 1, 2, 3, . . .). Thông tin cho biết mỗi lớp chứa
những mô đun nào được gọi là Sơ đồ tổ chức Overlay. Sơ đồ này do người lập
trình xây dựng và cung cấp cho chương trình biên tập. Như vậy sơ đồ tổ chức
overlay là dữ liệu phục vụ biên tập và nằm ngoài chương trình nguồn. Sơ đồ này
thông thường có dạng như mô tả cây bằng danh sách đỉnh kề. Dựa trên sơ đồ tổ
Nguyên lý Hệ điều hành - Bài 4 Trang 6
Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
chức overlay chương trình biên tập sẽ tạo bản đồ nạp mô đun. Bộ nhớ dành cho
chương trình được chia thành các phần (hoặc còn gọi là mức), đánh số từ 0 trở đi.
Phần bộ nhớ thứ i dùng để nạp mô đun ở mức i và có kích thước bằng kích thước
mô đun lớn nhất của mức này. Chương trình biên tập sẽ tạo ra Sơ đồ quản lý
Overlay. Đó là bảng thông tin cho biết mô đun đã được cần phải nạp vào đâu và đã
được nạp vào bộ nhớ hay chưa. Mỗi khi có lời gọi tới mô đun chương trình
Supervisor Overlay của hệ thống sẽ kiểm tra sự tồn tại của mô đun được gọi trong
bộ nhớ và sẽ tiến hành nạp, định vị mô đun này khi cần thiết. Mô đun được nạp sẽ
nằm đè lên mô đun cùng mức trước đó. Chính vì vậy trong cấu trúc overlay việc 2
mô đun cùng mức trực tiếp gọi nhau bị cấm.
Tương tự như cấu trúc động, các mô đun từ mức 1 trở đi được tập trung vào
một hoặc một vài file có đuôi là .OVL.
Các phần mềm ứng dụng như PCSHELL, XTREE, các hệ quản trị Cơ sở dữ
liệu FOXBASE, DATA BASE II (DB II), FOXPRO, . . . đều dựa trên chương trình

Hình 4.7. Cấu trúc Overlay.

có cấu trúc overlay.


4.2.4 – Cấu trúc mô đun
Cấu trúc overlay đã đơn giản hóa phần nào công việc của người lập trình
nhưng người dùng vẫn phải khai báo Sơ đồ tổ chức Overlay. Hơn thế nữa khi bộ
nhớ tự do còn nhiều cấu trúc này không cho phép tận dụng lợi thế đó để nâng cao
hiệu quả thực hiện chương trình. Cấu trúc mô đun đã giải quyết những vấn đề này.
Nguyên lý Hệ điều hành - Bài 4 Trang 7
Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Chương trình biên tập sẽ biên tập riêng từng mô đun, tạo bảng quản lý mô
đun để khi cần sử dụng có thể nạp mô đun này vào nơi bất kỳ trong bộ nhớ.

Hình 4.8. Cấu trúc mô đun.

Cấu trúc này có ưu và nhược điểm sau:


Được tự động hóa hoàn toàn: Người lập trình không tham gia vào quá trình
điều khiển và không cần phải cung cấp bất cứ một thông tin phụ nào,
Tốc độ thực hiện chương trình tăng khi dung lượng bộ nhớ tự do tăng: Với
dung lượng bộ nhớ tự do đủ lớn, sau một thời gian hoạt động tốc độ thực
hiện chương trình sẽ tương đương với tốc độ thực hiện của chương trình có
cấu trúc tuyến tính,
Dễ dàng sử dụng chung mô đun: Mỗi mô đun khác nhau chỉ cần lưu trữ một
lần ở bộ nhớ ngoài và chỉ cần nạp một lần vào bộ nhớ trong,
Hiệu quả của cấu trúc phụ thuộc vào chương trình nguồn: Nếu người lập
trình không tổ chức hệ thống mô đun hợp lý thì hiệu quả của cấu trúc có thể
bị giảm sút đáng kể.

Nguyên lý Hệ điều hành - Bài 4 Trang 8


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

4.2.5 – Cấu trúc phân trang


Ở cấu trúc này chương trình được biên tập như chương trình tuyến tính, sau
đó chia chương trình thành các phần bằng nhau gọi là trang (page) và tạo bảng
quản lý trang.
Khi thực hiện chương trình, cần dùng tới trang nào, nếu chưa có trong bộ nhớ
trang đó sẽ được nạp và định vị vào bộ nhớ trong.
Đây là một cấu trúc hết sức tiết kiệm bộ nhớ và cũng giống như cấu trúc mô

Hình 4.9. Cấu trúc phân trang.

đun, được thực hiện tự động, không có sự can thiệp của người lập trình. Ngoài ra,
hiệu quả của nó không bị phụ thuộc vào cấu trúc của chương trình nguồn.
Tuy vậy nó cũng có một số nhược điểm:
Không cho phép sử dụng chung mô đun,
Việc báo lỗi khi thực hiện chương trình sẽ kém tường minh vì không thể chỉ
rõ lỗi xẩy ra ở mô đun nào,
Cần phải có một số phương tiện kỹ thuật nhất định mới có thể triển khai có
hiệu quả (điều này sẽ được nói rõ hơn ở phần quản lý bộ nhớ vật lý).

4. 3 – Quản lý bộ nhớ vật lý

Bộ nhớ vật lý là bộ nhớ trong (RAM) được lắp ở một máy tính cụ thể. Kích
thước bộ nhớ trong rất ít khi thay đổi trừ khi người ta lắp thêm hoặc tháo bớt các
thanh chíp bộ nhớ. Như vậy, với một cấu hình cụ thể bộ nhớ trong của máy tính có
kích thước không đổi. Một phần của bộ nhớ được dùng để lưu trữ các chương trình
và dữ liệu của hệ thống, một phần khác – phục vụ các chương trình ứng dụng đang
được kích hoạt. Phần bộ nhớ còn lại sẽ thường xuyên thay đổi phụ thuộc vào các
ứng dụng được thực hiện.

Nguyên lý Hệ điều hành - Bài 4 Trang 9


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Bộ nhớ trong dùng để thực hiện chương trình, vì vậy bên cạnh bộ nhớ dành
cho chương trình hệ thống còn phải cấp phát bộ nhớ phục vụ lưu trữ dữ liệu, đồng
thời phải có các giải pháp bảo vệ thông tin, không để một chương trình đọc thông
tin của chương trình khác, xóa hoặc làm thay đổi nội dung của những thông tin này
(nếu không được sự đồng ý của người chủ thông tin).
Như vậy các vấn đề chính trong quản lý bộ nhớ vật lý là:
Các cách tổ chức bộ nhớ,
Sơ đồ bảo vệ thông tin,
Cách xác lập quan hệ với bộ nhớ lô gic và thời điểm xác lập quan hệ,
Phải xử lý như thế nào khi thiếu bộ nhớ.

Tình trạng thiếu bộ nhớ xẩy ra khá thường xuyên mặc dù ngày nay các máy
tính đều có bộ nhớ đủ lớn. Tuy vậy các chiến lược xử lý tình huống thiếu bộ nhớ là
đủ tốt và làm cho việc thiếu bộ nhớ trở nên trong suốt đối với người dùng.
Có nhiều chế độ quản lý khác nhau và mọi chế độ quản lý đều được ứng dụng
trong thực tế.
4.3.1 – Chế độ phân vùng cố định
Ở chế độ này bộ nhớ được chia thành n phần, mỗi phần có kích thước cố định
(không nhất thiết bằng nhau), được quản lý như một bộ nhớ độc lập và được dùng
để chạy một chương trình ứng dụng.

Nguyên lý Hệ điều hành - Bài 4 Trang 10


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Mỗi phần có một danh sách quản lý bộ nhớ tự do riêng. Chương trình nạp vào
phần nào được quyền sử dụng toàn bộ bộ nhớ của phần đó và tồn tại trong phần
này cho đến khi kết thúc. Hệ thống chỉ ngăn chặn các truy nhập vượt ra khỏi phần
mà chương trình được định vị.
Như vậy, nếu bộ nhớ được chia thành n phần thì tối đa chỉ có thể đồng thời

Hình 4.10. Phân vùng cố định.

kích hoạt n chương trình ứng dụng.


Hình 4.10 nêu bức tranh ứng với bộ nhớ kích thước 640KB và được chia
thành 3 phần với kích thước tương ứng là 40KB, 400KB và 200KB. Một chương
trình có đòi hỏi bộ nhớ 5KB được vào phần thứ nhất. Điều này có nghĩa là 35KB
còn lại sẽ bị lãng phí chừng nào chương trình đã nạp chưa kết thúc. Sự lãng phí bộ
nhớ sẽ còn lớn hơn nhiều nếu chương trình này được nạp vào phần 2. Để giảm
thiểu sự lãng phí bộ nhớ người ta phân lớp chương trình theo bộ nhớ đòi hỏi.
Người dùng phải khai báo chương trình của mình thuộc lớp nào. Hệ thống gắn mỗi

Nguyên lý Hệ điều hành - Bài 4 Trang 11


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
phần với một hoặc một số lớp. Mỗi phần chỉ phục vụ các chương trình tương ứng
với lớp mình được gắn.
Chế độ phân vùng cố định có những ưu và nhược điểm sau:
Đơn giản, dễ tổ chức: Sơ đồ phân vùng được xác định không phụ thuộc vào
các chương trình sẽ chạy và không thay đổi chừng nào chưa tiến hành phân
vùng lại,
Dễ bảo vệ thông tin: Các biên bảo vệ là cố định, hệ thống chỉ việc kiểm soát
xem có xuất hiện truy nhập vượt ra ngoài các biên này hay không và đó là
điều không khó khi các biên không thay đổi,
Hệ số song song cố định: số lượng chương trình đồng thời kích hoạt không
vượt quá số phần đã tạo,
Chưa tận dụng được tối đa bộ nhớ: vùng bộ nhớ còn thừa trong mỗi phần
không được tận dụng để chạy các chương trình ứng dụng khác.

Ngoài ra, do hệ thống bảo vệ quá chặt, một số mô đun điều khiển phải được
sao chép vào mỗi phần để phục vụ công tác điều khiển việc thực hiện chương trình
ứng dụng. Điều này cũng gây lãng phí bộ nhớ không nhỏ.
Chế độ này thường được dùng trong các hệ thống có nhu cầu xử lý các
chương trình ngoài với kích thước chương trình và yêu cầu bộ nhớ biến thiên như
trong các hệ quản trị cơ sở dữ liệu, hệ thống chấm thi, v. v. . . Bộ nhớ ngoài trên
HD và SSD được quản lý theo chế độ này.
Vì mỗi phần có kích thước xác định trước có thể xuất hiện tình huống chương
trình cần thực hiện có kích thước lớn hơn kích thước phần lớn nhất hiện có. Để
thực hiện chương trình như vậy cần tiến hành Bố trí lại bộ nhớ. Việc phân phối lại
bộ nhớ cũng cần thiết các chương trình nhỏ đã xử lý hết, các phần kích thước bé
không còn cần thiết tồn tại.
Nội dung của việc bố trí lại bộ nhớ trong chế độ này là chia lại kích thước các
phần. Tồn tại các lệnh đối thoại phục vụ phân định lại các vùng bộ nhớ (tương tự
như lệnh FDISK và FORMAT phục vụ đĩa từ). Thao tác viên đánh giá tình hình, tự
đưa ra các lệnh bố trí lại khi thấy cần thiết. Như vậy thời điểm bố trí lại do thao tác
viên quyết định.
Khi bố trí lại, những phần có đường biên thay đổi sẽ bị mất thông tin bởi vì hệ
thống phải làm lại danh sách quản lý bộ nhớ tự do cho phần đó.
4.3.2 – Chế độ phân vùng động

Nguyên lý Hệ điều hành - Bài 4 Trang 12


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Ở chế độ này chỉ tồn tại một danh sách quản lý bộ nhớ tự do cho toàn bộ bộ
nhớ. Mỗi khi cõ chương trình mới cần thực hiện hệ thống sẽ phân phối một vùng
bộ nhớ liên tục đủ để thực hiện chương trình và quản lý nó như một đơn vị bộ nhớ
độc lập.

Hình 4.11. Phân vùng động.

Ở chế độ này việc thực hiện chương trình được quản lý chặt chẽ hơn. Nếu có
truy nhập ra ngoài vùng bộ nhớ đã được cấp phát hệ thống lập tức thông báo và
hủy chương trình vi phạm quy tắc bảo vệ.
Với chế độ phân vùng động do các biên bảo vệ thường xuyên thay đổi nên
cấu trúc tổ chức và quản lý phức tạp hơn chế độ phân vùng cố định. Tuy vậy bây
giờ không cần thiết phải sao chép các chương trình điều khiển để gắn với mỗi vùng
như trước. Ngoài ra số lượng chương trình đồng thời được kích hoạt cũng không
cố định, chỉ phụ thuộc vào việc có còn đủ bộ nhớ để phân phối hay không.
Nhưng ở chế độ phân vùng động tồn tại nguy cơ phân đoạn ngoài (External
Fragmentation). Đó là trường hợp bộ nhớ tự do còn nhiều và quản lý được, nhưng
vùng bộ nhớ tự do liên tục không đủ lớn để dáp ứng yêu cầu tiếp theo. Để khắc
phục hiện tượng phân đoạn ngoài hệ thống phải tiến hành bố trí lại.

Nguyên lý Hệ điều hành - Bài 4 Trang 13


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Nội dung của việc bố trí lại bộ nhớ là đưa một số hoặc tất cả các chương trinh
cùng với trạng thái của nó ra bộ nhớ ngoài, giải phóng bộ nhớ để khắc phục hiện
tượng phân đoạn, sau đó định vị lại các chương trình này vào trong bộ nhớ và tiếp
tục thực hiện chúng.
Việc định vị lại chương trình là rất phức tạp và mất nhiều thời gian vì phải

Hình 4.12. Bố trí lại bộ nhớ.

nhận dạng đâu là câu lệnh và đâu là hằng. Chương trình có thể hoạt động theo
nguyên lý Macroprocessor, các đoạn
chương trình có thể được khởi tạo
ngay trong quá trình thực hiện chương
trình. Chương trình nhận dạng phức
tạp tương đương một chương trình
dịch.
Thời điểm bố trí lại do thao tác
viên quyết định và được thực hiện bằng Hình 4.13. Chương trình có cấu
nhóm câu lệnh đối thoại của hệ thống. trúc mô đun.
Như đã nói ở trên, trong chế độ quản
lý này việc bố trí lại không làm mất thông tin.

Nguyên lý Hệ điều hành - Bài 4 Trang 14


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
4.3.3 – Chế độ quản lý theo mô đun
Chế độ phân vùng động đòi hỏi phải phân phối một vùng bộ nhớ liên tục cho
chương trình. Điều này làm tăng nguy cơ phân đoạn ngoài, giảm hiệu quả sử dụng
bộ nhớ. Việc bố trí lại do thao tác viên chủ động thực hiện. Do đó năng suất của
hệ thống còn bị phụ thuộc vào trình độ của thao tác viên. Việc bố trí lại được tiến
hành quá thường xuyên hay quá ít đều làm giảm đáng kể năng suất của hệ thống.
Vì vậy cần có các chế độ sử dụng bộ nhớ linh hoạt hơn và mức tự động hóa cao
hơn để không phụ thuộc vào trình độ người vận hành hệ thống.
Ở chế độ quản lý theo mô đun chương trình phải có cấu trúc mô đun. Hệ
thống sẽ tạo Bảng quản lý mô đun SCB (Segment Control Block). SCB quản lý các
đoạn bộ nhớ dành cho dữ liệu và cho từng mô đun chương trình.
SCB bao gồm các phần tử, mỗi phần tử tương ứng với một đoạn bộ nhớ liên
tục, phục vụ cho một mô đun chương trình hay dữ liệu.

Hình 4.14. Cấu trúc phần tử SCB.


Mỗi phần tử của SCB có 3 trường:
Trường D là dấu hiệu cho biết mô đun (chương trình hoặc dữ liệu) đã được
nạp vào bộ nhớ hay chưa, D = 0 là chưa nạp và D = 1 – đã được nạp,
Trường địa chỉ A: nếu mô đun đã được nạp vào bộ nhớ thì địa chỉ đầu của
đoạn này được đưa vào trường A,
Trường độ dài L: ghi kích thước của đoạn bộ nhớ cần thiết.Trường này được
sử dụng với 2 mục đích:
 Khi D = 0 – dùng để xin cấp phát bộ nhớ,
 Khi D = 1 – phục vụ cho việc bảo vệ thông tin.
Nguyên lý Hệ điều hành - Bài 4 Trang 15
Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Địa chỉ dữ liệu trong chương trình phải biểu diễn dưới dạng tuyến tính, gồm 2
thành phần:
Khi thực hiện chương trình SCB sẽ được nạp vào bộ nhớ, địa chỉ đầu của nó

Hình 4.15. Thành phần của địa chỉ tuyến tính.


được đưa vào thanh ghi quản lý đoạn Rs (Segment Register). Như vậy Rs là con trỏ
chỉ cho biết SCB nằm ở đâu.
Để đọc hoặc ghi một dữ liệu hệ thống cần 2 lần truy cập tới bộ nhớ:
Lần thứ nhất lấy nội dung của Rs cộng với s và truy nhập tới phần tử thứ s
của SCB,
Nếu D = 0 hệ thống sẽ phân phối bộ nhớ, tìm kiếm, nạp, định vị mô đun vào
trong bộ nhớ, cập nhật lại các trường A và D cuả phần tử SCB tương ứng.
Khi D = 1 hệ thống sẽ lấy A cộng với d và truy nhập tới địa chỉ A+d để đọc
hoặc ghi dữ liệu.

Như vậy để tính địa chỉ hệ thống cần thực hiện 2 phép cộng số nguyên (cộng
các địa chỉ).
Ví dụ, Rs = 300 và cần truy nhập tới địa chỉ tuyến tính (15, 532) ta có thể thấy
bức tranh truy nhập như sau:

Nguyên lý Hệ điều hành - Bài 4 Trang 16


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Hình 4.16. Sơ đồ truy nhập trong chế độ quản lý theo mô đun.


Chế độ quản lý bộ nhớ theo mô đun có các đặc điểm:
Bộ nhớ dành cho một chương trình có thể bao gồm nhiều đoạn, không nhất
thiết phải nằm liên tiếp nhau, điều này làm giảm thiểu đáng kể hiện tượng
phân đoạn ngoài,
Chỉ cần nạp những mô đun chương trình và dữ liệu cần thiết cho việc thực
hiện,
Bộ nhớ tự do càng lớn thì hiệu quả thực hiện chương trình càng cao cho đến
khi đạt tới mức tương đương chương trình cấu trúc tuyến tính,
Dễ dàng xử dụng chung các mô đun trong bộ nhớ. Khi một mô đun đã được
nạp vào trong bộ nhớ, với các chương trình dùng chung mô đun này chỉ cần
cập nhật lại phần tử tương ứng trong SCB,
Để truy nhập tới dữ liệu chỉ cần thực hiện 2 phép tính cộng số học, vì vậy,
trên nguyên tắc – có thể áp dụng cho loại máy tính bất kỳ,
Nhược điểm của chế độ quản lý này là:
 Do dùng cấu trúc mô đun nên hiệu quả bị phụ thuộc vào cấu trúc của
chương trình nguồn,

Nguyên lý Hệ điều hành - Bài 4 Trang 17


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
 Tồn tại hiện tượng phân đoạn ngoài, có thể có tình huống bộ nhớ tự
do còn nhiều, nhưng vùng bộ nhớ tự do liên tục không đủ lớn để nạp
mô đun tiếp theo.

Khi gặp hiện tượng phân đoạn ngoài hoặc thiếu bộ nhớ hệ thống sẽ tiến hành
bố trí lại (Swapping). Việc bố trí lại được thực hiện tự động khi có nhu cầu. Nội
dung của việc bố trí lại là đưa một hoặc một vài mô đun ra bộ nhớ ngoài, giải
phóng chỗ để nạp mô đun mới. Với các mô đun bị đưa ra hệ thống sẽ cập nhật lại
dấu hiệu D trong các phần tử tương ứng của SCB.
Năng suất của hệ thống phụ thuộc nhiều vào việc lựa chọn mô đun đưa ra khi
bố trí lại bộ nhớ. Trường hợp lý tưởng là đưa ra mô đun không còn dùng nữa.
Nhưng hệ thống không thể biết được thông tin này, vì vậy phải dựa trên cơ sở dự
báo. Các tiêu chuẩn lựa chọn mô đun đưa ra thường được dùng trong các hệ thống
thực tế là:
Chọn mô đun tồn tại lâu nhất,
Chọn mô đun có lần sử dụng cuối cùng cách đây lâu nhất (Least Recent
Used – LRU),
Chọn mô đun có tần suất sử dụng nhỏ nhất.

Các tiêu chuẩn này được đặt dưới dạng tùy chọn (Option) và được quyết định
khi cài đặt hệ thống.
Chế độ quản lý theo mô đun là một trong 2 chế độ làm việc của các máy tính
IBM PC 286 và là một trong 3 chế độ làm việc của máy tính IBM PC từ 386 trở
lên. Với các loại máy ính IBM PC này chế độ ngầm định chọn mô đun đưa ra là
LRU.
4.3.4 – 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à 4KB.
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ý.

Nguyên lý Hệ điều hành - Bài 4 Trang 18


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Hình 4.17. Chế độ phân trang.


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.
Khi thực hiện chương trình, bảng quản lý trang PCB phải được nạp vào trong

Hình 4.19. Địa chỉ


tuyến tính trong chế độ quản
lý trang.

Hình 4.18. Cấu trúc phần tử quản lý trang.


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,

Nguyên lý Hệ điều hành - Bài 4 Trang 19


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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:
Chế độ phân trang có các đặc điểm:

Hình 4.20. Sơ đồ truy nhập trong chế độ phân trang.


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 ngoài: nếu còn bộ nhớ tự do thì có nghĩa là
còn một số nguyên 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),
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,

Nguyên lý Hệ điều hành - Bài 4 Trang 20


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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,
 Với 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 ngoà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ớ ngoà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.
4.3.5 – Chế độ quản lý kết hợp mô đun và phân trang
Chế độ này phát huy được ưu điểm của hai chế độ quản lý theo mô đun và chế
độ phân trang, đồng thời khắc phục được nhược điểm của hai chế độ quản lý nêu
trên.
Ở chế độ quản lý này bộ nhớ được phân trang còn chương trình được tổ chức
theo cấu trúc mô đun, nhưng mỗi mô đun – được biên tập theo cấu trúc phân trang.
Như vậy mỗi mô đun có PCB riêng của mình.
Hệ thống tạo ra SCB để quản lý các PCB này.

Nguyên lý Hệ điều hành - Bài 4 Trang 21


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Hình 4.21. Cấu trúc chương trình trong chế độ quản lý


kết hợp mô đun và phân trang.

Mỗi phần tử của SCB quản lý một PCB và cũng có 3 trường D, A và L với ý
nghĩa như sau:

Địa chỉ trong câu lệnh phải biểu dưới dạng địa chỉ tuyến tính gồm 3 thành
phần:
Khi thực hiện chương trình, SCB sẽ được nạp vào bộ nhớ và địa chỉ đầu của
nó được đưa vào Rs (Segment Register).
Để đọc hoặc ghi một dữ liệu hệ thống cần 3 lần truy nhập tới bộ nhớ:
Lấy nội dung của Rs cộng với s và truy nhập tới phần tử thứ s của SCB,
Nếu D = 0 – hệ thống sẽ nạp PCB tương ứng vào bộ nhớ và cập nhật lại
SCB; khi D = 1 – cộng A với p và truy nhập tới phần tử thứ p của PCBS,

{{ }
SCB==Phần
SCB Phầntử
tử }

DD AA LL
Dấu hiệu nạp
Dấu hiệu nạp
PCB: Địa chỉ nạp PCB
PCB: Địa chỉ nạp PCB
0 - Chưa nạp,
0 - Chưa nạp,
1 - đã nạp. Độ dài PCB
1 - đã nạp. Độ dài PCB
- Cấp phát bộ nhớ ,
- Cấp phát bộ nhớ ,
- Bảo vệ,
- Bảo vệ,

Hình 4.22. Cấu trúc phần tử SCB trong chế độ quản lý kết
hợp mô đun và phân trang.

Nguyên lý Hệ điều hành - Bài 4 Trang 22


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Hình 4.23. Địa chỉ tuyến tính trong chế độ quản lý kết
hợp mô đun và phân trang.

Hình 4.24. Sơ đồ truy nhập dữ liệu trong chế độ quản lý kết hợp mô đun và
phân trang.
Nếu DP = 0 – hệ thống sẽ nạp và định vị trang và cập nhật PCBS; khi DP = 1
– ghép AP với d và truy nhập tới dữ liệu.

Như vậy có 2 phép tính số học nguyên và một phép tính bít được thực hiện.
Ở chế độ quản lý này việc bố trí lại bộ nhớ được thực hiện như trong chế độ
phân trang.
4.4 – Quản lý 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.

Nguyên lý Hệ điều hành - Bài 4 Trang 23


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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ị. 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ức ưu

Hình 4.25. Bốn mức ưu tiên của 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
ngoà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 yê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.

Nguyên lý Hệ điều hành - Bài 4 Trang 24


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Bộ nhớ phân phối cho
chương trình bao gồm 2 loại:
bộ nhớ chung (G) và bộ nhớ II IIII
riêng (L). Bộ nhớ chung là LL1 1 LL2 2
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ớ riêng
GG
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. LL
3
3
Bộ nhớ chung dùng để
cho các chương trình trao đổi III
III
thông tin với nhau, tương tự
như vai trò của đĩa Public Hình 4.26. Bộ nhớ chung và bộ nhớ riêng.
trong mạng LAN.
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, vì vậy chế độ này còn được gọi là Chế độ XT. Các máy tính
IBM PC AT có thể làm việc được
cả trong 2 chế độ và Protect Mode
còn được gọi là Chế độ AT.
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. Hình 4.27. Bộ nhớ trong chế độ thực.
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.

Nguyên lý Hệ điều hành - Bài 4 Trang 25


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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.

Hình 4.28. Bộ nhớ trong chế độ bảo vệ.

Trong chế độ bảo vệ, các chương trình luôn luôn được biên tập trong bộ nhớ
lô gic 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).
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).

Nguyên lý Hệ điều hành - Bài 4 Trang 26


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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. Ở máy 286 bộ nhớ vật lý làm việc theo chế độ quản lý mô đun. MCB
đóng vai trò như một phần tử của SCB trong lý thuyết chung và có cấu trúc như
sau:

Thực tế

Hình 4.29. Cấu trúc MCB ở máy IBM PC 286.

Như vậy sự khác biệt giữa lý thuyết và thực tế chỉ ở trường dấu hiệu D.
Trường một bít trong lý thuyết được hiện thức hóa bằng byte thuộc tính. Có 2 loại
khối cơ bản: khối lưu thông tin hệ thống và khối lưu chương trình/dữ liệu.
Nhận xét:
Bít W cho phép biến một vùng bộ nhớ RAM thành ROM bằng phần mềm,
Chương trình thống kê của hệ thống định kỳ kiểm tra nội dung các MCB,
với những MCB có bít A = 1 – ghi lại thời điểm truy nhập, tích lũy tần số
truy nhập và đưa lại bít A về 0. Như vậy hệ thống có thể biết được khối nào
có lần truy nhập cuối cùng cách đây lâu nhất, tính được tần suất truy nhập.
Những thông tin này được dùng trong việc bố trí lại bộ nhớ,
Vị trí và ý nghĩa các trường hoàn toàn giống như mô hình lý thuyết,
Trường L có 16 bít, vì vậy kích thước một khối tối đa là 64KB,
Bộ nhớ lô gic có 16K khối vì vậy kích thước bộ nhớ lô gic cho máy 286 là
16×210×64×210 = 230 = 1GB.

Nguyên lý Hệ điều hành - Bài 4 Trang 27


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
Ở máy 286 địa chỉ tuyến tính có độ dài 32 bít:
Trong đó:

Hình 4.30. Địa chỉ tuyến tính ở máy IBM PC 286.

d – địa chỉ tương đối tính từ đầu khối, kích thước tối đa của một khối là
64KB, vì vậy độ rộng 16 bít cho phép truy nhập tới địa chỉ bất kỳ trong khối,
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.

Dựa vào TI và Index hệ thống sẽ tìm thấy MCB tương ứng và tách ra DPL.
Nếu DPL ≥ RPL thì truy nhập là hợp thức, trong trường hợp ngược lại – vi phạm
quy tắc bảo vệ, truy nhập sẽ bị ngắt.
Cấu trúc địa chỉ tuyến tính cho phép truy nhập tới địa chỉ lô gic tối đa là
2 ×21×216-1 = 230-1 =1GB-1, tức là mọi địa chỉ trong bộ nhớ lô gic.
13

Máy IBM PC 286 có thanh ghi địa chỉ AR (Adrress Register) 24 bít. Vì vậy
bộ nhớ vật lý tối đa chỉ có thể là 224 = 16BM. Như vậy bộ nhớ lô gic tối đa của
máy 286 lớn gấp 64 lần bộ nhớ vật lý tối đa.
Với các máy IBM PC 32 bít MCB có cấu trúc:
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, như vậy kích thước tối đa của mỗi khối là 220 trang = 220×212 =
232 = 4GB.
Nguyên lý Hệ điều hành - Bài 4 Trang 28
Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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).

Cấu trúc theo


Cấu trúc

Thuộc

Hình 4.31. Cấu trúc MCB ở máy IBM PC 32 bit chế độ Intel 64.
(Segment Descriptor)
Ở chế độ phân trang kích thước tối đa của bộ nhớ lô gic sẽ là:

Nguyên lý Hệ điều hành - Bài 4 Trang 29


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

24×210×232 = 246 = 26×240 =

Số Kích thước
lượng max
Đị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:
Ý nghĩa các trường trong địa chỉ tuyến tính cho máy 32 bít cũng giống như ở

Hình 4.32. Địa chỉ tuyến tính ở máy IBM PC 32 bít.

trường hợp máy 24 bít.


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 4.33.
Ý 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ớ,
R/W (Read/Write) – Dấu hiệu cho phép Đọc/Ghi hay cấm ghi,
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.

Nguyên lý Hệ điều hành - Bài 4 Trang 30


Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người
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.

Hình 4.33. Cấu trúc phần tử quản lý trang ở máy IBM PC 32 bít.

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ố nguyên 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), phần PT (Page
Table) để chứa PCB (chứa các phần tử quản lý trang) và phần còn lại (Pages) chứa
các trang chương trình và dữ liệu.

Hình 4.34. Sơ đồ truy nhập thông tin.

Để 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 và 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.

Nguyên lý Hệ điều hành - Bài 4 Trang 31

You might also like