6

Hãy tập trung vào các hệ thống máy tính uniprocessor. Khi một tiến trình được tạo, theo như tôi biết, bảng trang sẽ được thiết lập để ánh xạ các địa chỉ ảo tới không gian địa chỉ bộ nhớ vật lý. Mỗi tiến trình nhận được bảng trang riêng của nó, được lưu trữ trong không gian địa chỉ hạt nhân. Nhưng làm thế nào để MMU chọn bảng trang đúng cho quá trình này vì không chỉ có một tiến trình đang chạy và sẽ có nhiều công tắc ngữ cảnh xảy ra?Làm cách nào để hệ thống chọn đúng Bảng Trang?

Mọi trợ giúp đều được đánh giá cao!

nhất, Simon

Trả lời

2

Các MMU trong trường hợp này là không biết hoàn toàn về những gì một quá trình. Hệ điều hành, theo dõi các quá trình, tạo ra một bảng trang cho mỗi quá trình, như bạn nói, khi chúng được tạo ra. Quá trình chuyển đổi bối cảnh thực hiện như sau:

  1. Hệ điều hành kể MMU sử dụng bảng trang tọa lạc tại địa chỉ vật lý 0xFOO

  2. Các chương trình hệ điều hành có thể lập trình ngắt timer (TNCN) để gây ra một phần cứng gián đoạn sau BAR mili giây.

  3. Hệ điều hành khôi phục trạng thái quy trình (thanh ghi CPU, bộ đếm chương trình, v.v.) và nhảy đến địa chỉ chính xác.

  4. Quy trình chạy cho đến khi PIT kích hoạt ngắt.

  5. Quy trình vận hành xử lý ngắt PIT sau đó lưu trạng thái chương trình (sổ đăng ký ...), sử dụng thuật toán lập lịch để xác định quy trình tiếp theo chạy (trong trường hợp đơn giản, danh sách liên kết tròn), sau đó bắt đầu lại ở bước 1.

Tôi hy vọng sẽ xóa bỏ bất kỳ nghi ngờ nào bạn có thể gặp phải. Câu trả lời ngắn: MMU là quá trình bất khả tri và không biết quy trình là gì.

+0

Cảm ơn bạn đã trả lời nhanh chóng. Vì vậy, bạn nói rằng hệ điều hành không tuôn ra & khôi phục lại bảng trang trên mỗi bối cảnh chuyển đổi? – saimn

+0

@ user1435023 Về cơ bản. Hệ điều hành nói với MMU nơi bảng nằm trong bộ nhớ vật lý như một con trỏ, sau đó MMU xử lý việc xả của TTL và các nhiệm vụ phần cứng khác. Tùy thuộc vào MMU, hệ điều hành có thể có quyền kiểm soát chi tiết hơn về các chi tiết mức thấp, nhưng điều này là không cần thiết. Ở mức độ đơn giản nhất, tất cả các hệ điều hành quan tâm đến việc nói cho MMU biết bảng trang nào để sử dụng. – Dougvj

+0

@ user1435023 Chỉnh sửa: Có nghĩa là TLB ở trên, * không * TTL. Nathan Binkert đã trả lời thêm về khía cạnh TLB của sự vật – Dougvj

13

Bộ xử lý có thanh ghi đặc quyền được gọi là thanh ghi cơ sở bảng trang (PTBR), trên x86 là CR3. Trên một chuyển đổi ngữ cảnh, hệ điều hành thay đổi giá trị của PTBR để bộ xử lý hiện biết được bảng trang nào sẽ sử dụng. Ngoài PTBR, nhiều bộ vi xử lý hiện đại có khái niệm về một số không gian địa chỉ (ASN). Các tiến trình được cung cấp một số không gian địa chỉ (từ một nhóm giới hạn) và ASN này được đặt trong một thanh ghi trên một chuyển đổi ngữ cảnh. ASN này được sử dụng như một phần của TLB khớp và cho phép các mục TLB từ nhiều không gian địa chỉ cùng tồn tại. Chỉ khi một ASN được tái sử dụng là cần thiết để tuôn ra TLB, và sau đó chỉ cho các mục phù hợp với ASN đó. Hầu hết các triển khai x86 đều thô sơ hơn điều này và có một khái niệm về các trang toàn cầu (cho các thư viện chia sẻ và dữ liệu được chia sẻ).

+0

Đó là lời cảm ơn hữu ích – JohnnyCat

Các vấn đề liên quan