Bài giảng Hệ điều hành: Chương 7 - ThS. Hà Lê Hoài Thương
lượt xem 17
download
Mục tiêu trong chương 7 Quản lý bộ nhớ thuộc bài giảng hệ điều hành nhằm trình bày về các kiến thức: khái niệm cơ sở, các kiểu đĩa chỉ ghi nhớ (physical address , logical address), chuyển đổi ghi nhớ, Overlay và swapping, mô hình quản lý bộ nhớ đơn giản.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Chương 7 - ThS. Hà Lê Hoài Thương
- 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 1
- 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 2
- 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 ‟ Chia seû: cho pheùp caùc process chia seû vuøng nhôù chung ‟ Keát gaùn ñòa chæ nhôù luaän lyù cuûa user vaøo ñòa chæ thöïc Khoa KTMT 3
- 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 4
- 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 static linking library dynamic linking System library Khoa KTMT 5
- Cô cheá thöïc hieän linking 0 Module A 0 Module A relocatable CALL B object modules JMP “L” length L L1 Return L 1 Return L Module B 0 Module B load module JMP “L+M” CALL C length M L M 1 Return M1 Return LM Module C 0 Module C length N LMN1 Return N 1 Return Khoa KTMT 6
- 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 7
- 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 8
- 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 9
- 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 10
- Chuyeån ñoåi ñòa chæ (tt) Execution time: khi trong quaù trình thöïc thi, process coù theå ñöôïc di Relative (relocatable) chuyeån töø segment naøy sang addresses segment khaùc trong boä nhôù thì quaù 0 trình chuyeån ñoåi ñòa chæ ñöôïc trì hoaõn ñeán thôøi ñieåm thöïc thi JUMP 400 ‟ Caàn söï hoã trôï cuûa phaàn cöùng cho 400 vieäc aùnh xaï ñòa chæ. Ví duï: tröôøng hôïp ñòa chæ luaän lyù LOAD 1200 laø relocatable thì coù theå duøng thanh ghi base vaø limit,… ‟ Söû duïng trong ña soá caùc OS ña 1200 duïng (general-purpose) trong ñoù coù caùc cô cheá swapping, paging, segmentation MAX = 2000 Khoa KTMT 11
- Khoâng gian ñòa chæ Ñòa chæ ñöôïc taïo bôûi CPU ‟ Ñòa chæ logic (logical address). Taäp hôïp ñòa chæ logic goïi laø khoâng gian ñòa chæ logic Ñòa chæ naïp vaøo MAR ‟ ñòa chæ vaät lyù (physical address). Taäp hôïp ñòa chæ vaät lyù goïi laø khoâng gian ñòa chæ vaät lyù compile-time and load-time: ‟ Ñòa chæ Logical vaø physical laø xaùc ñònh Taïi thôøi ñieåm thöïc thi: ñòa chæ logic khaùc vaät lyù, thöôøng goïi laø ñòa chæ aûo Vieäc aùnh xaï giöõa hai ñòa chæ ñöôïc thöïc thi bôûi Memory Management Unit (MMU) Khoa KTMT 12
- Taùi ñònh vò söû duïng relocation register relocation register 7000 memory logical physical CPU address + address 642 7642 MMU Khoa KTMT 13
- Lieân keát ñoäng(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ä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 KTMT 15
- Naïp ñoäng(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ám choã 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
- 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ä ñieàu haønh Khoa KTMT 17
- Cô cheá overlay (tt) Pass 1 70K Ñôn vò: byte Pass 2 80K symbol 20K Symbol table 20K table Common routines 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
- Cô cheá hoaùn vò (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 19
- Minh hoïa cô cheá swapping Khoa KTMT 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p | 167 | 16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành: Chương 2 - Trần Công Án (ĐH Cần Thơ)
39 p | 136 | 11
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p | 165 | 10
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 2 - Hà Duy An (ĐH Cần Thơ)
45 p | 106 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p | 123 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p | 79 | 7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p | 75 | 6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p | 78 | 5
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 46 | 5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p | 118 | 5
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p | 67 | 3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn