1. Trang chủ
  2. » Giáo án - Bài giảng

hệ điều hành nguyễn phú trương chương7 quản lý bộ nhớ sinhvienzone com

37 52 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 917,61 KB

Nội dung

Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 QUẢN LÝ BỘ NHỚ I 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 II Giới thiệu 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 baremachine) 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 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 III Đặ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 III.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 q trình để thực thi Phụ thuộc vào việc quản lý nhớ dùng, q 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 q trình hàng đợi nhập nạp q trình vào nhớ Khi q trình thực thi, truy xuất thị liệu từ nhớ Cuối cùng, q 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 q 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 137 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 q trình nằm đâu nhớ mã tuyệt đối phát sinh Thí dụ, biết trước q 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 138 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 • Thời gian thực thi: q 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 III.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 (memorymanagement 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 q 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ị Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 139 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 III.3 Nạp động Trong thảo luận gần đây, tồn chương trình liệu trình phải nhớ vật lý để q trình thực thi Kích thước q 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ã 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 tồn chương trình lớn, phần dùng (và nạp) nhỏ nhiều Nạp động khơng 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 III.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ì hỗn việc nạp bị trì hỗ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 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 140 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 III.5 Phủ lắp Để 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ó, khơng thể chạy q 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 Hình 0-3- Các phủ lắp cho hợp ngữ dịch hai lần Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 141 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 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 IV Hốn vị Một q trình cần nhớ để thực thi Tuy nhiên, q trình hố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 hốn vị vào (swap in) q 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 tốn thực hốn vị Hình 0-4- Hốn vị hai trình dùng đĩa backing store Một biến thể sách hốn vị dùng cho giải thuật định thời sở ưu tiên Nếu q trình có độ ưu tiên cao đến muốn phụ vụ, quản lý nhớ hốn vị q trình có độ ưu tiên thấp nạp thực thi q trình có độ ưu tiên cao Khi q trình có độ ưu tiên cao kết thúc, q trình có độ ưu tiên thấp hố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, q trình hốn vị hố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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 142 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 q 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, khơng có vùng nhớ trống, phân phát hoán vị trình hành nhớ hốn vị vào q 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 để hốn vị q 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 hốn vị q trình, phải đảm bảo hồn tồ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 hốn vị q 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, q trình khơng thể hốn vị Giả sử thao tác nhập/xuất xếp hàng chờ thiết bị bận Sau đó, hốn vị q trình P1 hố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 q trình khơng hốn vị q 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 q trình hốn vị vào V 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 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 V.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ệ q trình từ q trình khác Chúng ta cung cấp bảo vệ cách dùng ghi tái định vị Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 143 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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ớ, dùng khơng gian cho mục đích khác Những mã thường gọi mã hệ điều hành tạm thời (transient operating system code); đến u cầu Do đó, dùng mã thay đổi kích thước hệ điều hành thực thi chương trình Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 144 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 V.2 Hệ thống đơn chương Trong phương pháp nhớ chia sẻ cho hệ điều hành chương trình người sử dụng Tại thời điểm, phần nhớ hệ điều hành chiếm giữ, phần lại thuộc trình người dùng hệ thống (Hình VII-6) Q trình tồn quyền sử dụng nhớ dành cho 0xFFF… User process Operating system Hình 0-6 Tổ chức nhớ hệ thống đơn chương Khi nhớ tổ chức theo cách thức này, xử lý chương trình thời điểm Quan sát hoạt động trình, nhận thấy nhiều tiến trình trải qua phần lớn thời gian để chờ thao tác nhập/xuất hoàn thành Trong suốt thời gian này, CPU trạng thái rỗi Trong trường hợp thế, hệ thống đơn chương không cho phép sử dụng hiệu CPU Ngồi ra, đơn chương khơng cho phép nhiều người sử dụng làm việc đồng thời theo chế tương tác Để nâng cao hiệu suất sử dụng CPU, cần cho phép chế độ đa chương mà trình chia sẻ CPU với để hoạt động đồng hành V.3 Hệ thống đa chương với phân khu cố định Một phương pháp đơn giản để cấp phát nhớ chia nhớ thành phân khu có kích thước cố định Mỗi phân khu chứa xác q trình Do đó, cấp độ đa chương giới hạn số lượng phân khu Trong phương pháp đa phân khu, phân khu rảnh, trình chọn từ hàng đợi nhập nạp vào phân khu trống Khi trình kết thúc, phân khu trở nên sẳn dùng cho q trình khác Có hai tiếp cận để tổ chức hàng đợi: • Sử dụng nhiều hàng đợi: phân khu có hàng đợi tương ứng (hình VII-7a) Khi trình tạo ra, đưa vào hàng đợi phân khu có kích thước nhỏ thoả nhu cầu chứa Cách tổ chức có khuyết điểm trường hợp hàng đợi số phân khu trống hàng đợi phân khu khác lại đầy, buộc trình hàng đợi phải chờ cấp phát nhớ • Sử dụng hàng đợi: tất trình đặt hàng đợi (hình VII-7b) Khi có phân khu trống, trình hàng đợi có kích thước phù hợp đặt vào phân khu cho xử lý Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 145 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Partition Partition Partition 200K Partition 600K Partition 400K Partition Operating system a Sử dụng nhiều hàng đợi Operating system b Sử dụng hàng đợi Hình 0-7 Cấp phát phân khu có kích thước cố định Khi sử dụng giải thuật người ta muốn tránh hao phí phân khu lớn cho công việc nhỏ, lại xảy bất bình đẳng, bất lợi công việc nhỏ Để giải người ta thêm vào qui luật công việc không bị bỏ qua bị bỏ qua k lần qui định Mỗi lần công việc bị bỏ qua đánh dấu điểm Khi đạt số điểm qui định, khơng bị bỏ qua nữa, nạp vào thực phân khu lớn Phương pháp ban đầu sử dụng hệ điều hành IBM OS/360, gọi MFT (Multiprogramming with Fixed number of Tasks) Hiện khơng sử dụng V.4 Hệ thống đa chương với phân khu động Cơ chế tổng quát chế phân khu cố định Nó dùng chủ yếu mơi trường xử lý theo lơ Nhiều ý tưởng trình bày áp dụng tới mơi trường chia thời mà phân đoạn dùng cho việc quản lý nhớ Hệ điều hành giữ bảng hiển thị phần nhớ sẳn dùng phần bận Ban đầu, tất nhớ sẳn dùng cho trình người dùng, xem khối lớn nhớ sẳn dùng hay lỗ Khi trình đến cần nhớ, tìm kiếm lỗ trống đủ lớn cho trình Nếu tìm thấy, cấp phát phần nhớ nhiều lượng yêu cầu, phần lại sẳn dùng để thoả mãn yêu cầu tương lai (Hình VII-8) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 146 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-17 Bit hợp lệ (v) không hợp lệ (i) bảng trang VI.1.4 Cấu trúc bảng trang Trong phần xem xét số kỹ thuật thông dụng để xây dựng cấu trúc bảng trang .VI.1.4.1 Bảng trang phân cấp Hầu hết hệ thống máy tính đại hỗ trợ không gian địa luận lý lớn (232 tới 264) Trong môi trường thế, bảng trang trở nên lớn Thí dụ, xét hệ thống với khơng gian địa luận lý 32 bit Nếu kích thước trang 4KB bảng trang chứa tới triệu mục từ (232/212) Giả sử mục từ chứa bytes, q trình cần tới 4MB 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 tiếp Một giải pháp đơn giản cho vấn đề chia bảng trang thành phần nhỏ Có nhiều cách để đạt phân chia Một cách dùng giải thuật phân trang hai cấp, bảng trang phân trang hình VII-18 Đây thí dụ cho máy 32 bit với kích thước trang 4KB Địa luận lý chia thành số trang chứa 20 bit độ dời trang chứa 12 bit Vì phân trang bảng trang, số trang chia thành số trang 10 bit độ dời trang 10-bit Do đó, địa luận lý sau: Số trang P1 10 P2 10 Độ dời trang d 12 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 159 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-18 Cơ chế bảng trang hai cấp Ở p1 mục bảng trang bên p2 độ dời trang bảng trang bên Phương pháp dịch địa cho kiến trúc hiển thị hình VII-19 Vì dịch địa thực từ phần bảng trang bên ngoài, chế gọi bảng trang ánh xạ chuyển tiếp (forward-mapped page table) Petium-II sử dụng kiến trúc Kiến trúc VAX hỗ trợ biến dạng phân trang hai cấp VAX máy 32-bit với kích thước trang 512 bytes Khơng gian địa luận lý trình chia làm phần nhau, phần chứa 230 bytes Mỗi phần biểu diễn phần khác không gian địa luận lý trình Hai bit cao địa luận lý rõ phần tương ứng 21 bits biểu diễn số trang luận lý phần đó, bits cuối biểu diễn độ dời trang mong muốn Bằng cách chia bảng trang thế, hệ điều hành để phân khu không dùng trình yêu cầu chúng Một địa kiến trúc VAX sau: Phần S Trang P 21 Độ dời D s rõ số phần, p mục bảng trang d độ dời trang Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 160 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Kích thước bảng trang cấp cho trình VAX dùng phần 221 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 hệ thống KB (212) Trong trường hợp này, bảng trang chứa tới 252 mục từ Nếu dùng chế phân trang hai cấp bảng bên trang dài chứa 210 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 ngồi 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 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ý Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 161 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 VI.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 khơng có 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 VI.1.4.3 Bảng trang đảo Thơng thường, q trình có trang gán liền với Bảng trang có mục từ cho trang mà q 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 q 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 tố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 có Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 162 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 thể 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 q 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 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 163 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 q 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 VI.1.5 Trang chia sẻ 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 trangmỗi trang có kích thước 50 KB; kích thước trang lớn dùng để đơn giản hố hình này-đang chia sẻ ba q trình Mỗi q 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 q trình thực thi Do đó, hai hay nhiều q trình thực thi mã thời điểm Mỗi q 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 tồn khơng gian 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 khơng thể dùng có mục từ trang ảo cho trang vật lý trang vật lý khơng thể 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ý Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 164 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-22 chia sẻ mã mơi trường phân trang VI.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ý VI.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 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,… Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 165 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 VI.2.2 Phần cứng 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 166 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 (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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 167 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-25 Thí dụ phân đoạn VI.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 ngồi 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 q 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) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 168 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 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 hồ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 đ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ó Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 169 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 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 VI.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, q 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 q 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 q 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 xố việc phân mãnh bên ngồ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 ngồi nhỏ Vì cá nhân phân đoạn nhỏ tồn q trình nên chúng thích hợp để đặt vào khối nhớ sẳn dùng VI.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 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 q trình Phân khu thứ Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 170 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 hai chứa tới KB phân đoạn chia sẻ tất q 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ả tồn cục (Global Descriptor TableGDL) 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 q 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 32-bit 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 q 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 171 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 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 hố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 VII 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 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 172 https://fb.com/sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 • • • • • 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 q trình cho, tăng cấp độ đa chương cách đóng gói nhiều trình nhớ Để hồ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 ngồi đặ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, khơng thể lưu trữ dạng đặc Hốn vị: giải thuật có hố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, q 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang 173 https://fb.com/sinhvienzonevn ... lỗi tới hệ điều hành Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone. com Trang 158 https://fb .com/ sinhvienzonevn Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành –... Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 khơng sở hữu Khơng có cách định địa nhớ bên ngồi bảng trang bảng chứa trang mà trình sở hữu Vì hệ điều hành quản lý nhớ vật lý nên phải... sinh địa vật lý Hệ điều hành trì bảng trang cho q trình, trì đếm thị lệnh nội dung ghi Bản dùng để dịch địa luận lý thành địa vật lý hệ điều hành phải ánh xạ địa luận lý tới địa vật lý dạng thủ

Ngày đăng: 28/01/2020, 22:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN