Câu trả lời:
Nếu ứng dụng nhận biết AWE thì họ có thể sử dụng không gian địa chỉ ngoài 4Gb, mặc dù kém hiệu quả hơn ứng dụng 64 bit. Thậm chí có thể cho các quy trình 32 bit trong các biến thể Windows 32 bit có thể truy cập nhiều hơn không gian địa chỉ 32 bit sẽ cho phép, nếu PAE được bật và quá trình có khả năng sử dụng nó.
Một quy trình 32 bit riêng lẻ (không nhận biết AWE) thường bị giới hạn ở 3Gb (Gb đầu tiên của không gian địa chỉ ảo được dành riêng cho hành động liên quan đến kernel) nhưng nếu bạn đang chạy nhiều quy trình thì họ sẽ có thể sử dụng nhiều hơn trong tổng (mỗi có thể sử dụng lên đến 3Gb, tổng bộ nhớ cho phép) như không gian địa chỉ ảo của họ đang không chia sẻ.
Giới hạn cho mỗi quy trình hữu ích hơn trong môi trường giống Unix nơi các dịch vụ có xu hướng dựa trên quy trình thay vì dựa trên luồng (nhiều luồng trong một quy trình chia sẻ tài nguyên quy trình và do đó chia sẻ một không gian địa chỉ ảo 3Gb) như phổ biến hơn trong Windows (bắt đầu một quy trình mới trong Windows vì khá tốn kém nên các luồng được ưu tiên, trong hầu hết các môi trường Unix bắt đầu một quy trình mới không tiêu tốn nhiều tài nguyên hơn so với bắt đầu một luồng mới) . Chẳng hạn, nó không hữu ích cho một máy chỉ chạy SQL Server, vì nó chỉ là một quá trình nên sẽ đạt giới hạn 3Gb (một số phiên bản có thể được định cấu hình để nhận biết AWE nhưng không phải tất cả, và tính năng này dự kiến sẽ được gỡ bỏ trong phiên bản chính tiếp theo) .
Cũng như các quy trình 32 bit có thể sử dụng nhiều hơn 3Gb trong toàn bộ HĐH sẽ có thể sử dụng bất kỳ bộ nhớ không sử dụng nào cho bộ nhớ đệm đĩa, do đó, nó có thể không bị lãng phí, giả sử các quy trình không mở tệp theo cách như vậy như để nói với hệ điều hành không bận tâm làm điều này.
Nếu ứng dụng sử dụng AWE , thì có (mặc dù điều này không bị hạn chế đối với HĐH 64 bit). Không có nó, quá trình vẫn bị giới hạn trong không gian địa chỉ 4GB.
Sắp xếp, tùy thuộc vào ý của bạn.
Giả sử Windows ...
Nếu HĐH là 64 bit, theo mặc định, quy trình 32 bit sẽ có 2 GB không gian địa chỉ ảo địa chỉ người dùng. Nếu tiêu đề PE của tệp .exe được đánh dấu bằng cờ IMAGE_FILE_LARGE_ADDRESS_AWARE, thì quá trình sẽ nhận được 4 GB không gian địa chỉ ảo có thể định địa chỉ người dùng. Trong cả hai trường hợp, không gian địa chỉ ảo của kernel giống như các quy trình 64 bit, vì nó được chia sẻ trên tất cả các quy trình. Cũng cần lưu ý, các quy trình 64 bit không đặt cờ IMAGE_FILE_LARGE_ADDRESS_AWARE cũng chỉ có quyền truy cập vào 2 GB không gian địa chỉ ảo của người dùng.
Những điều bạn nghe về cờ khởi động đặc biệt, công tắc 3 GB, / 3 GB hoặc / userva đều là về hệ điều hành 32 bit và không áp dụng trên Windows 64 bit.
Đây là tất cả các chi tiết đáng chú ý trên trang Giới hạn bộ nhớ của Microsoft cho các bản phát hành Windows .
Câu trả lời của @David Spillett cũng chạm đến một điểm khác: Nhiều quy trình, tất cả giới hạn ở 2 GB không gian người dùng, vẫn có thể sử dụng lượng RAM đáng kể nếu có, cũng như bộ đệm của tệp.
Quá trình 32 bit trên HĐH 32 bit có không gian địa chỉ 4GB, trong đó 2 GB được HĐH dành riêng, 2 GB có sẵn cho quy trình.
Có một công tắc có thể được chỉ định cho HĐH (/ 3GB), thay đổi số lượng dành riêng cho HĐH thành 1GB và cho phép quá trình có 3GB, NHƯNG, chỉ khi quá trình tuyên bố nó tự nhận biết địa chỉ lớn trong các cờ của thực thi.
Trên HĐH 64 bit, quá trình 32 bit sẽ nhận được 4GB nếu nhận biết địa chỉ lớn, 2GB nếu không.
Tất cả điều này là cho các quá trình không nhận biết AWE. Nếu quy trình có khả năng sử dụng AWE thì như những người khác đã nói, nó có thể sử dụng một không gian địa chỉ lớn, nhưng kém hiệu quả hơn quy trình 64 bit.
PAE cho phép HĐH 32 bit sử dụng hơn 4GB RAM, tuy nhiên, nó có vấn đề về khả năng tương thích và đã bị vô hiệu hóa trong XP bởi một trong các gói dịch vụ nên chỉ có trên các phiên bản HĐH máy chủ.