1. Trang chủ
  2. » Công Nghệ Thông Tin

Hệ điều hành các dịch vụ hệ điều hành nguyễn phú trường 6

30 537 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 30
Dung lượng 1,08 MB

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 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 hiểu chi tiết cấp phát nhớ vật lý; khung cấp phát, khung trống, tổng khung có bao nhiêu,…Thơng tin giữ cấu trúc liệu gọi bảng khung Bảng khung có mục từ cho khung trang vật lý, hiển thị khung trang rảnh hay cấp phát Nếu khung trang cấp phát, xác định trang trình cấp Hình 0-15 khung trống (a) trước cấp phát (b) sau cấp phát Ngoài ra, hệ điều hành phải biết trình người dùng hoạt động không gian người dùng, tất địa luận lý phải ánh xạ để phát sinh địa vật lý Nếu người dùng thực lời gọi hệ thống (thí dụ: để thực nhập/xuất) cung cấp địa tham số (thí dụ: vùng đệm), địa phải ánh xạ để 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ủ cơng Nó dùng phân phát CPU để địa bảng trang phần cứng trình cấp phát CPU Do đó, trang gia tăng thời gian chuyển đổi ngữ cảnh VI.1.2 Hỗ trợ phần cứng Mỗi hệ điều hành có phương pháp riêng để lưu trữ bảng trang Hầu hết cấp phát bảng trang cho trình Một trỏ tới bảng trang lưu trữ với giá trị ghi ghi khác (giống đếm thị lệnh) khối điều khiển trình Khi phân phát u cầu bắt đầu q trình, phải nạp lại ghi người dùng định nghĩa giá trị bảng trang phần cứng phù hợp từ bảng trang người dùng lưu trữ Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 155 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Cài đặt phần cứng bảng trang thực nhiều cách Cách đơn giản nhất, bảng trang cài đặt tập hợp ghi tận hiến Các ghi nên xây dựng với tính logic tốc độ cao để thực việc dịch địa trang hiệu Mọi truy xuất tới nhớ phải kiểm tra kỹ lưỡng bảng đồ trang, tính hiệu vấn đề xem xét chủ yếu Bộ phân phát CPU nạp lại ghi nạp lại ghi khác Dĩ nhiên, thị để nạp hay hiệu chỉnh ghi bảng trang phải cấp quyền hệ điều hành thay đổi đồ nhớ DEC PDP-11 thí dụ kiến trúc Địa chứa 16 bits, kích thước trang KB Do đó, bảng trang chứa mục từ mà chúng giữ ghi nhanh Sử dụng ghi cho bảng trang phù hợp bảng trang có kích thước nhỏ (thí dụ: 256 mục từ) Tuy nhiên, hầu hết máy tính tương thời cho phép bảng trang lớn (thí dụ, triệu mục từ) Đối với máy này, việc sử dụng ghi nhanh để cài đặt bảng trang không khả thi Hay là, bảng trang giữ nhớ chính, ghi bảng trang (page-table base registerPTBR) tới ghi bảng trang Thay đổi bảng trang yêu cầu thay đổi ghi, cắt giảm thời gian chuyển ngữ cảnh Vấn đề với tiếp cận thời gian yêu cầu để truy xuất vị trí nhớ người dùng Nếu muốn truy xuất vị trí i, phải xác định mục bảng trang, sử dụng giá trị độ dời PTBR số trang cho i Tác vụ yêu cầu truy xuất nhớ Nó cung cấp số khung nối kết với độ dời trang để sinh địa thực Sau đó, truy xuất tới nơi mong muốn nhớ Với chế này, hai truy xuất nhớ yêu cầu để truy xuất byte (một cho mục từ bảng trang, cho byte đó) Do đó, truy xuất nhớ bị chậm hai yếu tố Sự trì hỗn khơng thể chấp nhận hầu hết trường hợp phải sử dụng đến hoán vị! Giải pháp chuẩn cho vấn đề dùng lưu trữ (cache) phần cứng đặc biệt, nhỏ, tìm kiếm nhanh gọi translation look-aside buffer (TLB) TLB nhớ kết hợp tốc độ cao Mỗi mục từ TLB chứa hai phần: khoá (key) giá trị (value) Khi nhớ kết hợp biểu diễn với thành phần, so sánh với tất khoá lúc Nếu thành phần tìm thấy, trường giá trị tương ứng trả Tìm kiếm nhanh phần cứng đắt Điển hình, số lượng mục từ TLB nhỏ, thường từ 64 đến 1024 TLB dùng với bảng trang cách sau TLB chứa vài mục từ bảng trang Khi địa luận lý phát sinh CPU, số trang diện TLB Nếu số trang tìm thấy, khung sẳn dùng dùng để truy xuất nhớ Tồn tác vụ 10% thời gian dùng tham chiếu nhớ không ánh xạ Nếu số trang không TLB (còn gọi TLB), tham chiếu nhớ tới bảng trang phải thực Khi số khung đạt được, dùng để truy xuất nhớ (như hình VII-16) Ngồi ra, thêm số trang số khung tới TLB chúng tìm thấy nhanh tham chiếu Nếu TLB đầy mục từ, hệ điều hành phải chọn mục từ để thay Các sách thay đa dạng từ sử dụng gần (least recently used-LRU) tới chọn ngẫu nhiên Ngoài ra, số TLB cho phép mục từ wired down Nghĩa là, chúng khơng thể xố khỏi TLB Điển hình, mục từ cho nhân thường wired down Một số TLB lưu trữ định danh không gian địa (address-space identifersASID) mục từ TLB Một ASID định danh trình dùng để cung cấp việc bảo vệ không gian địa cho q trình Khi TLB cố Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 156 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 gắng phân giải số trang ảo, đảm bảo ASID cho q trình chạy trùng khớp với ASID nối kết với trang ảo Nếu ASID không khớp, chúng xem TLB Ngoài ra, để cung cấp việc bảo vệ không gian địa chỉ, ASID cho phép TLB chứa mục từ cho nhiều trình khác lúc Nếu TLB không hỗ trợ ASID riêng lần bảng trang chọn (thí dụ, chuyển ngữ cảnh), TLB phải đẩy (hay xoá) để đảm bảo trình thực thi khơng sử dụng thơng tin dịch sai Ngược lại, có mục từ cũ TLB chứa địa ảo có địa không hay không hợp lệ để lại từ trình trước Hình 0-16 phần cứng phân trang với TBL Phần trăm thời gian mà số trang xác định tìm thấy TLB gọi tỉ lệ chập (hit ratio) Tỉ lệ chập 80% có nghĩa tìm số trang mong muốn TLB 80% thời gian Nếu 20 nano giây để tìm TLB 100 nano giây để truy xuất nhớ, truy xuất nhớ ánh xạ 120 nano giây số trang TLB Nếu khơng tìm số trang TLB (20 nano giây) trước hết phải truy xuất nhớ cho bảng trang số khung (100 nano giây), sau truy xuất byte mong muốn nhớ (100 nano giây), tổng thời gian 220 nano giây Để tìm thời gian truy xuất nhớ hiệu quả, phải đo trường hợp với xác suất nó: Thời gian truy xuất hiệu = 0.80 x 120 + 0.2 x 220 = 140 nano giây Trong thí dụ này, gặp phải 40% chậm lại thời gian truy xuất nhớ (từ 100 tới 140 nano giây) Đối với tỉ lệ chậm 98%, có: Thời gian truy xuất hiệu = 0.98 x 120 + 0.02 x 220 = 122 nano giây Tỉ lệ chập tăng tạo 22% chậm lại thời gian truy xuất Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 157 Đạ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.3 Sự bảo vệ Bảo vệ nhớ môi trường phân trang thực bit bảo vệ gán liền với khung Thông thường, bit giữ bảng trang Một bit định nghĩa trang để đọc-viết hay đọc Mỗi tham chiếu tới nhớ tìm khắp bảng trang để xác định số khung tương ứng Tại thời điểm địa vật lý tính , bit bảo vệ kiểm tra để thẩm định khơng có thao tác viết thực tới trang đọc Cố gắng viết tới trang đọc gây trap phần cứng tới hệ điều hành (hay xung đột nhớ bảo vệ) Chúng ta dễ dàng mở rộng tiếp cận để cung cấp cấp độ bảo vệ chi tiết Chúng ta tạo phần cứng để cung cấp bảo vệ đọc, đọc viết, thực thi Hay cách cung cấp bit bảo vệ riêng cho loại truy xuất, cho phép kết hợp truy xuất này; cố gắng không hợp lệ trap tới hệ điều hành Một bit thường gán tới mục từ bảng trang: bit hợp lệkhông hợp lệ Khi bit đặt “hợp lệ” giá trị hiển thị trang gán không gian địa luận lý nhớ trang hợp lệ Nếu bit đặt “không hợp lệ”, giá trị hiển thị trang khơng khơng gian địa luận lý q trình Các địa không hợp lệ trap cách sử dụng bit hợp lệ-không hợp lệ Hệ điều hành thiết lập bit cho trang phép hay khơng cho phép truy xuất tới trang Thí dụ, hệ thống với không gian địa 14 bit (0 tới 16383), có chương trình sử dụng địa tới 10468 Cho kích thước trang 2KB, xem trường hợp hình VII-17 Địa trang 0, 1, 2, 3, 4, thường ánh xạ khắp bảng trang Tuy nhiên, nỗ lực để tạo địa trang hay nhận thấy bit hợp lệ-không hợp lệ đặt khơng hợp lệ máy tính trap tới hệ điều hành (tham chiếu trang không hợp lệ) Vì chương trình mở rộng tới địa 10468, tham chiếu vượt ngồi địa không hợp lệ Tuy nhiên, tham chiếu tới trang xem hợp lệ địa tới 12287 hợp lệ Chỉ địa từ 12288 tới 16383 không hợp lệ Vấn đề kích thước trang 2KB phản ánh phân mãnh việc phân trang Rất trình dùng tất dãy địa Thật vậy, nhiều q trình dùng phần nhỏ khơng gian địa cịn trống cho chúng Nó lãng phí nhiều trường hợp để tạo bảng trang với mục từ cho trang dãy địa Hầu hết bảng không dùng mang đến không gian nhớ có giá trị Một số hệ thống cung cấp phần cứng, dạng ghi có chiều dài bảng trang (page-table length register-PTLR) để hiển thị kích thước bảng trang Giá trị kiểm tra dựa địa luận lý để thẩm định địa nằm dãy địa hợp lệ cho trình Lỗi việc kiểm tra gây trap lỗi tới hệ điều hành Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 158 Đạ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, 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 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Độ dời trang d 12 Trang 159 Đạ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 Trang 160 Đạ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 cịn 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 Trang 161 Đạ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 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 Trang 162 Đạ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ịn 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 Trang 163 Đạ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, tồ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 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 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ý 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 Trang 164 Đạ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, 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 ngồi 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 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 trình Phân khu thứ Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 170 Đạ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 Trang 171 Đạ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 cịn 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 Trang 172 Đạ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 trình cho, tăng cấp độ đa chương cách đóng gói nhiều q 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 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 Trang 173 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 tăng việc sử dụng CPU thơng lượng khơng tăng thời gian đáp ứng • u cầu nhập/xuất để nạp hay hốn vị chương trình người dùng nhớ chương trình người dùng chạy nhanh Do đó, chạy chương trình mà khơng nằm hồn tồn nhớ có lợi cho người dùng hệ thống Bộ nhớ ảo tách biệt nhớ luận lý từ nhớ vật lý Việc tách biệt cho phép nhớ ảo lớn cung cấp cho người lập trình nhớ vật lý nhỏ sẳn dùng (hình VIII-1) Bộ nhớ ảo thực tác vụ lập trình dễ nhiều người lập trình khơng cần lo lắng lượng nhớ vật lý sẳn có hay mã thay việc phủ lắp; thay vào đó, người lập trình quan tâm vấn đề lập trình Trên hệ thống hỗ trợ nhớ ảo, việc phủ lắp biến Hình 0-1 Lưu đồ minh hoạ nhớ ảo lơn nhớ vật lý Thêm vào đó, việc tách biệt nhớ luận lý từ nhớ vật lý, nhớ ảo cho phép tập tin nhớ chia sẻ q trình khác thơng qua việc chia sẻ trang Ngoài ra, chia sẻ trang cho phép cải tiến lực tạo trình Bộ nhớ ảo thường cài đặt phân trang theo yêu cầu (demand paging) Nó cài đặt chế phân đoạn Một vài hệ thống cung cấp chế phân đoạn phân trang Trong chế phân đoạn chia thành trang Do đó, tầm nhìn người dùng phân đoạn, hệ điều hành cài đặt tầm nhìn với chế phân trang theo yêu cầu Phân đoạn theo yêu cầu dùng để cung cấp nhớ ảo Các hệ thống máy tính Burrough dùng phân đoạn theo yêu cầu Tuy nhiên, giải thuật thay đoạn phức tạp giải thuật thay trang đoạn có kích thước thay đổi Chúng ta không đề cập phân đoạn theo yêu cầu giáo trình Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 179 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 IV Phân trang theo yêu cầu Một hệ thống phân trang theo yêu cầu tương tự hệ thống phân trang với hốn vị (hình VIII-2) Các q trình định vị nhớ phụ (thường đĩa) Khi muốn thực thi trình, hốn vị vào nhớ Tuy nhiên, thay hốn vị tồn q trình nhớ, dùng hoán vị lười (lazy swapper) Bộ hốn vị lười khơng hốn vị trang vào nhớ trừ trang yêu cầu Vì xem trình chuỗi trang khơng gian địa liên tục có kích thước lớn, nên dùng hốn vị khơng phù hợp kỹ thuật Một hốn vị thao tác tồn trình, ngược lại phân trang (pager) quan tâm với trang riêng rẻ trình Do đó, dùng phân trang (hơn hoán vị) nối kết với phân trang theo yêu cầu Hình 0-2 Chuyển nhớ phân trang tới không gian đĩa liên tục IV.1 Các khái niệm Với chế này, cần số dạng phần cứng hỗ trợ để phân biệt trang nhớ trang đĩa Cơ chế bit hợp lệ-không hợp lệ dùng cho mục đích Tuy nhiên, thời điểm bit đặt “hợp lệ”, giá trị hiển thị trang tham chiếu tới hợp lệ nhớ Nếu bit đặt “không hợp lệ”, giá trị hiển thị trang không hợp lệ (nghĩa trang khơng khơng gian địa q trình) hợp lệ đĩa Mục từ bảng trang cho trang không nhớ đơn giản đánh dấu không hợp lệ, hay chứa địa trang đĩa Trường hợp mơ tả hình VIII-3 Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 180 Đạ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-3 Bảng trang số trang khơng nhớ Chú ý rằng, đánh dấu trang “không hợp lệ” tác dụng q trình khơng truy xuất trang Do đó, đốn tất trang thật cần nhớ, q trình chạy xác mang tất trang vào nhớ Trong trình thực thi truy xuất trang định vị nhớ, việc thực thi xử lý bình thường Nhưng điều xảy trình cố gắng truy xuất trang mà trang khơng mang vào nhớ? Truy xuất trang đánh dấu “không hợp lệ” gây trap lỗi trang (page-fault trap) Phần cứng phân trang, dịch địa thông qua bảng trang, thông báo bit không hợp lệ đặt, gây trap tới hệ điều hành Trap kết lỗi hệ điều hành mang trang mong muốn vào nhớ (trong cố gắng tối thiểu chi phí chuyển đĩa yêu cầu nhớ) lỗi địa không hợp lệ kết việc cố gắng dùng địa nhớ không hợp lệ (như ký hiệu mảng khơng hợp lệ) Do đó, phải sửa trường hợp sơ xuất Thủ tục cho việc quản lý lỗi trang không phức tạp (hình VIII-4) 1) Chúng ta kiểm tra bảng bên (thường giữ với khối điều khiển trình) cho trình này, để xác định tham chiếu truy xuất nhớ hợp lệ hay không hợp lệ 2) Nếu tham chiếu không hợp lệ, kết thúc q trình Nếu hợp lệ, chưa mang trang vào nhớ, mang trang vào 3) Chúng ta tìm khung trống (thí dụ, cách mang trang từ danh sách khung trống) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 181 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 4) Chúng ta lập thời biểu thao tác đĩa để đọc trang mong muốn vào khung trang vừa cấp phát 5) Khi đọc đĩa hoàn thành, sửa đổi bảng bên với trình bảng trang để hiển thị trang nhớ 6) Chúng ta khởi động lại thị mà bị ngắt trap địa khơng hợp lệ Bây q trình truy xuất trang ln nhớ Hình 0-4 Các bước quản lý lỗi trang Vì lưu trạng thái (thanh ghi, mã điều kiện, đếm thị lệnh) trình bị ngắt lỗi trang xảy ra, nên khởi động lại q trình xác nơi trạng thái, ngoại trừ trang mong muốn nhớ truy xuất Trong cách này, thực thi q trình phần chưa nhớ Khi q trình cố gắng truy xuất vị trí không nhớ, phần cứng trap tới hệ điều hành (lỗi trang) Hệ điều hành đọc trang yêu cầu vào nhớ khởi động lại trình thể trang ln nhớ Trong trường hợp xấu nhất, bắt đầu thực thi q trình với khơng trang nhớ Khi hệ điều hành đặt trỏ thị lệnh tới thị trình Tuy nhiên, thị trang không nằm nhớ, trình báo lỗi trang Sau trang mang vào nhớ, trình tiếp tục thực thi, báo lỗi cần trang cần nhớ Tại thời điểm đó, thực thi với khơng có lỗi Cơ chế phân trang yêu cầu (pure demand paging): không mang trang vào nhớ yêu cầu Về lý thuyết, số trình truy xuất nhiều trang nhớ với thực thi thị (một trang cho thị nhiều trang cho liệu), gây lỗi nhiều trang thị Trường hợp dẫn đến lực thực hệ thống khơng thể chấp nhận May thay, phân tích trình thực thi thể hành vi khơng hồn tồn xảy Các chương trình có khuynh hướng tham chiếu cục dẫn đến lực phù hợp từ phân trang yêu cầu Phần cứng hỗ trợ phân trang theo yêu cầu tương tự phần cứng phân trang hoán vị Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 182 Đạ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 trang: bảng có khả đánh dấu mục từ khơng hợp lệ thông qua bit hợp lệ-không hợp lệ hay giá trị đặc biệt bit bảo vệ • Bộ nhớ phụ: nhớ quản lý trang không diện nhớ Bộ nhớ phụ thường đĩa tốc độ cao Nó xem thiết bị hoán vị phần đĩa dùng cho mục đích gọi khơng gian hốn vị Ngồi hỗ trợ phần cứng này, phần mềm xem xét yêu cầu Ràng buộc kiến trúc phải áp đặt Ràng buộc quan trọng yêu cầu khởi động lại thị sau lỗi trang Trong hầu hết trường hợp, yêu cầu dễ dàng thoả mãn Lỗi trang xảy tham chiếu nhớ Nếu lỗi trang xảy việc lấy thị, khởi động lại cách lấy lại thị Nếu lỗi trang xảy lấy toán hạng, phải lấy giải mã lại thị, sau lấy tốn hạng IV.2 Năng lực phân trang theo yêu cầu Phân trang theo yêu cầu có ảnh hưởng lớn lực hệ thống máy tính Để thấy sao, tính thời gian truy xuất hiệu (effective access time) cho nhớ phân trang theo yêu cầu Đối với hầu hết hệ thống máy tính, thời gian truy xuất nhớ, ký hiệu ma, nằm khoảng từ 10 đến 200 nano giây Với điều kiện khơng có lỗi trang, thời gian truy xuất hiệu với thời gian truy xuất nhớ Tuy nhiên, lỗi trang xảy ra, trước hết phải đọc trang tương ứng từ đĩa sau truy xuất từ mong muốn Gọi p xác suất lỗi trang (0 ≤ p ≤ ) Chúng ta mong đợi p gần 0; nghĩa có vài lỗi trang Thời gian truy xuất hiệu là: Thời gian truy xuất hiệu = (1 – p) x ma + p x thời gian lỗi trang Để tính tốn thời gian truy xuất hiệu quả, phải biết phải để phục vụ lỗi trang Để trì mức độ chấp nhận chậm trễ hoạt động hệ thống phân trang, cần phải trì tỷ lệ phát sinh lỗi trang thấp V Thay trang Thay trang thực tiếp cận sau Nếu khơng có khung trống, tìm khung khơng dùng giải phóng Khi giải phóng khung cách viết nội dung tới khơng gian hốn vị thay đổi bảng trang (và bảng trang khác) để hiển thị trang khơng cịn nhớ (hình VIII5) Bây dùng khung giải phóng để quản lý trang cho trình bị lỗi Chúng ta sửa đổi thủ tục phục vụ lỗi trang để chứa thay trang: 1) Tìm vị trí trang mong muốn đĩa 2) Tìm khung trang trống a) Nếu có khung trống, dùng b) Nếu khơng có khung trống, dùng giải thuật thay trang để chọn khung “nạn nhân” c) Viết trang “nạn nhân” tới đĩa; thay đổi bảng trang khung trang tương ứng 3) Đọc trang mong muốn vào khung trang trống; thay đổi bảng trang khung trang 4) Khởi động lại trình Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 183 Đạ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-5 Thay trang Chúng ta phải giải hai vấn đề để cài đặt phân trang theo yêu cầu: phát triển giải thuật cấp phát khung giải thuật thay trang Nếu có nhiều q trình nhớ, phải định khung cấp phát tới q trình Ngồi ra, thay trang yêu cầu, phải chọn khung để thay Thiết kế giải thuật hợp lý để giải vấn đề tác vụ quan trọng nhập/xuất đĩa đắt Thậm chí cải tiến nhỏ phương pháp phân trang theo yêu cầu sinh lượng lớn lực hệ thống Có nhiều giải thuật thay trang khác Mỗi hệ điều hành có chế thay Chúng ta chọn giải thuật thay trang nào? Thông thường, muốn giải thuật tỉ lệ lỗi trang nhỏ Chúng ta đánh giá giải thuật cách chạy chuỗi tham chiếu nhớ cụ thể tính số lượng lỗi trang Chuỗi tham chiếu nhớ gọi chuỗi tham chiếu Chúng ta phát sinh chuỗi tham chiếu giả tạo (thí dụ, phát sinh số ngẫu nhiên) Chọn lựa sau tạo số lượng lớn liệu (trên thứ tự triệu địa giây) Để làm giảm số lượng liệu này, có hai cách Cách thứ nhất, kích thước trang cho (và kích thước trang thường cố định phần cứng hay hệ thống), cần xét số trang toàn địa Cách thứ hai, có tham chiếu tới trang p, tham chiếu tức theo sau tới trang p không gây lỗi trang Trang p nhớ sau tham chiếu đầu tiên; tham chiếu theo sau tức khơng bị lỗi V.1 Thay trang FIFO Giải thuật thay trang đơn giản giải thuật FIFO Giải thuật gắn với trang thời gian trang mang vào nhớ Khi trang phải Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 184 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 thay thế, trang cũ chọn Chú ý rằng, khơng u cầu nghiêm ngặt để ghi thời gian trang mang vào Chúng ta tạo hàng đợi FIFO để quản lý tất trang nhớ Chúng ta thay trang đầu hàng đợi Khi trang mang vào nhớ, chèn vào hàng đợi Cho thí dụ chuỗi tham khảo, khung ban đầu rỗng tham khảo (7, 0, 1) gây lỗi trang mang vào khung rỗng Tham khảo (2) thay trang 7, trang mang vào trước Vì tham khảo nhớ rồi, khơng có lỗi trang cho tham khảo Tham khảo tới dẫn đến trang thay trang trang nhớ (0, 1, 2) để mang vào Bởi thay này, tham khảo tiếp theo, tới 0, bị lỗi Sau đó, trang thay trang Quá trình tiếp tục hiển thị hình VIII-6 Mỗi lỗi xảy ra, hiển thị trang khung Có 15 lỗi thảy Hình 0-6 giải thuật thay trang FIFO Giải thuật thay trang FIFO dễ hiểu lập trình Tuy nhiên, lực khơng ln tốt Trang cho để thay trang chức nhiều liệu cần thiết, thường xuyên sử dụng nên nạp sớm, chuyển nhớ phụ nhanh chóng gây lỗi trang Để hiển thị vấn đề phát sinh với giải thuật thay trang FIFO, xem xét chuỗi tham khảo sau: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, Hình VIII-7 hiển thị đường cong lỗi trang so sánh với số khung sẳn dùng Chúng ta ý số lượng lỗi cho khung (10) lớn số lượng lỗi cho khung (9) Hầu hết kết không mong đợi gọi nghịch lý Belady; số giải thuật thay trang, tỉ lệ lỗi trang tăng số lượng khung cấp phát tăng Chúng ta mong muốn cho nhiều nhớ tới trình cải tiến lực Trong vài nghiên cứu trước đây, nhà điều tra kết luận giả thuyết không ln Sự khơng bình thường Belady phát kết Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 185 Đạ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-7 Đường cong lỗi trang cho thay FIFO chuỗi tham khảo V.2 Thay trang tối ưu hoá Kết phát nghịch lý Belady tìm giải thuật thay trang tối ưu Giải thuật thay trang tối ưu có tỉ lệ lỗi trang thấp tất giải thuật không gặp phải nghịch lý Belady Giải thuật tồn gọi OPT hay MIN Nó đơn giản là: thay trang mà khơng dùng cho khoảng thời gian lâu Sử dụng giải thuật thay trang đảm bảo tỉ lệ lỗi trang nhỏ cho số lượng khung cố định Thí dụ, chuỗi tham khảo mẫu, giải thuật thay trang tối ưu phát sinh lỗi trang, hiển thị hình VIII-8 tham khảo gây lỗi điền vào khung trống Tham khảo tới trang thay trang khơng dùng tham khảo 18, trái lại trang dùng trang 14 Tham khảo tới trang thay trang trang trang cuối trang nhớ tham khảo lần Với lỗi trang, thay tối ưu tốt nhiều giải thuật FIFO, có 15 lỗi (Nếu bỏ qua lỗi đầu mà tất giải thuật phải gặp thay tối ưu tốt gấp lần thay FIFO.) Thật vậy, khơng có giải thuật thay xử lý chuỗi tham khảo khung với lỗi Tuy nhiên, giải thuật thay trang tối ưu khó cài đặt u cầu kiến thức tương lai chuỗi tham khảo Do đó, giải thuật tối ưu dùng chủ yếu cho nghiên cứu so sánh Thí dụ, có ích để biết rằng, giải thuật khơng tối ưu nằm 12.3% tối ưu tệ, 4.7% trung bình Hình 0-8 giải thuật thay trang tối ưu Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 186 Đạ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.3 Thay trang LRU Nếu giải thuật tối ưu không khả thi, có lẽ xấp xỉ giải thuật tối ưu Sự khác biệt chủ yếu giải thuật FIFO OPT FIFO dùng thời gian trang mang vào nhớ; giải thuật OPT dùng thời gian trang sử dụng Nếu dụng khứ gần xấp xỉ tương lai gần thay trang mà khơng dùng cho khoảng thời gian lâu (hình VIII-9) Tiếp cận giải thuật dùng gần (least-recently-used (LRU) ) Hình 0-9 giải thuật thay trang LRU Thay trang LRU gắn với trang thời gian sử dụng cuối trang Khi trang phải thay thế, LRU chọn trang không dùng khoảng thời gian lâu Chiến lược giải thuật thay trang tối ưu tìm kiếm lùi theo thời gian hướng tới (gọi SR trình tự ngược chuỗi tham khảo S tỉ lệ lỗi trang cho giải thuật OPT S tương tự tỉ lệ lỗi trang cho giải thuật OPT SR Tương tự, tỉ lệ lỗi trang giải thuật LRU S giống tỉ lệ lỗi trang cho giải thuật LRU SR) Kết ứng dụng thay LRU chuỗi tham khảo điển hình hiển thị hình VIII-10 Giải thuật LRU sinh 12 lỗi lỗi giống thay tối ưu Tuy nhiên, tham chiếu tới trang xảy thay LRU thấy khung nhớ, trang dùng gần Trang dùng gần trang 0, trước trang dùng Do đó, giải thuật LRU thay trang 2, khơng biết trang để dùng Sau đó, gây lỗi trang 2, giải thuật LRU thay trang 3, trang nhớ {0, 3, 4} trang sử dụng gần Mặc dù vấn đề thay LRU với 12 lỗi tốt thay FIFO với 15 Hình 0-10 giải thuật thay trang Chính sách LRU thường dùng giải thuật thay trang xem tốt Vấn đề cách cài đặt thay LRU Một giải thuật thay trang LRU yêu cầu trợ giúp phần cứng Vấn đề xác định thứ tự cho khung định nghĩa thời gian sử dụng gần Hai cách cài đặt khả thi là: • Bộ đếm: trường hợp đơn giản nhất, gắn mục từ bảng trang trường số lần sử dụng thêm CPU đồng hồ luận lý hay Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 187 Đạ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 Đồng hồ tăng cho tham khảo nhớ Bất tham khảo tới trang thực hiện, nội dung ghi đồng hồ chép tới trường số lần sử dụng mục từ bảng trang cho trang Trong cách này, ln có thời gian tham khảo cuối tới trang Chúng ta thay trang với giá trị số lần sử dụng nhỏ Cơ chế yêu cầu tìm kiếm bảng trang để tìm trang LRU viết tới nhớ (tới trường thời gian dùng bảng trang) cho truy xuất nhớ Số lần phải trì bảng trang bị thay đổi (do định thời CPU) Vượt giới hạn đồng hồ phải xem xét • Ngăn xếp: tiếp cận khác để cài đặt thay LRU giữ ngăn xếp số trang Bất trang tham khảo, bị xố từ ngăn xếp đặt đỉnh Trong cách này, đỉnh ngăn xếp trang dùng gần đáy trang LRU (hình VIII-11) Vì mục từ phải xố từ ngăn xếp, cài đặt tốt danh sách liên kết kép với trỏ đầu Xố trang đặt đỉnh ngăn xếp sau yêu cầu thay đổi trỏ trường hợp xấu Mỗi cập nhật chi phí khơng cần tìm thay thế; trỏ tới đáy ngăn xếp trang LRU Tiếp cận đặc biệt phù hợp cho cài đặt phần mềm hay vi mã thay LRU Thay tối ưu hố LRU khơng gặp phải nghịch lý Belady Có lớp giải thuật thay trang gọi giải thuật ngăn xếp, mà không hiển thị nghịch lý Belady Một giải thuật ngăn xếp giải thuật mà hiển thị tập hợp trang nhớ n khung trang tập hợp tập hợp trang mà nhớ với n + khung Đối với thay LRU, tập hợp trang nhớ n trang tham khảo gần Nếu số trang gia tăng n trang trang tham khảo gần nhớ Chú ý cài đặt LRU khơng có trợ giúp phần cứng ngoại trừ ghi TLB Cập nhật trường đồng hồ hay ngăn xếp phải thực cho tham khảo nhớ Nếu sử dụng ngắt cho tham khảo nhớ, cho phép phần mềm cập nhật cấu trúc liệu làm chậm tham khảo nhớ gần phần 10 Rất hệ thống chịu cấp độ chi phí cho việc quản lý nhớ Hình 0-11 sử dụng ngăn xếp để ghi tham khảo trang gần Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 188 ... 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 Trang 167 Đạ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... 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... việc kiểm tra gây trap lỗi tới hệ điều hành Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 158 Đạ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

Ngày đăng: 04/12/2015, 01:28

TỪ KHÓA LIÊN QUAN