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

Hệ điều hành 1 - Chương 7: Quản lý bộ nhớ

Chia sẻ: Lê Trinh Vàng | Ngày: | Loại File: PPT | Số trang:65

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

Chương trình phải được mang vào trong bộ nhớ và đặt nó trong một tiến trình để được xử lý Input Queue – Một tập hợp của những tiến trình trên đĩa mà đang chờ để được mang vào trong bộ nhớ để thực thi. User programs trải qua nhiều bước trước khi được xử lý.

Chủ đề:
Lưu

Nội dung Text: Hệ điều hành 1 - Chương 7: Quản lý bộ nhớ

  1. Chöông 7. Quaûn lyù boä nhôù  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. 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
  3. 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èm phaâ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 Khoa KTMT
  4. 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
  5. Caùc kieåu ñòa chæ nhôù (tt)  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 KTMT
  6. 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. 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. 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. 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, phaùt bieåu assembly org xxx  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: taïi thôøi ñieåm bieân dòch, neáu chöa bieát quaù trình seõ naèm ôû ñaâu trong boä nhôù thì compiler phaûi sinh maõ khaû taùi ñònh vò. 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). Khoa KTMT 
  10. 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. 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. 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 – CPU taïo ra ñòa chæ luaän lyù cho process LOAD 1200 – Caàn söï hoã trôï cuûa phaàn cöùng cho vieäc aùnh xaï ñòa chæ. 1200  Ví duï: tröôøng hôïp ñòa chæ luaän lyù laø relocatable thì MAX = 2000 coù theå duøng thanh ghi base vaø limit,… – Söû duïng trong ña soá caùc OS ña duïng (general-purpose) Khoa KTMT
  13. 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. Ö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åmtra 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. 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 Khoa KTMT trình vieân.
  16. Cô cheá 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ã Khoa trôï cuûa heä ñieàu haønh KTMT
  17. Cô cheá overlay(tt) Khoa KTMT
  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
  19. 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. 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
  20. Minh hoïa cô cheá swapping Khoa KTMT
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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