Chương 9 Bộ nhớ ảo

91 2K 1
Chương 9 Bộ nhớ ảo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

Ngày đăng: 13/05/2014, 00:26

Từ khóa liên quan

Mục lục

  • Slide 1

  • NỘI DUNG CHÍNH

  • Slide 3

  • Mục đích

  • Khái niệm Bộ nhớ ảo

  • Bộ nhớ ảo lớn hơn bộ nhớ vật lý

  • Không gian địa chỉ ảo

  • Phân trang theo yêu cầu

  • 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ệ

  • Cơ chế phần cứng

  • Bit hợp lệ - không hợp lệ

  • Bảng trang khi một số trang không có trong bộ nhớ chính

  • Lỗi trang

  • Các bước xử lý khi có lỗi trang

  • Thi hành phân trang theo yêu cầu

  • Ví dụ phân trang theo yêu cầu

  • Tạo tiến trình

  • Copy-on-Write

  • Trước khi tiến trình 1 làm thay đổi Trang C

Tài liệu cùng người dùng

Tài liệu liên quan