1 / 57

Chapter 8:Bộ Nhớ chính Nguyễn Thị Thanh An Võ Thị Hoàng Anh saykham khammanyxay

Chapter 8:Bộ Nhớ chính Nguyễn Thị Thanh An Võ Thị Hoàng Anh saykham khammanyxay. Chapter 8: Quản lý bộ nhớ. Khái quát Sự hoán đổi Cấp phát bộ nhớ liền kề Sự phân trang Cấu trúc bảng trang Phân đoạn Ví dụ: Intel Pentium. Mục tiêu.

apu
Télécharger la présentation

Chapter 8:Bộ Nhớ chính Nguyễn Thị Thanh An Võ Thị Hoàng Anh saykham khammanyxay

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8:Bộ Nhớ chínhNguyễn Thị Thanh AnVõ Thị Hoàng Anhsaykham khammanyxay

  2. Chapter 8: Quản lý bộ nhớ • Khái quát • Sự hoán đổi • Cấp phát bộ nhớ liền kề • Sự phân trang • Cấu trúc bảng trang • Phân đoạn • Ví dụ: Intel Pentium

  3. Mục tiêu • Cung cấp một mô tả chi tiết các phương pháp khác nhau để tổ chức một bộ nhớ phần cứng • Thảo luận các kỹ thuật khác nhau để quản lý bộ nhớ bao gồm: phân trang và phân đoạn • Cung cấp một mô tả chi tiết của Intel pentium để hỗ trợ cho phân đoạn hoàn toàn và phân đoạn với phân trang

  4. Khái quát • Chương trình phải được mang (từ đĩa) đến bộ nhớ và đặt trong một tiến trình để nó được thực hiện • Bộ nhớ chính và thanh ghi chỉ được lưu trữ trong CPU có thể truy nhập trực tiếp • Thanh ghi truy nhập trong một đồng hồ CPU (hoặc less) • Bộ nhớ chính có thể thực hiện nhiều chu kỳ • Cache đặt giữa bộ nhớ chính và thanh ghi CPU • Bảo vệ của bộ nhớ được yêu cầu để đảm bảo hoạt động chính xác

  5. Thanh ghi cơ sỡ và giới hạn • Một cặp thanh ghi cơ sỡ và giới hạn xác định không gian địa chỉ logic

  6. Sự liên kết của các lệnh và dữ liệu với bộ nhớ • Địa chỉ liên kết của các lệnh và dữ liệu đến địa chỉ bộ nhớ có thể xảy ra ở 3 giai đoạn khác nhau: • Thời gian biên dịch: Nếu vị trí bộ nhớ biết một tiên nghiệm(priori), mã tuyệt đối có thể được tạo ra; phải biên dịch lại mã nếu vị trí bộ nhớ bắt đầu thay đổi • Thời gian nạp: Phải tạo ra mã xác định lại vị trí nếu vị trí bộ nhớ không được biết ở thời gian biên dịch • Thời gian thi hành:Trì hoãn sự liên kết cho đến khi thời gian bắt đầu được tính nếu một tiến trình có thể di chuyển trong suốt quá trình thực hiện của nó từ một phân đoạn bộ nhớ đến một phân đoạn khác. Cần phần cứng để hỗ trợ cho ánh xạ địa chỉ (ví dụ: thanh ghi cơ sỡ và giới hạn)

  7. Các bước xử lý một chương trình của người sử dụng

  8. Không gian địa chỉ logic và địa chỉ vật lý • Khái niệm của không gian địa chỉ logic qui định giới hạn để chia không gian địa chỉ vật lý, là trung tâm để quản lý bộ nhớ đúng cách • Địa chỉ logic – được tạo ra bởi CPU; cũng được nói đến như là địa chỉ ảo • Địa chỉ vật lý – địa chỉ được hiểu bởi đơn vị bộ nhớ • Địa chỉ logic và địa chỉ vật lý là tương tự nhau trong thời gian biên dịch và thời gian nạp của lược đồ liên kết địa chỉ; địa chỉ logic(ảo) và địa chỉ vật lý khác nhau trong thời gian thi hành của lược đồ liên kết địa chỉ

  9. Đơn vị quản lý bộ nhớ (MMU) • Thiết bị phần cứng đó là ánh xạ ảo đến địa chỉ vật lý • Trong lược đồ MMU, giá trị trong thanh ghi tái định vị được thêm vào mọi địa chỉ được sinh ra bởi tiến trình người sử dụng tại thời gian mà nó được gửi tới bộ nhớ • Chương trình người sử dụng xử lý với địa chỉ logic; nó không hiểu địa chỉ vật lý thực

  10. Tái định vị động bằng cách sử dụng thanh ghi tái định vị

  11. Nạp động • Thường trình không được nạp cho đến khi nó được gọi • Tận dụng tốt không gian bộ nhớ; thường trình chưa bao giờ được sử dụng là không bao giờ được nạp • Hữu dụng khi một số lượng lớn mã cần được điều khiển trường hợp hiếm khi xảy ra • Không được hỗ trợ đặc biệt từ hệ điều hành, nó được yêu cầu để thực hiện trong suốt quá trình thiết kế chương trình

  12. Liên kết động • Liên kết hoãn cho đến thời gian thi hành • Một số lượng mã nhỏ, stub , được sử dụng để định vị thư viện thường trình bộ nhớ cư trú thích hợp • Stub thay thế nó với địa chỉ của thường trình và thực hiện thường trình • Hệ điều hành cần được kiểm tra nếu thường trình ở trong một tiến trình của địa chỉ bộ nhớ • Liên kết động đặc biệt hữu dụng trong thư viện • Hệ thống cũng được biết đến như là thư viện chia sẻ

  13. Sự hoán đổi • Một tiến trình có thể được hoán đổi tạm thời ra khỏi bộ nhớ đến một bộ nhớ phụ, và sau đó mang trở lại bộ nhớ để tiếp tục thi hành • Bộ nhớ phụ – đĩa đủ lớn để điều chỉnh các sao chép của tất cả bộ nhớ hình ảnh cho tất cả người sử dụng, phải cung cấp truy nhập trực tiếp đến những bộ nhớ hình ảnh này • Chuyển ra, chuyển vào –hoán đổi biến thể sử dụng các danh mục thuật toán ưu tiên; tiến trình ưu tiên thấp hơn được hoán đổi ra để các tiến trình ưu tiên cao hơn được nạp và thi hành • Phần thời gian hoán đổi chủ yếu là thời gian truyền; toàn bộ thời gian truyền trực tiếp tỉ lệ tương ứng với số lượng bộ nhớ hoán đổi • Các phiên bản sửa đổi của sự hoán đổi được tìm thấy trong nhiều hệ thống (ví dụ: UNIX, Linux, và Windows) • Hệ thống duy trì một hàng sẵn sàng của tiến trình sẵn sàng để chạy, có bộ nhớ hình ảnh trên đĩa

  14. Biểu đồ của sự hoán đổi

  15. Sự cấp phát bộ nhớ liền kề • Bộ nhớ chính thường chia thành 2 phân vùng: • Hệ điều hành cư trú, thường chứa trong bộ nhớ cấp thấp với vector ngắt • Các tiến trình người sử dụng sau đó được chứa trong bộ nhớ cấp cao hơn • Các thanh ghi tái định vị sử dụng để bảo vệ các tiến trình người sử dụng từ các tiến trình khác, và từ sự thay đổi mã và dữ liệu của hệ điều hành • Các thanh ghi cơ sỡ chứa các giá trị địa chỉ vật lý nhỏ nhất • Thanh ghi giới hạn chứa miền địa chỉ logic – mỗi địa chỉ logic phải ít hơn thanh ghi giới hạn • MMU ánh xạ địa chỉ logic dynamically

  16. Sự bảo vệ địa chỉ HW với thanh ghi cơ sỡ và giới hạn

  17. Sự cấp phát bộ nhớ liền kề (tiếp theo) • Sự cấp phát nhiều phân vùng • Ô trống – một khối bộ nhớ xác định; các kích thước khác nhau của các ô trống được đặt khắp bộ nhớ • Khi một tiến trình đến, nó được cấp phát từ một ô trống lớn đủ để cung cấp cho nó • Hệ điều hành duy trì các thông tin về:a) cấp phát các phân vùng b) các phân vùng trống (hole) OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 10 process 2 process 2 process 2 process 2

  18. Bộ nhớ động-vấn đề về việc cấp phát • First-fit: cấp phát ô trống đầu tiên có kích thước đủ lớn • Best-fit: cấp phát ô trống nhỏ nhất có kích thước đủ lớn; phải tìm danh sách thực thể, trừ khi sắp xếp theo kích thước • Tạo ra các ô trống dư nhỏ nhất • Worst-fit: cấp phát ô trống lớn nhất; cũng phải tìm kiếm danh sách thực thể • Tạo ra các ô trống dư lớn nhất Làm thế nào để đáp ứng n kích cỡ từ danh sách các ô trống First-fit và best-fit tốt hơn worst-fit trong giới hạn của tốc độ và dung lượng sử dụng

  19. Sự phân đoạn • Sự phân đoạn bên ngoài – tất cả không gian bộ nhớ tồn tại để đáp ứng yêu cầu, nhưng nó không liên tục • Sự phân đoạn bên trong– cấp phát bộ nhớ có thể có kích thước hơi lớn hơn so với yêu cầu bộ nhớ; kích thước khác nhau này ở bộ nhớ trong đến một phân vùng, nhưng không được sử dụng • Giảm sự phân đoạn bên ngoài bởi giao ước • Sắp xếp lại nội dung bộ nhớ để đặt tất cả bộ nhớ rỗng với nhau trong một khối lớn • Giao ước có thể là only nếu sự tái định vị là động, và được thực hiện ở thời gian thi hành • Vấn đề về xuất/nhập • Việc then chốt trong bộ nhớ trong khi nó tham gia vào xuất/nhập • Xuất/nhập chỉ làm việc trong hệ điều hành đệm

  20. Sự phân trang • Không gian địa chỉ logic của một tiến trình có thể không liên tiếp; tiến trình được cấp phát bộ nhớ vật lý bất cứ khi nào nó tồn tại • Chia bộ nhớ vật lý thành khối kích thước cố định gọi là các khung trang (kích thước là luỹ thừa của 2, giữa 512 bytes và 8,192 bytes) • Chia bộ nhớ logic thành các khối có kích thước tương tự nhau gọi là các trang • Theo dõi tất cả các khung trang trống • Để chạy chương trình có kích thước n trang, cần tìm n khung trống và nạp chương trình • Đưa ra một bảng trang để chuyển địa chỉ logic thành địa chỉ vật lý • Sự phân đoạn bên ngoài

  21. Lược đồ dịch địa chỉ • Địa chỉ được tạo ra bởi CPU được chia ra thành: • Số hiệu trang (p) –sử dụng như một chỉ số trong một bảng trang chứa địa chỉ cơ sỡ của mỗi trang trong bộ nhớ vật lý • Địa chỉ tương đối trong trang (d) – kết hợp với địa chỉ cơ sỡ để xác định địa chỉ vật lý được gửi tới đơn vị nhớ • Đưa ra một không gian địa chỉ logic 2m and kích thước trang2n page offset page number p d n m - n

  22. Sự phân trang phần cứng

  23. Mô hình sự phân trang của bộ nhớ logic và vật

  24. Ví dụ về sự phân trang 32-byte memory and 4-byte pages

  25. Các khung trang trống Before allocation After allocation

  26. Quá trình thực hiện của bảng trang • Bảng trang được giữ trong bộ nhớ chính • Thanh ghi bảng trang cơ sỡ (PTBR) trỏ tới bảng trang • Thanh ghi độ dài bảng trang (PRLR) chỉ ra kích thước của bảng trang • Trong lược đồ này mọi dữ liệu/lệnh truy cập yêu cầu 2 bộ nhớ truy cập. Một cho bảng trang và một cho dữ liệu/lệnh • Vấn đề truy cập 2 bộ nhớ có thể được giải quyết bằng cách sử dụng phần cứng lưu trữ đặc biệt tìm kiếm nhanh gọi là bộ nhớ liên kết hoặc dịch biến đệm sang một bên (TLBs) • Một số TLBs chứa không gian nhận dạng địa chỉ (ASIDs) trong mỗi mục TLB – xác định duy nhất mỗi tiến trình để cung cấp bảo vệ không gian địa chỉ cho tiến trình

  27. Bộ nhớ kết hợp • Bộ nhớ kết hợp – tìm kiếm song song dịch địa chỉ (p, d) • Nếu p là thanh ghi kết hợp, nhận khung trang # • Nếu không nhận khung trang # từ bảng trang trong bộ nhớ Page # Frame #

  28. Sự phân trang phần cứng với TLB

  29. Thời gian truy nhập hiệu quả • Kết hợp Lookup =  đơn vị thời gian • Thừa nhận chu kỳ thời gian nhớ là 1 phần triệu giây • Tỷ lệ trúng – tỷ lệ phần trăm số lần mà một số hiệu trang được tìm thấy trong thanh ghi kết hợp; tỉ lệ này liên quan đến số thanh ghi kết hợp • Tỷ lệ trúng =  • Thời gian truy nhập hiệu quả (EAT) EAT = (1 + )  + (2 + )(1 – ) = 2 +  – 

  30. Sự bảo vệ bộ nhớ • Sự bảo vệ bộ nhớ được thực hiện bằng cách kết hợp các bit bảo vệ với mỗi khung trang • Bit hợp lệ - không hợp lệ gắn với mỗi mục trong bảng trang: • “hợp lệ” chỉ ra rằng các trang kết hợp ở trong tiến trình của không gian địa chỉ logic, và do đó nó là một trang hợp lệ • “không hợp lệ” chỉ ra rằng trang không nằm trong tiến trình của không gian địa chỉ logic

  31. Bit hợp lệ (v) hoặc không hợp lệ (i) trong một bảng trang

  32. Chia sẻ trang • Chia sẻ mã • Một bảng sao chép của mã chỉ đọc (tái lập) chia sẻ giữa các tiến trình (ví dụ: soạn thảo văn bản, các chương trình biên dịch, các hệ thống window). • Chia sẻ mã phải xuất hiện trong các vị trí như nhau trong không gian địa chỉ logic của tất cả các tiến trình • Mã và dữ liệu cá nhân • Mỗi tiến trình giữ một bảng sao chép của mã và dữ liệu • Các trang chứa mã và dữ liệu cá nhân có thể xuất hiện ở bất cứ đâu trong không gian địa chỉ logic

  33. Ví dụ về chia sẻ trang

  34. Cấu trúc của bảng trang • Sự phân trang phân cấp • Bảng trang tham khảo • Bảng trang ngược

  35. Phân cấp bảng trang • Chia không gian địa chỉ logic vào nhiều bảng trang • Một kỹ thuật đơn giản đó là bảng trang 2 cấp độ

  36. Lược đồ bảng trang cấp 2

  37. Ví dụ về sự phân trang cấp độ 2 • Một địa chỉ logic (trên 32-bit máy có 1K kích thước trang) được chia thành: • Một số hiệu trang gồm 22 bits • Một địa chỉ tương đối trang 10 bits • Kể từ khi bảng trang được phân trang, số hiệu trang được chia thành: • Một số hiệu trang12-bit • Một địa chỉ tương đối trang10-bit • Do đó một địa chi logic là như sau:p là một chỉ mục vào bảng trang bên ngoài, và p, là sự thay thế bên trong trang của bảng trang bên ngoài Số hiệu trang Địa chỉ tương đối trang p2 pi d 10 10 12

  38. Lược đồ sự dịch địa chỉ

  39. Lược đồ thứ tự phân trang cấp độ 3

  40. Bảng trang tham khảo • Một không gian địa chỉ thường > 32 bits • Số hiệu trang ảo được tham khảo trong bảng trang. Bảng trang này chứa một chuỗi các thành phần băm tới các vị trí tương tự nhau. • Số hiệu trang ảo được so sánh trong một chuỗi tìm kiếm cho phù hợp. Nếu tìm thấy là phù hợp, khung trang vật lý tương ứng được trích.

  41. Bảng trang tham khảo

  42. Bảng trang ngược • Một mục cho mỗi trang thực của bộ nhớ • Mục bao gồm địa chỉ vật lý của trang chứa trong một vị trí bộ nhớ thực, với thông tin về tiến trình quản lý trang • Giảm bộ nhớ cần để chứa mỗi bảng trang, nhưng tăng thời gian cần thiết để tìm kiếm bảng trang khi một tham chiếu trang xảy ra • Sử dụng bảng tham khảo trang đẻ giới hạn việc tìm kiếm tới một — hoặc tất cả một số — mục bảng trang

  43. Cấu trúc bảng trang ngược

  44. Phân đoạn • Một lược đồ điều khiển bộ nhớ để hỗ trợ cho người xem của bộ nhớ • Một chương trình là một tập hợp các đoạn. Một đoạn là một đơn vị logic như là: chương trình chính, thủ tục, hàm, phương thức, đối tượng, biến địa phương, biến toàn cục, khối phổ biến, ngăn xếp, bảng biểu tượng, mảng

  45. Tổng quan của người sử dụng về chương trình

  46. 1 4 2 3 Tổng quan địa chỉ logic của sự phân đoạn 1 2 3 4 Không gian sử dụng Không gian bộ nhớ vật lý

  47. Cấu trúc phân đoạn • Địa chỉ vật lý bao gồm 2 bộ: <segment-number, offset>, • Bảng phân đoạn – ánh xạ -kích cỡ địa chỉ vật lý; mỗi bảng mục gồm: • Cơ sỡ – chứa địa chỉ vật lý nơi các phân đoạn cư trú trong bộ nhớ • Giới hạn – định rõ chiều dài của phân đoạn • Bảng phân đoạn thanh ghi cơ sỡ (STBR) trỏ tới vị trí của bảng phân đoạn trong bộ nhớ • Bảng phân đoạn chiều dài thanh ghi (STLR) chỉ ra số phân đoạn sử dụng trong một chương trình; phân đoạn s là hợp lệ nếu s <STLR

  48. Cấu trúc phân đoạn (tiếp theo) • Sự bảo vệ • Với mỗi mục trong bảng phân đoạn kết hợp: • Xác nhận bit = 0  phân đoạn không hợp lệ • Đọc/viết/thi hành các đặc quyền • Các bit bảo vệ kết hợp với các phân đoạn; mã chia sẻ xảy ra ở cấp phân đoạn • Kể từ khi các phân đoạn khác nhau về chiều dài, sự cấp phát bộ nhớ là sự lưu trữ động –vấn đề về sự cấp phát • Một ví dụ về sự phân đoạn được thể hiện trong biểu đồ dưới đây

  49. Sự phân đoạn phần cứng

  50. Ví dụ về sự phân đoạn

More Related