QUảN Lý Bộ NHớ
Một
vấn đề thường xảy ra khi bạn chơi các
trò chơi trong Dos, hoặc khi chạy một chương
trình nào đó là hệ thống thông báo không đủ
bộ nhớ. Màn hình hiện lên dòng chữ sau : "Out
of memory"
Bộ
nhớ được đề cập ở đây là RAM
(tắt chữ Random Access Memory) cung cấp vùng lưu
trữ tạm thời cho các chương trình và dữ
kiện. Tất cả các chương trình đều
cần đến bộ nhớ để chạy. Một
số chương trình đòi hỏi bộ nhớ
nhiều hơn một số khác. Việc có bao nhiêu
bộ nhớ hữu dụng (Available Memory) sẽ ảnh hưởng
lên những chương trình mà bạn có thể chạy.
Dưới
đây chúng tôi xin giải thích sơ về cấu tạo
của bộ nhớ của máy PC mà không đi quá sâu
về mặt kỹ thuật cho các bạn dễ hiểu.
+
Bộ nhớ quy ước (Conventional Memory) : Là vùng bộ
nhớ từ 0 Kb đến 640 Kb. Mọi máy vi tính đều
có vùng bộ nhớ này. Từ "quy ước"
được đặt ra là vì loại bộ nhớ này
xuất hiện từ khi máy PC mới ra đời, sau này
bộ nhớ ngày càng tăng vượt qua giới
hạn 640 Kb, nên phần bộ nhớ này được
đặt tên như vậy. Các chương trình ứng
dụng đều sử dụng đến vùng bộ
nhớ này
+
Bộ nhớ vùng trên (Upper Memory Area - UMA) : Là vùng bộ
nhớ nằm giữa vùng bộ nhớ quy ước và
bộ nhớ mở rộng. Kích thước 384 Kb (từ
640Kb đến 1Mb). Một phần của vùng này
được Dos chia thành những khối gọi là Upper
Memory Block - UMB (Lịnh Dos=UMB là đưa một phần
của Dos vào vùng này). Một phần khác của vùng này
được khung trang cho bộ nhớ phân trang EMS.
+
Bộ nhớ mở rộng (Extended Memory - XMS) : Là vùng
bộ nhớ nằm trên 1 Mb. Ðể sử dụng vùng
bộ nhớ này CPU phải chuyển qua chế độ
bảo vệ (Protected Mode). Còn vùng dưới 1Mb thì CPU
ở trong chế độ thực (Real Mode). May mắn cho
chúng ta, việc chuyển qua lại giữa hai chế độ
này đã có Dos và các nhà chế tạo CPU lo
+
Bộ nhớ vùng cao (High Memory Area - HMA) : Là vùng thuộc
bộ nhớ mở rộng, nhưng nằm kề ngay
bộ nhớ vùng trên, kích thước 64 Kb (từ 1024 Kb
đến 1088 Kb). Chính trình đạo diễn Himem.sys cho
phép bạn sử dụng được 24 Kb của vùng
bộ nhớ mở rộng này để chuyển một
phần chương trình hệ thống của Dos lên
đây giải phóng thêm chỗ cho bộ nhớ quy ước
+
Bộ nhớ phân trang (Expanded Memory -EMS) còn được
gọi là bộ nhớ bành trướng. Bộ nhớ này
được phân thành từng trang kích thước 16 Kb
và được ánh xạ vào vùng khung trang của UMB. Có
những chương trình sử dụng chỗ trống trên
dĩa cứng làm bộ nhớ phân trang. Chương trình
nào muốn sử dụng bộ nhớ phân trang thì
phải báo rõ là mình cần bộ nhớ phân trang cho trình
quản lý EMM, việc này đứng về phía người
viết chương trình phần mềm phải thảo chương
thêm gây tốn kém cho nhà sản xuất nên người ta
ít viết chương trình loại này. Bởi vậy
nếu bạn mở file Config.sys xem thì thấy đa
số trên máy chúng ta trình quản lý bộ nhớ
Emm386.exe thường được cài đặt với
tham số noems (NO EMS nghĩa là không sử dụng bộ
nhớ phân trang)
Nói
chung việc quản lý bộ nhớ là làm sao ta có
được phần bộ nhớ hữu dụng
tức là phần còn lại của bộ nhớ quy ước
càng lớn càng tốt. Ðể làm việc này ta phải có
hiểu biết về Himem.sys và Emm386.exe được cài
đặt bằng lịnh Device trong file Config.sys, biết cách
xắp sếp các dòng lịnh trong 2 file hệ thống
nhằm đưa các phần có thể lên các bộ
nhớ khác giải phóng được nhiều chỗ
trống cho bộ nhớ quy ước.
Muốn
biết bộ nhớ được phân bổ ra sao,
từ dấu nhắc Dos, bạn đánh lịnh Mem.
Trình
quản lý bộ nhớ có sẵn của Dos là Himem.sys và
Emm386.exe, bạn có thể dùng trình tiện ích quản lý
khác như QEMM
Bạn
có thể dùng Memaker, QEMM để tự động
sửa chữa 2 file hệ thống dùm bạn. Nhưng
bạn cần phải chạy lại chúng mỗi khi
bạn hay các phần mềm mới cài đặt thay
đổi nội dung 2 file nầy, nếu không bộ
nhớ của bạn còn "tệ" hơn là bạn
không sử dụng chúng.
Một
số nguyên tắc để tối ưu 2 file hệ
thống trong việc quản lý bộ nhớ.
a/
Luôn luôn nạp Himem.sys và Emm386.exe trước tiên. Riêng
về Emm386, nên dùng thông số NOEMS và có thể thêm 2 thông
số Highscan và I=B000(B7FF để tăng dung lượng
cho khối UMB. Thí dụ:
device=c:\dos\emm386.exe
noems highscan I=b000(b7ff
b/
Phải có dòng lịnh Dos=high,umb
c/
Ðổi tất cả lịnh device thành devicehigh nếu
được. Bạn phải đổi thử từng
lịnh rồi khởi động lại xem chúng có báo
lỗi không vì có một số drv không nạp được
lên bộ nhớ cao.
d/
Thêm LH vào trước tất cả các dòng lịnh
nạp drv thường trú trong Autoexec.bat giống như
mục c. Ðối với các lịnh nạp file chương
trình chạy rồi thoát như NDD, IMAGE thì không cần.
e/
Thường xuyên dùng lịnh MEM để kiểm tra
bộ nhớ quy ước. Nếu trên 600Kb là chứng
tỏ bạn đã xắp sếp tốt 2 file hệ
thống.