Tôi đã tự hỏi sự khác biệt và mối quan hệ giữa bộ nhớ logic và ảo? Làm thế nào để mục đích của họ khác nhau?
Là các mối quan hệ và sự khác biệt giống nhau cho các địa chỉ logic và ảo?
Tôi đã tự hỏi sự khác biệt và mối quan hệ giữa bộ nhớ logic và ảo? Làm thế nào để mục đích của họ khác nhau?
Là các mối quan hệ và sự khác biệt giống nhau cho các địa chỉ logic và ảo?
Câu trả lời:
Trước tiên, hãy đi qua sự khác biệt giữa địa chỉ ảo và logic. Tôi tin rằng sự khác biệt là "địa chỉ logic" có nghĩa là địa chỉ mà chương trình nhìn thấy khác với địa chỉ vật lý của dữ liệu được lưu trữ trong RAM.
Nếu bạn có bộ nhớ ảo, có thể không có địa chỉ vật lý nào cả, vì dữ liệu được lưu trữ có thể được hoán đổi ra đĩa. Tuy nhiên, có thể có một hệ thống không có bộ nhớ ảo trong đó các địa chỉ logic khác với địa chỉ vật lý, nhưng mỗi địa chỉ logic được ánh xạ tới một địa chỉ vật lý. Điều này sẽ giúp việc chạy nhiều chương trình dễ dàng hơn mà không cần chúng dẫm lên nhau, nhưng sẽ không để các chương trình sử dụng nhiều bộ nhớ hơn bộ nhớ vật lý có sẵn cho hệ thống.
Vì vậy, không có "bộ nhớ logic" riêng biệt trong máy tính, mặc dù tôi cho rằng bạn có thể nói rằng một máy tính có địa chỉ logic nhưng không có hệ thống bộ nhớ ảo nào có hệ thống bộ nhớ logic. Tôi chỉ muốn nói rằng bộ nhớ logic là bộ nhớ được xử lý thông qua một số phương pháp gián tiếp. Có một số hệ thống máy tính cụ thể mà bạn có trong tâm trí?
-
Đưa ý kiến của bạn vào tài khoản:
Địa chỉ logic cho cùng một bộ nhớ vật lý có thể giống hoặc khác nhau. Thông thường, hai tiến trình sẽ không có quyền truy cập vào cùng một bộ nhớ, từ đó một tiến trình có thể bị hỏng. Tuy nhiên, nếu họ đã sắp xếp sử dụng một số dạng bộ nhớ dùng chung, họ sẽ thường ánh xạ bộ nhớ dùng chung đó đến các địa chỉ khác nhau. Địa chỉ ảo ít nhiều là một loại địa chỉ logic, vì vậy nếu bạn có một hệ điều hành hỗ trợ VM và hai quy trình ánh xạ bộ nhớ dùng chung, chúng thường sẽ thấy bộ nhớ đó ở các địa chỉ khác nhau, giống như không có ảo ký ức.
Theo hiểu biết của bạn về mục đích của logic so với ảo, bộ nhớ ảo là để sử dụng HD để mở rộng bộ nhớ mà bạn có sẵn cho các chương trình. Địa chỉ logic có thể được sử dụng cho nhiều hơn phân tách quá trình, nhưng đó sẽ là một sử dụng chính.
Địa chỉ bộ nhớ "logic" được sử dụng bởi một quy trình để tham chiếu mã và dữ liệu của nó. Dịch từ một địa chỉ logic sang một địa chỉ vật lý phụ thuộc vào mô hình bộ nhớ.
Khi bộ nhớ được ánh xạ trực tiếp (tức là chế độ thực), địa chỉ bộ nhớ logic giống hệt với địa chỉ bộ nhớ vật lý.
Nếu bộ nhớ vật lý lớn hơn không gian địa chỉ của bộ xử lý (như trên bộ xử lý 16 bit), thì phần cứng ngân hàng bộ nhớ thường được sử dụng để mở rộng lượng bộ nhớ vật lý có thể sử dụng. Bộ xử lý Intel 8086/8088 được sử dụng linh hoạt phân khúc đăng ký thay vì một kế hoạch ngân hàng cố định. Dịch địa chỉ lôgic (16 bit) sang địa chỉ vật lý (20 bit) sẽ sử dụng các bảng bản đồ ngân hàng. Đối với x86, địa chỉ logic có thể bao gồm đặc điểm kỹ thuật của thanh ghi phân đoạn.
Nếu phạm vi địa chỉ vật lý lớn hơn bộ nhớ vật lý thông thường (như bộ xử lý 32 bit một thập kỷ trước), thì phần cứng bộ nhớ ảo được sử dụng để cung cấp việc sử dụng phạm vi địa chỉ đầy đủ. Các địa chỉ logic được hỗ trợ bởi bộ nhớ vật lý theo yêu cầu. Để chứa toàn bộ không gian địa chỉ ảo / logic và / hoặc để cung cấp cho mỗi quy trình một không gian địa chỉ riêng, một Kho lưu trữ là cần thiết để giữ các bản sao của bộ nhớ ảo. Bộ nhớ được hoán đổi có thể được sắp xếp theo các phân đoạn hoặc trang hoặc các trang được phân đoạn.
BTW trong những năm hack nhân Unix, tôi hiếm khi nghe hoặc sử dụng cụm từ "logic (bộ nhớ) địa chỉ". Nếu bạn không đề cập đến địa chỉ bộ nhớ vật lý, thì đó là địa chỉ ảo. Đó là "địa chỉ logic" == "địa chỉ ảo" (khi bộ nhớ ảo được kích hoạt trong MMU).