Bài giảng Hệ điều hành - Chương 7: Bộ nhớ ảo

Chia sẻ: Hkmghnjm Hkmghnjm | Ngày: | Loại File: PDF | Số trang:45

0
153
lượt xem
61
download

Bài giảng Hệ điều hành - Chương 7: Bộ nhớ ảo

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Hệ điều hành Chương 7: Bộ nhớ ảo trình bày về các nội dung chính vấn đề về Real Memory, ý tưởng Virtual Memory, thực hiện Virtual Memory, các chiến lược của Virtual Memory như chiến lược nạp, chiến lược thay thết trang, chiến lược cấp phát khung trang, hiện tượng thrashing.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Hệ điều hành - Chương 7: Bộ nhớ ảo

  1. Baøi giaûng 7 : Boä nhôù AÛo VaÁn ñeà vôùi Real Memory YÙ töôûng Virtual Memory Thöïc hieän Virtual Memory Caùc chieán löôïc cuûa Virtual Memory Chieán löôïc naïp Chieán löôïc thay theá trang Chieán löôïc caáp phaùt khung trang Hieän töôïng thrashing Nguyeân nhaân Giaûi phaùp 12/2/2005 Trần Hạnh Nhi 1
  2. Caùc caáp boä nhôù Cho ñeán nay : Naïp toaøn boä tieán trình vaøo boä nhôù roài thöïc hieän noù... Neáu kích thöôùc tieán trình lôùn hôn dung löông boä nhôù chính ? Memory Cache Registers 12/2/2005 Trần Hạnh Nhi 2
  3. Giaûi phaùp Taïi moät thôøi ñieåm chæ coù 1 chæ thò ñöôïc thi haønh Taïi sao phaûi naïp taát caû tieán trình vaøo BNC cuøng 1 luùc ? YÙ töôûng Cho pheùp naïp vaø thi haønh töøng phaàn tieán trình Ai ñieàu khieån vieäc thay ñoåi caùc phaàn ñöôïc naïp vaø thi haønh ? Taïi moät thôøi ñieåm chæ giöõ trong BNC caùc chæ thò vaø döõ lieäu caàn thieát taïi thôøi ñieåm ñoù Caùc phaàn khaùc cuûa tieán trình naèm ôû ñaâu ? Giaûi phaùp Boä nhôù aûo (virtual memory) 12/2/2005 Trần Hạnh Nhi 3
  4. Virtual Memory Neáu coù moät Virtual Memory vôùi dung löôïng raát raát lôùn cho LTV laøm vieäc... Hoan hoâ ! Virtual Memory Memory Cache Registers 12/2/2005 Trần Hạnh Nhi 4
  5. YÙ töôûng Taùch bieät KGÑC vaø KGVL LTV : moãi tieán trình laøm vieäc vôùi KGÑC 2m cuûa mình (ñòa chæ töø 0 – (2m -1)) HÑH : chòu traùch nhieäm naïp caùc KGÑC vaøo moät KGVL chung Giaûi phaùp cuûa HÑH : Naïp töøng phaàn tieán trình Phaân chia KGÑC thaønh caùc phaàn ? Paging/Segmentation Môû roäng BNC ñeå löu tröõ caùc phaàn cuûa tieán trình chöa ñöôïc naïp Duøng BNP(disk) ñeå môû roäng BNC Nhaän bieát phaàn naøo cuûa KGÑC chöa ñöôïc naïp ? Boå sung bit côø hieäu ñeå nhaän daïng tình traïng cuûa moät page/segment laø ñaõ ñöôïc naïp vaøo BNC hay chöa Cô cheá chuyeån ñoåi qua laïi caùc phaàn cuûa tieán trình giöõa BNC vaø BNP Swapping... 12/2/2005 Trần Hạnh Nhi 5
  6. Virtual Memory vôùi cô cheá phaân trang (Paging) Phaân chia KGÑC thaønh caùc page Duøng BNP(disk) ñeå môû roäng BNC, löu tröõ caùc phaàn cuûa tieán trình chöa ñöôïc naïp Boå sung bit côø hieäu trong Page Table ñeå nhaän daïng tình traïng moät page ñaõ ñöôïc naïp vaøo BNC hay chöa . Caáu truùc moät phaàn töû trong Page Tables 12/2/2005 Trần Hạnh Nhi 6
  7. Löu tröõ KGÑC ôû ñaâu ? Söû duïng boä nhôù phuï ñeå löu tröõ taïm thôøi caùc trang chöa söû duïng DISK P RAM 12/2/2005 Trần Hạnh Nhi 7
  8. Virtual Memory virtual address space 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 physical memory 7 1 5 4 13 2 18 3 3 12/2/2005 Trần Hạnh Nhi 8
  9. Memory Lookup present Outgoing physical address bit 15 000 0 1 1 0 Page table 14 000 0 13 000 0 (0x6004, 24580) 12 000 0 11 111 1 10 000 0 9 101 1 8 000 0 7 000 0 6 000 0 5 011 1 4 100 1 3 000 1 2 110 1 1 001 1 4-bit index 0 010 1 into page table virtual page = 0x0010 = 2 12-bit offset Incoming virtual address 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 (0x2004, 8196) 12/2/2005 Trần Hạnh Nhi 9
  10. Memory Lookup present Outgoing physical address bit 15 000 0 Page table 14 000 0 13 000 0 12 000 0 11 111 1 10 000 0 9 101 1 8 000 0 7 000 0 6 000 0 5 4 011 100 1 1 PAGE FAULT 3 000 1 2 110 0 1 001 1 4-bit index 0 010 1 into page table virtual page = 0x0010 = 2 12-bit offset Incoming virtual address 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 (0x2004, 8196) 12/2/2005 Trần Hạnh Nhi 10
  11. Demand Paging int i,j; i main () emacs { j i = 5; i j j = 2; i=5 } j=2 gcc KGDC code Khi naïp moät tieán trình môùi, chæ naïp vaøo BNC page chöùa entry code Khi truy xuaát ñeán moät chæ thò hay döõ lieäu, KGVL page töông öùng môùi ñöôïc naïp vaøo BNC 12/2/2005 Trần Hạnh Nhi 11
  12. Swapping 12/2/2005 Trần Hạnh Nhi 12
  13. Demand Paging + Swapping int i,j; main () { i i = 5; j = 2; emacs j } i j i=5 j=2 gcc KGDC code 12/2/2005 Trần Hạnh Nhi KGVL 13
  14. Thöïc hieän Boä nhôù aûo Baûng trang : theâm 1 bit valid/invalid ñeå nhaän dieän trang ñaõ hay chöa ñöôïc naïp vaøo RAM Frame valid/invalid 17 1 Disk 4183 0 177 1 5721 0 Mem Truy xuaát ñeán moät trang chöa ñöôïc naïp vaøo boä nhôù : loãi trang (page fault) 12/2/2005 Trần Hạnh Nhi 14
  15. Page Tables
  16. Xöû lyù loãi trang 3 xaùc ñònh vò trí löu trang treân ñóa OS loãi trang 2 3’ truy xuaát M swap out 1 trang naïn nhaân naïp M i 6 taùi kích hoaït Page Table frame troáng tieán trình 5 mang trang Boä nhôù aûo 4 caäp nhaät caàn truy xuaát baûng trang vaøo boä nhôù Boä nhôù vaät lyù 12/2/2005 Trần Hạnh Nhi 16
  17. Caùc böôùc xöû lyù loãi trang 1. Kieåm tra truy xuaát ñeán boä nhôù laø hôïp leä hay baát hôïp leä 2. Neáu truy xuaát baát hôïp leä : keát thuùc tieán trình Ngöôïc laïi : ñeán böôùc 3 3. Tìm vò trí chöùa trang muoán truy xuaát treân ñóa. 4. Tìm moät khung trang troáng trong boä nhôù chính : a. Neáu tìm thaáy : ñeán böôùc 5 b. Neáu khoâng coøn khung trang troáng, choïn moät khung trang naïn nhaân ñeå swap out, caäp nhaät baûng trang töông öùng roài ñeán böôùc 5 5. Chuyeån trang muoán truy xuaát töø boä nhôù phuï vaøo boä nhôù chính : naïp trang caàn truy xuaát vaøo khung trang troáng ñaõ choïn (hay vöøa môùi laøm troáng ) ; caäp nhaät noäi dung baûng trang, baûng khung trang töông öùng. 6. Taùi kích hoaït tieán trình ngöôøi söû duïng. 12/2/2005 Trần Hạnh Nhi 17
  18. Caùc caâu hoûi 1. Choïn trang naøo ñeå naïp ? => Chieán löôïc naïp Demand Paging / Prepageing 2. Choïn trang naïn nhaân ? => Chieán löôïc thay theá trang FIFO / OPTIMAL/LRU 3. Caáp phaùt khung trang => Chieán löôïc caáp phaùt khung trang Coâng baèng/ Tyû leä... 12/2/2005 Trần Hạnh Nhi 18
  19. Chieán löôïc naïp Quyeát ñònh thôøi ñieåm naïp moät/nhieàu page vaøo BNC Naïp tröôùc : laøm sao bieát ? =>prepaging Naïp sau : taàn suaát loãi trang cao ? => pure demand paging Prepaging : Naïp saün moät soá trang caàn thieát vaøo BNC tröôùc khi truy xuaát chuùng Demand paging : Chæ naïp trang khi ñöôïc yeâu caàu truy xuaát ñeán trang ñoù ld init pages ld page ld page ... ld page init pages = ? 12/2/2005 Trần Hạnh Nhi 19
  20. Chieán löôïc thay theá trang (Page Replacement) Muïc tieâu : thay theá trang sao cho taàn suaát xaûy ra loãi trang thaáp nhaát Ñaùnh giaù Söû duïng soá frame cuï theå Giaû söû coù moät chuoãi truy xuaát cuï theå adresse : 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0611 # page : 1, 4, 1, 6, 1, 1, 1, 6, Thöïc hieän moät thuaät toaùn thay theá trang treân chuoãi truy xuaát naøy Ñeám soá loãi trang phaùt sinh Chuoãi truy xuaát 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 3 frames 12/2/2005 Trần Hạnh Nhi 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản