Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 91 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
91
Dung lượng
7,59 MB
Nội dung
Giới thiệu về bộnhớảo Nhóm VITUAL MEMORY N I DUNG CHÍNHỘ Thông tin cơ b n - ả Background Phân trang theo yêu c u - Demand Pagingầ Thay trang Các phân ph i Framesố Thrashing Phân đo n theo yêu c u – Demand ạ ầ Segmentation Gi i thi u v máy oớ ệ ề ả Một chương trình sẽ có kích thước lớn hơn kích thước thực cấp phát cho nó mà không gây ra lỗi hay không. Thoải mái lập trình mà không phải suy tư về bộnhớ vật lý của máy. Các quá trình dễ dàng, thoải mái chia sẻ tập tin và không gian địa chỉ với nhau hay không và việc tạo ra một quá trình là hoàn toàn đơn giản. M c đíchụ Mô tả các ưu điểm của một hệ thống bộnhớ ảo. Giải thích các khái niệm về nhu cầu phân trang, thuật toán thay thế trang, và cấp phát khung trang. Thảo luận về các nguyên tắc làm việc của mô hình thiết lập. Khái ni m B nh oệ ộ ớ ả Bộnhớ ảo: là sự tách biệt bộnhớ luận lý từ bộnhớ vật lý. ◦ Chỉ một phần chương trình được thực hiện trong bộ nhớ. ◦ Địa chỉ không gian hợp lý do đó có thể lớn hơn nhiều so với không gian địa chỉ vật lý. ◦ Cho phép các không gian địa chỉ được chia sẻ bởi một số tiến trình. ◦ Cho phép tạo ra nhiều tiến trình hiệu quả. Bộnhớảo có thể được thực hiện thông qua: ∘ Phân trang theo yêu cầu (Demand paging) ∘ Phân đoạn theo yêu cầu (Demand segmentation) B nh o l n hơn b nh v t lýộ ớ ả ớ ộ ớ ậ Bộnhớảo chỉ bị giới hạn bởi dung lượng ổ đĩa Không gian đ a ch oị ỉ ả Phân trang theo yêu c uầ Phân trang theo yêu cầu là quá trình đưa một trang vào bộnhớ khi có yêu cầu ◦ Yêu cầu I/O ít ◦ Yêu cầu về bộnhớnhỏ ◦ Thực hiện nhanh hơn ◦ Có nhiều tiến trình được xử lý hơn Chuyển một trang được yêu cầu đến bộnhớ ◦ Tham chiếu không hợp lệ ⇒ hủy bỏ ◦ Không có trong bộnhớ ⇒ chuyển vào bộnhớ ◦ Có trong bộnhớ thì truy xuất Bộ hoán vị lười (Lazy swapper): không bao giờ hoán vị một trang vào trong bộnhớ trừ khi trang đó được yêu cầu. ◦ Bộ hoán vị giao tiếp với trang qua một bộ trang Chuy n b nh đư c phân trang ể ộ ớ ợ t i không gian đĩa liên t cớ ụ Cơ ch bit h p l - không ế ợ ệ h p l ợ ệ Với cơ chế này, chúng ta cần một số dạng phần cứng hỗ trợ để phân biệt giữa các trang ở trong bộnhớ và các trang ở trên đĩa Cơ chế bit hợp lệ-không hợp lệ có thể được dùng cho mục đích này. ◦ Valid : giá trị này hiển thị rằng trang được tham chiếu tới là hợp lệ và ở đang trong bộ nhớ. ◦ Invalid : giá trị này hiển thị rằng trang không hợp lệ (nghĩa là trang không ở trong không gian địa chỉ của quá trình) hoặc hợp lệ nhưng hiện đang ở trên đĩa. [...]... nằm trong bộnhớ chính hay bộnhớ phụ ◦ Bộnhớ phụ: dùng để lưu trữ những trang không được nạp vào bộnhớ chính, bộnhớ phụ thường dùng là đĩa và vùng không gian đĩa dùng để lưu trữ tạm các trang trong kỹ thuật swapping được gọi là không gian swapping Bit hợp lệ - không hợp lệ Với mỗi bảng trang sẽ được nhập bit hợp lệ (v) - không hợp lệ (i) ( v ⇒ nằm trong bộ nhớ, i ⇒không nằm trong bộnhớ ) Ban... = (1 – p ) * 200 + p * 8,000,000 = 200 + p x 7 ,99 9,800 EAT = (1 – p) * memory access + p (page fault overhead + swap page out + swap page in + restart overhead ) Ví dụ phân trang theo yêu cầu Thời gian xử lý page-fault : 25 milliseconds Thời gian truy xuất bộnhớ (ma) : 100 nanoseconds EAT = (1- p) * 100 + p * 25,000,000 nanoseconds = 100 + 24 ,99 9 ,99 0 * p nanoseconds EAT tỷ lệ trực tiếp với tỷ... bộnhớ chính Bộnhớ logic của tiến trình kết thúc tại đây Các trang không sử dụng L ỗi trang Truy xuất đến một trang được đánh dấu bất hợp lệ sẽ làm phát sinh lỗi trang (page fault) Kiểm tra bảng bên trong cho quá trình này, để xác định tham chiếu là truy xuất bộnhớ là hợp lệ hay không hợp lệ Nếu tham chiếu là không hợp lệ, chúng ta kết thúc tiến trình Nếu nó là hợp lệ, nhưng chưa có trong bộ. .. dưới 10 %, ta cần có : 110 > 100 + 25,000,000 * p p < 0.0000004 T ạo ti ến trình Bộ nhớảo cho các quyền lợi khác trong lúc tạo tiến trình Copy-on-write Memory-Mapped Files (later) Copy-on-Write Copy-on-Write (COW) cho phép cả cha mẹ và các quá trình ban đầu của con để chia sẻ cùng một trang trong bộnhớ Nếu quá trình sửa đổi, hoặc một trang chia sẻ, chỉ sau đó là trang sao chép COW cho... địa chỉ không hợp lệ Bây giờ quá trình có thể truy xuất trang mặc dù nó luôn ở trong bộ nhớ Các bư ớc x ử lý khi có l ỗi trang Thi hành phân trang theo yêu c ầu Xác suất xảy ra lỗi trang 0 ≤ p ≤ 1.0 ◦ Nếu p = 0, không có trang lỗi ◦ Nếu p = 1, mỗi truy xuất sẽ phát sinh một lỗi trang Thời gian thực sự truy xuất bộ nhớ (EAT): EAT = (1 – p) * memory access + p (page fault overhead + swap page out +... C Điều gì sẽ xảy ra nếu không có khung trống ? Trang thay thế - sẽ tìm một số trang trong bộ nhớ, nhưng không được sử dụng, nó sẽ đưa những trang đó ra ngoài ◦ Thuật toán ◦ Việc thực thi - muốn một thuật toán cho kết quả trả về là số lượng lỗi trang tối thiểu Cùng một trang nhưng có thể được đưa vào bộ nhớ nhiều lần Thay thế trang 1) Tìm vị trí trang mong muốn trên đĩa 2) Tìm khung trang trống... một chuỗi riêng biệt các tham chiếu bộnhớ và tính số lỗi trang trên chuỗi đó Trong tất cả các ví dụ, chuỗi tham chiếu đưa ra là : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Đồ thị liên hệ giữa số trang lỗi và số khung Thu ật toán First-In-First-Out (FIFO) Chuỗi tham chiếu : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 khung ( với mỗi tiến trình : 3 trang có thể nạp vào bộnhớ một thời điểm ) 1 5 2 1 3 3 4 khung... Chuỗi tham chiếu : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 1 1 5 2 2 2 2 2 3 5 5 4 4 4 1 4 3 3 3 Sự thực hiện của bộ đếm ◦ Mọi phần tử của bảng có một bộ đếm, mọi thời điểm trang được tham chiếu qua phần tử bảng này sao chép vòng vào trong bộ đếm ◦ Khi cần trang được hoán đổi, tìm trong bộ đếm để xác đinh trang nào là trang nạn nhân Thay th ế trang LRU Thu ật toán LRU (cont.) Sự thực hiện của Stack... là hợp lệ, nhưng chưa có trong bộnhớ thì mang trang đó vào Đi tìm khung trống (thí dụ, bằng cách mang một trang từ danh sách khung trống) Chúng ta lập thời biểu thao tác đĩa để đọc trang mong muốn vào khung trang vừa mới được cấp phát Khi đọc đĩa hoàn thành, chúng ta sửa đổi bảng bên trong với quá trình và bảng trang để hiển thị rằng trang bây giờ ở trong bộnhớ Chúng ta khởi động lại chỉ thị... Cơ hội thứ hai (Second chance) : ◦ Cần có bit tham chiếu ◦ Thay thế vòng tròn ◦ Nếu trang tham chiếu (trong thứ tự vòng tròn) có bit tham chiếu = 1 thì : Thiết lập bit = 0 Chuyển trang vào trong bộnhớ Thay thế trang tiếp theo (trong thứ tự vòng tròn) với quy luật thay thế tương tự Thu ật toán thay th ế trang cơ h ội th ứ hai . hình thiết lập. Khái ni m B nh oệ ộ ớ ả Bộ nhớ ảo: là sự tách biệt bộ nhớ luận lý từ bộ nhớ vật lý. ◦ Chỉ một phần chương trình được thực hiện trong bộ nhớ. ◦ Địa chỉ không gian hợp lý do đó có. có trong bộ nhớ ⇒ chuyển vào bộ nhớ ◦ Có trong bộ nhớ thì truy xuất Bộ hoán vị lười (Lazy swapper): không bao giờ hoán vị một trang vào trong bộ nhớ trừ khi trang đó được yêu cầu. ◦ Bộ hoán. tình trạng của một trang là đang nằm trong bộ nhớ chính hay bộ nhớ phụ ◦ Bộ nhớ phụ: dùng để lưu trữ những trang không được nạp vào bộ nhớ chính, bộ nhớ phụ thường dùng là đĩa và vùng không gian