Giáo trình hình thành ứng dụng cấu hình trong kỹ thuật tạo table indecator p2

10 5 0
Giáo trình hình thành ứng dụng cấu hình trong kỹ thuật tạo table indecator p2

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

Thông tin tài liệu

Tham khảo tài liệu ''giáo trình hình thành ứng dụng cấu hình trong kỹ thuật tạo table indecator p2'', công nghệ thông tin, đồ họa - thiết kế - flash phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

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 y o c u -tr a c k c phân trang ngoài) Thành phần Page Table Index sử dụng để mục vào page table để tìm mục vào bảng trang (PTE: page table entry), mà mơ tả vị trí vật lý trang ảo địa ảo PTE sử dụng để định vị trang Nếu trang hợp lệ, chứa PFN trang nhớ vật lý chứa trang ảo Nếu PTE báo trang khơng hợp lệ, trình quản lý nhớ điều khiển lỗi trang cố gắng làm cho trở thành hợp lệ Khi PTE trỏ đến trang hợp lệ, Byte Index sử dụng để tìm đến địa xác nhớ phạm vị trang vật lý tương ứng với địa ảo 32 bít ban đầu mà tiến trình phát Sau xem xét cách chi tiết cấu trúc page directory, page table page table entry để thấy đặc thù Windows 2000 so với mà ta khảo sát cách tổng quát mục trước:  Danh mục bảng trang (page directory) Mỗi tiến trình có có page directory đơn, trình quản lý nhớ dùng trang để tạo đồ định bảng trang tiến trình Địa vật lý page directory tiến trình lưu trữ block KPROCESS Địa vật lý (cơ sở) page directory ghi điều khiển CR3 hệ thống x86 Mỗi có chuyển đổi ngữ cảnh xuất với tiểu trình mằm tiến trình khác tiến trình giá trị ghi CR3 nạp vào block KPROCESS tiến trình khác đó.Việc chuyển đổi ngữ cảnh tiểu trình tiến trình khơng nạp lại địa vật lý page directory tất tiểu trình tiến trình chia sẻ khơng gian địa tiến trình Page directory bao gồm các mục vào danh mục bảng trang (PDE: page Directory Entry) Mỗi entry dài byte (8 byte hệ thống chạy chế độ PAE), để mô tả trạng thái vị trí tất bảng trang tiến trình Các bít PDE tương tự bít PTE Trên hệ thống x86, 1024 (2048 hệ thống PAE) yêu cầu để mô tả đầy đủ 4Gb không gian địa ảo Page directory tiến trình ánh xạ đến bảng trang chứa 1024 PDE Do đó, page directory index cần phải rộng 10 bít (210 = 1024)  Bảng trang tiến trình bảng trang hệ thống Trước tham chiếu đến byte phạm vi trang byte offset, CPU cần phải tìm đến trang mà chứa byte yêu cầu liệu Để tìm đến trang này, hệ điều hành xây dựng trang khác nhớ, trang chứa thông tin ánh xạ cần thiết để tìm đến trang mong muốn chứa liệu Trang thông tin ánh xạ gọi page table Vì Windows 2000 cung cấp khơng gian địa riêng cho tiến trình nên tiến trình sở hữu tập bảng trang tiến trình để 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 ánh xạ đến không gian địa riêng đó, ánh xạ khác tiến trình Các bảng trang mơ tả khơng gian hệ thống chia sẻ cho tất tiến trình Khi tiến trình tạo, PDE khơng gian hệ thống khởi tạo để đến bảng trang hệ thống tồn Nhưng tất tiến trình có điểm nhìn không gian hệ thống Khi bảng trang hệ thống thay đổi đến vị trí cấp phát phận quản lý nhớ không cập nhật tất page directory tiến trình, trình quản lý nhớ cập nhật page directory tiến trình tiến trình tham chiếu đến địa ảo Hình 3.26: Bảng trang hệ thống bảng trang riêng tiến trình Số lượng PTE Windows 2000 tính tốn dựa vào kích thước nhớ Ta quy định số lượng cách thay đổi Registry, giá trị lớn mà hệ thống x86 chấp nhận 128.000 PTE  Các mục vào bảng trang (PTE) Một PTE dài 32 bít, gồm 13 trường mơ tả hình đây: Sau mơ tả bít trạng thái bít bảo vệ PTE: 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      Accesed: Trang đọc Cache disabled: Cấm cache trang Dirty: Trang ghi đến Global: Sự chuyển đổi áp dụng đến tất tiến trình Large page: Chỉ báo PDE ánh xạ đến trang 4Mb hệ thống với 128Mb (hoặc hơn) nhớ  Owner: Chỉ báo có hay khơng code user-mode thể truy cập trang có hay không trang giới hạn truy cập kernel-mode  Valid: Chỉ báo có hay khơng chuyển đổi ánh xạ đến trang nhớ vật lý  Write through: Cấm cache cho việc ghi đến trang với mục địch thay đổi ghi đến đĩa  Write: Trên hệ thống uniprocessor, báo có hay khơng trang read/write read-only Trên hệ thống multiprocessor, báo có hay khơng trang write (bit Write lưu trữ bit dự trữ PTE) Trên hệ thống x86, phần cứng PTE chứa bít Dirty bít Accesed Bít Accessed bị xố (= 0) trang vật lý trình bày PTE đọc ghi, Processor thiết lập bít (= 1) trang đọc ghi lần Processor thiết lập bít Dirty trang lần ghi Kiến trúc x86 thêm vào bít Write để cung cấp bảo vệ trang, bít bị xố trang trở thành read-only, bít thiết lập trang write/read Nếu tiểu trình cố gắng ghi đến trang mà bít Write = trình quản lý nhớ phát sinh ngoại lệ truy cập, phận điều khiển lỗi truy cập phải xác định có hay khơng tiểu trình ghi đến trang (trong trường hợp copy-on-write) có hay không vi phạm truy cập phải sinh Trên phần cứng x86, PTE ln rộng byte (32 bít), byte hệ thống cho phép chế độ PAE, bảng trang chứa 1024 PTE , 512 hệ thống PAE (4096 byte page, byte PTE) ánh xạ 1024 trang (512 page PAE) cho tổng số 4Mb (2 Mb PAE) 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 liệu Trường page table index địa ảo đến PTE page table, để từ ánh xạ đến trang liệu mà tiến trình yêu cầu Trên hệ thống x86, page table index rộng 10 bít (9 bít PAE), cho phép tham chiếu đến 1024 PTE (512 PAE) Tuy nhiên, windows 2000 cung cấp 4Gb không gian địa ảo riêng, nên cần nhiều page table để ánh xạ tồn khơng gian địa Ta tính số lượng page table yêu cầu để ánh xạ toàn khơng gian địa 4Gb tiến trình sau: 4Gb/4Mb = 1024 page table, 2048 page table 4Gb/2Mb =1028 page table PAE (mỗi bảng trang hệ thống x86 ánh xạ 4Mb (2 Mb PAE) trang liệu)  Byte phạm vi trang (byte within page) Mỗi trình quản lý nhớ tìm thấy trang vật lý tương ứng với địa ảo mà tiến trình đưa để truy xuất liệu nhớ, phải tìm đến liệu yêu cầu phạm vi trang Đây nơi thành phần Byte Index vào Byte Index cho CPU biết byte liệu trang mà tiến trình muốn tham chiếu đến Trên hệ thống x86, byte index rộng 12 bít, cho phép tiến trình tham chiếu đến 4096 byte liệu (đây kích thước trang)  Mở rộng địa vật lý Tất processor thuộc họ Intel x86 bao gồm chế độ ánh xạ nhớ gọi PAE (Physical Address Extension) Với chipset thích hợp chế độ PAE cho phép truy cập đến 64GB nhớ vật lý Khi thực thi x86 chế độ PAE, thành phần quản lý nhớ (MMU) processor chia địa ảo thành thành phần Trong trường hợp hệ thống sử dụng bảng trang ba cấp (three-level) để thực việc chuyển đổi địa Hình 3.24: Ánh xạ trang với PAE 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 MMU cài đặt page directory page table cấp thứ page directory pointer table PAE đánh địa nhớ nhiều chế độ chuẩn mở rộng cấp bảng trang mà PDE PTE rộng 64 bít khơng phải 32 bít Với địa vật lý bên 24 bít, nên x86 có khả quản lý 64Gb (224+12 byte) nhớ Để chọn Windows 2000 hoạt đọng chế độ PAE ta phải chọn boot với tham số khoá chuyển /PAE Boot.ini Chế độ hỗ trợ tập tin Ntkrpamp.exe Chương IV QUẢN LÝ TẬP TIN VÀ ĐĨA Tất ứng dụng máy tính cần lưu trữ đọc lại thơng tin mà nhận vào xử lý Trong tiến trình chạy lưu trữ lượng giới hạn thông tin phạm vị khơng gian địa sở hữu Tuy nhiên khả lưu trữ bị giới hạn kích thước khơng gian địa ảo hệ thống Đối với vài ứng dụng khơng gian vừa đủ, số ứng dụng khác q nhỏ Mặt khác lưu giữ thông tin không gian địa tiến trình thơng tin bị tiến trình kết thúc Vấn đề thứ ba phải đáp ứng việc truy cập thông tin đông thời tiến trình mơi trường hệ điều hành đa nhiệm Những vấn đề biết chương Quản lý tiến trình Quản lý nhớ tài liệu Để giải vấn đề hệ điều hành phải thiết kế hệ thông lưu trữ thông tin cho: Thứ phải lưu trữ khối lượng lớn thông tin Thứ hai thơng tin phải bảo tồn tiến trình sử dụng kết thúc Và cuối có nhiều tiến trình truy xuất thơng tin đồng thời Giải pháp cho tất vấn đề lưu trữ thông tin đĩa thiết bị media khác đơn vị liệu, gọi file (tập tin) Các tiến trình đọc thông tin file ghi thông tin vào file cần thiết Thông tin lưu trữ file phải không bị tác động việc tạo kết thúc tiến trình Các file quản lý hệ điều hành Thành phần hệ điều hành tham gia trực tiếp vào trình quản lý file đĩa gọi hệ thống file Hệ điều hành phải xây dựng cấu trúc tổ chức 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 ... thống Đối với vài ứng dụng khơng gian vừa đủ, số ứng dụng khác q nhỏ Mặt khác lưu giữ thông tin không gian địa tiến trình thơng tin bị tiến trình kết thúc Vấn đề thứ ba phải đáp ứng việc truy cập... 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... 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

Ngày đăng: 08/05/2021, 17:21

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

Tài liệu liên quan