Bài giảng Hệ điều hành - Chương 7: Main Memory - Hà Duy An

pdf 57 trang ngocly 250
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 7: Main Memory - Hà Duy An", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_7_main_memory_ha_duy_an.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 7: Main Memory - Hà Duy An

  1. Khoa Công Nghệ Thông Tin & Truyền Thông ĐạihọcCầnThơ Giảng viên: Hà Duy An
  2. 1.Tổng quan 2.Hoán vị (Swapping) 3.Cấp phát bộ nhớ liên tục 4.Phân đoạn (Segmentation) 5.Phân trang (Paging) 6.Cấu trúc bảng trang 10/28/20132 Chương 7: Main Memory
  3. • Chương trình phải được mang vào bộ nhớ và được đặtvàomột tiếntrìnhđể thực thi. • Bộ nhớ chính và các thanh ghi là hai thiếtbị lưutrữ mà CPU có thể truy cậptrựctiếp • Đơnvị bộ nhớ (memory unit) chỉ nhìn thấymộtluồng địachỉ +yêucầu đọc, hay địachỉ +dữ liệuvàyêucầu ghi • Các thanh ghi có thểđượctruycậpchỉ vớimột chu kỳ CPU (hay ít hơn) • Truy cậpbộ nhớ chính cần nhiều chu kỳ CPU hơn • Cache nằm ở giữabộ nhớ chính và các thanh ghi • Các thao tác trên bộ nhớ cần được đảmbảo chính xác 10/28/20134 Chương 7: Main Memory
  4. • Mộtcặp thanh ghi nền (base) và giớihạn (limit) xác định không gian địachỉ củatiến trình trên bộ nhớ • CPU phảikiểmtratấtcả truy cậpbộ nhớ từ không gian người dùng nằmtrong khoảng giớihạncủathanh ghi nền và giớihạn 10/28/20135 Chương 7: Main Memory
  5. 10/28/20136 Chương 7: Main Memory
  6. • Tậphợpcácchương trình trên đĩa, sẵnsàngđược mang vào bộ nhớđểthực thi hình thành một hàng đợinhập (input queue) o Nếu không có sự hỗ trợ nào, chương trình phải đượcnạpvàotừ địachỉ: 0000 • Hầuhết các hệ thống máy tính cho phép các tiếntrìnhcóthể nằm ở bấtkỳ phần nào trong bộ nhớ vậtlý • Các địachỉởtrong các dạng thức khác nhau tạimỗigiaiđoạn khác nhau củachương trình: o Các địachỉ tượng trưng trong chương trình nguồn. o Các địachỉ tái định vị khi biên dịch. o Các địachỉ tuyệt đối khi nạp (loading) hoặcnốikết (linking). => Mỗigiaiđoạn, việcgắng kếtsẽ ánh xạ từ một không gian địachỉ này sang một không gian địachỉ khác. 10/28/20137 Chương 7: Main Memory
  7. • Việcgắnkết địachỉ (address binding) của các chỉ thị và dữ liệuvào địachỉ bộ nhớ có thể diễnratại3giaiđoạn khác nhau: o Thời điểmbiêndịch (compile time): Nếuvị trí vùng nhớđượcbiết trước, thì có thể sinh ra mã lệnh tuyệt đối (absolute code); tuy nhiên chương trình phải đượcbiêndịch lạinếuvị trí bắt đầucủa vùng nhớ thay đổi. o Thời điểmnạp (load time): trình biên dịch phảisinhramãlệnh có thể tái định vị (relocatable code) nếu không thể biết đượcvị trí vùng nhớ tạithời điểmbiêndịch. Trong trường hợpnàyviệcgắng kếtbị trì hoãn cho đếnthời điểmnạp. Chương trình phải đượcnạplạinếuvị trí bắt đầucủa vùng nhớ thay đổi o Thời điểmthực thi (execution time): Việcgắn địachỉ bị trì hoãn cho đếnthời điểmthựcthinếutiếntrìnhcóthể phải di chuyển đượctừ phân đoạnbộ nhớ (segment) này đếnphânđoạnbộ nhớ khác khi thựcthi. Cầnthêmsự hỗ trợ củaphầncứng để ánh xạđịachỉ(ví dụ như các thanh ghi cơ sở (base) và giớihạn (limit)). 10/28/20138 Chương 7: Main Memory
  8. 10/28/20139 Chương 7: Main Memory
  9. • Cơ chế cho phép không gian địachỉ luận lý tách biệtkhỏi không gian địachỉ vật lý, chính là trọng tâm củacơ chế quản lý bộ nhớ. o Địachỉ luậnlý(logical address): đượcsinhrabởiCPU,cũng đượcxemlàđịachỉảo (virtual address). o Địachỉ vậtlý(physical address): địachỉđượcnhìnthấybởibộ quảnlýbộ nhớ. • Địachỉ luậnlývàvậtlýlànhư nhau trong sơđồgắnkết địa chỉ tạithời điểmbiêndịch và nạpchương trình. • Địachỉ luậnlývàđịachỉ vậtlýsẽ khác nhau trong sơđồgắn kết địachỉ tạithời điểmthực thi. 10/28/201310 Chương 7: Main Memory
  10. • Bộ quảnlýbộ nhớ (Memory management Unit – MMU): thiết bị phầncứng làm nhiệmvụ ánh xạđịachỉảosangđịachỉ vật lý => nhiềuphương thứccóthểđượcsử dụng • Mộtsơđồánh xạđơngiản là dùng thanh ghi tái định vị (relocation/base register): giá trị của thanh ghi tái định vịđược cộng vào bấtcứđịachỉ nào sinh ra bởitiến trình người dùng vào thời điểmnóđượcgửi đếnbộ nhớ o MS-DOS trên Intel 80x86 sử dụng 4 thanh ghi tái định vị • Chương trình người dùng thực thi với các địachỉ luậnlý;nó không bao giờ thấy được địachỉ vậtlýthậtsự 10/28/201311 Chương 7: Main Memory
  11. 10/28/201312 Chương 7: Main Memory
  12. • Nạptĩnh (static loading): toàn bộ chương trình và dữ liệu đượcnạpmộtlần vào bộ nhớ vậtlýchotiếntrìnhđể chạy. • Nạp động (dynamic loading): thường trình (routine) chỉđượcnạpkhinóđược gọi. o Tấtcả các thường trình đượclưutrênđĩatheođịnh dạng nạpcóthể tái định vị. o Bộ nạp liên kếttáiđịnh vị (relocatable linking loader) đượcdùngđể nạp các thường trình mong muốn. • Điềunàylàmtăng hiệunăng sử dụng bộ nhớ; các thường trình không đượcsử dụng sẽ không bao giờđượcnạp. • H ữuíchkhimộtsố lượng lớn các mã lệnh đượccần để giảiquyết các tình huống không thường xuấthiện. • Không cầnsự hỗ trợđặcbiệtcủahệđiều hành: o Nạp động được cài đặt thông qua cách thiếtkế chương trình. o HĐHcóthể hỗ trợ bằng cách cung cấp các thư viện để cài đặt nạp động 10/28/201313 Chương 7: Main Memory
  13. • Liên kếttĩnh (static linking): các thư việnhệ thống và mã chương trình đượckếthợpvớinhaubởibộ nạp(loader)thànhmộtchương trình nhị phân có thể thực thi (executable image). • Liên kết động (dynamic linking): việc liên kếtbị hoãn lại đếntận thời điểmthựcthi. • Một đoạnmãlệnh nhỏ, stub, đượcsử dụng để định vị thường trình thư việnthường trú (memory-resident library routine)tương ứng hay cách thứcnạpthư việncầnthiếtvàonếuthường trình cầntham chiếuchưa đượcnạpvàobộ nhớ. • Stub thay thế chính nó bằng địachỉ của thường trình và thựcthi thường trình đó • Hệđiềuhànhcầnphảikiểmtrathường trình có nằm trong không gian địachỉ của các tiến trình hay không. o Nếu không, thêm nó vào • Liên kết động hữuíchđặcbiệt cho các thư việnchiasẻ (shared libraries). 10/28/201314 Chương 7: Main Memory
  14. • Mộttiếntrìnhcóthểđược hoán vị tạmthờirakhỏibộ nhớ, đến vùng lưutrữ phụ (backing store) và rồilại đượcmangtrở lạibộ nhớ để tiếptụcthựcthi. • Vùng lưutrữ phụ: đĩatốc độ cao, đủ lớn để saochéptấtcảảnh bộ nhớ (memory image) cho tấtcả người dùng; phải cho phép truy cập trựctiếp đến các ảnh này. • Hàng đợisẳnsàngbao gồmtấtcả các tiếntrìnhsẳnsàngđể thựcthi nằm trong bộ nhớ và nằm trong vùng lưutrữ phụ • Nếutiếntrìnhkế tiếp đượccấp CPU không nằm trong bộ nhớ => cầnphảihoánvị mộttiến trình ra, và mang tiếntrìnhcầnthiếtvào bộ nhớ • Thời gian chuyểnngữ cảnh trường hợpnàylàrất cao • Giả sử tiến trình 100MB hoán vị ra đĩavớitốc độ 50MB/sec o Thời gian hoán vị ra: 2000ms o Cộng thờigianhoánvị vào mộttiến trình có cùng kích thước o Tổng thờigianchuyển đổingữ cảnh: 4000ms 10/28/201315 Chương 7: Main Memory
  15. 10/28/201316 Chương 7: Main Memory
  16. • Phầnchínhcủathờigianhoánvị là thờigianchuyểndữ liệu; tổng thời gian chuyểndữ liệutỷ lệ thuậnvớilượng bộ nhớđược hoán vị. o Giảmkíchthướcdữ liệucần hoán vị –nếubiết chính xác dung lượng bộ nhớ thậtsự cần dùng • Các ràng buộc khác: o Có cần hoán vị tiến trình vào chính xác vùng nhớ trước đó hay không? o Khi tiếntrìnhđang thựchiện tao tác I/O • Phiên bảnchuẩncủahoánvị không đượcdùngtrongHĐHhiện đại. Tuy nhiên, các phiên bảncảitiếncủakỹ thuậtnàyđược dùng trong nhiểuhệ thống (như: Unix, Linux, và Windows): o Hoán vị thông thường đượcvôhiệu hóa o Chỉ bắt đầukhisố lượng bộ nhớđãcấpphátlớnhơnmộtngưỡng nào đó 10/28/201317 Chương 7: Main Memory
  17. 10/28/201318 Chương 7: Main Memory
  18. • Là một trong các phương pháp cấp phát bộ nhớđược dùng đầu tiên • Bộ nhớ chính thường đượcchialàm2phần: o Phầnthường trú củahệđiềuhành:thường đượctổ chức trong vùng nhớ thấpvới các vector ngắt. o Các tiến trình người dùng đượctổ chức trong vùng nhớ cao; mỗitiếntrìnhđượccấp phát duy nhấtmột vùng nhớ liên tục trong bộ nhớ • Sơđồthanh ghi tái định vịđượcsử dụng để bảovệ các tiếntrình người dùng với nhau, và để chống việcthayđổimãlệnh và dữ liệu củahệđiều hành: o Thanh ghi tái định vị (relocation register) chứa giá trị của địachỉ vậtlý nhỏ nhất o Thanh ghi giớihạn(limitregister)chỉ ra phạmvichophépcủa các địa chỉ luậnlý-mỗi địachỉ luậnlýphảinhỏ hơngiátrị trong thanh ghi giớihạn. o MMU ánh xạđộng địachỉ luậnlý >vậtlý 10/28/201319 Chương 7: Main Memory
  19. 10/28/201320 Chương 7: Main Memory
  20. • Cấp phát đa phân khu: o Mức độ đachương đượcxácđịnh bởisố lượng phân khu o Kích thước phân khu thay đổitùythuộc vào nhu cầucủatiếntrình o Lỗ hổng (hole): các lỗ hổng vớikíchthước khác nhau nằmrải rác trong bộ nhớ. o Khi mộttiến trình xuấthiện, nó đượccấpcholỗ hổng đủ chứa nó. o Khi tiếntrìnhkết thúc vùng nhớ tương ứng đượcgiải phóng, và đượckếthợpvớilỗ hổng lân cận(nếucó) o Hệđiều hành duy trì thông tin về: a) Những phân khu đã đượccấpb)Cáclỗ hổng 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 10/28/201321 Chương 7: Main Memory
  21. Làm thế nào để thỏamãnyêucầubộ nhớ có kích thước n từ số các lỗ hổng hiệntại? • First-fit:cấplỗ hổng đầu tiên đủ lớn. • Best-fit:cấplỗ hổng nhỏ nhấtnhưng đủ lớn; phải tìm kiếmtoànbộ danh sách các lỗ hổng, trừ khi danh sách này đượcsắpthứ tự theo kích thướclỗ hổng. Chiếnlượcnàysinhralỗ hổng còn lạinhỏ nhất. • Worst-fit:cấplỗ hổng lớnnhất; cũng phải tìm cho ra lỗ hổng có kích thướclớnnhất trong toàn bộ danh sách. Chiếnlượcnàysinhra lỗ hổng còn lạilớnnhất First-fit và best-fit thì tốthơn worst-fit khi ta quan tâm đếntốc độ và hiệuquả sử dụng bộ nhớ.Hiệuquả sử dụng bộ nhớ là như nhau với First-fit và best-fit, tuy nhiên first-fit nhìn chung nhanh hơn. 10/28/201322 Chương 7: Main Memory
  22. • Phân mảnh ngoài:tổng không gian bộ nhớ còn đủ để thỏa mãn yêu cầunhưng chúng không nằmliền nhau. • Phân mảnh trong:phầnbộ nhớ cấpchotiến trình lớnhơnbộ nhớ yêu cầumột ít. Phần sai khác này nằm bên trong của phân khu và không đượcsử dụng. • Khử phân mảnh ngoài bằng cách cô đặcbộ nhớ o Sắpxếplạinội dung bộ nhớđểgom các lỗ hổng lạithànhmộtlỗ hổng duy nhấtlớnhơn. o Sự khử phân mảnh chỉ có thể làm được khi việctáiđịnh vị là động • Cách tiếpcậnkhácđể khử phân mảnh ngoài là cho phép vùng nhớ củatiếntrìnhnằm không liên tụctrongbộ nhớ => cấp phát không liên tục. 10/28/201323 Chương 7: Main Memory
  23. • Sơđồquảnlýbộ nhớ hỗ trợ việc phân chia bộ nhớ theo góc độ người dùng. • Mộtchương trình bao gồmmộttậphợp các đoạn(segment). o Một đoạnlàmột đơnvị luận lý, ví dụ như: main program, procedure, function, method, object, local variables, global variables, common block, stack, symbol table arrays 10/28/201325 Chương 7: Main Memory
  24. 1 4 1 2 3 2 4 3 Không gian người dùng Không gian bộ nhớ vật lý 10/28/201326 Chương 7: Main Memory
  25. • Địachỉ luậnlýbaogồmmộtbộđôi: • Bảng đoạn (Segment table): ánh xạ các địachỉ luậnlýhai chiều định nghĩabởingười dùng vào các địachỉ vậtlýmột chiều. • Mỗimụctừ trong bảng gồmhaiphần: o base –chứa địachỉ vậtlýkhởi đầucủa đoạn trong bộ nhớ vậtlý. o limit –chỉđịnh chiềudàicủa đoạn. • Segment-table base register (STBR): là thanh ghi chỉđếnvị trí củabảng đoạn trong bộ nhớ. • Segment-table length register (STLR): là thanh ghi chỉ ra số lượng các đoạn đang đượcsử dụng bởichương trình; một đoạn có số hiệu s là hợplệ nếu s < STLR. 10/28/201327 Chương 7: Main Memory
  26. 10/28/201328 Chương 7: Main Memory
  27. 10/28/201329 Chương 7: Main Memory
  28. • Bảovệ (Protection): o Cơ chế bảovệ:Kếthợpvớimỗimụctừ trong bảng quảnlý đoạn: • Bit hợplệ (validation bit) = 0 ⇒ đoạn không hợplệ • Các bit kiểm soát các quyền read/write/execute • Vi ệcchiasẻ mã lệnh đượcthựchiện ở mức đoạn. • Do các đoạncóđộ dài khác nhau, việccấpphátbộ nhớ là kiểu bài toán cấp phát động. 10/28/201330 Chương 7: Main Memory
  29. • Không gian địachỉ vậtlýcủamộttiếntrìnhcóthể không liên tục; tiếntrìnhđượccấpbộ nhớ vật lý khi nó sẵn dùng. o Tránh dượcphânmãnhngoàitrongbộ nhớ và vùng lưutrữ phụ (backing store) • Chia bộ nhớ vật lý thành các khốicókíchthướccốđịnh gọilàcác khung (frame): có kích thướclàlũythừacủa2,giữa 512 bytes và 16 Mbytes. • Chia bộ nhớ luậnlýthànhcáckhối có cùng kích thướcvới khung trang gọilàtrang (page). • Theo dõi tấtcả các khung trang còn rảnh. • Để chạymộtchương trình có N trang,cầnphải tìm đúng N khung trang còn trống và nạpchương trình vào. • Cầnthiếtlậpmột bảng trang (page table) để dịch các địachỉ luận lý thành địachỉ vậtlý. • Vẫntồntại phân mảnh trong. 10/28/201332 Chương 7: Main Memory
  30. • ĐịachỉđượcsinhrabởiCPUđược chia làm 2 phần: o Số hiệu trang – page number (p): đượcsử dụng như là mộtchỉ mục đến bảng trang,màbảng trang này chứa địachỉ nềncủa mỗi trang trong bộ nhớ vậtlý. o Độ dời trong trang – offset number (d): đượckếthợpvới địa chỉ nền để xác định địachỉ vật lý dùng để gởi đếnbộ nhớ. page number page offset p d m ‐ n n • Kích thướccủa không gian địachỉ là 2m • Kích thướccủatranglà2n 10/28/201333 Chương 7: Main Memory
  31. 10/28/201334 Chương 7: Main Memory
  32. 10/28/201335 Chương 7: Main Memory
  33. • Một trang kích thước4 byte. • Bộ nhớ vậtlýkíchthước 32 byte (8 khung). • Địachỉ luậnlý3được ánh xạ vào địachỉ vậtlý 23. 10/28/201336 Chương 7: Main Memory
  34. 10/28/201337 Chương 7: Main Memory
  35. • Phân mãnh trong: khung cuốicùngđượccấpphátcóthể không hoàn toàn đầy. o Kích thước trang = 2,048 o Kích thướctiến trình = 72,766 bytes o 35 trang + 1,086 bytes o Phân mãnh trong 2,048 - 1,086 = 962 bytes o Trường hợpphânmãnhxấunhất = 1 frame – 1 byte o Trung bình kích thướcbị phân mãnh = 1/2 frame size o Kích thước khung nhỏ thì tốthơn? => Kích thướcbảng trang tăng o Kích thướccủa trang ngày càng tăng • Solaris hỗ trợ hai kích thước trang – 8 KB và 4 MB • Tách biệt không gian địachỉ củachương trình và địachỉ vậtlýthật sự 10/28/201338 Chương 7: Main Memory
  36. • Bảng trang đượcgiữ trong bộ nhớ chính. • Thanh ghi nềncủabảng trang (PTBR - Page-table base register) chỉ tớibảng trang. • Thanh ghi chỉ chiềudàibảng trang (PRLR - Page-table length register)chỉđịnh kích thướccủabảng trang. • Trong sơđồnày, mỗitruycập đếndữ liệu/chỉ thị yêu cầu2truycập bộ nhớ:mộtchobảng trang và một cho việctruycậpdữ liệu/chỉ thị. • Vấn đề truy cậpbộ nhớ hai lầncóthể giảiquyết đượcbằng cách sử dụng mộtkiểu cache phầncứng tìm kiếm nhanh gọilàbộ nhớ kết hợp hoặclàbộđệmtìmkiếmphụ cho việcdịch địachỉ (TLBs - Translation look-aside buffers) • Vài TLBs lưutrữ các định danh không gian địachỉ (address- space identifiers - ASIDs) trong mỗimụctừ củaTLB–làcácđịnh danh duy nhấtcủamỗitiếntrìnhđể bảovệ cho tiếntrìnhđó o Mặc khác nếu TLBs không hỗ trợ ASIDs, cầnphải xóa tấtcả TLBs khi chuyểnngữ cảnh 10/28/201339 Chương 7: Main Memory
  37. • TLBs thường nhỏ (64-1024 mụctừ) • Khi truy cập đếnmụctừ trong bảng trang không có trong TLB (TLB miss), nó sẽđượcnạp vào trong TLB cho lầntruycậpsau o Có nhiều chính sách thay thế các mụctừ trong TLB được dùng o Vài TLB cho phép mộtsố mụctừ không thể thay thế • Bộ nhớ kếthợp (Associative Memory) – tìm kiếm song song Page #Frame # • Dịch địachỉ (p, d) o Nếupđang ở trong thanh ghi kếthợp, lấyrasố hiệucủa khung trang. o Ngượclại, lấyrasố hiệu khung trang tương ứng từ bảng trang trong bộ 10/28/2013nhớ 40 Chương 7: Main Memory
  38. 10/28/201341 Chương 7: Main Memory
  39. • Thờigiantìmkiếm trên thanh ghi kếthợp=εđơnvị thờigian(có thể EAT= 120*0.98+220*0.02=122 ns 10/28/201342 Chương 7: Main Memory
  40. • Việcbảovệ bộ nhớđượccàiđặtbằng cách kếthợpbitbảovệ (protection bit) vớimỗi khung để xác định khung là read-only hay read-write. • Bit hợplệ - không hợplệ (Valid-invalid bit) đượcgắnvào mỗi đầumục trong bảng trang: o “valid” chỉ ra rằng khung tương ứng đang nằm trong không gian địachỉ luậnlýcủatiến trình, và do đólàtranghợplệ. o “invalid” chỉ ra rằng trang đó không nằm trong không gian địa chỉ luậnlýcủatiến trình. o Hay sử dụng page-table length register (PTLR) 10/28/201343 Chương 7: Main Memory
  41. 10/28/201344 Chương 7: Main Memory
  42. • Chia sẽ mã lệnh: o Mộtbảnsaochỉđọccủamãlệnh đượcchiasẽ giữanhiềutiến trình (ví dụ: text editors, compilers, window systems) o Tương tự như nhiều luồng chia sẽ cùng một không gian tiến trình o Hữu ích cho việcgiaotiếp liên tiếntrìnhnếutrangchiasẽ có thể read-write • Mã và dữ liệuriêng: o Mỗitiếntrìnhcómộtbảnsaomãvàdữ liệuriêng o Cáctrangchomãvàdữ liệu riêng có thể xuấthiệnbấtkỳđâu trong không gian địachỉ luậnlýcủatiếntrình 10/28/201345 Chương 7: Main Memory
  43. 10/28/201346 Chương 7: Main Memory
  44. • Lượng bộ nhớ cho cấutrúccủacơ chế phân trang có thể rất lớnnếuápdụng trựctiếpcơ chế này như trên: o Giả sử một không gian địachỉ luậnlý32-bittrênhệ thống máy tính hiện đại o Trangcókíchthước4KB(212) o Bảng trang có thể có 1 triệumụctừ (232/212) o Nếumỗimụctừ là 4 bytes -> 4 MB bộ nhớ vậtlýchobảng trang o Không muốncấp phát vùng nhớ liên tụcchobảng trang • Bảng trang phân cấp (hierachical page table). • Bảng trang đượcbăm (hashed page table). • Bảng trang đảo (inverted page table). 10/28/201348 Chương 7: Main Memory
  45. • Phân không gian địachỉ luận lý vào nhiềubảng trang. • Bảng trang phân cấp đơngiản: bảng trang hai mức (two-level page table) => Phân trang bảng trang 10/28/201349 Chương 7: Main Memory
  46. 10/28/201350 Chương 7: Main Memory
  47. • Một địachỉ luậnlýtrênmáy32bit.Một trang có kích thước4K. Địachỉ luậnlýbaogồm: o Số hiệu trang (page number): 20 bits. o Độ dời trong trang (page offset): 12 bits. • Vì bảng trang được phân trang, số hiệutranglại được chia thành 2 phần: o Số hiệu trang dài 10 bit. o Độ dời trong trang dài 10 bit. • Do đó, một địachỉ luậnlýcódạng sau: • Trong đó: o P1 là chỉ mụccủa bảng trang ngoài (outer page table). o P2 là chỉ mụccủa bảng trang trong (inner page table). 10/28/201351 Chương 7: Main Memory
  48. 10/28/201352 Chương 7: Main Memory
  49. • Thông dụng trong các không gian địachỉ > 32 bits. • Số hiệucủatrangảo đượcbămvàobảng trang. • Mộtmụctừ củabảng trang sẽ chỉđếnmộtdanhsáchliênkết của các phầntửđượcbăm vào cùng vị trí. • Mộtphầntử có ba thông tin chính: số hiệutrangảo, số hiệu khung trang tương ứng, và con trỏ chỉđếnphầntử kế tiếp trong danh sách liên kết. • Số hiệutrangảo được so sánh trong danh sách này để tìm ra mộtsố hiệu trang trùng khớp. Nếu trùng khớp, thì số hiệu khung trang đượclấyra. 10/28/201353 Chương 7: Main Memory
  50. 10/28/201354 Chương 7: Main Memory
  51. • Thay vì mỗitiến trình có mộtbảng trang, và lưuvếttấtcả các trang ảo=>lưuvếttấtcả các trang vậtlý • Mỗimụctừ củabảng trang đạidiệnchomột khung trong bộ nhớ • Mụctừ chứa địachỉảocủatrangđượcchứa trong vị trí bộ nhớ thựctương ứng, với thông tin về tiến trình sở hữutrangđó. • Giảmbộ nhớ cầnthiết cho lưutrữ các bảng trang, nhưng tăng thờigiancầnthiết để tìm kiếmbảng trang khi mộtthamkhảo trang đượcyêucầu. • Dùng bảng băm để giớihạntìmkiếm cho một–hoặc nhiềunhất là một ít–các mụctừ củabảng trang. o TLB có thể giúp tăng tốc độ truy cập 10/28/201355 Chương 7: Main Memory
  52. 10/28/201356 Chương 7: Main Memory