Báo cáo đề tài quản lý bộ nhớ

26 503 0
Báo cáo đề tài quản lý bộ nhớ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo đề tài quản lý bộ nhớ

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN -oOo - BÁO CÁO Đề tài: QUẢN LÍ BỘ NHỚ Giáo viên hướng dẫn: Th.S Lương Ngọc Khánh A GIỚI THIỆU Công việc quản lí nhớ (memory management) đóng vai trò quan trọng hệ điều hành quan tâm đặc biệt nhà thiết kế Mục đích quản lí nhớ phân bố phần nhớ cho chương trình theo yêu cầu cho hợp lí, đồng thời giải phóng nhớ để tái sử dụng Hệ thống quản lí nhớ chia thành hai dạng: - Yêu cầu tất tiến trình nằm nhớ - Di chuyển tiến trình qua lại nhớ đĩa cứng suốt trình thực thi Dạng đầu sử dụng hệ điều hành đơn giản Dạng sau yêu cầu giải thuật hoán đổi (swapping) phân trang (paging) đề cập đến báo cáo Tuy nhớ ảo khía cạnh quan trọng quản lí nhớ, báo cáo khái quát mặt chung công việc quản lí không sâu vào thuật toán với nhớ ảo Báo cáo trình bày chiến lược quản lí nhớ đồng thời ưu nhược điểm chúng Các giải thuật báo cáo thường có yêu cầu hỗ trợ phần cứng, nhiên hệ thống tích hợp phần cứng hệ điều hành Do thực tế gặp trường hợp hệ thống không hỗ trợ cho hệ điều hành thực giải thuật Memory Management B NỘI DUNG BÁO CÁO I Khái niệm sở - Không gian vật lý không gian luận lý: Cơ sở:  Chương trình phải mang vào nhớ đặt tiến trình để xử lý  Input Queue – Một tập hợp tiến trình đĩa mà chờ để mang vào nhớ để thực thi  User programs trải qua nhiều bước trước xử lý  Quản lý nhớ công việc hệ điều hành với hỗ trợ phần cứng nhằm phân phối, xếp process nhớ cho hiệu  Mục tiêu cần đạt nạp nhiều process vào nhớ tốt (gia tăng mức độ đa chương)  Trong hầu hết hệ thống, kernel chiếm phần cố định nhớ; phần lại phân phối cho process  Các yêu cầu việc quản lý nhớ  Cấp phát nhớ cho process  Tái định vị (relocation): swapping,…  Bảo vệ: phải kiểm tra truy xuất nhớ có hợp lệ không  Chia sẻ: cho phép process chia sẻ vùng nhớ chung  Kết gán địa nhớ luận lý user vào địa thực Không gian vật lý không gian luận lý:  Địa vật lý (physical address - địa thực) vị trí thực nhớ  Địa luận lý (logical address) vị trí nhớ diễn tả chương trình (còn gọi địa ảo - virtual address) – Các trình biên dịch (compiler) tạo mã lệnh chương trình mà tham chiếu nhớ địa luận lý – Địa tương đối (relative address) (địa khả tái định vị, relocatable address) kiểu địa luận lý địa biểu diễn tương đối so với vị trí xác định chương trình  Ví dụ: 12 byte so với vị trí bắt đầu chương trình,… – Địa tuyệt đối (absolute address): địa tương đương với địa thực Một địa tạo CPU thường gọi địa luận lý (logical address), ngược lại địa xem đơn vị nhớ-nghĩa là, địa nạp vào ghi địa nhớ-thường gọi địa vật lý (physical address) Các phương pháp liên kết địa thời điểm biên dịch thời điểm nạp tạo địa luận lý địa vật lý xác định Tuy nhiên, chế liên kết địa thời điểm thực thi dẫn đến khác địa luận lý địa vật lý Trong trường hợp này, thường gọi địa luận lý địa ảo (virtual address) Tập hợp tất địa luận lý tạo chương trình không gian địa luận lý ; tập hợp tất địa vật lý tương ứng địa luận lý không gian địa vật lý Do đó, chế liên kết địa thời điểm thực thi, không gian địa luận lý không gian địa vật lý khác Việc ánh xạ thời điểm thực thi từ địa ảo tới địa vật lý thực thiết bị phần cứng gọi quản lý nhớ MMU (memory-management unit) Chúng ta chọn phương pháp khác để thực việc ánh xạ Memory Management Như hiển thị hình bên, phương pháp yêu cầu hỗ trợ phần cứng Thanh ghi gọi ghi tái định vị Giá trị ghi tái định vị cộng vào địa tạo trình người dùng thời điểm gởi tới nhớ Thí dụ, giá trị 14000, việc cố gắng người dùng để xác định vị trí tự động tái định vị tới vị trí 14000; truy xuất tới địa Hình 0-2 346 ánh xạ tới vị trí 14346 Định vị tự động dùng ghi tái định vị II Nạp chương trình vào nhớ  Bộ linker: kết hợp object module thành file nhị phân khả thực thi gọi load module  Bộ loader: nạp load module vào nhớ Cơ chế thực linking III Liên kết địa Memory Management Thông thường, chương trình nằm đĩa tập tin thực thi dạng nhị phân Nó mang vào nhớ đặt trình để thực thi Phụ thuộc vào việc quản lý nhớ dùng, trình di chuyển đĩa nhớ thực thi Tập hợp trình đĩa chờ mang vào nhớ để thực thi hình thành hàng đợi nhập (input queue) Thủ tục thông thường chọn trình hàng đợi nhập nạp trình vào nhớ Khi trình thực thi, truy xuất thị liệu từ nhớ Cuối cùng, trình kết thúc không gian nhớ xác định trống Hầu hết hệ thống cho phép trình người dùng nằm phần nhớ vật lý Do đó, không gian địa máy tính bắt đầu 00000, địa trình người dùng không cần 00000 Sắp xếp ảnh hưởng đến địa mà chương trình người dùng dùng Trong hầu hết trường hợp, chương trình người dùng qua số bước- vài chúng tuỳ chọn-trước thực thi Các địa diện cách khác bước Các địa chương trình nguồn thường danh biểu Một trình biên dịch liên kết địa danh biểu tới địa tái định vị (chẳng hạn 14 bytes từ vị trí bắt đầu module này) Bộ soạn thảo liên kết hay nạp liên kết địa tái định vị tới địa tuyệt đối (chẳng hạn 74014) Mỗi liên kết ánh xạ từ không gian địa tới không gian địa khác Hình 0-1 Xử lý nhiều bước chương trình người dùng Về truyền thống, liên kết thị liệu tới địa thực bước theo cách sau đây: • Thời gian biên dịch: thời điểm biên dịch biết trình nằm đâu nhớ mã tuyệt đối phát sinh Thí dụ, biết trước trình người dùng nằm vị trí R mã trình biên dịch phát sinh bắt đầu vị trí mở rộng từ Nếu thời điểm sau đó, vị trí bắt đầu thay đổi cần biên dịch lại mã Các chương trình định dạng COM MS-DOS mã tuyệt đối giới hạn thời điểm biên dịch • Thời điểm nạp: thời điểm biên dịch chưa biết nơi trình nằm đâu nhớ trình biên dịch phải phát sinh mã tái định vị Trong trường hợp này, liên kết cuối trì hoãn thời điểm nạp Nếu địa bắt đầu thay đổi, cần nạp lại mã người dùng để hợp giá trị thay đổi Memory Management • Thời gian thực thi: trình di chuyển thời gian thực thi từ phân đoạn nhớ tới phân đoạn nhớ khác việc liên kết phải bị trì hoãn thời gian chạy Phần cứng đặc biệt phải sẳn dùng cho chế để thực công việc Hầu hết hệ điều hành dùng phương pháp Phần chủ yếu chương dành hết để hiển thị liên kết khác cài đặt hữu hiệu hệ thống máy tính thảo luận hỗ trợ phần cứng tương ứng IV Liên kết động thư viện chia sẻ Một số hệ điều hành hỗ trợ liên kết tĩnh mà thư viện ngôn ngữ hệ thống đối xử module đối tượng khác kết hợp nạp thành hình ảnh chương trình nhị phân Khái niệm liên kết động tương tự khái niệm nạp động Liên kết bị trì hoãn việc nạp bị trì hoãn thời điểm thực thi Đặc điểm thường dùng với thư viện hệ thống thư viện chương trình ngôn ngữ Không có tiện ích này, tất chương trình hệ thống cần có thư viện ngôn ngữ chúng (hay thư viện tham chiếu chương trình) chứa hình ảnh thực thi Yêu cầu làm lãng phí không gian đĩa nhớ Với liên kết động, stub đoạn mã hiển thị cách định vị chương trình thư viện cư trú nhớ hay cách nạp thư viện chương trình chưa diện Khi stub thực thi, kiểm tra để thấy chương trình yêu cầu nhớ hay chưa Nếu chưa, chương trình nạp chương trình vào nhớ Dù cách nào, stub thay với địa chương trình thực thi chương trình Do đó, thời điểm phân đoạn mã đạt được, chương trình thư viện thực thi trực tiếp mà không gây chi phí cho việc liên kết động Dưới chế này, tất trình sử dụng thư viện ngôn ngữ thực thi mã thư viện Memory Management V Chuyển đổi địa  Chuyển đổi địa chỉ: trình ánh xạ địa từ không gian địa sang không gian địa khác  Biểu diễn địa nhớ – Trong source code: symbolic (các biến, hằng, pointer,…) – Thời điểm biên dịch: thường địa khả tái định vị  Ví dụ: a vị trí 14 bytes so với vị trí bắt đầu module – Thời điểm linking/loading: địa thực Ví dụ: liệu nằm địa nhớ thực 2030  Địa lệnh (instruction) liệu (data) chuyển đổi thành địa thực xảy ba thời điểm khác – Compile time: biết trước địa nhớ chương trình kết gán địa tuyệt đối lúc biên dịch  Ví dụ: chương trình COM MS-DOS  Khuyết điểm: phải biên dịch lại thay đổi địa nạp chương trình – Load time: Vào thời điểm loading, loader phải chuyển đổi địa khả tái định vị thành địa thực dựa địa (base address)  Địa thực tính toán vào thời điểm nạp chương trình ⇒ phải tiến hành reload địa thay đổi Sinh địa tuyệt đối vào thời điểm dịch Memory Management Sinh địa thực vào thời điểm nạp  Execution time: trình thực thi, process chuyển từ segment sang segment khác nhớ chuyển đổi địa trì hoãn đến thời điểm thực thi – Cần hỗ trợ phần cứng cho việc ánh xạ  Ví dụ: trường hợp địa luận lý thể dùng ghi base limit,… – Sử dụng đa số OS đa dụng swapping, paging, segmentation di trình địa relocatable có có chế VI Dynamic linking  Quá trình link đến module (external module) thực sau tạo xong load module (i.e file thực thi, executable) – Ví dụ Windows: module file DLL Unix, module file so (shared library)  Load module chứa stub tham chiếu (refer) đến routine external module – Khi stub thực thi lần đầu (do process gọi routine lần đầu), stub nạp routine vào nhớ, tự thay địa routine routine thực thi – Các lần gọi routine sau xảy bình thường  Stub cần hỗ trợ OS (như kiểm tra xem routine nạp vào nhớ chưa) Memory Management Ưu điểm Dynamic linking  Thông thường, external module thư viện cung cấp tiện ích OS Các chương trình thực thi dùng phiên khác external module mà không cần sửa đổi, biên dịch lại  Chia sẻ mã (code sharing): external module cần nạp vào nhớ lần Các process cần dùng external module chia sẻ đoạn mã external module ⇒ tiết kiệm không gian nhớ đĩa  Phương pháp dynamic linking cần hỗ trợ OS việc kiểm tra xem thủ tục chia sẻ process phần mã riêng process (bởi có OS có quyền thực việc kiểm tra này) VII Dynamic loading Cơ chế: cần gọi đến thủ tục nạp vào nhớ ⇒ tăng độ hiệu dụng nhớ (memory utilization) thủ tục không gọi đến không chiếm chỗ nhớ – Rất hiệu trường hợp tồn khối lượng lớn mã chương trình có tần suất sử dụng thấp, không sử dụng thường xuyên (ví dụ thủ tục xử lý lỗi) – Hỗ trợ từ hệ điều hành – Thông thường, user chịu trách nhiệm thiết kế thực chương trình có dynamic loading – Hệ điều hành chủ yếu cung cấp số thủ tục thư viện hỗ trợ, tạo điều kiện dễ dàng cho lập trình viên Trong thảo luận gần đây, toàn chương trình liệu trình phải nhớ vật lý để trình thực thi Kích thước trình bị giới hạn kích thước nhớ vật lý Để đạt việc sử dụng không gian nhớ tốt hơn, sử dụng nạp động (dynamic loading) Với nạp động, thủ tục không nạp gọi Tất thủ tục giữ đĩa định dạng nạp tái định vị Chương trình nạp vào nhớ thực thi Khi thủ tục cần gọi thủ tục khác, thủ tục gọi trước hết kiểm tra để thấy thủ tục khác nạp hay không Nếu không, nạp liên kết tái định vị gọi để nạp thủ tục mong muốn vào nhớ cập nhật bảng địa chương trình để phản ánh thay đổi Sau đó, điều khiển truyền tới thủ tục nạp Thuận lợi nạp động thủ tục không dùng không nạp Phương pháp đặc biệt có ích lượng lớn mã yêu cầu quản lý trường hợp xảy không thường xuyên, chẳng hạn thủ tục lỗi Trong trường hợp này, kích thước toàn chương trình lớn, phần dùng (và nạp) nhỏ nhiều Nạp động không yêu cầu hỗ trợ đặc biệt từ hệ điều hành Nhiệm vụ người dùng thiết kế chương trình đạt thuận lợi Tuy nhiên, hệ điều hành giúp người lập trình cách cung cấp thủ tục thư viện để cài đặt nạp tự động VIII Cơ chế phủ lắp (overlay)  Tại thời điểm, giữ lại nhớ lệnh liệu cần thiết, giải phóng lệnh/dữ liệu chưa không cần dùng đến  Cơ chế hữu dụng kích thước process lớn không gian nhớ cấp cho process  Cơ chế điều khiển người sử dụng (thông qua hỗ trợ thư viện lập trình) không cần hỗ trợ hệ điều hành Để cho phép trình lớn lượng nhớ cấp phát cho nó, sử dụng chế phủ lắp (overlays) Ý tưởng phủ lắp giữ nhớ thị liệu yêu cầu thời điểm cho Khi thị yêu cầu, chúng nạp vào không gian chiếm trước thị mà chúng không cần Memory Management Xét trình dịch hợp ngữ hai lần (twopass assembler) Trong suốt lần thứ nhất, xây dựng bảng danh biểu; sau đó, lần thứ 2, tạo mã máy Có thể phân chia trình dịch hợp ngữ thành mã lần 1, mã lần 2, bảng danh biểu, thủ tục hỗ trợ chung dùng lần lần Giả sử kích thước thành phần sau: • Lần 1: 70 KB • Lần 2: 80 KB • Bảng danh biểu: 20 KB • Các thủ tục chung: 30 KB Để nạp thứ lần, cần 200KB nhớ Nếu có 150KB sẳn có, chạy trình Tuy nhiên, ý lần lần không cần nhớ lúc Do đó, định nghĩa hai phủ lắp Phủ lắp A bảng danh biểu, thủ tục chung, lần 1, phủ lắp B bảng biểu tượng, thủ tục chung lần Chúng ta bổ sung trình điều khiển phủ lắp (10 KB) bắt đầu với phủ lắp A nhớ Khi kết thúc lần 1, nhảy tới trình điều khiển phủ lắp, trình điều khiển đọc phủ lắp B vào nhớ, viết chồng lên phủ lắp B sau chuyển điều khiển tới lần Phủ lắp A cần 120KB, ngược lại phủ lắp B cần 130KB Bây chạy trình hợp ngữ 150 KB nhớ Nó nạp nhanh liệu cần chuyển trước việc thực thi bắt đầu Tuy nhiên, chạy chậm nhập/xuất phụ đọc mã mã cho phủ lắp A qua mã cho phủ lắp B Hình 0-3- Cách phủ lắp cho hợp ngữ dịch hai lần Mã cho phủ lắp A mã cho phủ lắp B giữ đĩa hình ảnh nhớ tuyệt đối, đọc trình điều khiển phủ lắp cần Tái định vị đặc biệt giải thuật liên kết yêu cầu xây dựng phủ lắp IX Cơ chế hoán vị (swapping) Một process tạm thời bị swap khỏi nhớ lưu hệ thống lưu trữ phụ Sau đó, process nạp lại vào nhớ để tiếp tục trình thực thi Swapping policy: hai ví dụ - Round-robin: swap out P1 (vừa tiêu thụ hết quantum nó), swap in P2, thực thi P3 - Roll out, roll in: dùng chế định thời theo độ ưu tiên Process có độ ưu tiên thấp bị swap out nhường chỗ cho process có độ ưu tiên cao đến nạp vào nhớ để thực thi  Hiện nay, hệ thống sử dụng chế swapping Memory Management Hình 0-4- Hoán vị hai trình dùng đĩa backing store Một trình cần nhớ để thực thi Tuy nhiên, trình hoán vị (swapped) tạm thời khỏi nhớ tới vùng lưu trữ phụ backing store, sau mang trở lại nhớ để việc thực thi tiếp tục Thí dụ, giả sử môi trường đa chương với giải thuật lập thời biểu CPU round-robin Khi định mức thời gian hết, quản lý nhớ bắt đầu swap out vùng lưu trữ phụ trình vừa kết thúc swap in trình khác tới không gian nhớ trống Do đó, định thời biểu CPU cấp phần thời gian tới trình khác nhớ Lý tưởng, quản lý hoán vị trình đủ nhanh để vài trình nhớ, sẳn sàng thực thi, định thời CPU muốn định thời lại CPU Định mức phải đủ lớn để phù hợp lượng tính toán thực hoán vị Một biến thể sách hoán vị dùng cho giải thuật định thời sở ưu tiên Nếu trình có độ ưu tiên cao đến muốn phụ vụ, quản lý nhớ hoán vị trình có độ ưu tiên thấp nạp thực thi trình có độ ưu tiên cao Khi trình có độ ưu tiên cao kết thúc, trình có độ ưu tiên thấp hoán vị vào trở lại tiếp tục Biến thể hoán vị thường gọi roll out, roll in Thông thường, trình hoán vị hoán vị trở lại vào không gian nhớ mà chiếm trước Sự giới hạn sai khiến phương pháp liên kết địa Nếu liên kết địa thực thời điểm hợp dịch hay nạp trình di chuyển vào không gian nhớ khác địa vật lý tính thời gian thực thi Hoán vị yêu cầu vùng lưu trữ phụ (backing store) Vùng lưu trữ phụ thường đĩa tốc độ cao Nó phải đủ lớn để chứa tất hình ảnh nhớ cho tất người dùng phải cung cấp truy xuất trực tiếp tới hình ảnh nhớ Hệ thống trì hàng đợi sẵn sàng chứa trình mà hình ảnh nhớ vùng lưu trữ phụ hay nhớ sẵn sàng để thực thi Bất định thời CPU định thực thi trình, gọi phân phát (dispacher) Bộ phân phát kiểm tra để thấy có trình hàng đợi nhớ không Nếu không, vùng nhớ trống, phân phát swap out trình hành nhớ swap in trình mong muốn Sau đó, nạp lại ghi chuyển điều khiển tới trình chọn Trong hệ hoán vị, thời gian chuyển đổi tác vụ cần quan tâm Mỗi trình cần phân chia khoảng thời gian sử dụng CPU đủ lớn để không thấy rõ chậm trễ thao tác hoán vị gây Nếu không, hệ thống dùng phần lớn thời gian để hoán vị trình vào nhớ Như vậy, CPU không sử dụng hiệu Hoán vị bị ràng buộc yếu tố khác Nếu muốn hoán vị trình, phải đảm bảo hoàn toàn rỗi Quan tâm đặc biệt việc chờ nhập/xuất Một trình chờ thao tác nhập/xuất hoán vị trình tới nơi trống nhớ Tuy nhiên, nhập/xuất truy xuất không đồng bộ nhớ người dùng cho 10 Memory Management Một giải pháp khác cho vấn đề phân mảnh cho phép không gian địa trình không liên tục, cho phép trình cấp phát nhớ vật lý đâu sau sẳn dùng Hai kỹ thuật bù trừ để đạt giải pháp phân trang phân đoạn Có loại phân mảnh:  Phân mảnh ngoại (external fragmentation) – Kích thước không gian nhớ trống đủ để thỏa mãn yêu cầu cấp phát, nhiên không gian nhớ không liên tục ⇒ dùng chế kết khối (compaction) để gom lại thành vùng nhớ liên tục  Phân mảnh nội (internal fragmentation) – Kích thước vùng nhớ cấp phát lớn vùng nhớ yêu cầu  Ví dụ: cấp khoảng trống 18,464 bytes cho process yêu cầu 18,462 bytes – Hiện tượng phân mảnh nội thường xảy nhớ thực chia thành khối kích thước cố định (fixed-sized block) process cấp phát theo đơn vị khối Ví dụ: chế phân trang (paging) a) Phân mảnh nội b) Fixed partitioning  Khi khởi động hệ thống, nhớ chia thành nhiều phần rời gọi partition có kích thước khác  Process có kích thước nhỏ kích thước partition nạp vào partition  Nếu chương trình có kích thước lớn partition phải dùng chế overlay  Nhận xét: Không hiệu bị phân mảnh nội: chương trình dù lớn hay nhỏ cấp phát trọn partition c) Chiến lược placement  Partition có kích thước – Nếu partition trống ⇒ process nạp vào partition – Nếu không partition trống, có process bị blocked ⇒ swap process nhớ phụ nhường chỗ cho process  Partition có kích thước không nhau: giải pháp – Gán process vào partition nhỏ phù hợp với – Có hàng đợi cho partition – Giảm thiểu phân mảnh nội – Vấn đề: có số hàng đợi trống không (vì process với kích thước tương ứng) hàng đợi dày đặc  Partition có kích thước không nhau: giải pháp – Chỉ có hàng đợi chung cho partition – Khi cần nạp process vào nhớ ⇒ chọn partition nhỏ trống 12 Memory Management d) Dynamic partitioning  Số lượng partition không cố định partition có kích thước khác  Mỗi process cấp phát xác dung lượng nhớ cần thiết  Gây tượng phân mảnh ngoại e) Chiến lược placement  Dùng để định cấp phát khối nhớ trống cho process  Mục tiêu: giảm chi phí compaction  Các chiến lược placement – Best-fit: chọn khối nhớ trống nhỏ – First-fit: chọn khối nhớ trống phù hợp kể từ đầu nhớ – Next-fit: chọn khối nhớ trống phù hợp kể từ vị trí cấp phát cuối – Worst-fit: chọn khối nhớ trống lớn 13 Memory Management XII Cấp phát không liên tục XII.1 Cơ chế phân trang (Paging) Định nghĩa: Không gian địa tập hợp tất địa ảo phát sinh chương trình Không gian vật lý tập hợp tất địa vật lý tương ứng với địa ảo Phân trang chế quản lý nhớ cho phép không gian địa vật lý trình không kề nhau, cho phép truy xuất liệu từ vùng lưu trữ phụ Tiến trình phân phối nhớ vật lý lúc nhớ sẵn có Bộ nhớ vật lý chia thành khối (block) có kích thước cố định nhau, gọi khung trang (page frame) Không gian địa chia thành khối có kích thước gọi trang (pages) Khi cần nạp tiến trình để xử lý, trang tiến trình nạp vào khung trang trống Một tiến trình kích thước N trang yêu cầu N khung trang tự MMU (memory-management unit) chế phần cứng sử dụng để thực việc biên dịch (translate) địa ảo thành địa vật lý vào thời điểm xử lý Người ta thiết lập bảng trang, phần tử cho biết địa bắt đầu vị trí lưu trữ trang tương ứng nhớ vật lý (số hiệu khung trang nhớ vật lý chứa trang ) Chuyển đổi địa Mỗi địa phát sinh CPU chia thành hai phần: + Số hiệu trang - Page number (p): chứa địa sở trang nhớ vật lý, sử dụng mục đến phần tử tương ứng bảng trang + Địa tương đối trang - Offset (d): kết hợp với địa sở để tạo địa vật lý mà trình quản lý nhớ sử dụng 14 Memory Management Ví dụ: Kích thước trang phần cứng qui định Để dễ phân tích địa luận lí thành số hiệu trang địa tương đối, kích thước trang thông thường lũy thừa 2, từ 512 bytes đến 16MB trang (phụ thuộc vào kiến trúc máy tính) Nếu kích thước không gian địa 2m, kích thước trang 2n đơn vị địa (byte hay word) m-n bits cao địa luận lý biểu diễn số hiệu trang, n bits thấp cho biết địa tương đối trang Cài đặt bảng trang Cách đơn giản để cài đặt bảng trang sử dụng ghi có tính logic tốc độ cao để thực việc dịch địa trang cách hiệu Tuy nhiên việc sử dụng ghi phù hợp với bảng trang có kích thước nhỏ (có 256 mục từ), bảng trang có kích thước lớn, phải lưu trữ nhớ - Thanh ghi sở bảng trang (page-table base register - PTBR): lưu địa bắt đầu lưu trữ bảng trang - Thanh ghi độ dài bảng trang (page-table length register - PTLR): lưu kích thước bảng trang Theo cách tổ chức này, truy xuất đến liệu hay thị đòi hỏi hai lần truy xuất nhớ: cho truy xuất đến bảng trang cho thân liệu, dẫn đến giảm tốc độ xử lí tiến trình Có thể né tránh vấn đề cách sử dụng vùng nhớ cache có tốc độ 15 Memory Management truy xuất cao cho phép tìm kiếm song song – gọi nhớ kết hợp (associative memory) – hay vùng đệm hỗ trợ chuyển đổi (translation look-aside buffers - TLB) Mỗi ghi TLB gồm từ khóa (số hiệu trang) giá trị (địa bắt đầu frame) Khi đưa đến nhớ kết hợp đối tượng cần tìm, đối tượng so sánh lúc với từ khóa nhớ kết hợp để tìm phần tử tương ứng Nhờ đặc tính mà việc tìm kiếm nhớ kết hợp thực nhanh, chi phí phần cứng lại cao Trong kỹ thuật phân trang, TLB sử dụng để lưu trữ trang nhớ truy cập gần Khi CPU phát sinh địa chỉ, số hiệu trang địa so sánh với phần tử TLB, có trang tương ứng TLB, xác định số hiệu khung trang tương ứng, không cần thực thao tác tìm kiếm bảng trang Thời gian truy cập hiệu Thời gian tìm kiếm ghi kết hợp = ε (đơn vị thời gian) - Thời gian truy cập nhớ = n (đơn vị thời gian) - Hit ratio = α: Số phần trăm (%) địa trang tìm thấy ghi kết hợp/TLB - Thời gian truy cập hiệu (EAT): EAT = (n + ε) α + (2n + ε)(1 – α) = (2 - α)n + ε (đơn vị thời gian) Cấu trúc bảng trang: 5.1 Bảng trang phân cấp: Bảng trang đề cập sử dụng hệ thống có dung lượng nhớ nhỏ Ngày nay, nhớ thường có dung lượng lớn dẫn đến bảng trang thường dài gồm nhiều mục Ví dụ không gian địa lớn 32, kích thước trang nhớ 4K (2 12) => bảng phân trang có 232/212=220=1M mục Như vậy, việc dò tìm số trang bảng phân trang tốn thời gian lớn, ảnh hưởng trực tiếp đến việc xử lý máy tính Để xử lí vấn đề này, người ta đặt giải pháp chia bảng trang thành thành phần nhỏ hơn, từ tạo thành bảng phân trang hai cấp Xem lại ví dụ máy 32 bit có không gian nhớ 32 kích thước trang 4K, địa luận lí chia thành số trang chứa 20 bit độ dời trang chứa 12 bit (d) Sau áp 16 Memory Management dụng giải thuật phân trang hai cấp, số trang lại chia thành số trang 10 bit (P1) độ dời trang 10 bit (P2) Dịch địa phân trang hai cấp: Cơ chế dịch địa chỉ: p1 sử dụng để dò đến vị trí bảng phân trang cấp (là mục bảng phân trang cấp 1), p2 dùng để dò đến vị trí số trang bảng phân trang cấp Lúc này, địa tương đối (offset) d dùng để dò đến địa vật lí cần sử dụng Tùy theo yêu cầu nhớ, người ta phân trang thành nhiều cấp độ hơn: kiến trúc SPARC hỗ trợ chế phân trang cấp kiến trúc Motorola 68030 hỗ trợ phân trang cấp, chí kiến trúc UltraSPARC yêu cầu phân trang đến cấp 5.2 Bảng trang băm: Để quản lí không gian địa lớn 32 bit, người ta dùng bảng trang băm (hashed page table), giá trị băm số trang ảo Mỗi mục từ bảng trang chứa danh sách liên kết phần tử Danh sách băm vị trí (để quản lý đụng độ) Mỗi phần tử chứa ba trường: - số trang ảo (a), - giá trị frame ánh xạ (b), - trỏ tới phần tử danh sách liên kết 17 Memory Management Cơ chế dịch địa chỉ: số trang ảo địa ảo băm tới bảng băm Số trang ảo so sánh tới trường (a) phần tử danh sách liên kết Nếu có phần tử trùng khớp, địa frame tương ứng (trường (b)) dùng để hình thành địa vật lí Nếu phần tử trùng khớp, mục từ danh sách liên kết tìm kiếm số trang ảo trùng khớp 5.3 Bảng trang nghịch đảo: Một khó khăn phương pháp bảng trang bảng trang chứa hàng triệu mục từ Các bảng tiêu tốn lượng lớn nhớ vật lý Do đó, người ta sử dụng thêm giải thuật bảng trang nghịch đảo (inverted page table) Bảng trang đảo sử dụng chung cho tất process Bảng có mục từ cho frame nhớ Mỗi mục từ chứa địa ảo trang lưu vị trí nhớ thật thông tin tiến trình sử dụng trang Do đó, có bảng trang hệ thống có mục từ cho trang nhớ vật lý Ví dụ: cài đặt bảng trang đảo dùng IBM RT Mỗi địa ảo hệ thống chứa ba: Mỗi mục từ bảng trang đảo cặp , processid đảm bảo vai trò định danh không gian địa Khi có tham chiếu nhớ, phần địa ảo, gồm , xuất hệ thống nhớ Sau đó, phần địa dò tìm bảng trang đảo Nếu tìm thấy mục từ i địa vật lý tạo Nếu không tìm thấy hệ thống thử thực truy xuất không hợp lệ Phương pháp giúp giảm dung lượng nhớ để lưu bảng trang, lại tăng thời gian tìm bảng cần tham chiếu đến trang Do đó, người ta sử dụng bảng băm 18 Memory Management để hạn chế số lần tìm kiếm phần tử bảng trang Để cải tiến tốc độ thực hiện, nhà thiết kế cho phép hệ thống tìm TLB trước tra cứu vào bảng băm Bảo vệ: Bảo vệ nhớ môi trường phân trang thực bit bảo vệ gán liền với khung trang Thông thường, bit giữ bảng trang Một bit định nghĩa trang để đọc-viết (read-write) hay đọc (read-only) Mỗi tham chiếu tới nhớ tìm khắp bảng trang để xác định số khung tương ứng Tại thời điểm địa vật lý tính, bit bảo vệ kiểm tra để thẩm định thao tác write thực tới trang read-only Cố gắng write tới trang read-only gây trap phần cứng tới hệ điều hành (hay xung đột nhớ bảo vệ) Ngoài ra, tạo phần cứng để cung cấp bảo vệ đọc, đọc viết, thực thi Bằng cách cung cấp bit bảo vệ riêng cho loại truy xuất, cho phép kết hợp truy xuất này; cố gắng không hợp lệ trap tới hệ điều hành Một bit thường gán tới mục từ bảng trang: bit hợp lệ-không hợp lệ (valid-invalid) Khi bit đặt “hợp lệ” trang gán không gian địa luận lý nhớ trang hợp lệ Nếu bit đặt “không hợp lệ”, trang không không gian địa luận lý trình Các địa không hợp lệ trap cách sử dụng bit hợp lệ-không hợp lệ Hệ điều hành thiết lập bit cho trang phép hay không cho phép truy xuất tới trang Chia sẻ trang nhớ: Xét ví dụ hình vẽ, ba trình P 1, P2, P3 sử dụng soạn thảo giống Giả sử soạn thảo kích thước 150 KB, phần data kích thước 50 KB, để cung cấp tài nguyên cho 50 người dùng ta cần đến 10000 KB nhớ Tuy nhiên, mã mã tái sử dụng (reentrant code), liệu chia sẻ 19 Memory Management Mã tái sử dụng (hay mã-pure code) mã không thay đổi Nếu mã tái sử dụng không thay đổi trình thực thi Do đó, hai hay nhiều trình thực thi mã thời điểm Mỗi trình có ghi lưu trữ liệu để quản lý liệu cho việc thực thi trình Sau dùng mã tái sử dụng để cung cấp tài nguyên cho 50 người dùng, người ta cần 2500 KB lưu trữ liệu 150 KB chứa soạn thảo Nhận xét: • Kỹ thuật phân trang loại bỏ tượng phân mảnh ngoại vi: khung trang cấp phát cho tiến trình có yêu cầu Tuy nhiên tượng phân mảnh nội vi xảy kích thước tiến trình không bội số kích thước trang, đó, trang cuối không sử dụng hết • Một khía cạnh tích cực quan trọng khác kỹ thuật phân trang phân biệt rạch ròi góc nhìn người dùng phận quản lý nhớ vật lý: - Góc nhìn người sử dụng: tiến trình người dùng nhìn thấy nhớ không gian liên tục, đồng chứa thân tiến trình - Góc nhìn nhớ vật lý: tiến trình người sử dụng lưu trữ phân tán khắp nhớ vật lý, nhớ vật lý đồng thời chứa tiến trình khác • Thế phân trang không phản ánh cách thức người sử dụng cảm nhận nhớ Người sử dụng nhìn thấy nhớ tập đối tượng chương trình (segments, thư viện ) tập đối tượng liệu (biến toàn cục, stack, vùng nhớ chia sẻ ) Vấn đề đặt cần tìm cách thức biễu diễn nhớ cho cung cấp cho người dùng cách nhìn gần với quan điểm logic họ đу kỹ thuật phân đoạn XII.2 Cơ chế phân đoạn (Segmentation) Với phương pháp phân trang, tầm nhìn người dùng vào tổ chức nhớ máy tính không đồng với nhớ vật lí thật Tầm nhìn người dùng ánh xạ vào nhớ vật lí Do có khác nhớ luận lí nhớ vật lí Phương pháp xây dựng: Trong thuật toán phân đoạn nhớ, chương trình xem tập hợp chương trình con, thủ tục, hàm hay module; chúng có cấu trúc liệu khác bảng, mảng, ngăn xếp, biến, … Những thành phần tham chiếu đến tên mà không cần quan tâm đến địa nhớ chúng Các phân đoạn có chiều dài thay đổi, tùy 20 Memory Management thuộc vào mục đích phân đoạn chương trình Các phần tử phân đoạn định nghĩa độ dời chúng so với điểm bắt đầu phân đoạn Địa luận lí gồm thành phần: Cài đặt bảng phân đoạn: Bảng phân đoạn (segment table): tương tự bảng phân trang, nội dung mục bảng phân đoạn gồm có: - Base: chứa địa vật lý đoạn nhớ - Limit: xác định độ dài đoạn Số phân đoạn (s) địa luận lí dùng để trỏ đến mục phân đoạn Độ dời (d) địa luận lí có giá trị từ đến giới hạn phân đoạn (limit) Nếu địa luận lí vượt điểm cuối phân đoạn xuất trap tới hệ điều hành; ngược lại, độ dời (d) cộng thêm giá trị phân đoạn để tạo địa nhớ vật lí 21 Memory Management Ví dụ phân đoạn Xét ví dụ phân đoạn hình sau, chương trình chia thành phân đoạn đánh số từ đến Chúng bố trí vào nhớ vật lí hình Bảng phân đoạn gồm giới hạn phân đoạn (limit) địa bắt đầu phân đoạn (base) Ví dụ, phân đoạn dài 1000 bytes bắt đầu vị trí 4700 Địa (3,55) ánh xạ tới vị trí 3200 + 55 = 3255; 3200 giá trị phân đoạn 3,55 độ dời phân đoạn Tham chiếu đến byte 500 phân đoạn làm xuất trap tới hệ điều hành, phân đoạn dài 400 bytes Bảo vệ chia sẻ: Phân đoạn có ưu điểm lớn bảo vệ gắn liền với đoạn Do phân đoạn biểu diễn phần hay module chương trình, tất mục phân đoạn dùng chung mục đích; điều dẫn đến số phân đoạn liệu, số phân đoạn khác lại thị Trong kiến trúc đại, thị không chỉnh sửa hay thay đổi nó, 22 Memory Management chúng thiết lập đọc hay thực thi Bit bảo vệ gắn với mục từ bảng phân đoạn, ánh xạ, bit kiểm tra để chắn truy cập không hợp lệ vào nhớ Do đó, nhiều lỗi chương trình phát sớm trước chúng gây tác hại lớn Ưu điểm khác phân đoạn chia sẻ mã hay liệu Các phân đoạn chia sẻ mục từ bảng phân đoạn hai trình đến vị trí vật lí Chia sẻ xảy cấp phân đoạn Do đó, thông tin chia sẻ định nghĩa phân đoạn Một số phân đoạn chia sẻ chương trình hình thành từ nhiều phân đoạn chia sẻ Ví dụ: chương trình soạn thảo văn xây dựng từ nhiều phân đoạn chia sẻ nhiều người dùng Giới hạn địa vật lí phải hỗ trợ nhiều tác vụ soạn thảo văn Thay dùng n trình soạn thảo văn bản, hệ thống cần Các phân đoạn riêng lưu trữ biến cục người dùng không chia sẻ • Kỹ thuật phân đoạn thỏa mãn nhu cầu thể cấu trúc logic chương trình dẫn đến tình phải cấp phát khối nhớ có kích thước khác cho phân đoạn nhớ vật lý Điều làm rắc rối vấn đề nhiều so với việc cấp phát trang có kích thước tĩnh Một giải pháp dung hoà kết hợp hai kỹ thuật phân trang phân đoạn : tiến hành phân trang phân đoạn XII.3 Phân trang kết hợp phân đoạn (Segmentation with Paging) Do phương pháp phân trang phân đoạn có nhược điểm riêng, người ta phải tìm giải pháp tốt cho việc quản lí ánh xạ địa luận lí sang địa vật lí Từ đó, giải pháp phân đoạn với phân trang đời Segmentation with paging có đặc điểm gì? a) Khai thác đặc điểm có lợi phân trang - Không bị phân mảnh ngoại - Định vị nhanh b) Khai thác đặc điểm có lợi phân đoạn - Chia sẻ - Bảo vệ c) Chi phí thực thấp 23 Memory Management d) Tồn nhiều biến đổi Cơ chế: Trong hệ thống phân đoạn với phân trang, không gian địa chia thành số lượng đoạn tùy thích theo ý ngưới lập trình Mỗi đoạn lại phân thành số lượng trang đồng kích thước (bằng với kích cỡ frame nhớ chính) Có trường hợp đoạn lại có kích thước ngắn trang, lúc đoạn xem chiếm giữ trang Từ góc nhìn người lập trình, địa luận lí gồm số đoạn (segment number) độ dời tương đối đoạn (segment offset) Từ góc nhìn hệ thống, địa tương đối đoạn gồm số trang (page number) độ dời tương đối trang (page offset) đoạn tương ứng Process có bảng phân đoạn số bảng trang (mỗi đoạn có bảng trang) Khi process chạy, ghi giữ địa bắt đầu bảng phân đoạn Sau nhận địa ảo, xử lí dùng số phân đoạn để dò bảng phân đoạn tìm đến bảng phân trang cho đoạn Sau đó, số trang địa ảo dùng để dò đến bảng trang tìm số frame nhớ vật lí Mỗi mục bảng phân đoạn chứa kích thước đoạn Trong mục chứa vùng sở, vùng trỏ đến bảng trang Những present bit (cho biết mục bảng trang có sử dụng để dịch địa hay không) modified bit (cho biết có thay đổi trang từ nạp vào nhớ) không cần thiết chúng giải cấp độ trang Những bit điều khiển khác sử dụng cho mục đích chia sẻ bảo vệ Mỗi mục bảng trang tương tự hệ thống phân trang Mỗi số trang ánh xạ đến số frame trang đưa vào nhớ XIII Tóm tắt – Kết luận Các giải thuật quản lý nhớ cho hệ điều hành đa chương trải dài từ tiếp cận hệ thống người dùng đơn tới phân đoạn phân trang Yếu tố định lớn phương pháp dùng hệ thống cụ thể phần cứng cải thiện Mỗi địa nhớ tạo CPU phải kiểm tra hợp lệ ánh xạ tới địa vật lý Kiểm tra 24 Memory Management cài đặt (hữu hiệu) phần mềm Do đó, bị ràng buộc tính sẵn dùng phần cứng Các giải thụât quản lý nhớ thảo luận (cấp phát liên tục, phân trang, phân đoạn, kết hợp phân trang phân đoạn) khác nhiều khía cạnh Trong so sánh chiến lược quản lý nhớ, nên sử dụng xem xét sau:  Hỗ trợ phần cứng: ghi hay cặp ghi ghi giới hạn đủ cho chế phân khu đơn đa, ngược lại phân trang phân đoạn cần bảng ánh xạ để xác định ánh xạ địa  Năng lực: giải thuật quản lý nhớ trở nên phức tạp thời gian yêu cầu để ánh xạ địa luận lý tới địa vật lý tăng Đối với hệ thống đơn giản, cần so sánh hay cộng địa luận lý - thao tác phải nhanh Phân trang phân đoạn nhanh bảng cài đặt ghi nhanh Tuy nhiên, bảng nhớ thực chất truy xuất nhớ người dùng bị giảm Một TLB hạn chế việc giảm lực tới mức chấp nhận  Phân mảnh: hệ thống đa chương thực hiệu có cấp độ đa chương cao Đối với tập hợp trình cho, tăng cấp độ đa chương cách đóng gói nhiều trình nhớ Để hoàn thành tác vụ này, phải giảm lãng phí hay phân mảnh nhớ Các hệ thống với đơn vị cấp phát có kích thước cố định, chế đơn phân khu phân trang, gặp phải phân mảnh Các hệ thống với đơn vị cấp phát có kích thước thay đổi chế đa phân khu phân đoạn, gặp phải phân mảnh  Tái định vị: giải pháp cho vấn đề phân mảnh cô đặc, có liên quan đến việc chuyển dịch chương trình nhớ không ý thay đổi chương trình Xem xét yêu cầu địa luận lý tái định vị động thời điểm thực thi Nếu địa tái định vị thời điểm nạp, lưu trữ dạng cô đặc  Hoán vị: giải thuật có hoán vị thêm tới Tại khoảng thời gian xác định hệ điều hành, thường mô tả xác định thời, trình chép từ nhớ tới vùng lưu trữ phụ sau chép trở lại tới nhớ Cơ chế cho phép nhiều trình chạy đặt vào nhớ thời điểm  Chia sẻ: phương tiện khác để gia tăng cấp độ đa chương chia sẻ mã liệu người dùng khác Thường việc chia sẻ yêu cầu phân trang hay phân đoạn dùng, để cung cấp gói thông tin nhỏ (các trang hay đoạn) chia sẻ Chia sẻ phương tiện chạy nhiều trình với lượng nhớ giới hạn chương trình liệu chia sẻ phải thiết kế cẩn thận  Bảo vệ: phân trang hay phân đoạn cung cấp, phần khác chương trình người dùng khai báo thực thi, đọc, hay đọc-viết Sự hạn chế cần thiết với mã liệu chia sẻ thường có ích trường hợp để cung cấp việc kiểm tra thời gian thực thi cho lỗi lập trình thông thường C TÀI LIỆU THAM KHẢO [1] [Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003 [2] [Nguyễn Hoàng Việt], Bài giảng Hệ Điều Hành, Khoa CNTT-ĐH Cần Thơ, 1998 [3] [Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons, 2003 [4] [Lê Khắc Nhiên Ân, Hoàng Kiếm], Giáo trình Nhập môn hệ điều hành, Đại học Khoa học Tự nhiên, 2003 [5] [Trần Hạnh Nhi, Hoàng Kiếm], Giáo trình hệ điều hành nâng cao, Đại học Khoa học Tự nhiên,1999 25 Memory Management MỤC LỤC Giới thiệu Báo cáo Nội dung báo cáo trang I - Khái niệm sở - Không gian vật lý không gian luận lý II - Nạp chương trình vào nhớ III - Liên kết địa IV - Liên kết động thư viện chia sẻ V - Chuyển đổi địa VI - Dynamic linking VII - Dynamic loading VIII - Cơ chế phủ lắp (overlay) 10 IX - Cơ chế hoán vị (swapping) 11 X - Cấp phát nhớ liên tục .13 XI - Mô hình quản lý nhớ 14 XII - Cấp phát không liên tục XII.1 Cơ chế phân trang 18 XII.2 Cơ chế phân đoạn 27 XIII.3 Phân trang kết hợp với phân đoạn 30 XIII - Tóm tắt – Kết luận .32 Tài liệu tham khảo trang 33 26 [...]... đợi nhập đang chờ được mang vào bộ nhớ Trong cấp phát bộ nhớ liên tục, mỗi quá trình được chứa trong một phần bộ nhớ liên tục XI Mô hình quản lý bộ nhớ  Trong chương này, mô hình quản lý bộ nhớ là một mô hình đơn giản, không có bộ nhớ ảo  Một process phải được nạp hoàn toàn vào bộ nhớ thì mới được thực thi (ngoại trừ khi sử dụng cơ chế overlay)  Các cơ chế quản lý bộ nhớ sau đây rất ít (hầu như không... đồ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ý: một tiến trình của người sử dụng được lưu trữ phân tán khắp bộ nhớ vật lý, trong bộ nhớ vật lý đồng thời cũng chứa những tiến trình khác • Thế nhưng sự phân trang không phản ánh đúng cách thức người sử dụng cảm nhận về bộ nhớ Người sử dụng nhìn thấy bộ nhớ như một tập các đối tượng của chương trình (segments, các thư viện... chỉ vật lý vào thời điểm xử lý Người ta thiết lập một bảng trang, trong đó mỗi phần tử 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 ) 2 Chuyển đổi địa chỉ Mỗi địa chỉ phát sinh bởi CPU được chia thành hai phần: + Số hiệu trang - Page number (p): chứa địa chỉ cơ sở của mỗi trang trong bộ nhớ vật lý, được... bộ nhớ dựa theo đơn vị của kích thước khối Với tiếp cận này, bộ nhớ được cấp phát tới một quá trình có thể là lớn hơn một chút so với khối được yêu cầu Sự chênh lệnh giữa hai số này là phân mảnh trong -bộ nhớ bị phân mảnh trong đối với một phân khu thì không thể được dùng Một giải pháp đối với phân mảnh ngoài là kết lại thành khối (compaction) Mục tiêu là di chuyển nội dung bộ nhớ để đặt tất cả bộ nhớ. .. vector ngắt thường ở trong bộ nhớ thấp nên các lập trình viên thường đặt hệ điều hành trong bộ nhớ thấp Do đó, trong giáo trình này chúng ta sẽ thảo luận chỉ trường hợp hệ điều hành định vị trong bộ nhớ thấp Phát triển của trường hợp khác là tương tự Chúng ta thường muốn nhiều quá trình người dùng định vị trong bộ nhớ tại cùng thời điểm Do đó, chúng ta cần xem xét cách cấp phát bộ nhớ trống tới những quá... đó, chúng ta cần cấp phát những phần khác nhau của bộ nhớ chính trong những cách hiệu quả nhất có thể Phần này chúng ta giải thích một phương pháp thông dụng, cấp phát bộ nhớ liên tục Bộ nhớ thường được phân chia thành hai phân khu, một cho hệ điều hành định vị và một cho các quá trình người dùng Chúng ta có thể đặt hệ điều hành ở bộ nhớ cao hay bộ nhớ thấp Yếu tố quan trọng ảnh hưởng tới quyết định... stack, vùng nhớ chia sẻ ) Vấn đề đặt ra là cần tìm một cách thức biễu diễn bộ nhớ sao cho có thể cung cấp cho người dùng một cách nhìn gần với quan điểm logic của họ hơn và đу là kỹ thuật phân đoạn XII.2 Cơ chế phân đoạn (Segmentation) Với phương pháp phân trang, tầm nhìn người dùng vào tổ chức bộ nhớ máy tính không đồng nhất với bộ nhớ vật lí thật sự Tầm nhìn người dùng được ánh xạ vào bộ nhớ vật lí... chiến lược quản lý bộ nhớ, chúng ta nên sử dụng các xem xét sau:  Hỗ trợ phần cứng: thanh ghi nền hay cặp thanh ghi nền và thanh ghi giới hạn là đủ cho cơ chế phân khu đơn và đa, ngược lại phân trang và phân đoạn cần bảng ánh xạ để xác định ánh xạ địa chỉ  Năng lực: khi giải thuật quản lý bộ nhớ trở nên phức tạp hơn thì thời gian được yêu cầu để ánh xạ địa chỉ luận lý tới địa chỉ vật lý tăng Đối... dữ liệu từ vùng lưu trữ phụ Tiến trình được phân phối bộ nhớ vật lý bất kỳ lúc nào khi bộ nhớ sẵn có Bộ nhớ vật lý được chia thành các khối (block) có kích thước cố định và bằng nhau, gọi là khung trang (page frame) Không gian địa chỉ cũng được chia thành các khối có cùng kích thước được gọi là các trang (pages) Khi cần nạp một tiến trình để xử lý, các trang của tiến trình sẽ được nạp vào những khung... được cấp phát chính xác dung lượng bộ nhớ cần thiết  Gây ra hiện tượng phân mảnh ngoại e) Chiến lược placement  Dùng để quyết định cấp phát khối bộ nhớ trống nào cho một process  Mục tiêu: giảm chi phí compaction  Các chiến lược placement – Best-fit: chọn khối nhớ trống nhỏ nhất – First-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ đầu bộ nhớ – Next-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ ... vào nhớ Trong cấp phát nhớ liên tục, trình chứa phần nhớ liên tục XI Mô hình quản lý nhớ  Trong chương này, mô hình quản lý nhớ mô hình đơn giản, nhớ ảo  Một process phải nạp hoàn toàn vào nhớ. .. nhớ chung  Kết gán địa nhớ luận lý user vào địa thực Không gian vật lý không gian luận lý:  Địa vật lý (physical address - địa thực) vị trí thực nhớ  Địa luận lý (logical address) vị trí nhớ. .. hết, quản lý nhớ bắt đầu swap out vùng lưu trữ phụ trình vừa kết thúc swap in trình khác tới không gian nhớ trống Do đó, định thời biểu CPU cấp phần thời gian tới trình khác nhớ Lý tưởng, quản lý

Ngày đăng: 02/02/2016, 09:45

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan