Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p3

5 7 0
Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p3

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

Thông tin tài liệu

Hình 3.20.b: ”Sau” copy-on-write Một ứng dụng của copy-on-write là để cài đặt điểm ngắt hỗ trợ trong các trình gỡ rối. Ví dụ, mặc định, các trang mã bắt đầu chỉ thực thi. Tuy nhiên, nếu một lập trình viên thiết đặt một điểm ngắt trong khi gỡ rối một chương trình, thì trình gỡ rối phải thêm một chỉ thi điểm ngắt vào mã. Nó thực hiện điều đó bằng cách đầu tiên thay đổi sự bảo vệ trang thành PAGE_EXECUTE_READWRITE và sau đó thay đổi luồng chỉ thị. ...

y o c u -tr a c k c Hình 3.20.b: ”Sau” copy-on-write Một ứng dụng copy-on-write để cài đặt điểm ngắt hỗ trợ trình gỡ rối Ví dụ, mặc định, trang mã bắt đầu thực thi Tuy nhiên, lập trình viên thiết đặt điểm ngắt gỡ rối chương trình, trình gỡ rối phải thêm thi điểm ngắt vào mã Nó thực điều cách thay đổi bảo vệ trang thành PAGE_EXECUTE_READWRITE sau thay đổi luồng thị Bởi trang mã phần mapped section, nên trình quản lý nhớ tạo bảo riêng cho tiến trình với tập điểm ngắt, tiến trình khác tiếp tục sử dụng trang mã chưa sửa đổi Hệ thống POSIX lợi dụng copy-on-write để cài đặt chức fork (phân nhánh) Điển hình, ứng dụng UNIX gọi hàm fork để tạo tiến trình khác, điều mà tiến trình thực gọi hàm exec để khởi tạo lại không gian địa với ứng dụng thực thi Thay chép tồn khơng gian địa fork, tiến trình chia sẻ trang tiến trình cha cách đánh dấu chúng copy-on-write Nếu tiến trình ghi lên liệu, riêng tiến trình thực Nếu khơng, hai tiến trình tiếp tục chia sẻ khơng có việc chép thực Một cách hay cách khác, trình quản lý nhớ chép trang tiến trình cố gắng ghi thay chép tồn khơng gian địa  AWE: Address Windowing Extension Mặc dù hệ điều hành Windows 2000 hỗ trợ 64 GB nhớ vật lý, tiến trình người sử dụng 32-bit có khơng gian địa ảo GB GB Để cho phép tiến trình 32-bit định vị truy xuất nhiều nhớ vật lý hơn, thể khơng gian địa bị giới hạn nó, Windows 2000 cung cấp tập hàm gọi Address Windowig Extensions (AWE) Ví dụ, hệ thống Windows 2000 Advanced Server với GB nhớ vật lý, ứng dụng sở liệu server sử dụng AWE để định vị sử dụng gần GB nhớ cache sở liệu Việc định vị sử dụng nhớ thông qua hàm AWE thực qua ba bước: Định vị nhớ vật lý để sử dụng .d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Tạo vùng không gian địa ảo để hoạt động cửa sổ để ánh xạ khung nhìn nhớ vật lý Ánh xạ khung nhìn nhớ vật lý vào cửa sổ Hình 3.21: Sử dụng AWE để ánh xạ nhớ vật lý Để định vị nhớ vật lý, ứng dụng gọi hàm Win32 AllocateUserPhysicalPages Ứng dụng sau sử dụng hàm Win32 VirtualAlloc với cờ MEM_PHYSICAL để tạo cửa sổ phần riêng khơng gian địa tiến trình mà ánh xạ đến số tất nhớ vật lý định vị trước Bộ nhớ AWE định vị sau với gần tất hàm Win32 API Nếu ứng dụng tạo cửa sổ 256Mb không gian địa định vị 4Gb nhớ vật lý (trên hệ thống với GB nhớ vật lý), ứng dụng sử dụng hàm Win32 MapUserPhysicalPages hay MapUserPhysicalPagesScatter để truy xuất phần cửa sổ không gian địa ảo xác định lượng nhớ vật lý mà ứng dụng truy xuất với ánh xạ định Hình 3.21 trình bày cửa sổ AWE không gian địa ứng dụng phục vụ ánh xạ đến vùng nhớ vật lý định vị trước AllocateUserPhysicalPages Các hàm AWE tồn tất ấn Windows 2000 sử dụng bất chấp hệ thống có nhớ vật lý Tuy nhiên, AWE hữu ích hệ thống với nhiều GB nhớ vật lý, cách cho tiến trình 32-bit trực tiếp sử dụng nhiều GB nhớ Cuối cùng, có số hạn chế việc định vị nhớ định xạ hàm d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c AWE:  Các trang khơng thể chia sẻ tiến trình  Cùng trang vật lý ánh xạ nhiều địa ảo tiến trình  Sự bảo vệ trang giới hạn đến read/write III.8.3 Address Space Layout Theo mặc định, tiến trình người sử dụng phiên 32-bit Windows 2000 có 2Gb khơng gian địa riêng; hệ điều hành giữ 2Gb Windows 2000 Advanced Server Windows 2000 Datacenter Server hỗ trợ tuỳ chọn thời điểm khởi động cho phép khơng gian địa tiến trình/chương trình người sử dụng lên đến 3Gb Tùy chọn không gian địa 3Gb mang lại cho tiến trình khơng gian địa 3Gb (dành 1Gb cho khơng gian hệ thống) Đặc tính thêm vào giải pháp tình để đáp ứng cần thiết cho ứng dụng server sở liệu để giữ nhiều liệu nhớ so với thực với không gian địa 2Gb Không gian địa ảo hệ điều hành windows trước tổ chức khác so với Windows 2000 Nó cung cấp khơng gian địa ảo 32 bít 4Gb cấp phát khơng gian địa 2Gb riêng cho tiến trình người sử dụng, chia 2Gb cịn lại thành phần, 1Gb cho không gian hệ thống, 1Gb dùng làm không gian chia sẻ cho tất tiến trình người sử dụng  Khơng gian địa hệ thống: Trong kiến trúc Intel x86, không gian địa 2Gb hệ thống phân thành vùng khác nhau, mơ tả hình 3.22 sau: Trong đó:  System code: Chứa hệ điều hành, HAL điều khiển thiết bị sử dụng để boot hệ thống  System mapped views: Sử dụng để ánh xạ Win32k.Sys, nạp phần hệ thống Win32 chế đọ kernel mode điều khiển đồ hoạ  Session space: Được sử dụng để ánh xạ thông tin đến session người sử dụng cụ thể  Process page tables and page directory: Được dùng để chứa bảng trang tiến trình danh mục bảng trang  Hyperspace: Đây vùng đặc biệt, sử dụng để ánh xạ danh sách working set tiến trình để ánh xạ tạm trang vật lý khác  System working set list: Chứa trúc liệu danh sách working set mà mơ tả working set hệ thống .d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c  System cache: Không gian địa ảo sử dụng để ánh xạ file mở hệ thống cache  Paged pool: Chứa pool phân trang  System page table entries (PTEs): Pool PTEs hệ thống sử dụng để ánh xạ trang hệ thống như: không gian I/O, stack kernel danh sách mô tả nhớ  Nonpaged pool: Chứa pool không phân trang  Crash dump information: Được dự trữ để ghi thông tin trạng thái hệ thống Crash  HAL usage: Hệ thống nhớ dự trữ cho kiến trúc HAL đặc biệt Hình 3.22: Phân lớp khơng gian địa x86 Chú ý: Khi khởi tạo hệ thống, trình quản lý nhớ tạo hai kiểu vùng nhớ pool định kích thước tự động mà thành phần chế độ kernel sử dụng để định vị nhớ hệ thống:  Vùng Pool không phân trang: bao gồm vùng địa ảo hệ thống bảo đảm tồn nhớ vật lý tất thời điểm truy xuất mà không mắc phải lỗi trang .d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c  Vùng pool phân trang: vùng nhớ ảo khơng gian hệ thống phân trang ngồi hệ thống Các trình điều khiển thiết bị sử dụng vùng phân trang Cả hai vùng nhớ định vị phần hệ thống không gian địa ánh xạ vào không gian địa ảo tiến trình Trình Excutive cung cấp thường trình để định vị giải phóng từ vùng III.8.4 Chuyển đổi địa  Sơ đồ chuyển đổi địa ảo thành địa vật lý Theo mặc định hệ điều hành Windows 2000 chạy hệ thống x86 sử dụng cấu trúc bảng trang cấp (two-level) để chuyển đổi địa ảo thành địa vật lý 32 bít khơng gian địa ảo chia thành thành phần: 10 bít cao Page Directory Index, 10 bít Page Table Index, 12 bít thấp Byte Index ( Byte Index rộng 12 bít x86 kích thước page 4096 byte (212 = 4096)) Hình vẽ 3.23 sau cho thấy ý nghĩa sử dụng ba thành phần cách chuyển đổi từ địa ảo 32 bít thành địa vật lý hệ thống x86_Windows 2000 xem lại mục III.2.3.c trên) Hình 3.23: Sơ đồ chuyển địa ảo thành vật lý hệ thống x86 Sau là bước thực việc chuyển đổi địa ảo theo sơ đồ trên: Bộ phận phần cứng quản lý nhớ tìm đến danh mục bảng trang (page directory) tiến trình Thành phần Page Directory Index sử dụng để mục vào page directory để tìm mục vào danh mục bảng trang (PDE: page directory entry), mà mơ tả vị trí bảng trang (page table) cần để ánh xạ địa ảo PDE chứa số hiệu khung trang (PFN: page frame number) bảng trang (nếu thường trú nhớ Vì bảng trang d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c ... địa ánh xạ vào khơng gian địa ảo tiến trình Trình Excutive cung cấp thường trình để định vị giải phóng từ vùng III.8.4 Chuyển đổi địa  Sơ đồ chuyển đổi địa ảo thành địa vật lý Theo mặc định hệ... cách chuyển đổi từ địa ảo 32 bít thành địa vật lý hệ thống x86_Windows 2000 xem lại mục III.2.3.c trên) Hình 3.23: Sơ đồ chuyển địa ảo thành vật lý hệ thống x86 Sau là bước thực việc chuyển đổi địa. .. chia sẻ cho tất tiến trình người sử dụng  Không gian địa hệ thống: Trong kiến trúc Intel x86, không gian địa 2Gb hệ thống phân thành vùng khác nhau, mô tả hình 3.22 sau: Trong đó:  System code:

Ngày đăng: 08/05/2021, 18:03

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

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

Tài liệu liên quan