intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 7: Quản lý bộ nhớ

Chia sẻ: Lê Tẹt | Ngày: | Loại File: PPT | Số trang:57

63
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo bài thuyết trình 'chương 7: quản lý bộ nhớ', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 7: Quản lý bộ nhớ

  1. Chöông 7 Quaûn lyù boä nhôù Khoa KTMT 1
  2.  Khaùi nieäm cô sôû  Caùc kieåu ñòa chæ nhôù (physical address , logical address)  Chuyeån ñoåi ñòa chæ nhôù  Overlay vaø swapping  Moâ hình quaûn lyù boä nhôù ñôn giaûn – Fixed partitioning – Dynamic partitioning – Cô cheá phaân trang (paging) – Cô cheá phaân ñoaïn (segmentation) – Segmentation with paging Khoa KTMT 2
  3. Objectives  To provide a detailed description of various ways of organizing memory hardware  To discuss various memory-management techniques, including paging and segmentation  To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging
  4. Khaùi nieäm cô sôû  Chöông trình phaûi ñöôïc mang vaøo trong boä nhôù vaø ñaët noù trong moät tieán trình ñeå ñöôïc xöû lyù  Input Queue – Moät taäp hôïp cuûa nhöõng tieán trình treân ñóa maø ñang chôø ñeå ñöôïc mang vaøo trong boä nhôù ñeå thöïc thi.  User programs traûi qua nhieàu böôùc tröôùc khi ñöôïc xöû lyù. Khoa KTMT 4
  5. Khaùi nieäm cô sôû  Quaûn lyù boä nhôù laø coâng vieäc cuûa heä ñieàu haønh vôùi söï hoã trôï cuûa phaàn cöùng nhaèmphaân phoái, saép xeáp caùc process trong boä nhôù sao cho hieäu quaû.  Muïc tieâu caàn ñaït ñöôïc laø naïp caøng nhieàu process vaøo boä nhôù caøng toát (gia taêng möùc ñoä ña chöông)  Trong haàu heát caùc heä thoáng, kernel seõ chieám moät phaàn coá ñònh cuûa boä nhôù; phaàn coøn laïi phaân phoái cho caùc process.  Caùc yeâu caàu ñoái vôùi vieäc quaûn lyù boä nhôù – Caáp phaùt boä nhôù cho caùc process – Taùi ñònh vò (relocation): khi swapping,… – Baûo veä: phaûi kieåm tra truy xuaát boä nhôù coù hôïp leä khoâng – Chia seû: cho pheùp caùc process chia seû vuøng nhôù chung Khoa KTMT 5
  6. Caùc kieåu ñòa chæ nhôù  Ñòa chæ vaät lyù (physical address) (ñòa chæthöïc) laø moät vò trí thöïc trong boä nhôù chính.  Ñòa chæ luaän lyù (logical address) laø moät vò trí nhôù ñöôïc dieãn taû trong moät chöông trình ( coøn goïi laø ñòa chæaûo virtual address) – 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) (ñòa chæ khaû taùi ñònh vò, relocatable 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 vò trí xaùc ñònh naøo ñoù trong chöông trình.  Ví duï: 12 byte so vôùi vò trí baét ñaàu chöông trình,… – Ñòa chæ tuyeät ñoái (absolute address): ñòa chæ töông ñöông vôùi ñòa chæ thöïc. Khoa KTMT 6
  7. Naïp chöông trình vaøo boä nhôù  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 System library static linking library dynamic linking System System library library Khoa KTMT 7
  8. Cô cheá thöïc hieän linking 0 Module A 0 Module A relocatable CALL B object modules JMP “L” length L L −1 Return L − 1 Return L Module B 0 Module B load module JMP “L+M” CALL C length M L + M − 1 Return M −1 Return L + M Module C 0 Module C length N L + M + N − 1 Return N −1 Return Khoa KTMT 8
  9. Chuyeån ñoåi ñòa chæ  Chuyeån ñoåi ñòa chæ: quaù trình aùnh xaï moät ñòa chætöø khoâng gian ñòa chænaøy sang khoâng gian ñòa chækhaùc.  Bieåu dieãn ñòa chænhôù – Trong source code: symbolic (caùc bieán, haèng, pointer,…) – Thôøi ñieåm bieân dòch: thöôøng laø ñòa chæ khaû taùi ñònh vò  Ví duï: a ôû vò trí 14 bytes so vôùi vò trí baét ñaàu cuûa module. – Thôøi ñieåm linking/loading: coù theå laø ñòa chæ thöïc. Ví duï: döõ lieäu naèm taïi ñòa chæ boä nhôù thöïc 2030 0 2000 int i; goto p1; p1 250 2250 symbolic address relocatable address physical memory Khoa KTMT 9
  10. Chuyeån ñoåi ñòa chæ (tt)  Ñòa chæ leänh (instruction) vaø döõ lieäu (data) ñöôïc chuyeån ñoåi thaønh ñòa chæ 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ôù cuûa chöông trình thì coù theå keát gaùn ñòa chæ tuyeät ñoái luùc bieân dòch.  Ví duï: chöông trình .COM cuûa MS-DOS  Khuyeát ñieåm: phaûi bieân dòch laïi neáu thay ñoåi ñòa chæ naïp chöông trình – Load time: Vaøo thôøi ñieåm loading, loader phaûi chuyeån ñoåi ñòa chæ khaû taùi ñònh vò thaønh ñòa chæ thöïc döïa treân moät ñòa chæ neàn (base address).  Ñòa chæ thöïc ñöôïc tính toaùn vaøo thôøi ñieåm naïp chöông trình ⇒ phaûi tieán haønh reload neáu ñòa chæ neàn thay ñoåi. Khoa KTMT 10
  11. Sinh ñòa chæ tuyeät ñoái vaøo thôøi ñieåm dòch Symbolic Absolute Physical memory addresses addresses addresses PROGRAM 1024 1024 JUMP i JUMP 1424 JUMP 1424 i 1424 1424 LOAD j LOAD 2224 LOAD 2224 Compile Link/Load DATA j 2224 2224 Source code Absolute load module Process image Khoa KTMT 11
  12. Sinh ñòa chæ thöïc vaøo thôøi ñieåm naïp Relative Symbolic (relocatable) Physical memory addresses addresses addresses PROGRAM 0 1024 JUMP i JUMP 400 JUMP 1424 i 400 1424 LOAD j LOAD 1200 LOAD 2224 Compile Link/Load DATA j 1200 2224 Source code Relative Process image load module Khoa KTMT 12
  13. Chuyeån ñoåi ñòa chæ (tt)  Execution time: khi trong quaù trình thöïc thi, process coù theå Relative (relocatable) ñöôïc di chuyeån töø segment addresses naøy sang segment khaùc trong 0 boä nhôù thì quaù trình chuyeån ñoåi ñòa chæ ñöôïc trì hoaõn JUMP 400 ñeán thôøi ñieåm thöïc thi 400 – Caàn söï hoã trôï cuûa phaàn cöùng cho vieäc aùnh xaï ñòa LOAD 1200 chæ.  Ví duï: tröôøng hôïp ñòa chæ luaän lyù laø relocatable thì 1200 coù theå duøng thanh ghi base vaø limit,… MAX = 2000 – Söû duïng trong ña soá caùc OS ña duïng (general-purpose) trong ñoù coù caùc cô cheá swapping, paging, segmentation Khoa KTMT 13
  14. Dynamic linking  Quaù trình link ñeán moät 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öùa caùc stub tham chieáu (refer) ñeán routine cuûa external module. – Luùc thöïc thi, khi stub ñöôïc thöïc thi laàn ñaàu (do process goïi routine laàn ñaàu), stub naïp routine vaøo boä nhôù, töï thay theá baèng ñòa chæ cuûa routine vaø routine ñöôïc thöïc thi. – Caùc laàn goïi routine sau seõ xaûy ra bình thöôøng  Stub caàn söï hoã trôï cuûa OS (nhö kieåm tra xem routine ñaõ ñöôïc naïp vaøo boä nhôù chöa). Khoa KTMT 14
  15. Öu ñieåm cuûa dynamic linking  Thoâng thöôøng, external module laø moät 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ämkhoâ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 xemmoä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 KTMT 15
  16. Dynamic loading  Cô cheá: chækhi naøo caàn ñöôïc goïi ñeán thì moät thuû tuïc môùi ñöôïc naïp vaøo boä nhôù chính ⇒ taêng ñoä hieäu duïng cuûa boä nhôù (memory utilization) bôûi vì caùc thuû tuïc khoâng ñöôïc goïi ñeán seõ khoâng chieámchoã trong boä nhôù  Raát hieäu quaû trong tröôøng hôïp toàn taïi khoái löôïng lôùn maõ chöông trình coù taàn suaát söû duïng thaáp, khoâng ñöôïc söû duïng thöôøng xuyeân (ví duï caùc thuû tuïc xöû lyù loãi)  Hoã trôï töø heä ñieàu haønh – Thoâng thöôøng, user chòu traùch nhieäm thieát keá vaø hieän thöïc caùc chöông trình coù dynamic loading. – Heä ñieàu haønh chuû yeáu cung caáp moät soá thuû tuïc thö vieän hoã trôï, taïo ñieàu kieän deã daøng hôn cho laäp trình vieân. Khoa KTMT 16
  17. Cô cheá phuû laép (overlay)  Taïi moãi thôøi ñieåm, chæ giöõ laïi trong boä nhôù nhöõng leänh hoaëc döõ lieäu caàn thieát, giaûi phoùng caùc leänh/döõ lieäu chöa hoaëc khoâng caàn duøng ñeán.  Cô cheá naøy raát höõu duïng khi kích thöôùc moät process lôùn hôn khoâng gian boä nhôù caáp cho process ñoù.  Cô cheá naøy ñöôïc ñieàu khieån bôûi ngöôøi söû duïng (thoâng qua söï hoã trôï cuûa caùc thö vieän laäp trình) chöù khoâng caàn söï hoã trôï cuûa heä Khoa ñieàu KTMT haønh 17
  18. Cô cheá overlay (tt) Pass Pass11 70K 70K Ñôn vò: byte Pass symbol Pass22 80K 80K 20K Symbol table Symboltable table 20K 20K Common Commonroutines routines 30K 30K Assembler common 30K routines Total memory available = 150KB overlay 10K driver naïp vaø thöïc thi pass 1 pass 2 70K 80K Khoa KTMT 18
  19. Cô cheá hoaùn vò (swapping)  Moät process coù theå taïmthôø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. Swapping policy: hai ví duï – Round-robin: swap out P1 (vöøa tieâu thuï heát quantum cuûa noù), swap in P2 , thöïc thi P3 ,… – 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 môùi ñeán ñöôïc naïp vaøo boä nhôù ñeå thöïc thi  Hieän nay, ít heä thoáng söû duïng cô cheá swapping treân Khoa KTMT 19
  20. Minh hoïa cô cheá swapping Khoa KTMT 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2