Quản lý bộ nhớ trong hệ điều hành

42 891 5
Quản lý bộ nhớ trong hệ điều hà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

Quản lý bộ nhớ trong hệ điều hành

HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY SCHOOL OF INFORMATION TECHNOLOGY - - Báo cáo tập lớn Lập trình hệ thống Quản lý nhớ hệ điều hành Giáo viên hướng dẫn Hanoi, 5/2013 TS Nguyễn Hữu Đức Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Mục lục PHẦN 1.Mục đích Sau học xong chương này, người học nắm kiến thức sau: • Hiểu cách khác để quản lý nhớ • Hiểu tiếp cận quản lý phân trang phân đoạn • Vận dụng tiếp cận quản lý nhớ phù hợp với hệ thống xác định PHẦN 2.Ứng dụng Trong chương thảo luận nhiều cách khác để quản lý nhớ Các giải thuật quản lý nhớ từ tiếp cận máy trơ (primitive bare- machine) chiến lược phân trang phân đoạn Mỗi tiếp cận có lợi điểm nhược Chọn phương pháp quản lý nhớ cho hệ thống xác định phụ thuộc vào nhiều yếu Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức tố, đặc biệt thiết kế phần cứng hệ thống Chúng ta thấy nhiều giải thuật yêu cầu hỗ trợ phần cứng thiết kế gần tích hợp phần cứng hệ điều hành PHẦN Đặt vấn đề Bộ nhớ trung tâm để điều hành hệ thống máy tính đại Bộ nhớ chứa mảng lớn từ (words) hay bytes, phần tử với địa CPU lấy thị từ nhớ dựa theo giá trị đếm chương trình Các thị gây việc nạp bổ sung từ lưu trữ tới địa nhớ xác định 3.1 Liên kết địa Thông thường, chương trình nằm đĩa tập tin thực thi dạng nhị phân Chương trình 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 (hình VII-1) 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 Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đứ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 Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức để hợp giá trị thay đổi • 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 3.2 Không gian địa luận lý không gian địa vật lý 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ạ Như hiển thị hình VII-2 trê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 346 ánh xạ tới vị trí 14346 Hình 0-2 định vị tự động dùng ghi tái định vị Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức 3.3 Nạp động 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 họ để đạ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 3.4 Liên kết động thư viện chia sẻ Trong hình VII-1 hiển thị thư viện liên kết động 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 3.5 Phủ lắp Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Để 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 Thí dụ, xét trình dịch hợp ngữ hai lần (two-pass assembler) Trong suốt lần thứ 1, xây dựng bảng danh biểu; sau đó, lần thứ 2, tạo mã máy Chúng ta 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 70 KB Lần 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 (hình VII-3) Bây chạy trình hợp ngữ 150KB 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 Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-3- Các 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 PHẦN 4.Hoán vị 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 hoán vị (swap out) vùng lưu trữ phụ trình vừa kết thúc hoán vị vào (swap in) trình khác tới không gian nhớ trống (hình VII-4) 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ị Hình 0-4- Hoán vị hai trình dùng đĩa backing store 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 Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức 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 cuộn (roll out), cuộn vào (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 tất 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 trình hàng đợi nhớ không Nếu không, vùng nhớ trống, phân phát hoán vị trình hành nhớ hoán vị vào 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ớ chính, 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 nhập/xuất vùng đệm, trình hoán vị Giả sử thao tác nhập/xuất xếp hàng chờ thiết bị bận Sau đó, hoán vị trình P1 hoán vị P2 vào thao tác nhập/xuất cố gắng sử dụng nhớ thuộc trình P2 Hai giải pháp chủ yếu cho trình không hoán vị trình chờ nhập/xuất hay thực thi thao tác nhập/xuất vùng đệm hệ điều hành Chuyển vùng đệm hệ điều hành nhớ trình xảy trình hoán vị vào PHẦN 5.Cấp phát nhớ liên tục Bộ nhớ phải cung cấp cho hệ điều hành trình người dùng khác Do đó, cần cấp phát phần khác nhớ cách hiệu Phần giải thích phương pháp thông dụng, cấp phát nhớ liên tục Bộ nhớ thường phân chia thành hai phân khu, cho hệ điều hành định vị cho trình người dùng Chúng ta đặt hệ điều hành nhớ cao hay nhớ thấp Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Yếu tố quan trọng ảnh hưởng tới định vị trí vector ngắt Vì vector ngắt thường nhớ thấp nên lập trình viên thường đặt hệ điều hành nhớ thấp Do đó, giáo trình thảo luận trường hợp hệ điều hành định vị nhớ thấp Phát triển trường hợp khác tương tự Chúng ta thường muốn nhiều trình người dùng định vị nhớ thời điểm Do đó, cần xem xét cách cấp phát nhớ trống tới trình hàng đợi nhập chờ mang vào nhớ Trong cấp phát nhớ liên tục, trình chứa phần nhớ liên tục 5.1 Bảo vệ nhớ Trước thảo luận cấp phát nhớ phải thảo luận vấn đề bảo vệ nhớ-bảo vệ hệ điều hành từ trình người dùng, bảo vệ trình từ trình khác Chúng ta cung cấp bảo vệ cách dùng ghi tái định vị Thanh ghi tái định vị chứa giá trị địa vật lý nhỏ nhất; ghi giới hạn chứa dãy định luận lý (thí dụ: tái định vị = 100040 giới hạn = 74600) Với ghi tái định vị giới hạn, địa luận lý phải ghi giới hạn; MMU ánh xạ địa luận lý động cách cộng giá trị ghi tái định vị Địa tái định vị gửi tới nhớ (như hình VII-5) Hình 0-5 Hỗ trợ phần cứng cho ghi tái định vị giới hạn Khi định thời CPU chọn trình thực thi, phân phát nạp ghi tái định vị giới hạn với giá trị phần chuyển đổi ngữ cảnh Vì địa phát sinh CPU kiểm tra dựa ghi này, bảo vệ hệ điều hành chương trình liệu người dùng khác từ việc sửa đổi trình chạy Cơ chế dùng ghi tái định vị cung cấp cách hiệu phép kích thước hệ điều hành thay đổi động Khả mềm dẽo mong muốn nhiều trường hợp Thí dụ, hệ điều hành chứa mã không gian vùng đệm cho trình điều khiển thiết bị Nếu trình điều khiển thiết bị (hay dịch vụ hệ điều hành khác) không dùng phổ biến, không muốn giữ mã liệu Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 10 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Phần Trang Độ dời S P D 21 s rõ số phần, p mục bảng trang d độ dời Kích thước bảng trang cấp cho trình VAX dùng phần 21 bits * bytes/trang = MB Để việc sử dụng nhớ bị giảm nhiều hơn, VAX phân trang bảng trang trình người dùng Đối với hệ thống có không gian địa luận lý 64 bits, chế phân trang hai cấp không phù hợp Để thể điểm này, giả sử kích thước trang 12 hệ thống KB (2 ) Trong trường hợp này, bảng trang chứa 52 tới mục từ Nếu dùng chế phân trang hai cấp bảng bên 10 trang dài chứa mục từ Các địa này: Hình 0-19 Dịch địa cho kiến trúc phân trang hai cấp 32-bit Trang bên P1 42 Trang bên P2 10 Độ dời D 12 Bảng trang bên chứa 242 mục từ, hay 244 bytes Các phương pháp trọng để tránh để trang lớn chia bảng trang bên thành phần nhỏ Tiếp cận dùng vài xử lý 32-bit để thêm khả mềm dẽo hiệu Chúng ta chia bảng trang bên thành chế phân trang cấp Giả sử bảng trang bên tạo từ trang có kích thước chuẩn (210 mục từ, hay 212 bytes); không gian địa 64 bit có kích thước lớn: Trang bên cấp P1 32 Trang bên P2 10 Trang bên P3 10 Độ dời D 12 Bảng trang bên lớn 232 Bước chế phân trang cấp bốn, bảng trang bên cấp hai Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 28 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức phân trang Kiến trúc SPARC (với 32-bit đánh địa chỉ) hỗ trợ chế phân trang cấp ba, trái lại kiến trúc Motorola 68030 32-bit hỗ trợ chế phân trang bốn cấp Tuy nhiên, kiến trúc 64-bit, bảng trang phân cấp thường xem xét không phù hợp Thí dụ, UltraSPARC 64-bit yêu cầu phân trang bảy cấp – số truy xuất nhớ không phép để dịch địa luận lý 6.1.4.2 Bảng trang băm Một tiếp cận thông thường cho việc quản lý không gian địa lớn 32-bit dùng bảng trang băm (hashed page table), với 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 tới vị trí (để quản lý đụng độ) Mỗi phần tử chứa ba trường: (a) số trang ảo, (b) giá trị khung trang ánh xạ trỏ tới phần tử danh sách liên kết Giải thuật thực sau: 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, khung trang tương ứng (trường (b) dùng để hình thành địa vật lý mong muốn) 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 Cơ chế hiển thị hình VII-20 đây: Một biến thể chế cho không gian địa 64-bit đề nghị Bảng trang nhóm (Clustered page tables) tương tự bảng băm ngoại trừ mục từ bảng băm tham chiếu tới nhiều trang (chẳng hạn 16) trang Do đó, mục từ bảng trang đơn lưu ánh xạ cho nhiều khung trang vật lý Bảng trang nhóm đặc biệt có ích cho không gian địa rời (spare), tham chiếu nhớ không liên tục tập hợp khắp không gian nhớ Hình 0-20 Bảng trang băm Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 29 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức 6.1.4.3 Bảng trang đảo Thông thường, trình có trang gán liền với Bảng trang có mục từ cho trang mà trình sử dụng (hay khe cho địa ảo, không phụ thuộc tính hợp lệ sau đó) Biểu diễn bảng trang biểu diễn tự nhiên tham chiếu trình phân trang thông qua địa ảo trang Sau đó, hệ điều hành phải dịch tham chiếu vào địa nhớ vật lý Vì bảng xếp địa ảo, hệ điều hành tính toán nơi bảng mà mục từ địa vật lý nối kết tới sử dụng giá trị trực tiếp Một khó khăn phương pháp 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ý, yêu cầu để giữ vết nhớ vật lý khác sử dụng Để giải vấn đề sử dụng bảng trang đảo (inverted page table) Bảng trang đảo có mục từ cho trang thật (hay khung) nhớ Mỗi mục từ chứa địa ảo trang lưu vị trí nhớ thật đó, với thông tin trình sở hữu trang Do đó, bảng trang hệ thống có mục từ cho trang nhớ vật lý Hình VII-21 hiển thị hoạt động bảng trang đảo So sánh với hình VII-6, mô tả hoạt động bảng trang chuẩn Vì bảng trang hệ thống có nhiều không gian địa khác ánh xạ nhớ vật lý, nên bảng trang đảo thường yêu cầu định danh không gian địa lưu mục từ bảng trang Lưu trữ định danh không gian địa đảm bảo ánh xạ trang luận lý cho trình xác định tới khung trang vật lý tương ứng Thí dụ, hệ thống dùng bảng trang đảo gồm UltraSPARC 64-bit PowerPC Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 30 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-21 Bảng trang đảo Để hiển thị phương pháp này, mô tả ấn đơn giản hoá 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 , process-id đảm bảo vai trò định danh không gian địa Khi tham chiếu nhớ xảy ra, phần địa ảo, gồm , diện hệ thống nhớ Sau đó, bảng trang đảo tìm kiếm trùng khớp Nếu trùng khớp tìm thấy mục từ i địa vật lý tạo Nếu không tìm thấy truy xuất địa không hợp lệ cố gắng thực Mặc dù chế giảm lượng nhớ yêu cầu để lưu bảng trang, gia tăng lượng thời gian cần cho việc tìm kiếm bảng có tham chiếu xảy Vì bảng trang đảo lưu địa vật lý tìm kiếm xảy địa ảo, toàn bảng trang cần tìm kiếm trùng khớp Sự tìm kiếm thời gian dài Để làm giảm vấn đề này, sử dụng bảng băm mô tả hình để giới hạn việc tìm kiếm Dĩ nhiên, truy xuất tới bảng băm thêm tham chiếu tới thủ tục, tham chiếu nhớ ảo yêu cầu hai thao tác đọc nhớ thật: cho mục từ bảng băm cho bảng trang Để cải tiến lực thực hiện, TLB tìm kiếm đầu tiên, trước bảng băm tra cứu 6.1.5 Trang chia sẻ Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 31 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Một thuận lợi khác phân trang khả chia sẻ mã chung Việc xem xét đặc biệt quan trọng môi trường chia thời Xét hệ thống hỗ trợ 40 người dùng, người dùng thực thi trình soạn thảo văn Nếu trình soạn thảo văn chứa 150 KB mã 50 KB liệu, cần 8000 KB để hỗ trợ 40 người dùng Tuy nhiên, mã mã tái sử dụng (reentrant code), chia sẻ hiển thị hình VII-22 Ở thấy soạn thảo ba trang- trang có kích thước 50 KB; kích thước trang lớn dùng để đơn giản hoá hình này-đang chia sẻ ba trình Mỗi trình có trang liệu riêng 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 Dĩ nhiên, liệu cho hai trình khác khác cho trình Chỉ soạn thảo cần giữ nhớ vật lý Mỗi bảng trang người dùng ánh xạ tới vật lý soạn thảo trang liệu ánh xạ tới khung khác Do đó, để hỗ trợ 40 người dùng, cần soạn thảo (150 KB) cộng với 40 50 KB không gian liệu người dùng Bây toàn không gian yêu cầu 2150 KB thay 8000 KB-một tiết kiệm lớn Những chương trình dùng nhiều khác chia sẻ - trình biên dịch, hệ thống cửa sổ, thư viện thời điểm thực thi, hệ sở liệu,…Để chia sẻ, mã phải tái sử dụng Tính tự nhiên đọc mã chia sẻ không phó mặc cho tính đắn mã; hệ điều hành nên tuân theo thuộc tính Chia sẻ nhớ trình hệ điều hành tương tự chia sẻ không gian địa tác vụ luồng Ngoài ra, nhớ chia sẻ phương pháp giao tiếp liên trình Một số hệ điều hành cài đặt nhớ chia sẻ dùng trang chia sẻ Hệ điều hành dùng bảng trang bên gặp khó khăn cài đặt nhớ chia sẻ Bộ nhớ chia sẻ thường cài đặt nhiều địa ảo (một địa cho trình chia sẻ nhớ) mà chúng ánh xạ tới địa vật lý Tuy nhiên, phương pháp chuẩn dùng có mục từ trang ảo cho trang vật lý trang vật lý có hai (hay nhiều) địa ảo chia sẻ Tổ chức nhớ dựa theo trang cung cấp nhiều lợi điểm khác phép nhiều trình chia sẻ trang vật lý Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 32 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-22 chia sẻ mã môi trường phân trang 6.2 Phân đoạn Một khía cạnh quan trọng việc quản lý nhớ mà trở nên tránh với phân trang ngăn cách tầm nhìn nhớ người dùng nhớ vật lý thật Tầm nhìn nhớ người dùng không giống nhớ vật lý Tầm nhìn người dùng ánh xạ vào nhớ vật lý Việc ánh xạ cho phép khác nhớ luận lý nhớ vật lý 6.2.1 Phương pháp Người dùng nghĩ nhớ mảng tuyến tính byte, số byte chứa thị lệnh, số khác chứa liệu hay không? Hầu hết người nói không Đúng là, người dùng thích nhìn nhớ tập hợp phân đoạn có kích thước thay đổi, không cần xếp thứ tự phân đoạn (như hình VII-23) Chúng ta nghĩ chương trình viết nó? Chúng ta nghĩ chương trình với tập hợp chương trình con, thủ tục, hàm, hay module Có thể có cấu trúc liệu khác nhau: bảng, mảng, ngăn xếp, biến, Mỗi module hay thành phần liệu tham chiếu tên Chúng ta nói “bảng danh biểu”, “hàm sqrt”, “chương trình chính” không quan tâm đến địa nhớ mà phần tử chiếm Chúng ta không quan tâm bảng danh biểu lưu trữ trước hay sau hàm sqrt Mỗi phân đoạn có chiều dài thay đổi; thực chất chiều dài định nghĩa mục đích phân đoạn Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 33 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức chương trình Các phần tử phân đoạn định nghĩa độ dời chúng từ điểm bắt đầu phân đoạn: lệnh chương trình, mục từ thứ mười bảy bảng danh biểu, thị thứ năm hàm sqrt,… Hình 0-23 Tầm nhìn chương trình người dùng Phân đoạn chế quản lý nhớ hỗ trợ tầm nhìn nhớ người dùng Không gian địa luận lý tập hợp phân đoạn Mỗi phân đoạn có tên chiều dài Các địa xác định tên phân đoạn độ dời phân đoạn Do đó, người dùng xác định địa hai lượng: tên phân đoạn độ dời (tương phản chế với chế phân trang, người dùng xác định địa đơn, chia phần cứng thành số trang độ dời, tất nhìn thấy người lập trình) Để đơn giản việc cài đặt, phân đoạn đánh số tham chiếu tới số phân đoạn, tên phân đoạn Do đó, địa luận lý chứa hai: Thông thường, chương trình người dùng biên dịch, trình biên dịch tự động tạo phân đoạn phản ánh chương trình nhập Một chương trình Pascal tạo phân đoạn riêng sau: 1) 2) 3) 4) Các biến toàn cục; Ngăn xếp gọi thủ tục, để lưu trữ tham số trả địa chỉ; Phần mã thủ tục hay hàm; Các biến cục thủ tục hàm Một trình biên dịch tạo phân đoạn riêng cho khối chung Các mảng gán phân đoạn riêng Bộ nạp mang tất phân đoạn gán chúng số phân đoạn 6.2.2 Phần cứng Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 34 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Mặc dù người dùng tham chiếu tới đối tượng chương trình địa hai chiều, nhớ vật lý chuỗi chiều byte Do đó, phải xác định việc cài đặt để ánh xạ địa hai chiều định nghĩa người dùng vào địa vật lý chiều Ánh xạ tác động bảng phân đoạn Mỗi mục từ bảng phân đoạn có phân đoạn (segment base) giới hạn phân đoạn (segment limit) Nền phân đoạn chứa địa vật lý bắt đầu, nơi phân đoạn định vị nhớ, ngược lại giới hạn phân đoạn xác định chiều dài phân đoạn Sử dụng bảng phân đoạn hiển thị hình VII-24 Một địa luận lý có hai phần: số phân đoạn s độ dời phân đoạn d Số phân đoạn dùng mục bảng đoạn Độ dời d địa luận lý phải khoảng từ tới giới hạn đoạn Nếu không trap tới hệ điều hành (địa vật lý vượt qua điểm cuối phân đoạn) Nếu độ dời hợp lệ cộng thêm giá trị phân đoạn để tạo địa nhớ vật lý byte mong muốn Do đó, bảng phân đoạn mảng cặp ghi giới hạn Hình 0-24 Phần cứng phân đoạn Xét trường hợp hình VII-25 Chúng ta có năm phân đoạn đánh số từ đến Các phân đoạn lưu nhớ vật lý hiển thị Bảng phân đoạn có mục từ riêng cho phân đoạn, cho địa bắt đầu phân đoạn nhớ vật lý (hay nền) chiều dài phân đoạn (hay giới hạn) Thí dụ, phân đoạn dài 400 bytes bắt đầu vị trí 4300 Do đó, tham chiếu byte 53 phân đoạn ánh xạ tới vị trí 4300 + 53 = 4353 Một tham chiếu tới phân đoạn 3, byte 852, ánh xạ tới 3200 (giá trị phân đoạn 3) +852=4052 Một tham chiếu tới byte 1222 phân đoạn dẫn đến trap tới hệ điều hành, phân đoạn dài 1000 bytes Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 35 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-25 Thí dụ phân đoạn 6.2.3 Bảo vệ chia sẻ Lợi điểm đặc biệt phân đoạn gắn liền bảo vệ với phân đoạn Vì phân đoạn biểu diễn phần định nghĩa chương trình, tương tự tất mục từ phân đoạn dùng cách Do đó, số phân đoạn thị, số phân đoạn khác liệu Trong kiến trúc đại, thị không hiệu chỉnh phân đoạn thị định nghĩa đọc hay thực thi Phần cứng ánh xạ nhớ kiểm tra bits bảo vệ gắn với mục từ bảng phân đoạn để ngăn chặn truy xuất không hợp lệ tới nhớ, cố gắng viết tới phân đoạn đọc hay sử dụng phân đoạn đọc liệu Bằng cách thay mảng phân đoạn nó, phần cứng quản lý nhớ tự động kiểm tra số mảng hợp lệ không vượt giới hạn mảng Do đó, nhiều lỗi chương trình phát phần cứng trước chúng gây tác hại lớn Một lợi điểm khác liên quan đến chia sẻ mã hay liệu Mỗi trình có bảng phân đoạn gắn với Bộ phân phát dùng bảng phân đoạn để định nghĩa phân đoạn phần cứng trình cấp CPU Các phân đoạn chia sẻ mục từ bảng phân đoạn hai trình khác tới vị trí vật lý (như hình VII-26) Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 36 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-26 Chia sẻ phân đoạn hệ thống nhớ phân đoạn 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ẻ Thí dụ, xét việc sử dụng trình soạn thảo văn hệ thống chia thời Trình soạn thảo hoàn chỉnh lớn, hình thành từ nhiều phân đoạn chia sẻ tất người dùng, giới hạn địa vật lý yêu cầu hỗ trợ tác vụ soạn thảo Thay n trình soạn thảo, cần Đối với người dùng, cần phân đoạn riêng, để lưu biến cục Dĩ nhiên, phân đoạn không chia sẻ Chúng ta chia sẻ số phần chương trình Thí dụ, gói chương trình dùng chung chia sẻ nhiều người dùng chúng định nghĩa phân đoạn chia sẻ, đọc Thí dụ, hai chương trình Fortran dùng hàm Sqrt, vật lý hàm Sqrt yêu cầu Mặc dù việc chia sẻ đơn giản, có xem xét tinh tế Điển hình, phân đoạn mã chứa tham chiếu tới Thí dụ, lệnh nhảy (jump) có điều kiện thường có địa chuyển gồm số phân đoạn độ dời Số phân đoạn địa chuyển số phân đoạn phân đoạn mã Nếu cố gắng chia sẻ phân đoạn này, tất trình chia sẻ phải định nghĩa phân đoạn mã chia sẻ để có số phân đoạn Thí dụ, muốn chia sẻ hàm Sqrt trình muốn thực phân Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 37 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức đoạn trình khác muốn thực phân đoạn 17, hàm Sqrt nên tham chiếu tới nào? Vì có vật lý Sqrt, phải tham chiếu tới cách cho hai người dùng-nó phải có số phân đoạn Khi số người dùng chia sẻ tăng khó khăn việc tìm số phân đoạn chấp nhận tăng Các phân đoạn đọc không chứa trỏ vật lý chia sẻ số phân đoạn khác nhau, phân đoạn mã tham chiếu không trực tiếp Thí dụ, nhánh điều kiện xác định địa nhánh độ dời từ đếm chương trình hành hay quan hệ tới ghi chứa số phân đoạn hành nên cho phép mã tránh tham chiếu trực tiếp tới số phân đoạn hành 6.2.4 Sự phân mãnh Bộ định thời biểu dài phải tìm cấp phát nhớ cho tất phân đoạn chương trình người dùng Trường hợp tương tự phân trang ngoại trừ phân đoạn có chiều dài thay đổi; trang có kích thước Do đó, với chế phân khu có kích thước thay đổi, cấp phát nhớ vấn đề cấp phát lưu trữ động, thường giải với giải thuật best-fit hay first-fit Phân đoạn gây phân mãnh, tất khối nhớ trống nhỏ để chứa phân đoạn Trong trường hợp này, trình phải chờ nhiều nhớ (hay lỗ lớn hơn) trở nên sẳn dùng, hay việc hợp lỗ nhỏ để tạo lỗ lớn Vì phân đoạn dùng giải thuật tái định vị động nên gom nhớ muốn Nếu định thời biểu CPU phải chờ trình vấn đề cấp phát nhớ, (hay không thể) bỏ qua hàng đợt CPU để tìm trình nhỏ hơn, có độ ưu tiên thấp để chạy Phân mãnh chế phân đoạn vấn đề quan trọng nào? Định thời biểu theo thuật ngữ dài với cô đặc giúp giải vấn đề phân mãnh phải không? Câu trả lời phụ thuộc vào kích thước trung bình phân đoạn Ở mức độ cao nhất, định nghĩa trình phân đoạn Tiếp cận cắt giảm chế phân khu có kích thước thay đổi Ở cấp độ khác, byte đặt phân đoạn cấp phát riêng Sắp xếp xoá việc phân mãnh bên ngoài; nhiên byte cần ghi cho tái định vị nó, gấp đôi nhớ dùng! Dĩ nhiên, bước luận lý tiếp theo-các phân đoạn nhỏ có kích thước cố định-là phân trang Thông thường, kích thước phân đoạn trung bình nhỏ, phân mãnh nhỏ Vì cá nhân phân đoạn nhỏ toàn trình nên chúng thích hợp để đặt vào khối nhớ sẳn dùng 6.3 Phân đoạn với phân trang Cả hai phân đoạn phân trang có lợi điểm nhược điểm Thật vậy, hai vi xử lý phổ biến là: dòng Motorola 68000 thiết kế dựa sở không gian địa phẳng, ngược lại, họ Intel 80x86 Petium dựa sở phân đoạn Cả hai mô hình nhớ hợp hướng tới kết hợp phân trang phân đoạn Chúng ta kết hợp hai phương pháp để tận dụng lợi điểm chúng Sự kết hợp Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 38 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức thể tốt kết trúc Intel 386 Ấn IBM OS/2 32-bit hệ điều hành chạy đỉnh kiến trúc Intel 386 (hay cao hơn) Intel 386 sử dụng phân đoạn với phân trang cho việc quản lý nhớ Số tối đa phân đoạn trình 16KB phân đoạn lớn tới 4GB Kích thước trang KB Chúng ta không cho mô tả đầy đủ cấu trúc quản lý nhớ Intel 386 giáo trình Thay vào đó, trình bày ý tưởng quan trọng Không gian địa luận lý trình chia thành hai phân khu Phân khu thứ chứa tới KB phân đoạn dành riêng cho trình Phân khu thứ hai chứa tới KB phân đoạn chia sẻ tất trình Thông tin phân khu thứ giữ bảng mô tả cục (Local Descriptor Table-LDT), thông tin phân khu thứ hai giữ bảng mô tả toàn cục (Global Descriptor Table- GDL) Mỗi mục từ LDT GDT chứa bytes, với thông tin chi tiết phân đoạn xác định gồm vị trí chiều dài phân đoạn Địa luận lý cặp (bộ chọn, độ dời), chọn số 16-bit S 13 G P Trong đó: s gán tới số phân đoạn, g hiển thị phân đoạn GDT hay LDT, p giải vấn đề bảo vệ Độ dời số 32-bit xác định vị trí byte (hay từ) phân đoạn Máy có ghi, cho phép phân đoạn xác định thời điểm trình Nó có ghi vi chương trình 8-byte để quản lý mô tả tương ứng từ LDT hay GDT Bộ lưu trữ để Intel 386 tránh phải đọc mô tả từ nhớ cho lần tham chiếu nhớ Địa vật lý 386 dài 32 bits hình thành sau Thanh ghi đoạn tới mục từ tương ứng LDT hay GDT Thông tin giới hạn phân đoạn dùng để phát sinh địa tuyến tính Đầu tiên, giới hạn dùng để kiểm tra tính hợp lệ địa Nếu địa không hợp lệ, lỗi nhớ tạo ra, dẫn đến trap tới hệ điều hành Nếu hợp lệ, giá trị độ dời cộng vào giá trị nền, dẫn đến địa tuyến tính 32bit Sau đó, địa dịch thành địa vật lý Như nêu trước đó, phân đoạn phân trang trang có kích thước KB Do đó, bảng trang chứa tới triệu mục từ Vì mục từ chứa bytes nên trình cần MB không gian địa vật lý cho bảng trang Rõ ràng, không muốn cấp phát bảng trang liên tục nhớ Giải pháp thông qua Intel 386 để dùng chế phân trang cấp Địa tuyến tính chia thành số trang chứa 20 bits, độ dời trang chứa 12 bits Vì phân trang bảng trang, số trang chia nhỏ thành trỏ thư mục trang 10-bit trỏ bảng trang 10-bit Địa luận lý sau: P1 10 P2 10 D 12 Cơ chế dịch địa cho kiến trúc tương tự chế hiển thị hình VII-18 Dịch địa Intel hiển thị chi tiết hình VII-27dưới Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 39 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-27 Dịch địa Intel 386 Để cải tiến tính hiệu việc sử dụng nhớ vật lý, bảng trang Intel 386 hoán vị tới đĩa Trong trường hợp này, bit dùng mục từ thư mục trang để hiển thị bảng mà mục từ tới nhớ hay đĩa Nếu bảng đĩa, hệ điều hành dùng 31 bit lại để xác định vị trí đĩa bảng; sau bảng mang vào nhớ theo yêu cầu PHẦN 7.Tóm tắt 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ớ được tạo CPU phải kiểm tra hợp lệ ánh xạ tới địa vật lý Kiểm tra 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óm sinh viên IS3 –IS1 –Việt Nhật –K53 40 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức á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ý-các 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ô đặ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 Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 41 Báo cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức References http://vi.wikipedia.org/wiki/hệ_điều_hành http://msdn.microsoft.com/enus/library/windows/desktop/aa366779%28v=vs.85%29.aspx http://www.tldp.org/LDP/tlk/mm/memory.html http://www.memorymanagement.org/ http://www.cs.technion.ac.il/~erez/ismm13/ Nhóm sinh viên IS3 –IS1 –Việt Nhật –K53 42 [...]... địa chỉ vật lý Ánh xạ này được che giấu từ người dùng và được điều khiển bởi hệ điều hành Chú ý rằng như định nghĩa, quá trình người dùng không thể truy xuất bộ nhớ mà nó không sở hữu Không có cách định địa chỉ bộ nhớ bên ngoài bảng trang của nó và bảng chứa chỉ những trang mà quá trình sở hữu Vì hệ điều hành đang quản lý bộ nhớ vật lý nên nó phải hiểu những chi tiết cấp phát bộ nhớ vật lý; khung nào... tuân theo thuộc tính này Chia sẻ bộ nhớ giữa các quá trình trên hệ điều hành tương tự chia sẻ không gian địa chỉ của một tác vụ bởi luồng Ngoài ra, bộ nhớ được chia sẻ như một phương pháp giao tiếp liên quá trình Một số hệ điều hành cài đặt bộ nhớ được chia sẻ dùng các trang được chia sẻ Hệ điều hành dùng bảng trang bên trong gặp khó khăn khi cài đặt bộ nhớ được chia sẻ Bộ nhớ được chia sẻ thường được... N ở đây p là chỉ mục trong bảng trang và d là độ dời trong trang Hình 0-13 Mô hình phân trang của bộ nhớ luận lý và vật lý Thí dụ: xét bộ nhớ trong hình VII-14 Sử dụng kích thước trang 4 bytes và bộ nhớ vật lý 32 bytes (có 8 trang), chúng ta hiển thị cách nhìn bộ nhớ của người dùng có thể được ánh xạ tới bộ nhớ vật lý như thế nào Địa chỉ luận lý 0 là trang 0, độ dời 0 Chỉ mục trong bảng trang, chúng... nhìn bộ nhớ của người dùng và bộ nhớ vật lý thật sự Chương trình người dùng nhìn bộ nhớ như một không gian liên tục, chứa chỉ một chương trình Sự thật, chương trình người dùng được phân bố khắp bộ nhớ vật lý mà nó cũng quản lý các quá trình khác Sự khác nhau giữa tầm nhìn bộ nhớ của người dùng và bộ nhớ vật lý thật sự được làm cho tương thích bởi phần cứng dịch địa chỉ Địa chỉ luận lý được dịch thành... cáo lập trình hệ thống Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Hình 0-22 chia sẻ mã trong môi trường phân trang 6.2 Phân đoạn Một khía cạnh quan trọng của việc quản lý bộ nhớ mà trở nên không thể tránh với phân trang là ngăn cách tầm nhìn bộ nhớ của người dùng và bộ nhớ vật lý thật sự Tầm nhìn bộ nhớ của người dùng không giống như bộ nhớ vật lý Tầm nhìn người dùng được ánh xạ vào bộ nhớ vật lý Việc ánh... cứng của hệ thống Chúng ta sẽ thấy nhiều giải thuật yêu cầu hỗ trợ phần cứng mặc dù các thiết kế gần đây đã tích hợp phần cứng và hệ điều hành 5.2 Hệ thống đơn chương Trong phương pháp này bộ nhớ được chia sẻ cho hệ điều hành và một chương trình duy nhất của người sử dụng Tại một thời điểm, một phần của bộ nhớ sẽ do hệ điều hành chiếm giữ, phần còn lại thuộc về quá trình người dùng duy nhất trong hệ thống... và phân đoạn PHẦN 6.Cấp phát bộ nhớ không liên tục 6.1 Phân trang Phân trang là cơ chế quản lý bộ nhớ cho phép không gian địa chỉ vật lý của quá trình là không kề nhau Phân trang tránh vấn đề đặt vừa khít nhóm bộ nhớ có kích thước thay đổi vào vùng lưu trữ phụ (backing store) mà hầu hết các cơ chế quản lý bộ nhớ trước đó gặp phải Khi phân đoạn mã và dữ liệu nằm trong bộ nhớ được hoán vị ra, không gian... đây cũng có thể áp dụng tới môi trường chia thời mà trong đó phân đoạn thuần được dùng cho việc quản lý bộ nhớ Hệ điều hành giữ một bảng hiển thị những phần nào của bộ nhớ là sẳn dùng và phần nào đang bận Ban đầu, tất cả bộ nhớ là sẳn dùng cho quá trình người dùng, và được xem như một khối lớn bộ nhớ sẳn dùng hay một lỗ Khi một quá trình đến và cần bộ nhớ, chúng ta tìm C kiếm một lỗ trống đủ lớn cho quá... hàng đợi nhập Hệ điều hành có thể xếp hàng đợi nhập dựa theo giải thuật định thời Bộ nhớ được cấp phát tới quá trình cho đến khi các yêu cầu bộ nhớ của quá trình kế tiếp không thể được thoả; không có khối bộ nhớ trống (hay lỗ) đủ lớn để quản lý quá trình đó Sau đó, hệ điều hành có thể chờ cho đến khi khối đủ lớn sẳn dùng hay nó có thể di chuyển xuống hàng đợi nhập để xem các yêu cầu bộ nhớ nhỏ hơn của... của trang Sau đó, hệ điều hành phải dịch tham chiếu này vào một địa chỉ bộ nhớ vật lý Vì bảng này được sắp xếp bởi địa chỉ ảo, hệ điều hành có thể tính toán nơi trong bảng mà mục từ địa chỉ vật lý được nối kết tới và sử dụng giá trị đó trực tiếp Một trong những khó khăn của phương pháp này là mỗi bảng trang có thể chứa hàng triệu mục từ Các bảng này có thể tiêu tốn lượng lớn bộ nhớ vật lý, được yêu cầu

Ngày đăng: 04/06/2016, 10:59

Từ khóa liên quan

Mục lục

  • PHẦN 1.Mục đích

  • PHẦN 2.Ứng dụng

    • PHẦN 3. Đặt vấn đề

      • 3.1. Liên kết địa chỉ

      • 3.2. Không gian địa chỉ luận lý và không gian địa chỉ vật lý

      • 3.3. Nạp động

      • 3.4. Liên kết động và các thư viện được chia sẻ

      • 3.5. Phủ lắp

      • PHẦN 4.Hoán vị

      • PHẦN 5.Cấp phát bộ nhớ liên tục

        • 5.1. Bảo vệ bộ nhớ

        • 5.2. Hệ thống đơn chương

        • 5.3. Hệ thống đa chương với phân khu cố định

        • 5.4. Hệ thống đa chương với phân khu động

        • 5.5. Quản lý bộ nhớ với hệ thống bạn thân

        • 5.6. Phân mảnh

        • PHẦN 6.Cấp phát bộ nhớ không liên tục

          • 6.1. Phân trang

            • 6.1.1. Phương pháp cơ bản

            • 6.1.2. Hỗ trợ phần cứng

            • 6.1.3. Sự bảo vệ

            • 6.1.4. Cấu trúc bảng trang

              • 6.1.4.1. Bảng trang phân cấp

              • 6.1.4.2. Bảng trang được băm

              • 6.1.4.3. Bảng trang đảo

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

Tài liệu liên quan