100 lỗi bộ nhớ vật lý. Xử lý lỗi thiếu trang. Bộ nhớ ảo trong Windows

Các thuật toán ưu tiên/không ưu tiên.

Trong trường hợp thuật toán ưu tiên, hệ điều hành có thể làm gián đoạn việc thực thi luồng hiện tại bất kỳ lúc nào và chuyển bộ xử lý sang luồng khác. Trong các thuật toán không ưu tiên, luồng được cung cấp cho bộ xử lý chỉ quyết định thời điểm chuyển quyền điều khiển sang hệ điều hành.

Các thuật toán có lượng tử hóa.

Mỗi luồng được cung cấp một lát thời gian trong đó luồng có thể thực thi trên bộ xử lý. Khi lượng tử hết hạn, hệ điều hành sẽ chuyển bộ xử lý sang luồng tiếp theo trong hàng đợi. Lượng tử thường bằng một số nguyên các khoảng thời gian của hệ thống 1.

Các thuật toán có mức độ ưu tiên.

Mỗi luồng được gán một mức độ ưu tiên - một số nguyên biểu thị mức độ đặc quyền của luồng. Hệ điều hành, nếu có một số luồng sẵn sàng chạy, sẽ chọn luồng có mức ưu tiên cao nhất.

Windows triển khai thuật toán lập lịch hỗn hợp - ưu tiên, dựa trên lượng tử hóa và mức độ ưu tiên.

  1. Loại đa nhiệm cho ứng dụng DOS
  2. Đảm bảo dịch vụ
  3. Lập kế hoạch các quy trình tiền cảnh
  4. Mục đích của tập tin hoán trang
  5. Các tiến trình P1, P2, P3 phân bổ 100, 20, 80 MB bộ nhớ. Hệ thống có 128 MB RAM. Kích thước bộ nhớ bị chiếm dụng trong tệp trang là bao nhiêu. Kích thước của tập tin trao đổi là bao nhiêu.
  1. "lỗi trang" là gì?

Ngắt 14 -Lỗi trang (#PF): Intel386…

Được tạo nếu công cụ trang được kích hoạt (CR0.PG = 1) và một trong các tình huống sau xảy ra khi dịch địa chỉ tuyến tính sang địa chỉ vật lý:

  • phần tử của bảng trang hoặc thư mục trang được sử dụng trong dịch địa chỉ, không có bit hiện diện, I E. bảng trang hoặc trang được yêu cầu không có trong bộ nhớ vật lý;
  • thủ tục không có mức đặc quyền, đủ để truy cập trang đã chọn hoặc cố gắng ghi vào trang được bảo vệ chống ghi đối với cấp đặc quyền hiện tại.

Trình xử lý lỗi trang lấy thông tin về nguyên nhân của nó từ hai nguồn: mã lỗi được đẩy lên ngăn xếp và nội dung của thanh ghi CR2 chứa địa chỉ tuyến tính gây ra lỗi. Mã lỗi trang có định dạng đặc biệt (Hình 3.7.).

Một chương trình bị gián đoạn, sau khi loại bỏ các nguyên nhân gây ra lỗi trang (ví dụ: tải một trang vào bộ nhớ vật lý), có thể tiếp tục mà không cần bất kỳ điều chỉnh bổ sung nào.

Nếu xảy ra lỗi trang do vi phạm đặc quyền bảo mật trang, bit truy cập (A) trong mục nhập thư mục trang tương ứng sẽ được đặt. Hoạt động của bit truy cập trong thành phần bảng trang tương ứng trong trường hợp này không được quy định trong bộ xử lý Intel và có thể khác nhau ở các kiểu máy khác nhau.

  1. Tỷ lệ lỗi trang cao cho thấy:

Chương trình không an toàn

RAM không đáng tin cậy

Khác: giải thích

Cột “Lỗi trang bị thiếu trong bộ nhớ/giây.”

Trong cột “Lỗi trang hết bộ nhớ/giây.” (Lỗi cứng/giây) hiển thị số lỗi trung bình của trang hết bộ nhớ mỗi giây trong phút vừa qua. Nếu một quá trình cố gắng sử dụng nhiều bộ nhớ vật lý hơn mức hiện có, hệ thống sẽ ghi một số dữ liệu từ bộ nhớ vào đĩa - vào tệp trang. Việc truy cập tiếp theo vào dữ liệu được lưu vào đĩa được gọi là lỗi trang hết bộ nhớ.

Lỗi trang hết bộ nhớ có nghĩa là gì?

Bây giờ bạn đã biết thông tin nào được thu thập trong bảng Quy trình, hãy xem cách bạn có thể sử dụng thông tin đó để giám sát việc phân bổ bộ nhớ. Khi chạy ứng dụng và làm việc với các tệp, trình quản lý bộ nhớ sẽ giám sát kích thước tập hợp làm việc của từng quy trình và ghi lại các yêu cầu về tài nguyên bộ nhớ bổ sung. Khi tập làm việc của một quy trình tăng lên, bộ điều phối sẽ khớp các yêu cầu này với nhu cầu của kernel và các quy trình khác. Nếu không gian địa chỉ khả dụng không đủ, bộ điều phối sẽ giảm kích thước tập làm việc bằng cách lưu trữ dữ liệu từ bộ nhớ vào đĩa.

Sau đó, khi đọc dữ liệu này từ đĩa, sẽ xảy ra lỗi hết trang. Điều này khá bình thường, nhưng nếu xảy ra lỗi đồng thời ở các tiến trình khác nhau, hệ thống sẽ cần thêm thời gian để đọc dữ liệu từ đĩa. Quá thường xuyên xảy ra lỗi page out of bộ nhớ, tương ứng làm giảm hiệu suất hệ thống. Bạn có thể đã gặp phải hiện tượng chậm bất ngờ trong tất cả các ứng dụng, sau đó đột nhiên dừng lại. Sự chậm lại này gần như chắc chắn là do hoạt động phân phối lại dữ liệu giữa bộ nhớ vật lý và trao đổi.

Kết luận như sau: nếu lỗi trang hết bộ nhớ cho một quy trình cụ thể xảy ra quá thường xuyên và thường xuyên, Máy tính không có đủ bộ nhớ vật lý.

Để thuận tiện hơn trong việc giám sát các quá trình thường xuyên gây ra lỗi hết trang, bạn có thể đánh dấu chúng bằng cờ. Trong trường hợp này, các quy trình đã chọn sẽ di chuyển lên đầu danh sách và trong biểu đồ lỗi thiếu trang, chúng sẽ được biểu thị bằng một đường cong màu cam.

Cần lưu ý rằng việc phân bổ bộ nhớ phụ thuộc vào một số yếu tố khác và việc theo dõi lỗi hết trang không phải là cách tốt nhất hoặc duy nhất để xác định sự cố. Tuy nhiên, nó có thể phục vụ như một điểm khởi đầu tốt cho việc quan sát.

  1. Mức độ ưu tiên của luồng được xác định trong Windows như thế nào?

Ưu tiên

Hệ điều hành Windows thực hiện lập lịch ưu tiên ưu tiên, khi mỗi luồng được gán một giá trị số nhất định - mức độ ưu tiên, theo đó bộ xử lý được phân bổ cho nó. Các chủ đề có cùng mức độ ưu tiên được lên lịch theo thuật toán Round Robin (băng chuyền). Một ưu điểm quan trọng của hệ thống là khả năng ưu tiên các luồng đang chạy ở chế độ kernel - mã hệ thống điều hành được cấp lại hoàn toàn. Chỉ các luồng có spinlock mới không được ưu tiên (xem "Đồng bộ hóa các luồng"). Do đó, khóa xoay được sử dụng hết sức cẩn thận và được đặt trong khoảng thời gian tối thiểu.

Hệ thống cung cấp 32 mức độ ưu tiên. Mười sáu giá trị ưu tiên (16-31) tương ứng với nhóm ưu tiên thời gian thực, mười lăm giá trị (1-15) dành cho các luồng thông thường và giá trị 0 được dành riêng cho luồng zeroing trang hệ thống (xem Hình 6.2 ).

Cơm. 6.2.Ưu tiên chủ đề

Để giúp người dùng giảm bớt nhu cầu ghi nhớ các giá trị số ưu tiên và có thể sửa đổi bộ lập lịch, các nhà phát triển đã đưa vào hệ thống lớp trừu tượng ưu tiên. Ví dụ: lớp ưu tiên cho tất cả các luồng của một quy trình cụ thể có thể được đặt bằng cách sử dụng một tập hợp các tham số không đổi của hàm SetPriorityClass, có thể có các giá trị sau:

  • thời gian thực (REALTIME_PRIORITY_CLASS) - 24
  • cao (HIGH_PRIORITY_CLASS) - 13
  • trên mức bình thường (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • bình thường (NORMAL_PRIORITY_CLASS) - 8
  • dưới mức bình thường (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • và không hoạt động (IDLE_PRIORITY_CLASS) 4

Mức độ ưu tiên tương đối của một luồng được đặt bởi các tham số tương tự của hàm SetThreadPriority:

Một tập hợp gồm sáu lớp ưu tiên quy trình và bảy lớp ưu tiên luồng tạo thành 42 kết hợp có thể có và cho phép chúng ta hình thành cái gọi là mức độ ưu tiên của luồng cơ bản

Mức độ ưu tiên cơ sở mặc định của một tiến trình và luồng chính là giá trị ở giữa phạm vi ưu tiên của tiến trình ( 24, 13, 10, 8, 6 hoặc 4). Thay đổi mức độ ưu tiên của một tiến trình đòi hỏi phải thay đổi mức độ ưu tiên của tất cả các luồng của nó, trong khi mức độ ưu tiên tương đối của chúng vẫn không thay đổi.

Các ưu tiên từ 16 đến 31 không thực sự là ưu tiên theo thời gian thực vì hỗ trợ thời gian thực mềm của Windows không đảm bảo về thời gian của luồng. Đây chỉ đơn giản là những mức độ ưu tiên cao hơn được dành riêng cho các luồng hệ thống và những luồng đó được người dùng có quyền quản trị ưu tiên như vậy. Tuy nhiên, sự hiện diện của các ưu tiên thời gian thực, cũng như tính ưu việt của mã hạt nhân, bản địa hóa các trang bộ nhớ (xem "Hoạt động của trình quản lý bộ nhớ") và một số tính năng bổ sung - tất cả những điều này cho phép bạn chạy thời gian thực mềm các ứng dụng, ví dụ như đa phương tiện, trong môi trường hệ điều hành Windows. Chuỗi hệ thống có mức độ ưu tiên bằng 0 đang bận xóa các trang bộ nhớ. Chủ đề người dùng thông thường có thể có mức độ ưu tiên từ 1 đến 15.


Thông tin liên quan.


Bạn đã kết nối thiết bị mới nhưng thiết bị này hoạt động chậm hoặc thiết bị cũ đã ngừng hoạt động hoặc hoạt động không bình thường. Phải làm gì trong những trường hợp này? Cài đặt lại mọi thứ? Điều đó thật rắc rối và không phải lúc nào cũng cần thiết. Làm thế nào để tìm ra nguyên nhân và cách loại bỏ nó? Rất đơn giản. Thực tế là trong dòng hệ điều hành Windows, và không chỉ, có một điều nhất địnhQuản lý thiết bị, trên thực tế, một người quản lý rất cần thiết và hữu ích, nếu bạn có thể gọi anh ấy như vậy. Anh ấy đây, anh ấy sẽ giúp chúng tôi tìm ra nguyên nhân của vấn đề là gì và bảng ghi chú của tôi sẽ giúp chúng tôi khắc phục vấn đề. Vì vậy, ở phần trên đã đề cậpQuản lý thiết bị dấu vết lỗi trong hoạt động của thiết bị vẫn ở dạng mã. Biết được mã lỗi, không khó để xác định nguyên nhân của sự cố. Đối với những người chưa quen, mật mã chỉ là những con số khó hiểu và vô nghĩa. Nhưng đối với một người dùng hiểu biết, họ có thể nói lên rất nhiều điều. Tôi sẽ cố gắng làm sáng tỏ chủ đề này trong khả năng tốt nhất của mình.


Để xem lỗi thiết bị, trước tiên chúng ta cần vào chính Device Manager. Nó được thực hiện như thế này. Đăng nhậpBảng điều khiển từ thực đơnBắt đầu ( Có thể,Của tôi máy tính , phím phải -Của cải Quản lý thiết bị, hoặc bạn có thể làm điều đó bằng cách chỉ định một lệnh tronghành hình , nhưng tại sao lại làm phức tạp mọi thứ). Nếu chúng ta đi quabảng điều khiển sự quản lý , thì đường dẫn là:Hệ thống - Thiết bị - Trình quản lý thiết bị . Chọn bằng cách vào menuquản lý thiết bị , loại thiết bị chúng ta quan tâm (bàn phím, máy in, modem, v.v.), nhấp đúp vào thiết bị đó, kết quả chúng ta sẽ thấy các thiết bị có trong loại này. Chọn thiết bị chúng ta cần và nhấp đúp vào nó. Nhìn vào cột trên tab Giới thiệuchung, Trạng thái thiết bị. Nếu có vấn đề xảy ra trong hoạt động của thiết bị, nó sẽ hiển thị ở đây dưới dạng mã lỗi. Vì vậy, chúng ta thấy những con số và con số. Có ý nghĩa gì? Dưới đây tôi cung cấp danh sách đầy đủ các lỗi, kèm theo mô tả ngắn gọn về lỗi và các giải pháp khả thi. Mã lỗi được đánh dấu bằng màu đỏ, mô tả của mã lỗi có màu xanh lam và giải pháp có màu đen.

Mã 1Có vấn đề trong quá trình setup thiết bị, cài đặt sai hoặc thiếu driver. Nhấn vào nút Cập nhật driver , để khởi chạy trình hướng dẫnCập nhật phần cứng . Nếu không có trình điều khiển nào cả, hãy cài đặt nó.

Mã 3Trình điều khiển thiết bị bị hỏng hoặc không đủ RAM để thiết bị hoạt động chính xác.1. Hãy gỡ bỏ trình điều khiển bị hỏng và cài đặt trình điều khiển mới. Để thực hiện việc này: Thuộc tính - Trình điều khiển - Xóa, sau đó làm theo hướng dẫn của trình hướng dẫn. Khởi động lại. Hãy mở lại lần nữaquản lý thiết bị Hoạt động Cập nhật cấu hình phần cứng và làm theo hướng dẫn của thầy. 2. Nếu vấn đề là thiếu bộ nhớ ảo, hãy đóng các ứng dụng đang chạy để giải phóng bộ nhớ. Để kiểm tra trạng thái bộ nhớ chúng ta cần vàoQuản lý công việc , để thực hiện việc này, hãy nhấn phím tắtCtrl+Shift+Esc.Chúng ta có thể xem cài đặt bộ nhớ ảo bằng cách nhấp chuột phảiMáy tính của tôi Thuộc tính - Nâng cao - Hiệu suất - Cài đặt (Tùy chọn) . Bạn có thể thử tăng tệp hoán đổi (tôi đã mô tả cách thực hiện việc này trong một trong những bài viết trên blog trước đây của tôi), nhưng đây không phải là một biện pháp triệt để. Bạn sẽ phải tăng RAM. Làm thế nào điều này được thực hiện là một chủ đề riêng biệt ngoài phạm vi của bài viết này.

Mã 10Trong phần đăng ký có thông số tương ứng với máyFailReasonString,giá trị của tham số này được hiển thị trong dữ liệu lỗi, nghĩa là nếu không có tham số nào như vậy thì sẽ xuất hiện mã lỗi, hay nói cách khác là thiết bị không thể khởi động được. Cập nhật trình điều khiển như trên. Hoặc cài đặt một cái mới hơn.

Mã 12Không có nguồn cung cấp tài nguyên cần thiết cho thiết bị này. Vô hiệu hóa các thiết bị đang hoạt động khác, ít nhất một thiết bị, để thực hiện việc này, hãy sử dụng trình hướng dẫn khắc phục sự cố, nếu bạn làm theo hướng dẫn của nó, trình hướng dẫn này sẽ vô hiệu hóa thiết bị xung đột. (Hãy để tôi nhắc bạn ngắn gọn: Thuộc tính - Chung - Khắc phục sự cố.)

Mã 14Yêu cầu khởi động lại PC để thiết bị này hoạt động.

Mã 16Không thể xác định được các tài nguyên cần thiết để thiết bị hoạt động; thiết bị chưa được cấu hình đầy đủ. Bạn cần gán thêm tài nguyên cho thiết bị. Nhưng điều này có thể được thực hiện mà không gặp vấn đề gì nếu thiết bị thuộc vềCắm và chạy.

Thuộc tính - Tài nguyên. Nếu có tài nguyên có dấu ? trong danh sách tài nguyên, hãy chọn tài nguyên đó để gán cho thiết bị đã chọn. Nếu không thể thay đổi tài nguyên, hãy nhấp vàoThay đổi cài đặt , nếu chức năng này không khả dụng, hãy bỏ chọnThiết lập tự động

Mã số 18Cài đặt lại trình điều khiển thiết bị. Chúng tôi thử cập nhật trình điều khiển hoặc xóa nó và thực hiện như trong ví dụ vớimã 3.

Mã 19Không có đủ thông tin trong sổ đăng ký về cài đặt thiết bị hoặc cài đặt bị hỏng. ChạyTrình hướng dẫn khắc phục sự cố và làm theo hướng dẫn của anh ấy, nếu không được thì cài đặt lại máy như đã nói ở trên. (mã 3). Hoặc, nếu điều đó không có ích, hãy tải xuốngCấu hình tốt được biết đến lần cuối. Nếu điều này không giúp ích được gì, bạn cần có sự trợ giúp của chuyên gia, giống như bạn cần chỉnh sửa sổ đăng ký hệ thống. Nếu không có kiến ​​thức và kinh nghiệm, bạn sẽ không thể tự mình làm được gì; bất kỳ quản trị viên hệ thống nào cũng sẽ xác nhận điều này với bạn. Người nào có kiến ​​thức, có năng lực thì tự mình làm được, không cần có tôi. Và đối với một người thiếu kinh nghiệm, tốt hơn hết là đừng thử. Sổ đăng ký là trái tim của hệ điều hành và chỉ một chuyên gia có kinh nghiệm hoặc dưới sự giám sát của anh ta mới nên thực hiện các thao tác trên nó. Tôi không muốn xúc phạm bất kỳ ai theo bất kỳ cách nào, nhưng nếu bạn chưa làm việc với cơ quan đăng ký hệ thống và nếu bạn coi trọng máy tính của mình, lời khuyên của tôi là hãy quên đường đến đó. Tôi không viết cho những người chuyên nghiệp, họ không cần nó mà dành cho người dùng bình thường. Tất nhiên, tôi có thể viết cách thức và những việc cần làm ở đó, nhưng đây sẽ là lời giải thích thủ công và nếu bạn làm hỏng máy tính của mình do một sai sót nhỏ nhất, tôi sẽ phải chịu trách nhiệm. Tôi không cần điều này chút nào, và bạn cũng vậy.

Mã 21 Thiết bị đang bị xóa khỏi hệ thống, tức là hệ điều hành đang cố gắng xóa thiết bị nhưng quá trình vẫn chưa hoàn tất.


Tạm dừng vài giây và nhấn phím


Mã 22 Thiết bị này đã bị vô hiệu hóa. Thiết bị phải được bật.Hành động - Kích hoạt và làm theo hướng dẫn thêm.


Mã 24 Thiết bị bị thiếu hoặc cài đặt không đúng, driver bị trục trặc, thiết bị có thể đã được chuẩn bị để gỡ bỏ. Tháo thiết bị và cài đặt lại.


Mã số 28 Không có tài xế. Cài đặt trình điều khiển. Để thực hiện việc này, bạn cần Update driver, làm theo các bước như hướng dẫn ở Code 1.


Mã 29Thiết bị đã bị vô hiệu hóa . Bạn phải cho phép thiết bị hoạt động trong cài đặtBIOSĐọc hướng dẫn sử dụng thiết bị.


Mã 31Hệ thống không thể tải trình điều khiển cho thiết bị này . Cập nhật trình điều khiển như mô tả ở trên.


Mã 32Trình điều khiển cho thiết bị này bị vô hiệu hóa trong sổ đăng ký hệ thống . Gỡ cài đặt và cài đặt lại trình điều khiển (được mô tả ở trên)


Mã 33Hệ điều hành không thể xác định tài nguyên cho việc này thiết bị . Thiết lập thiết bị hoặc thay thế nó.


Mã 34Hệ điều hành không thể phát hiện cài đặt thiết bị . Xem lại tài liệu đi kèm với thiết bị và định cấu hình cấu hình theo cách thủ công trên tab Tài nguyên.


Mã 35Phần sụn PC không có thông tin cần thiết để sửa lỗi vận hành thiết bị . Cần cập nhậtBIOS.Để được hướng dẫn cách thực hiện việc này, hãy liên hệ với nhà cung cấp của bạn hoặc tốt hơn là sử dụng dịch vụ của kỹ thuật viên có kinh nghiệm.


Mã 36Thiết bị yêu cầu ngắt để hoạt động.PCIvà thiết bị được cấu hình để ngắtLÀ MỘT,hoặc ngược lại . Cần phải thay đổi cài đặtBIOSliên hệ với một kỹ thuật viên có kinh nghiệm.


Mã 37Hệ điều hành không nhận dạng được driver cho thiết bị này . Cài đặt lại trình điều khiển (được mô tả ở trên).


Mã 38HĐH không thể tải trình điều khiển cho thiết bị vì, phiên bản trình điều khiển trước đó vẫn còn trong bộ nhớ . Bạn cần khởi động lại PC của mình. Chạy Trình hướng dẫn khắc phục sự cố nếu nó không khởi động (Thuộc tính - Chung - Khắc phục sự cố) và làm theo hướng dẫn của trình hướng dẫn. Sau đó có một khởi động lại bắt buộc.


Mã 39Hệ điều hành không thể tải trình điều khiển thiết bị. Trình điều khiển bị hư hỏng hoặc nó hoàn toàn không tồn tại . Cài đặt lại trình điều khiển như mô tả ở trên.


Mã 40Không có quyền truy cập vào thiết bị do không có thông tin trong sổ đăng ký hệ thống hoặc thông tin có lỗi . Cài đặt lại trình điều khiển.


Mã số 41Không phát hiện được thiết bị . Chạy Trình hướng dẫn khắc phục sự cố (được mô tả ở trên), nếu điều này không có ích, hãy cập nhật cấu hình phần cứng (xem ở trên) hoặc cập nhật trình điều khiển. Nếu không, hãy cài đặt phiên bản trình điều khiển mới hơn.


Mã số 42Hệ thống đã có trình điều khiển như vậy. Tức là có 2 thiết bị khác nhau có cùng tên, có thể do lỗi . Khởi động lại PC của bạn.


Mã số 43Dừng thiết bị do sự cố khi vận hành . Chạy Trình hướng dẫn khắc phục sự cố và làm theo hướng dẫn của nó.


Mã 44Một ứng dụng hoặc dịch vụ đã dừng thiết bị của bạn . Khởi động lại PC của bạn.


Mã 45Thiết bị chưa được kết nối . Kết nối thiết bị của bạn.


Mã 46Lỗi này xuất hiện khi hệ điều hành tắt. Bạn không cần phải làm gì cả, lần sau khi bạn khởi động HĐH, mọi thứ sẽ hoạt động.


Mã số 47 Thiết bị đã được chuẩn bị để gỡ bỏ một cách an toàn nhưng vẫn chưa được gỡ bỏ (ví dụ: ổ đĩa flash) . Tháo thiết bị, sau đó kết nối lại, khởi động lại PC của bạn.


Mã số 48Thiết bị, hay đúng hơn là phần mềm của nó bị chặn . Cập nhật trình điều khiển hoặc cài đặt trình điều khiển mới.


Mã 49Không thể khởi động thiết bị vì thiết bị có tổ chức đăng ký hệ thống lớn vượt quá các tham số đăng ký được chấp nhận . Xóa các thiết bị không được sử dụng khỏi sổ đăng ký. Bạn có thể thực hiện việc này: Trình quản lý thiết bị - Xem - Hiển thị các thiết bị ẩn. Tại đây bạn sẽ thấy các thiết bị ẩn không được kết nối với PC của bạn. Chọn các thiết bị bạn muốn xóa, nhấp vào Thuộc tính cho thiết bị - Trình điều khiển - Xóa, sau đó làm theo hướng dẫn của trình hướng dẫn và cuối cùng khởi động lại PC.


Hướng dẫn loại bỏ bất kỳ vi-rút nào khỏi PC bằng chính đôi tay của bạn. Tất cả các phương pháp loại bỏ vi-rút thực sự hoạt động và đã được thử nghiệm trên thực tế, hướng dẫn từng bước có hình ảnh minh họa - đơn giản và dễ tiếp cận ngay cả đối với học sinh + video hướng dẫn + chương trình ultraiso để tạo trình tải xuống + liên kết hữu ích đến các công cụ trong cuộc chiến chống vi-rút. Tải xuống kho lưu trữ

Trong bài viết trước của tôi "" Tôi đã nói về các khả năng của Trình giám sát tài nguyên Windows 7 (Trình giám sát tài nguyên), giải thích cách sử dụng nó để giám sát việc phân phối tài nguyên hệ thống giữa các quy trình và dịch vụ, đồng thời đề cập rằng nó có thể được sử dụng để giải quyết các vấn đề cụ thể vấn đề - ví dụ: để phân tích mức tiêu thụ bộ nhớ. Đây chính xác là những gì bài viết này sẽ thảo luận.

Một chút về trí nhớ

Trước khi bắt đầu phân tích, tôi sẽ nói ngắn gọn về cách kiểm soát bộ nhớ. Điều này sẽ giúp bạn dễ hiểu hơn những thông tin nào được trình bày trong Trình giám sát tài nguyên Windows 7.

Trình quản lý bộ nhớ Windows 7 tạo một hệ thống bộ nhớ ảo bao gồm RAM vật lý có sẵn và tệp trang trên ổ cứng. Điều này cho phép hệ điều hành phân bổ các khối bộ nhớ (trang) có độ dài cố định với các địa chỉ tuần tự trong bộ nhớ vật lý và ảo.

Khởi chạy Trình giám sát tài nguyên Windows 7

Để khởi chạy Windows 7 Resource Monitor, hãy mở menu Bắt đầu, nhập "Resmon.exe" vào thanh tìm kiếm và nhấp vào . Trong cửa sổ mở ra, chọn tab “Bộ nhớ” (Hình A).

Hình A: Tab Bộ nhớ trong Windows 7 Resource Monitor cung cấp thông tin phân bổ bộ nhớ chi tiết.

Bảng quy trình

Tab Bộ nhớ có bảng Quy trình (Hình B) liệt kê tất cả các quy trình đang chạy và chia mức sử dụng bộ nhớ thành nhiều danh mục.


Hình B: Thông tin sử dụng bộ nhớ cho mỗi tiến trình được chia thành nhiều loại.

Cột "Hình ảnh"

Cột “Hình ảnh” cho biết tên của tệp thực thi quy trình. Các tiến trình chạy bởi các ứng dụng rất dễ nhận biết - ví dụ: tiến trình “notepad.exe” rõ ràng thuộc về Notepad. Các quy trình có tên "svchost.exe" đại diện cho nhiều dịch vụ hệ điều hành khác nhau. Tên dịch vụ xuất hiện trong ngoặc đơn bên cạnh tên quy trình.

Cột ID tiến trình

Cột ID tiến trình (PID) cho biết số tiến trình - một tổ hợp số duy nhất cho phép bạn xác định tiến trình đang chạy.

Cột "Đã hoàn thành"

Cột Cam kết cho biết dung lượng bộ nhớ ảo, tính bằng kilobyte, mà hệ thống đã dành riêng cho quá trình này. Điều này bao gồm cả bộ nhớ vật lý được sử dụng và các trang được lưu trữ trong tệp hoán trang.

Cột "Bộ công việc"

Cột Working Set cho biết lượng bộ nhớ vật lý tính bằng kilobyte được quy trình sử dụng tại một thời điểm nhất định. Bộ làm việc bao gồm bộ nhớ chung và bộ nhớ riêng.

Cột “Chung”

Cột Có thể chia sẻ cho biết dung lượng bộ nhớ vật lý tính bằng kilobyte mà quy trình này chia sẻ với những quy trình khác. Chia sẻ một phân đoạn bộ nhớ hoặc trang trao đổi cho các quy trình liên quan có thể tiết kiệm dung lượng bộ nhớ. Điều này về mặt vật lý chỉ lưu trữ một bản sao của trang, sau đó được ánh xạ tới không gian địa chỉ ảo của các quy trình khác truy cập vào nó. Ví dụ: tất cả các quy trình được khởi tạo bởi các DLL hệ thống - Ntdll, Kernel32, Gdi32 và User32 - đều sử dụng bộ nhớ dùng chung.

Cột "Riêng tư"

Cột Riêng tư cho biết dung lượng bộ nhớ vật lý, tính bằng kilobyte, được sử dụng riêng cho quy trình này. Chính giá trị này cho phép bạn xác định lượng bộ nhớ mà một ứng dụng cụ thể cần để hoạt động.

Cột “Lỗi trang bị thiếu trong bộ nhớ/giây.”

Trong cột “Lỗi trang hết bộ nhớ/giây.” (Lỗi cứng/giây) hiển thị số lỗi trung bình của trang hết bộ nhớ mỗi giây trong phút vừa qua. Nếu một quá trình cố gắng sử dụng nhiều bộ nhớ vật lý hơn mức hiện có, hệ thống sẽ ghi một số dữ liệu từ bộ nhớ vào đĩa - vào tệp trang. Việc truy cập tiếp theo vào dữ liệu được lưu vào đĩa được gọi là lỗi trang hết bộ nhớ.

Lỗi trang hết bộ nhớ có nghĩa là gì?

Bây giờ bạn đã biết thông tin nào được thu thập trong bảng Quy trình, hãy xem cách bạn có thể sử dụng thông tin đó để giám sát việc phân bổ bộ nhớ. Khi chạy ứng dụng và làm việc với các tệp, trình quản lý bộ nhớ sẽ giám sát kích thước tập hợp làm việc của từng quy trình và ghi lại các yêu cầu về tài nguyên bộ nhớ bổ sung. Khi tập làm việc của một quy trình tăng lên, bộ điều phối sẽ khớp các yêu cầu này với nhu cầu của kernel và các quy trình khác. Nếu không gian địa chỉ khả dụng không đủ, bộ điều phối sẽ giảm kích thước tập làm việc bằng cách lưu trữ dữ liệu từ bộ nhớ vào đĩa.

Sau đó, khi đọc dữ liệu này từ đĩa, sẽ xảy ra lỗi hết trang. Điều này khá bình thường, nhưng nếu xảy ra lỗi đồng thời ở các tiến trình khác nhau, hệ thống sẽ cần thêm thời gian để đọc dữ liệu từ đĩa. Lỗi hết trang quá thường xuyên sẽ làm giảm hiệu suất hệ thống. Bạn có thể đã gặp phải hiện tượng chậm bất ngờ trong tất cả các ứng dụng, sau đó đột nhiên dừng lại. Sự chậm lại này gần như chắc chắn là do hoạt động phân phối lại dữ liệu giữa bộ nhớ vật lý và trao đổi.

Kết luận như sau: nếu lỗi hết bộ nhớ cho một quá trình cụ thể xảy ra quá thường xuyên và thường xuyên thì máy tính không có đủ bộ nhớ vật lý.

Để thuận tiện hơn trong việc giám sát các quá trình thường xuyên gây ra lỗi hết trang, bạn có thể đánh dấu chúng bằng cờ. Trong trường hợp này, các quy trình đã chọn sẽ di chuyển lên đầu danh sách và trong biểu đồ lỗi thiếu trang, chúng sẽ được biểu thị bằng một đường cong màu cam.

Cần lưu ý rằng việc phân bổ bộ nhớ phụ thuộc vào một số yếu tố khác và việc theo dõi lỗi hết trang không phải là cách tốt nhất hoặc duy nhất để xác định sự cố. Tuy nhiên, nó có thể phục vụ như một điểm khởi đầu tốt cho việc quan sát.

Bảng "Bộ nhớ vật lý"

Bảng Quy trình cung cấp thông tin chi tiết về việc phân bổ bộ nhớ giữa các quy trình riêng lẻ và bảng Bộ nhớ vật lý cung cấp bức tranh tổng thể về việc sử dụng RAM. Thành phần chính của nó là biểu đồ duy nhất được hiển thị trong Hình. C.


Hình C: Biểu đồ trong bảng Bộ nhớ vật lý cung cấp cái nhìn tổng quan về phân bổ bộ nhớ trong Windows 7.

Mỗi phần của biểu đồ được biểu thị bằng màu riêng và đại diện cho một nhóm trang bộ nhớ cụ thể. Khi hệ thống được sử dụng, trình quản lý bộ nhớ sẽ di chuyển dữ liệu giữa các nhóm này ở chế độ nền, duy trì sự cân bằng tinh tế giữa bộ nhớ vật lý và bộ nhớ ảo để đảm bảo tất cả các ứng dụng chạy hiệu quả. Chúng ta hãy xem xét kỹ hơn biểu đồ.

Mục “Thiết bị dự trữ”

Bên trái là phần “Dành riêng cho phần cứng”, được biểu thị bằng màu xám: đây là bộ nhớ được phân bổ cho nhu cầu của phần cứng được kết nối mà nó sử dụng để tương tác với hệ điều hành. Bộ nhớ dành riêng cho phần cứng bị khóa và người quản lý bộ nhớ không thể truy cập được.

Thông thường, dung lượng bộ nhớ được phân bổ cho thiết bị dao động từ 10 đến 70 MB, nhưng con số này phụ thuộc vào cấu hình hệ thống cụ thể và trong một số trường hợp có thể lên tới vài trăm megabyte. Các thành phần ảnh hưởng đến dung lượng bộ nhớ dự trữ bao gồm:

;
các thành phần bo mạch chủ - chẳng hạn như Bộ điều khiển ngắt I/O có thể lập trình nâng cao (APIC);
card âm thanh và các thiết bị khác thực hiện đầu vào/đầu ra được ánh xạ bộ nhớ;
Xe buýt PCI Express (PCIe);
card màn hình;
nhiều loại chipset khác nhau;
ổ đĩa flash.

Một số người dùng phàn nàn rằng hệ thống của họ có lượng bộ nhớ dành riêng cho phần cứng quá lớn. Tôi chưa bao giờ gặp phải tình huống như vậy và do đó tôi không thể đảm bảo tính hiệu quả của giải pháp được đề xuất, nhưng nhiều người lưu ý rằng việc cập nhật phiên bản BIOS có thể giải quyết được vấn đề.

Phần “Đang sử dụng”

Phần Đang sử dụng, được hiển thị bằng màu xanh lục, biểu thị dung lượng bộ nhớ được hệ thống, trình điều khiển và các tiến trình đang chạy sử dụng. Dung lượng bộ nhớ được sử dụng được tính bằng giá trị “Tổng cộng” trừ đi tổng của các chỉ báo “Đã sửa đổi”, “Chế độ chờ” và “Còn trống”. Đổi lại, giá trị “Tổng” là chỉ báo “RAM đã cài đặt” trừ đi chỉ báo “Thiết bị dự trữ”.

Phần "Đã thay đổi"

Phần “Đã sửa đổi” được tô sáng màu cam, biểu thị bộ nhớ đã được sửa đổi nhưng không được sử dụng. Trên thực tế, nó không được sử dụng nhưng có thể sử dụng bất cứ lúc nào nếu cần. Nếu bộ nhớ không được sử dụng trong một thời gian dài, dữ liệu sẽ được chuyển sang tệp trang và bộ nhớ sẽ chuyển sang danh mục "Đang chờ".

Phần "Chờ đợi"

Phần Đang chờ xử lý, được hiển thị bằng màu xanh lam, biểu thị các trang bộ nhớ đã bị xóa khỏi nhóm làm việc nhưng vẫn được liên kết với chúng. Nói cách khác, danh mục "Đang chờ" thực chất là một bộ nhớ đệm. Các trang bộ nhớ trong danh mục này được gán mức độ ưu tiên từ 0 đến 7 (tối đa). Các trang được liên kết với quy trình có mức độ ưu tiên cao sẽ nhận được mức độ ưu tiên tối đa. Ví dụ: các quy trình được chia sẻ có mức độ ưu tiên cao, do đó các trang được liên kết với chúng sẽ có mức độ ưu tiên cao nhất trong danh mục Đang chờ xử lý.

Nếu một tiến trình yêu cầu dữ liệu từ một trang đang chờ, trình quản lý bộ nhớ sẽ ngay lập tức trả trang đó về tập làm việc. Tuy nhiên, tất cả các trang trong danh mục Đang chờ xử lý đều có sẵn để ghi dữ liệu từ các quy trình khác. Khi một tiến trình yêu cầu bộ nhớ bổ sung và không có đủ bộ nhớ trống, trình quản lý bộ nhớ sẽ chọn trang chờ có mức ưu tiên thấp nhất, khởi tạo nó và phân bổ nó cho tiến trình yêu cầu.

Phần "Miễn phí"

Danh mục Miễn phí, được biểu thị bằng màu xanh lam, biểu thị các trang bộ nhớ chưa được phân bổ cho bất kỳ quy trình nào hoặc đã được giải phóng khi quy trình kết thúc. Phần này hiển thị cả bộ nhớ chưa sử dụng và bộ nhớ đã giải phóng, nhưng trên thực tế, bộ nhớ chưa sử dụng thuộc một danh mục khác - “Zero Pages”, được gọi như vậy vì các trang này được khởi tạo về 0 và sẵn sàng để sử dụng.

Về vấn đề bộ nhớ trống

Bây giờ bạn đã hiểu cơ bản về cách hoạt động của trình quản lý bộ nhớ, hãy dành chút thời gian để giải quyết quan niệm sai lầm phổ biến về hệ thống quản lý bộ nhớ trong Windows 7. Như bạn có thể thấy trong Hình 1. C, Phần bộ nhớ trống là một trong những phần nhỏ nhất trong biểu đồ. Tuy nhiên, thật sai lầm khi cho rằng trên cơ sở này Windows 7 tiêu tốn quá nhiều bộ nhớ và hệ thống không thể hoạt động bình thường nếu có quá ít bộ nhớ trống.

Trên thực tế, nó hoàn toàn ngược lại. Trong bối cảnh cách tiếp cận quản lý bộ nhớ của Windows 7, bộ nhớ trống là vô ích. Càng sử dụng nhiều bộ nhớ thì càng tốt. Bằng cách tối đa hóa bộ nhớ và liên tục di chuyển các trang từ danh mục này sang danh mục khác bằng hệ thống ưu tiên, Windows 7 cải thiện hiệu quả và ngăn dữ liệu kết thúc trong tệp trang, ngăn lỗi ngoài trang làm chậm hiệu suất.

Giám sát bộ nhớ

Bạn muốn xem hệ thống quản lý bộ nhớ của Windows 7 hoạt động như thế nào? Khởi động lại máy tính của bạn và ngay sau khi khởi động, hãy mở Trình giám sát tài nguyên Windows 7. Chuyển đến tab Bộ nhớ và chú ý đến tỷ lệ các phần trong biểu đồ bộ nhớ vật lý.

Sau đó bắt đầu khởi chạy ứng dụng. Khi bạn chạy, hãy xem biểu đồ thay đổi. Khi bạn đã khởi chạy nhiều ứng dụng nhất có thể, hãy bắt đầu đóng từng ứng dụng một và xem tỷ lệ các phần trong biểu đồ bộ nhớ vật lý thay đổi như thế nào.

Bằng cách thực hiện thử nghiệm cực đoan này, bạn sẽ hiểu cách Windows 7 quản lý bộ nhớ trên máy tính cụ thể của mình và bạn sẽ có thể sử dụng Windows 7 Resource Monitor để giám sát việc phân bổ bộ nhớ trong điều kiện hoạt động bình thường hàng ngày.

Bạn nghĩ sao?

Bạn có thích ý tưởng sử dụng Windows 7 Resource Monitor để giám sát việc phân bổ bộ nhớ không? Chia sẻ ý kiến ​​​​của bạn trong các ý kiến!

Khi một tiến trình khởi động trong Windows, nhiều trang hiển thị hình ảnh EXE và DLL có thể đã có trong bộ nhớ vì chúng đang được các tiến trình khác sử dụng. Các trang hình ảnh có thể ghi được đánh dấu là "sao chép khi ghi" để chúng có thể được chia sẻ cho đến khi cần sửa đổi. Nếu hệ điều hành nhận ra một EXE đã được thực thi, nó có thể ghi lại mẫu liên kết trang (sử dụng công nghệ mà Microsoft gọi là Super-Fetch). Công nghệ này cố gắng bơm trước nhiều trang cần thiết (mặc dù quá trình này vẫn chưa nhận được lỗi trang trên chúng). Điều này làm giảm độ trễ khởi chạy ứng dụng (đọc các trang từ đĩa trùng lặp với việc thực thi mã khởi tạo của hình ảnh). Công nghệ này cải thiện hiệu suất đầu ra của đĩa vì trình điều khiển đĩa có thể tổ chức các hoạt động đọc dễ dàng hơn (để giảm thời gian tìm kiếm cần thiết). Quá trình phân trang ưu tiên này được sử dụng trong quá trình khởi động hệ thống, cũng như khi một ứng dụng nền chạy lên nền trước và khi hệ thống thức dậy sau chế độ ngủ đông.

Phân trang tìm nạp trước được trình quản lý bộ nhớ hỗ trợ nhưng được triển khai như một thành phần hệ thống riêng biệt. Các trang được phân trang không được chèn vào bảng trang của quy trình; thay vào đó, chúng được chèn vào danh sách dự phòng mà từ đó chúng có thể được chèn nhanh vào quy trình (không cần truy cập vào đĩa).

Các trang chưa được ánh xạ hơi khác một chút - chúng không được khởi tạo bằng cách đọc từ một tệp. Thay vào đó, khi truy cập lần đầu tiên một trang chưa được ánh xạ, trình quản lý bộ nhớ sẽ cung cấp một trang vật lý mới (đảm bảo nội dung của nó chứa đầy các số 0 vì lý do bảo mật). Trong các lỗi trang tiếp theo, trang chưa được ánh xạ có thể cần được tìm thấy trong bộ nhớ hoặc có thể phải được đọc từ tệp trang.

Phân trang theo yêu cầu trong trình quản lý bộ nhớ được kiểm soát bởi lỗi trang. Mọi lỗi đều gây ra gián đoạn cho kernel. Sau đó, hạt nhân xây dựng một bộ mô tả độc lập với máy (báo cáo những gì đã xảy ra) và chuyển nó cho trình quản lý bộ nhớ điều hành. Trình quản lý bộ nhớ sau đó sẽ kiểm tra tính hợp lệ của quyền truy cập. Nếu trang bị lỗi nằm trong vùng đã cam kết, nó sẽ tra cứu địa chỉ trong danh sách VAD và tìm (hoặc tạo) mục nhập bảng trang của quy trình. Trong trường hợp trang được chia sẻ, trình quản lý bộ nhớ sử dụng mục nhập bảng trang nguyên mẫu (được liên kết với đối tượng phân đoạn) để điền mục nhập bảng trang mới của quy trình.

Định dạng của thành phần bảng trang thay đổi tùy thuộc vào kiến ​​trúc bộ xử lý. Đối với bộ xử lý x86 và x64, các thành phần của trang được hiển thị được hiển thị trong Hình. 17/11. Nếu một phần tử được đánh dấu là hợp lệ thì nội dung của nó sẽ được phần cứng diễn giải (để địa chỉ ảo có thể được dịch sang trang vật lý chính xác). Các trang chưa được ánh xạ cũng có các phần tử của chúng, nhưng chúng được đánh dấu là không hợp lệ và phần cứng sẽ bỏ qua phần còn lại của phần tử. Định dạng phần mềm hơi khác so với định dạng phần cứng và được xác định bởi trình quản lý bộ nhớ. Ví dụ: đối với một trang không được hiển thị (phải được định vị và đặt lại trước khi sử dụng), thực tế này được ghi chú trong thành phần bảng trang.


Hai bit quan trọng của mục bảng trang được phần cứng cập nhật trực tiếp. Đây là bit truy cập (A) và bit sửa đổi (D). Các bit này theo dõi việc sử dụng ánh xạ trang nhất định để truy cập trang và liệu trang có thể được sửa đổi bởi quyền truy cập đó hay không. Điều này thực sự cải thiện hiệu suất hệ thống vì trình quản lý bộ nhớ có thể sử dụng bit truy cập để triển khai phân trang Ít được sử dụng gần đây nhất (LRU). Nguyên tắc của LRU là những trang không được sử dụng lâu nhất sẽ có khả năng được sử dụng lại trong tương lai gần thấp nhất. Bit truy cập cho phép trình quản lý bộ nhớ xác định rằng trang đã được truy cập. Bit "đã sửa đổi" cho trình quản lý bộ nhớ biết rằng trang có thể đã được sửa đổi (hoặc quan trọng hơn là nó chưa được sửa đổi). Nếu trang chưa được sửa đổi kể từ khi nó được đọc từ đĩa thì trình quản lý bộ nhớ không cần ghi nội dung của nó vào đĩa (trước khi sử dụng nó cho mục đích khác).

Cả hai kiến ​​trúc x86 và x64 đều sử dụng mục nhập bảng trang 64-bit (xem Hình 11.17).

Mỗi lỗi trang có thể được phân thành một trong năm loại:

1. Trang không cố định.

2. Cố gắng truy cập một trang vi phạm quyền.

3. Nỗ lực sửa đổi trang sao chép khi ghi.

1. Cần phải tăng ngăn xếp.

2. Trang bị đóng băng nhưng hiện không hiển thị.

Trường hợp thứ nhất và thứ hai là lỗi lập trình. Nếu một chương trình cố gắng sử dụng một địa chỉ không có ánh xạ hợp lệ hoặc cố gắng thực hiện một thao tác bất hợp pháp (chẳng hạn như cố gắng ghi vào trang chỉ đọc), thì điều này được gọi là vi phạm quyền truy cập và thường khiến quá trình chấm dứt . Vi phạm quyền truy cập thường là kết quả của các giá trị con trỏ không hợp lệ, bao gồm quyền truy cập vào bộ nhớ đã bị hủy cấp phát và tách khỏi quy trình.

Trường hợp thứ ba có các triệu chứng tương tự như trường hợp thứ hai (cố gắng ghi vào trang chỉ đọc), nhưng cách xử lý của nó khác. Vì trang được đánh dấu là sao chép khi ghi nên trình quản lý bộ nhớ không báo cáo vi phạm quyền truy cập. Thay vào đó, nó tạo một bản sao riêng tư của trang cho quy trình hiện tại và sau đó trả lại quyền điều khiển cho luồng đã cố gắng ghi vào trang. Chuỗi lặp lại thao tác ghi, thao tác này sẽ hoàn tất mà không có lỗi trang.

Trường hợp thứ tư xảy ra khi một luồng đẩy một giá trị lên ngăn xếp của nó và chạm vào một trang chưa được phân bổ. Trình quản lý bộ nhớ nhận ra đây là trường hợp đặc biệt. Miễn là có không gian trong các trang ảo dành riêng cho ngăn xếp, trình quản lý bộ nhớ sẽ cung cấp các trang mới, loại bỏ chúng và ánh xạ chúng tới quy trình. Khi luồng tiếp tục thực thi, nó sẽ cố gắng truy cập lại và lần này nó sẽ thành công.

Và cuối cùng, trường hợp thứ năm là lỗi trang bình thường. Tuy nhiên, nó có một số tùy chọn phụ. Nếu một trang được ánh xạ tới một tệp, trình quản lý bộ nhớ phải xem cấu trúc dữ liệu của nó (chẳng hạn như bảng trang nguyên mẫu được liên kết với đối tượng phân đoạn) để đảm bảo rằng không có bản sao của nó trong bộ nhớ. Nếu có một bản sao (ví dụ: trong một quy trình khác, trong danh sách chờ hoặc trong danh sách các trang đã sửa đổi), thì anh ta sẽ chỉ chia sẻ nó (anh ta có thể phải đánh dấu nó là trang sao chép để ghi làm điều này nếu những thay đổi không được chia sẻ). Nếu chưa có bản sao nào, trình quản lý bộ nhớ sẽ phân bổ một trang vật lý trống và chuẩn bị cho việc sao chép trang tệp từ đĩa vào đó, trừ khi một trang khác đang được chuyển từ đĩa vào thời điểm đó (trong trường hợp đó bạn chỉ cần đợi cho đến khi quá trình chuyển giao hoàn tất).

Nếu trình quản lý bộ nhớ có thể xử lý lỗi trang bằng cách định vị trang đó trong bộ nhớ (thay vì đọc nó từ đĩa), thì lỗi đó được gọi là lỗi mềm. Nếu bạn cần một bản sao từ đĩa thì đây là một lỗi nghiêm trọng. Lỗi mềm rẻ hơn nhiều và ít ảnh hưởng đến hiệu suất ứng dụng (so với lỗi cứng). Lỗi mềm có thể xảy ra do trang được chia sẻ đã được ánh xạ tới một quy trình khác hoặc đơn giản là cần một trang có số 0 mới hoặc trang mong muốn đã bị xóa khỏi bộ làm việc của quy trình nhưng đang được yêu cầu lại trước khi được sử dụng lại. Lỗi phần mềm cũng có thể xảy ra do các trang đã được nén để tăng kích thước bộ nhớ vật lý một cách hiệu quả. Đối với hầu hết các cấu hình CPU, việc nén bộ nhớ và I/O trên hệ thống hiện tại sẽ hiệu quả hơn thay vì phát sinh I/O đắt tiền (về hiệu suất và năng lượng) yêu cầu đọc một trang từ đĩa.

Khi một trang vật lý không còn được ánh xạ tới bảng trang của bất kỳ quy trình nào, nó sẽ chuyển sang một trong ba danh sách: miễn phí, đã sửa đổi hoặc dành riêng. Những trang không bao giờ cần thiết nữa (chẳng hạn như các trang ngăn xếp của quá trình kết thúc) sẽ được giải phóng ngay lập tức. Những trang có khả năng bị lỗi trang lại nằm trong danh sách đã sửa đổi hoặc danh sách dự phòng (tùy thuộc vào việc bit "đã sửa đổi" đã được đặt cho bất kỳ mục nhập bảng trang nào đã hiển thị trang đó kể từ lần đọc cuối cùng từ đĩa hay chưa) . Các trang từ danh sách đã sửa đổi cuối cùng sẽ được ghi vào đĩa và sau đó được chuyển sang danh sách dự trữ.

Trình quản lý bộ nhớ có thể phân bổ các trang khi cần thiết (sử dụng danh sách các trang trống hoặc trang dự phòng). Trước khi cấp phát một trang và sao chép nó từ đĩa, trình quản lý bộ nhớ luôn kiểm tra danh sách các trang dự phòng và trang đã sửa đổi để xem trang đó đã có trong bộ nhớ chưa. Lược đồ phân trang chuyển tiếp trong Windows chuyển đổi các lỗi cứng trong tương lai thành lỗi mềm (bằng cách đọc các trang có thể cần thiết và đặt chúng vào danh sách trang dự phòng). Bản thân trình quản lý bộ nhớ thực hiện một lượng nhỏ phân trang phía trước - nó truy cập vào các nhóm trang tuần tự (chứ không phải các trang riêng lẻ). Các trang bổ sung ngay lập tức được đặt vào danh sách trang chờ. Điều này không lãng phí vì chi phí của trình quản lý bộ nhớ thấp hơn nhiều so với chi phí thực hiện các thao tác I/O. Đọc toàn bộ cụm trang đắt hơn một chút so với đọc một trang.

Các thành phần của bảng trang trong Hình 2. 11.17 đề cập đến số trang vật lý (không phải ảo). Để cập nhật một mục trong bảng trang (và thư mục trang), kernel cần sử dụng địa chỉ ảo. Windows ánh xạ các bảng trang và thư mục trang cho tiến trình hiện tại tới không gian địa chỉ ảo kernel bằng cách sử dụng phần tử self-map trong thư mục trang (Hình 11.18). Bằng cách ánh xạ một thành phần thư mục trang tới một thư mục trang (tự ánh xạ), chúng ta thu được các địa chỉ ảo có thể được sử dụng để tham chiếu các thành phần thư mục trang (Hình 11.18, a) và các thành phần bảng trang (Hình 11.18, b). Bản đồ tự chiếm 8 MB địa chỉ ảo kernel cho mỗi tiến trình (trên bộ xử lý x86). Để đơn giản, hình này hiển thị phần tử tự ánh xạ x86 cho các mục nhập PTE 32 bit (Mục nhập bảng trang). Trên thực tế, Windows sử dụng bản ghi PTE 64 bit nên hệ thống có thể tận dụng hơn 4 GB bộ nhớ vật lý. Với các mục nhập PTE 32-bit, phần tử tự ánh xạ chỉ sử dụng một mục nhập PDE (Mục nhập thư mục trang) trong thư mục trang và do đó chỉ chiếm 4 MB địa chỉ thay vì 8 MB.