Bài giảng Hệ điều hành - Chương 6: Phân cấp bộ nhớ - Bộ nhớ thực - Thoại Nam

a Quản lý bộ nhớ là công việc của hệ điều hành với sự hỗ trợ của phần cứng nhằm phân phối, sắp xếp các

process trong bộ nhớ sao cho hiệu quả.

Dlục tiêu cần đạt được là nạp càng nhiều process vào bộ nhớ càng tốt (gia tăng mức độ đa chương)

a. Trong hầu hết các hệ thống, kernel sẽ chiếm một phần cố định của bộ nhớ; phần còn lại phân phối cho các process.

n Các yêu cầu đối với việc quản lý bộ nhớ

– Cấp phát bộ nhớ cho các process

– Tái định vị (relocation): khi swapping....

– Bảo vệ: phải kiểm tra truy xuất bộ nhớ có hợp lệ không?

-

– Chia sẻ: cho phép các process chia sẻ vùng nhỏ chung

– Kết gần địa chỉ nhớ luận lý của user vào địa chỉ thực (physical)

pdf 13 trang xuanthi 30/12/2022 2220
Bạn đang xem tài liệu "Bài giảng Hệ điều hành - Chương 6: Phân cấp bộ nhớ - Bộ nhớ thực - Thoại Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_6_phan_cap_bo_nho_bo_nho_thuc.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 6: Phân cấp bộ nhớ - Bộ nhớ thực - Thoại Nam

  1. Caùc kieåu ñòa chæ nhôù ‰ Ñòa chæ vaät lyù (physical address) (ñòa chæ thöïc, ñòa chæ tuyeät ñoái) laø moät vò trí thöïc trong boä nhôù chính. ‰ Ñòa chæ luaän lyù (logical address) laø tham chieáu ñeán moät vò trí nhôù ñoäc laäp vôùi caáu truùc, toå chöùc vaät lyù cuûa boä nhôù – Caùc trình bieân dòch (compiler) taïo ra maõ leänh chöông trình maø trong ñoù moïi tham chieáu boä nhôù ñeàu laø ñòa chæ luaän lyù ‰ Ñòa chæ töông ñoái (relative address) laø moät kieåu ñòa chæ luaän lyù trong ñoù caùc ñòa chæ ñöôïc bieåu dieãn töông ñoái so vôùi moät ñieåm xaùc ñònh naøo ñoù trong chöông trình (ví duï: 12 byte so vôùi ñieåm baét ñaàu chöông trình, ) ‰ Khi moät leänh ñöôïc thöïc thi, caùc tham chieáu ñeán ñòa chæ luaän lyù phaûi ñöôïc chuyeån ñoåi thaønh ñòa chæ thöïc. Thao taùc chuyeån ñoåi naøy thöôøng coù söï hoã trôï cuûa phaàn cöùng ñeå ñaït hieäu suaát cao. Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.3- Naïp chöông trình vaøo boä nhôù(t.t) ‰ Boä linker: keát hôïp caùc object module thaønh moät file nhò phaân khaû thöïc thi goïi laø load module. ‰ Boä loader: naïp load module vaøo boä nhôù chính System Library static linking dynam ic linking System Library Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.4- 2
  2. Chuyeån ñoåi ñòa chæ (t.t) ‰ Ñòa chæ leänh (instruction) vaø döõ lieäu (data) ñöôïc chuyeån ñoåi thaønh ñòa chæ vaät lyù cuûa boä nhôù thöïc coù theå xaûy ra taïi ba thôøi ñieåm khaùc nhau – Compile time: neáu bieát tröôùc ñòa chæ boä nhôù thì coù theå keát gaùn ñòa chæ vaät lyù (ñòa chæ thöïc) luùc bieân dòch. ⇒ Ví duï: chöông trình .COM cuûa MS-DOS, phaùt bieåu assemply org xxx ⇒ Khuyeát ñieåm: phaûi bieân dòch laïi neáu thay ñoåi ñòa chæ – Load time: taïi thôøi ñieåm bieân dòch, neáu khoâng bieát ñòa chæ thöïc thì vaøo thôøi ñieåm loading, phaûi chuyeån ñoåi ñòa chæ khaû taùi ñònh vò (re-locatable) theo moät moác chuaån (base address). ƒ Ñòa chæ thöïc ñöôïc tính toaùn laïi vaøo thôøi ñieåm chöông trình thöïc thi ⇒ phaûi tieán haønh reload neáu ñòa chæ base thay ñoåi. Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.7- Chuyeån ñoåi vaøo thôøi ñieåm dòch Absolute Addresses Absolute Addresses Sym bolic (Physical Memory (Physical Memory Addresses Addresses) Addresses) PROGRAM 1024 1024 JU M P i JU M P 1424 JU M P 1424 i 1424 1424 LO AD j LO AD 2224 LO AD 2224 Compile Link/Load DATA j 2224 2224 Source C ode Absolute Load M odule Process Im age Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.8- 4
  3. Dynamic Linking ‰ Quaù trình link moät soá module ngoaøi (external module) ñöôïc thöïc hieän sau khi ñaõ taïo xong load module (i.e. file coù theå thöïc thi – executable) – Ví duï trong Windows: module ngoaøi laø caùc file .DLL coøn trong Unix, caùc module ngoaøi laø caùc file .so (shared library) ‰ Load module chæ chöùa caùc tham chieáu (reference) ñeán caùc external module. Caùc tham chieáu naøy coù theå ñöôïc chuyeån ñoåi vaøo hai thôøi ñieåm sau: – Loading time (load-time dynamic linking) – Run time: khi coù moät lôøi goïi ñeán thuû tuïc ñöôïc ñònh nghóa trong external module (run-time dynamic linking) ‰ OS chòu traùch nhieäm tìm caùc external module vaø keát noái vaøo load module (kieåm tra xem external module ñaõ naïp vaøo boä nhôù chöa) Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.11- Öu ñieåm cuûa Dynamic Linking ‰ Thoâng thöôøng, external module laø moät thuû tuïc, thö vieän cung caáp caùc tieän ích cuûa OS. Caùc chöông trình thöïc thi coù theå duøng caùc phieân baûn khaùc nhau cuûa external module maø khoâng caàn söûa ñoåi, bieân dòch laïi. ‰ Chia seû maõ (code sharing): moät external module chæ caàn naïp vaøo boä nhôù moät laàn. Caùc process caàn duøng external module naøy thì cuøng chia seû ñoaïn maõ cuûa external module ⇒ tieát kieäm khoâng gian nhôù vaø ñóa. ‰ Phöông phaùp dynamic linking caàn söï hoã trôï cuûa OS trong vieäc kieåm tra xem moät thuû tuïc naøo ñoù coù theå ñöôïc chia seû giöõa caùc process hay laø phaàn maõ cuûa rieâng moät process ( bôûi vì chæ coù OS môùi coù quyeàn thöïc hieän vieäc kieåm tra naøy). Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.12- 6
  4. Cô cheá Overlay (t.t) P ass 1 70K P ass 2 80K sym bol 20K Sym. Table 20K table C om m on R outines 30K A ssem bler com m on routines 30K Total Memory Available = 150K overlay 10K driver 80K pass 1 pass 2 70K Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.15- Cô cheá swapping ‰ Moät process coù theå taïm thôøi bò swap ra khoûi boä nhôù chính vaø löu treân moät heä thoáng löu tröõ phuï. Sau ñoù, process coù theå ñöôïc naïp laïi vaøo boä nhôù ñeå tieáp tuïc quaù trình thöïc thi – Round-robin: swap-out A, swap-in B, thöïc thi C – Roll out, roll in – duøng trong cô cheá ñònh thôøi theo ñoä öu tieân ( priority-based scheduling) ƒ Process coù ñoä öu tieân thaáp hôn seõ bò swap-out nhöôøng choã cho process coù ñoä öu tieân cao hôn ñöôïc naïp vaøo boä nhôù ñeå thöïc thi – Medium-term scheduler Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.16- 8
  5. Phaân maûnh (fragmentation) ‰ Phaân maûnh ngoaïi (external fragmentation) – Kích thöôùc khoâng gian boä nhôù coøn troáng ñuû ñeå thoûa maõn moät yeâu caàu caáp phaùt, tuy nhieân khoâng gian nhôù naøy khoâng lieân tuïc ⇒ phaûi duøng cô cheá keát khoái (compaction). ‰ Phaân maûnh noäi (internal fragmentation) – Kích thöôùc vuøng nhôù ñöôïc caáp phaùt coù theå hôi lôùn hôn vuøng nhôù yeâu caàu. Ví duï: caáp moät khoaûng troáng 18,464 bytes cho moät process yeâu caàu 18,462 bytes – Hieän töôïng phaân maûnh noäi thöôøng xaûy ra khi boä nhôù thöïc (physical memory) ñöôïc chia thaønh caùc khoái kích thöôùc coá ñònh(fixed-sized block) vaø caùc process ñöôïc caáp phaùt theo ñôn vò khoái. Ví duï: cô cheá phaân trang (paging) Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.19- Phaân maûnh noäi operating yeâu caàu keá tieáp laø system 18,462 bytes !!! (used) hole kích thöôùc 18,464 bytes caàn quaûn lyù khoaûng troáng 2 bytes !?! OS seõ caáp phaùt haún khoái 18,464 bytes cho yeâu caàu cuûa process ⇒ dö ra 2 bytes khoâng duøng ! Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.20- 10
  6. Chieán löôïc placement (t.t) ‰ Partition coù kích thöôùc khoâng baèng nhau – Chæ coù moät haøng ñôïi chung cho caùc partition – Khi caàn naïp moät process vaøo boä nhôù chính ⇒ choïn partition nhoû nhaát coøn troáng Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.23- Dynamic Partitioning ‰ Soá löôïng partition khoâng coá ñònh vaø partition coù kích thöôùc khaùc nhau ‰ Moãi process ñöôïc caáp phaùt chính xaùc dung löôïng boä nhôù caàn thieát ‰ Gaây ra hieän töôïng phaân maûnh ngoaïi (external fragmentation) Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM -9.24- 12