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.

      <!-- Inserted by DomainDLX.com - Bottom --> <p align="center"><strong><a href="javascript:if(confirm('http://www.domaindlx.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.domaindlx.com/'" tppabs="http://www.domaindlx.com/">100 MB free hosting. Click here to build your own free site.</a></strong></p> <!-- Inserted by DomainDLX.com - Bottom -->