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

 CPU chỉ có thể trao đổi thông tin với bộ nhớ chính  Các chương trình muốn được thực thi cần được nạp vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý  Các hệ thống đa chương trên bộ nhớ chính ngoài HĐH có thể có nhiều tiến trình đang hoạt động  Kích thước bộ nhớ chính là hữu hạn nhưng yêu cầu bộ nhớ thì vô hạn

pdf79 trang | Chia sẻ: lylyngoc | Lượt xem: 1530 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 3 Quản lý bộ nhớ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3 Quản lý bộ nhớ 1. TỔNG QUAN 1.1 Vì sao phải tổ chức, quản lý bộ nhớ? CPU chỉ có thể trao đổi thông tin với bộ nhớ chính Các chương trình muốn được thực thi cần được nạp vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý Các hệ thống đa chương trên bộ nhớ chính ngoài HĐH có thể có nhiều tiến trình đang hoạt động Kích thước bộ nhớ chính là hữu hạn nhưng yêu cầu bộ nhớ thì vô hạn … 3 1.1 Vì sao phải tổ chức, quản lý bộ nhớ? Như vậy, HĐH cần phải tổ chức quản lý bộ nhớ một cách hợp lý để có thể:  Đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi có yêu cầu, cho dù khi trên bộ nhớ không còn không gian trống  Bảo vệ các tiến trình của hệ điều hành và các tiến trình trên bộ nhớ, tránh các trường hợp truy xuất bất hợp lệ xảy ra. 4 1.2 Nhiệm vụ quản lý bộ nhớ Tái định vị Bảo vệ bộ nhớ Chia sẻ bộ nhớ Tổ chức bộ nhớ logic Tổ chức bộ nhớ vật lý 5 Tái định vị (Relocation) Trong các hệ thống đa chương không gian bộ nhớ chính thường được chia sẽ cho nhiều tiến trình và yêu cầu bộ nhớ của các tiến trình luôn lớn hơn không gian bộ nhớ vật lý mà tiến trình mà hệ thống hiện có Cần thực hiện cơ chế hoán đổi (Swap):  Một chương trình đang hoạt động trên bộ nhớ sẽ bị đưa ra đĩa (swap-out) và sẽ được đưa vào lại (swap-in) tại thời điểm thích hợp  Khi thực hiện swap-in 1 chương trình vào lại bộ nhớ HĐH phải định vị nó đúng vào vị trí mà trước khi nó bị swap-out 6 Bảo vệ bộ nhớ (Protection)  Mỗi tiến trình phải được bảo vệ để chống lại sự truy xuất bất hợp lệ vô tình hay có chủ ý của các tiến trình khác.  Mỗi tiến trình chỉ được phép truy suất đến không gian địa chỉ mà HĐH đã cấp cho nó  Bộ phận Qlý bộ nhớ phải biết không gian địa chỉ của tất cả các tiến trình trên bộ nhớ  Khi tiến trình đưa ra địa chỉ truy xuất bộ phận Qlý bộ nhớ phải kiểm tra tất cả các yêu cầu truy xuất bộ nhớ của mỗi tiến trình 7 Chia sẻ bộ nhớ (Sharing)  Bất kỳ một chiến lược nào được cài đặt đều phải có tính mềm dẻo để cho phép nhiều tiến trình có thể truy cập đến cùng một địa chỉ trên bộ nhớ chính  Ví dụ, khi có nhiều tiến trình cùng thực hiện một chương trình thì việc cho phép mỗi tiến trình cùng truy cập đến một bản copy của chương trình sẽ thuận lợi hơn khi cho phép mỗi tiến trình truy cập đến một bản copy sở hữu riêng. 8 Tổ chức bộ nhớ logic (Logical organization)  Bộ nhớ chính của hệ thống máy tính được tổ chức như là một dòng hoặc một mảng  Không gian địa chỉ bao gồm một dãy có thứ tự các byte hoặc các word.  Bộ nhớ phụ cũng được tổ chức tương tự  Cách tổ chức này có sự kết hợp chặt chẻ với phần cứng máy tính nhưng lại không phù hợp với cách xây dựng của chương trình  Đại đa số các chương trình được tổ chức thành các modul 9 Tổ chức bộ nhớ vật lý (Physical organization) Bộ nhớ máy tính được tổ chức theo 2 cấp:  Bộ nhớ chính: tốc độ truy xuất nhanh, nhưng giá thành cao và dữ liệu không thể tồn tại lâu dài trên nó.  Bộ nhớ phụ: giá rẻ, dung lượng lớn, dữ liệu được lưu trữ lâu dài nhưng tốc độ truy xuất chậm. Theo giản đồ 2 cấp này, việc tổ chức luồng thông tin giữa bộ nhớ chính và bộ nhớ phụ là nhiệm vụ quan trọng của hệ thống 10 1.3. Không gian địa chỉ và không gian vật lý  Địa chỉ logic (logical address) – còn gọi là địa chỉ ảo , là tất cả các địa chỉ do bộ xử lý tạo ra.  Địa chỉ vật lý (physical address) - là địa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và thao tác.  Không gian địa chỉ – là tập hợp tất cả các địa chỉ ảo phát sinh bởi một chương trình.  Không gian vật lý – là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ ảo.  Việc ánh xạ tại thời điểm thực thi từ địa chỉ ảo tới địa chỉ vật lý được thực hiện bởi một thiết bị phần cứng được gọi là bộ quản lý bộ nhớ MMU (memory- management unit) 11 Sô ñoà taùi ñònh vò ñoäng (Dynamic Relocation)  CPU saûn sinh Ñòa chæ loâ-gíc  MMU thöïc hieän: Ñòa chæ loâ-gíc + Noäi dung thanh ghi taùi ñònh vò ==> Ñòa chæ vaät lyù 12 Vò trí vaø Chöùc naêng cuûa MMU (MMU göûi caùc ñòa chæ vaät lyù sang Boä nhôù) 13 SÖÛ DUÏNG BASE REGISTER VAØ LIMIT REGISTER (Soá byte cuûa Job2) (Ñòa chæ byte ñaàu cuûa Job2) Memory 14 THUAÄT GIAÛI BAÛO VEÄ BOÄ NHÔÙ (Baét loãi truy caäp sai ñòa chæ) (CPU saûn sinh 1 ñòa chæ boä nhôù) Job i 15 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ã trôï cuûa heä ñieàu haønh 16 Pass 1 70K Pass 2 80K Symbol table 20K Common routines 30K Assembler Total memory available = 150KB Cô cheá overlay symbol table 20K common routines 30K overlay driver 10K pass 1 pass 2 80K70K Ñôn vò: byte naïp vaø thöïc thi 17 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 P 1 (vöøa tieâu thuï heát quantum cuûa noù), swap in P 2 , thöïc thi P 3 ,…  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 18 Minh hoïa cô cheá swapping 19 Phaân maûnh (fragmentation)  Phaân maûnh ngoaïi (external fragmentation)  Kích thöôùc khoâng gian 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  coù theå duøng cô cheá keát khoái (compaction) ñeå gom laïi thaønh vuøng nhôù lieân tuïc.  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 ñöôï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). 20 Phaân maûnh noäi operating system (used) yeâu caàu keá tieáp laø 18,462 bytes !!! 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 process  dö ra 2 bytes khoâng duøng! 21 Phaân caáp boä nhôù 22 – Laø nguyeân taéc quan troïng cuûa heä thoáng maùy tính. – Thoâng tin töø RAM coù theå ñöôïc cô cheá phaàn cöùng ñöa vaøo boä nhôù nhanh hôn goïi laø Cache. Khi CPU caàn chính thoâng tin ñoù, khoâng caàn phaûi truy xuaát RAM, maø laáy ngay töø Cache. – Loaïi boä nhôù naøy khoâng do HÑH quaûn lyù vaø caáp phaùt. – Thöïc teá, RAM (Boä nhôù Sô caáp) laø loaïi Cache nhanh so vôùi ñóa cöùng (Boä nhôù thöù caáp) vaø HÑH coù chöùc naêng quaûn lyù söï löu chuyeån döõ lieäu giöõa 2 loaïi boä nhôù NGUYEÂN TAÉC LÖU GAÀN (CACHING) 23 2. KỸ THUẬT CẤP PHÁT BỘ NHỚ 25  Kỹ thuật phân vùng cố định (Fixed partitioning)  Kỹ thuật phân vùng động (Dynamic partitioning)  Kỹ thuật phân trang (Paging)  Kỹ thuật phân đoạn (Segmentation) 2.1 Kỹ thuật phân vùng cố định  Không gian địa chỉ được chia thành 2 vùng cố định  Vùng địa chỉ thấp dùng để chứa HĐH  Vùng còn lại cấp cho các tiến trình được nạp vào bộ nhớ chính (user program) 26 2.1 Kỹ thuật phân vùng cố định  Với hệ thống đơn chương:  Việc quản lý bộ nhớ đơn giản vì vùng nhớ user program chỉ cấp cho 1 chương trình  HĐH sử dụng 1 thanh ghi giới hạn để ghi địa chỉ ranh giới giữa HĐH và chương trình người sử dụng  Khi chương trình người sử dụng đưa ra địa chỉ cần truy xuất, HĐH sẽ so sánh với giá trị giới hạn được ghi trong thanh ghi giới hạn  Nếu nhỏ hơn giá trị giới hạn thì HĐH từ chối việc truy suất  Ngược lại, nếu lớn hơn sẽ cho phép truy xuất => Nhiệm vụ quản lý sẽ trở nên đơn giản 27 2.1 Kỹ thuật phân vùng cố định  Với hệ thống đa chương:  Vùng nhớ user program được chia n phần không nhất thiết phải bằng nhau. Mỗi phần được được gọi là 1 phân vùng  Mỗi tiến trình có thể được nạp vào 1 phân vùng bất kỳ nếu kích thước của nó <= kích thước của phân vùng và phân vùng này còn trống  Khi có tiến trình cần được nạp vào bộ nhớ mà không còn phân vùng trống thí HĐH sẽ swap-out 1 tiến trình tại 1 phân vùng nào đó có kích thước vừa đủ, không chứa tiến trình đang ở trạng thái ready hoặc running và không có quan hệ với tiến trình đang ở trạng thái running khác để nạp tiến trình vừa có yêu cầu 28 2.1 Kỹ thuật phân vùng cố định (8M) (8M) (8M) (8M) (8M) (8M) (8M) OS (8M) 2M 4M 6M 8M 8M 12M 16M OS(8M) Phân vùng kích thước bằng nhau Phân vùng kích thước không bằng nhau Ví dụ về phân vùng cố định của bộ nhớ 64MByte 29 2.1 Kỹ thuật phân vùng cố định  Có 2 khó khăn với việc dùng phân vùng cố định có kích thước bằng nhau  Thứ 1: Nếu chương trình có kích thước quá lớn so với 1 kích thước của phân vùng, để giải quyết việc này thì:  Người lập trình phải thiết kế chương trình theo cấu trúc overlay  Chỉ 1 phần cần thiết của chương trình mới được nạp vào bộ nhớ lúc nạp chương trình. Khi cần mudun nào đó mà không sẵn có trong bộ nhớ người sử dụng phải nạp nó vào đúng phân vùng của chương trình và sẽ ghi đè lên bất kỳ chương trình hoặc dữ liệu ở trong đó 30 2.1 Kỹ thuật phân vùng cố định  Thứ 2: Khi kích thước của chương trình nhỏ hơn kích thước của 1 phân vùng hoặc lớn hơn kích thước của phân vùng nhưng không phải là bội số của kích thước phân vùng. Điều này gây ra sự phân mảnh nội vi, lãng phí bộ nhớ 31 2.1 Kỹ thuật phân vùng cố định  Để khắc phục nhược điểm này có thể sử dụng phân vùng cố định có kích thước không bằng nhau  Có 2 lựa chọn để đưa tiến trình vào dạng phân vùng này 32 2.1 Kỹ thuật phân vùng cố định  Lựa chọn 1:  Mỗi phân vùng có một hàng đợi tương ứng  Khi 1 tiến trình cần được nạp vào bộ nhớ sẽ đưa vào hàng đợi của phân vùng có kích thước vừa đủ để chứa nó để được đưa vào phân vùng  Nhược điểm: Có thể có phân vùng đang trống nhưng lại có nhiều tiến trình đang chờ để vào phân vùng khác OS Tiến trình mới 33 2.1 Kỹ thuật phân vùng cố định  Lựa chọn 2:  Dùng 1 hàng đời chung cho tất cả các phân vùng  Khi có tiến trình muốn nạp vào bộ nhớ nhưng chưa được nạp sẽ được đưa vào hàng đợi  Khi có phân vùng trống, HĐH sẽ chọn tiến trình có kích thước vừa đủ để đưa vào phân vùng  Phương pháp này gây khó khăn trong việc lựa chọn tiến trình để nạp vào phân vùng OS Tiến trình mới 34 2.2 Kỹ thuật phân vùng động  Vùng nhớ user program không được phân chia trước  Khi có tiến trình nạp vào bộ nhớ HĐH cấp cho nó không gian nhớ đúng kích thước của nó  Khi tiến trình kết thúc vùng nhớ của nó sẽ được thu hồi để HĐH cấp cho tiến trình khác kể cả tiến trình mới có kích thước nhỏ hơn vùng nhớ của tiến trình đã giải phóng đã giải phóng 35 2.2 Kỹ thuật phân vùng động OS- 128k Process1 64k Process2 128k Process3 32k Process4 128k Process5 120kProcess6 65k 1. Tiến trình 1,2,3,4 lần lượt được nạp vào bộ nhớ 2. Tiến trình 2 kết thúc, vùng nhớ được giải phóng 3. Tiến trình 5 được nạp vào vùng nhớ của tiến trình 2 vừa giải phóng 4. Tiến trình 6 yêu cầu được nạp vào bộ nhớ nhưng không thể vì không có vùng nhớ trống phù hợp để nạp trong khi tổng dung lượng nhớ còn trống lớn hơn kích thước mà tiến trình yêu cầu 36 2.2 Kỹ thuật phân vùng động  Trong kỹ thuật phân vùng động, HĐH phải đưa ra các cơ chế thích hợp để quản lý các khối nhớ đã cấp phát hay còn trống trên bộ nhớ.  HĐH sử dụng 2 cơ chế: Bản đồ bít và Danh sách liên kết.  Hai cơ chế HĐH đều chia không gian nhớ thành các đơn vị cấp phát có kích thước bằng nhau, các đơn vị cấp phát liên tiếp nhau tạo thành 1 khối nhớ, HĐH cấp phát các khối nhớ này cho các tiến trình 37 2.2 Kỹ thuật phân vùng động Cơ chế bản đồ Bit: Mỗi đơn vị cấp phát được đại diện bởi một Bit trong bản đồ bit. Đơn vị cấp phát còn trống đại diện bằng bit 0, ngược lại đại diện bằng bit 1. Bản đồ bit 38 2.2 Kỹ thuật phân vùng động  Cơ chế danh sách liên kết:  Mỗi khối trên bộ nhớ được đại diện bởi một phần tử trong danh sách liên kết Mỗi phần tử gồm 4 trường chính:  Trường đầu tiên: cho biết khối nhớ đã cấp phát (kí hiệu P) hay còn trống (kí hiệu H)  Trường thứ 2: cho biết thư tự của đơn vị cấp phát đầu tiên trong khối  Trường thứ 3: cho biết đơn vị tổng số đơn vị cấp phát trong khối  Con trỏ Next 39 2.2 Kỹ thuật phân vùng động 40 2.2 Kỹ thuật phân vùng động  Khi có một tiến trình cần được nạp vào bộ nhớ mà bộ nhớ có nhiều hơn một khối nhớ trống có kích thước lớn hơn kích thước của tiến trình đó, HĐH phải quyết định chọn một khối nhớ phù hợp để nạp tiến trình sao cho việc lựa chọn này dẫn đến việc sử dụng bộ nhớ chính là hiệu quả nhất. Thuật toán mà HĐH sử dụng trong trường hợp này: Best-fit, Worst-fit, First-fit, và Next-fit 41 42 Duøng ñeå quyeát ñònh caáp phaùt khoái boä nhôù troáng naøo cho moät process Muïc tieâu: giaûm chi phí compaction Caùc chieán löôïc placement Best-fit: choïn khoái nhôù troáng nhoû nhaát First-fit: choïn khoái nhôù troáng phuø hôïp ñaàu tieân keå töø ñaàu boä nhôù Next-fit: choïn khoái nhôù troáng phuø hôïp ñaàu tieân keå töø vò trí caáp phaùt cuoái cuøng Worst-fit: choïn khoái nhôù troáng lôùn nhaát Bộ nhớ chính được chia thành các phần bằng nhau và cố định, được đánh số bắt đầu từ 0 và được gọi là các khung trang (page frame). Không gian địa chỉ của các tiến trình cũng được chia thành các phần có kích thước bằng kích thước của một khung trang được gọi là các trang (page). Khi tiến trình nạp vào bộ nhớ thì các trang được nạp vào các khung trang bất kỳ còn trống có thể không liên tiếp nhau. 2.3 Kỹ thuật phân trang Cơ chế MMU trong kỹ thuật phân trang 44 Cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa chỉ trong cơ chế phân trang là bảng trang (pages table). Mỗi phần tử trong bảng trang cho biết các địa chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong bộ nhớ vật lý (số hiệu khung trang trong bộ nhớ vật lý đang chứa trang ). Mỗi tiến trình có bảng trang riêng Chuyển đổi địa chỉ 45 Mỗi địa chỉ phát sinh bởi CPU được chia thành hai phần:  số hiệu trang - Page number (p): sử dụng như chỉ mục đến phần tử tương ứng trong bảng trang.  địa chỉ tương đối trong trang - Page offset (d): kết hợp với địa chỉ bắt đầu của trang để tạo ra địa chỉ vật lý mà trình quản lý bộ nhớ sử dụng. Neáu kích thöôùc cuûa khoâng gian ñòa chæ aûo laø 2m, vaø kích thöôùc cuûa trang laø 2 n (ñôn vò laø byte hay word tuøy theo kieán truùc maùy) thì p d page number page offset m  n bits (ñònh vò töø 0  2m  n  1) n bits (ñònh vò töø 0  2n  1) Baûng phaân trang seõ coù toång coäng 2 m /2 n = 2 m  n muïc (entry) 2.3 Kỹ thuật phân trang CPU p d f d f p page table logical address physical address physical memory f 00…00 f 11…11 f frames 46 VD 47 Tổ chức lưu trữ bảng trang: 48 Đa số các hệ điều hành cấp cho mỗi tiến trình một bảng trang. Nếu hệ điều hành quản lý một không gian địa chỉ có dung lượng quá thì bảng trang đòi hỏi một vùng nhớ qúa lớn => Giải pháp: Phân trang đa cấp. 49 Phaân trang ña caáp Baûo veä boä nhôù  Vieäc baûo veä boä nhôù ñöôïc hieän thöïc baèng caùch gaén vôùi frame caùc bit baûo veä (protection bits) ñöôïc giöõ trong baûng phaân trang. Caùc bit naøy bieåu thò caùc thuoäc tính sau read-only, read-write, execute-only Ngoaøi ra, coøn coù moät valid/invalid bit gaén vôùi moãi muïc trong baûng phaân trang “valid”: cho bieát laø trang cuûa process, do ñoù laø moät trang hôïp leä. “invalid”: cho bieát laø trang khoâng cuûa process, do ñoù laø moät trang baát hôïp leä. Baûo veä baèng valid/ invalid bit  Moãi trang nhôù coù kích thöôùc 2K = 2048  Process coù kích thöôùc 10,468  phaân maûnh noäi ôû frame 9 (chöùa page 5), caùc ñòa chæ aûo > 12287 laø caùc ñòa chæ invalid.  kieåm tra truy xuaát ñeán baûng phaân trang coù naèm trong baûng hay khoâng. 00000 10468 12287 2 v 3 v 4 v 7 v 8 v 9 v 0 i 0 i frame number valid/ invalid bit 0 1 2 3 4 5 6 7 0 1 2 page 0 3 page 1 4 page 2 5 6 7 page 3 8 page 4 9 page 5 ... page n 16383 14 bit Chia sẻ bộ nhớ trong cơ chế phân trang 52 Cho phép chia sẻ các trang giữa các tiến trình ánh xạ nhiều địa chỉ logic vào một địa chỉ vật lý duy nhất. HĐH kiểm tra các thao tác truy xuất trên khung trang tương ứng có hợp lệ với thuộc tính bảo vệ của nó không. 53  Loại bỏ được hiện tượng phân mảnh ngoại vi nhưng vẫn còn hiện tượng nội vi Nếu kích thước của tiến trình không phải là bội số của kích thước 1 khung trang. Có sự phân biệt rạch ròi giữa góc nhìn của người dùng và bộ phận quản lý bộ nhớ: Góc nhìn của người sử dụng: Tiến trình của người dùng nhìn bộ nhớ như là một không gian liên tục, đồng nhất và chỉ chứa duy nhất bản thân tiến trình này. Góc nhìn của bộ nhớ vật lý: Tiến trình của người sử dụng được lưu trữ phân tán khắp bộ nhớ, trong bộ nhớ đồng thời cũng chứa những tiến trình khác. Phần cứng đảm nhiệm việc chuyển đổi địa chỉ logic thành địa chỉ vật lý. Sự chuyển đổi này là trong suốt đối với người sử dụng. 2.4 Kỹ thuật phân đoạn  Bộ nhớ chính được chia thành các phần cố định có kích thước không bằng nhau, được đánh số bắt đầu từ 0 được gọi là các phân đoạn  Không gian địa chỉ là một tập các phân đoạn (segments).  Các phân đoạn là những phần bộ nhớ kích thước khác nhau và có liên hệ logic với nhau. Mỗi phân đoạn có một tên gọi (số hiệu phân đoạn) và một độ dài.  Người dùng sẽ thiết lập mỗi địa chỉ với hai giá trị: . 54 55 Cơ chế MMU trong kỹ thuật phân đoạn 56  Cần phải xây dựng một ánh xạ để chuyển đổi các địa chỉ 2 chiều được người dùng định nghĩa thành địa chỉ vật lý một chiều. Sự chuyển đổi này được thực hiện qua một bảng phân đoạn.  Mỗi thành phần trong bảng phân đoạn bao gồm một thanh ghi nền và một thanh ghi giới hạn:  Thanh ghi nền lưu trữ địa chỉ vật lý nơi bắt đầu phân đoạn trong bộ nhớ  Thanh ghi giới hạn đặc tả chiều dài của phân đoạn. 2.4 Kỹ thuật phân đoạn Chuyển đổi địa chỉ:  Mỗi địa chỉ ảo là một bộ  Số hiệu phân đoạn s : được sử dụng như chỉ mục đến bảng phân đoạn (địa chỉ cơ sở của phân đoạn mà đoạn chương trình tương ứng được nạp)  địa chỉ tương đối d : có giá trị trong khoảng từ 0 đến giới hạn chiều dài của phân đoạn. Nếu địa chỉ tương đối hợp lệ, nó sẽ được cộng với giá trị chứa trong thanh ghi nền để phát sinh địa chỉ vật lý tương ứng (cho biết độ dài của phân đoạn) 57 58 9.59 VD Chia sẻ phân đoạn 60  Một ưu điểm khác của kỹ thuật phân đoạn là khả năng chia sẻ ở mức độ phân đoạn. Nhờ khả năng này, các tiến trình có thể chia sẻ với nhau từng phần chương trình (ví dụ các thủ tục, hàm), không nhất thiết phải chia sẻ toàn bộ chương trình như trường hợp phân trang  Mỗi tiến trình có một bảng phân đoạn riêng, một phân đoạn được chia sẻ khi các phần tử trong bảng phân đoạn của hai tiến trình khác nhau cùng chỉ đến một vị trí vật lý duy nhất Chia sẻ code trong hệ phân đoạn 61 2.4 Kỹ thuật phân đoạn  Khi tiến trình được nạp vào bộ nhớ thì tất cả các đoạn của nó được nạp vào các phân đoạn còn trống trên bộ nhớ, các phân đoạn này có thể không liên tục nhau  Để theo dõi các đoạn của các tiến trình khác nhau trên bộ nhớ HĐH sử dụng các bảng phân đoạn (SCT), thông thường mỗi tiến trình có 1 bảng phân đoạn riêng 62 63 Trong hệ thống sử dụng kỹ thuật phân đoạn , hiện tượng phân mảnh ngoại vi lại xuất hiện khi các khối nhớ tự do đều quá nhỏ, không đủ để chứa