1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giáo trình Nguyên lý hệ điều hành: Phần 2 - Trường Đại Học Quốc Tế Hồng Bàng

20 24 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

Nội dung

Mỗi thanh ghi trong bộ nhớ kết hợp chứa số hiệu trang và số hiệu khung trang tương ứng, khi CPU phát sinh một địa chỉ logic, số hiệu trang của địa chỉ sẽ được so sánh cùng lúc[r]

(1)

CHƯƠNG :QUẢN LÝ BỘ NHỚ

Bộ nhớ thiết bị lưu trữ thơng qua CPU trao đổi thơng tin với mơi trường ngồi, nhu cầu tổ chức, quản lý nhớ nhiệm vụ trọng tâm hàng đầu hệ điều hành Bộ nhớ tổ chức mảng chiều từ nhớ (word), từ nhớ có địa Việc trao đổi thông tin với môi trường ngồi thực thơng qua thao tác đọc ghi liệu vào địa cụ thể nhớ

Hầu hết hệ điều hành đại cho phép chế độ đa nhiệm nhằm nâng cao hiệu suất sử dụng CPU Tuy nhiên kỹ thuật lại làm nảy sinh nhu cầu chia sẻ nhớ tiến trình khác Vấn đề nằm chỗ : « bộ nhớ hữu hạn yêu cầu nhớ vơ hạn »

3.1 Tổ chức vùng nhớ

Hình 3.1

3.2 Mục tiêu việc quản lý vùng nhớ

Cấp phát vùng nhớ cho tiến trình có u cầu thu hồi vùng nhớ tiến trình thực xong Quản lý vùng nhớ rỗi, vùng nhớ bận

- Tại thời điểm lưu giữ nhiều tiến trình đồng thời - Chuyển đổi địa logic địa vật lý (physic)

(2)

- Chia sẻ thông tin: làm phép hai tiến trình chia sẻ thông tin nhớ?

- Ngăn chặn tiến trình xâm phạm đến vùng nhớ cấp phát cho tiến trình khác

3.3 Khơng gian địa không gian vật lý

Một hướng tiếp cận trung tâm nhằm tổ chức quản lý nhớ cách hiệu qủa đưa khái niệm không gian địa xây dựng không gian nhớ vật lý, việc tách rời hai không gian giúp hệ điều hành dễ dàng xây dựng chế chiến lược quản lý nhớ hữu hiệu :

Địa logic – gọi địa ảo , địa xử lý tạo

Địa vật lý - địa thực tế mà trình quản lý nhớ nhìn thấy thao tác

Khơng gian địa – tập hợp tất địa ảo phát sinh chương trình

Không gian vật lý – tập hợp tất địa vật lý tương ứng với địa ảo

Địa ảo địa vật lý phương thức kết buộc địa vào thời điểm biên dịch vào thời điểm nạp Nhưng có khác biệt địa ảo địa vật lý phương thức kết buộc vào thời điểm xử lý

MMU (memory-management unit) chế phần cứng sử dụng để thực chuyển đổi địa ảo thành địa vật lý vào thời điểm xử lý

Chương trình người sử dụng thao tác địa ảo, khơng nhìn thấy địa vật lý Địa thật ứng với vị trí liệu bơ nhớ xác định thực truy xuất đến liệu

3.4 Cấp phát liên tục

(3)

Trong phương pháp nhớ chia sẻ cho hệ điều hành tiến 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 cịn lại thuộc tiến trình người dùng hệ thống Tiến trình tồn quyền sử dụng nhớ dành cho

Hình 3.2 Tổ chức nhớ hệ thống đơn chương

Để bảo vệ hệ điều hành khỏi xâm phạm tác động chương trình người dung, sử dụng ghi giới hạn lưu địa cao vùng nhớ cấp cho hệ điều hành Tất địa tiến trình người dung truy xuất so sánh với nội dung ghi giới hạn, địa lớn giới hạn cho phép hợp lệ, ngược lại ngắt phát sinh để báo cho hệ thống truy xuất bất hợp lệ

Khi nhớ tổ chức theo cách thức này, xử lý tiến trình thời điểm Quan sát hoạt động tiến 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à tiến trình chia sẻ CPU với để hoạt động đồng hành

3.4.2 Hệ thống đa chương với phân vùng cố định

(4)

được nạp vào phân vùng trống Khi tiến trình kết thúc, phân vùng trở nên sẳn dùng cho tiến 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 vùng có hàng đợi tương ứng Khi tiến trình tạo lập đưa vào hàng đợi phân vùng có kích thước nhỏ đủ lớn để chứa tiến trình

Cách tổ chức có khuyết điểm trường hợp hàng đợi số phân vùng lớn trống hàng đợi phân vùng nhỏ lại đầy, buộc tiến trình hàng đợi phải chờ cấp phát nhớ, sử dụng không hiệu nhớ

Sử dụng hàng đợi: tất tiến trình đặt hàng đợi Khi có phân vùng trống, tiến trình hàng đợi có kích thước phù hợp đặt vào phân vùng cho xử lý

Hình 3.3 Cấp phát đa vùng với phân vùng cố định

Trong trường hợp tiến trình có kích thước nhỏ phân vùng tự lớn dẫn tới lãng phí nhớ

(5)

Xuất hiện tượng phân mảnh nội vi (internal fragmentation): kích thước tiến trình nạp nhỏ kích thước phân vùng chứa tiến trình, phần nhớ khơng sử dụng đến phân vùng gọi phân mảnh nội vi

Nhận xét:

-Mức độ đa chương hệ thống bị giới hạn số lượng phân vùng - Sử dụng nhớ không hiệu quả:

Tổng nhớ nhỏ tự do, rời rạc cịn lớn khơng thể sử dụng để nạp tiến trình khác

Tiến trình có kích thước lớn phân vùng lớn không thực

- Ưu điểm: đơn giản, dễ tổ chức bảo vệ, giảm thời gian tìm kiếm

3.4.3 Hệ thống đa chương với phân vùng động

Hệ điều hành giữ bảng hiển thị phần nhớ rỗi phần bận Ban đầu, tất nhớ sẵn dùng cho tiến trình người dùng, xem khối lớn nhớ sẵn dùng Khi tiến trình đến cần nhớ, hệ điều hành tìm kiếm vùng trống đủ lớn cho tiến trình Nếu tìm thấy, hệ điều hành cấp phát cho tiến trình phần nhớvừa với kích thước tiến trình, phần nhớ cịn lại dành cho tiến trình khác

(6)

Thông thường, tập hợp vùng trống có kích thước khác phân tán khắp nhớ thời điểm cho Khi tiến trình đến yêu cầu nhớ, hệ thống tìm tập hợp vùng trống đủ lớn cho tiến trình Nếu vùng trống q lớn, chia làm hai: phần cấp cho tiến trình đến; phần lại trả tập hợp vùng trống Nếu vùng trống nằm kề với vùng trống khác, vùng trống nằm kề gom lại để tạo thành vùng trống lớn

Xuất hiện tượng phân mảnh ngoại vi( external fragmentation ) : tiến trình vào khỏi hệ thống, xuất khe hở tiến trình Đây khe hở tạo kích thước tiến trình nạp nhỏ kích thước vùng nhớ giải phóng tiến trình kết thúc khỏi hệ thống , không gian nhớ trống bị phân rã thành mảnh nhớ nhỏ

Hiện tượng dẫn đến tình tổng vùng nhớ trống đủ để thoả mãn yêu cầu, vùng nhớ lại không liên tục ! Người ta áp dụng kỹ thuật « dồn nhớ » (memory compaction ) để kết hợp mảnh nhớ nhỏ rời rạc thành vùng nhớ lớn liên tục Tuy nhiên, kỹ thuật đòi hỏi nhiều thời gian xử lý, ra, kết buộc địa phải thực vào thời điểm xử lý, tiến trình bị di chuyển q trình dồn nhớ

Thuật tốn đơn giản dịch chuyển tiến trình phía đầu nhớ Ví dụ:

Hình 3.5

Vấn đề cấp phát động

HDH P1 P2 P3 P4 HDH P1 P2 P3 P4 300K 500K 600K 1000K 1200K 1500K 1900K 2100K

Cấp phát gốc

HDH P1 P2 P3 P4 HDH P1 P2 P3 P4 300K 500K 600K 800K 1200K 2100K

Dịch chuyển 600K

HDH P1 P2 P3 P4 HDH P1 P2 P3 P4 300K 500K 600K 1000K 1200K 1900K 2100K

Dịch chuyển 400K

HDH P1 P2 P3 P4 HDH P1 P2 P3 P4 300K 500K 600K 1500K 1900K 2100K

(7)

Lựa chọn vùng nhớ tự danh sách vùng nhớ tự để cấp phát cho tiến trình

Có chiến lược phổ biến dùng:

First-fit: cấp phát vùng nhớ tự đủ lớn Tìm kiếm bắt đầu đầu từ danh sách tập hợp vùng trống hay điểm kết thúc tìm kiếm first-fit trước Chúng ta dừng tìm kiếm tìm thấy vùng trống đủ lớn

Best-fit: cấp phát vùng nhớ tự nhỏ đủ lớn Chúng ta phải tìm toàn danh sách, trừ danh sách xếp thứ tự theo kích thước

Worst-fit: cấp phát vùng nhớ tự lớn đủ lớn để chứa tiến trình Chúng ta phải tìm tồn danh sách trừ xếp theo thứ tự kích thước

Quản lý khối rỗi bận

- Quản lý đồ bit:

Bộ nhớ chia thành đơn vị cấp phát, đơn vị ánh xạ tới bit đồ bit Giá trị bit xác định trạng thái đơn vị nhớ đó: tự do, cấp phát Khi cần nạp tiến trình có kích thước k đơn vị, hệ thống tìm đồ bit dãy k bit có giá trị

Kích thước đơn vị cấp phát vấn đề lớn thiết kế Nếu kích thước đơn vị cấp phát nhỏ làm tăng kích thước đồ bit Ngược lại, kích thước đơn vị cấp phát lớn gây hao phí cho đơn vị cấp phát sau Đây giải pháp đơn giản thực chậm nên dùng

(8)

- Quản lý danh sách liên kết:

Dùng danh sách liên kết để quản lý phân đoạn nhớ cấp phát phân đoạn tự do.Danh sách liên kết gồm nhiều nút liên tiếp Mỗi nút gồm bit đầu để xác định phân đoạn vùng trống (H) hay tiến trình (P), sau từ để địa bắt đầu, chiều dài điểm tới mục Việc xếp phân đoạn theo địa hay theo kích thước tuỳ thuộc vào giải thuật quản lý nhớ

Hình 3.7 Quản lý nhớ danh sách liên kết 3.5 Cấp phát không liên tục

Cấp phát khơng liên tục chương trình phân chia thành mộ số đoạn, đoạn nằm vùng nhớ rời rạc nhau, vùng nhớ có vùng nhớ phân phối cho chương trình khác

3.5.1 Phân trang ( Paging) Ý tưởng:

(9)

Phân nhớ vật lý thành khối (block) có kích thước cố định nhau, gọi khung trang (page frame) Không gian địa chia thành khối có kích thước với khung trang, gọi trang (page) Khi cần nạp tiến trình để xử lý, trang tiến trìnhsẽ nạp vào khung trang cịn trống Một tiến trình kích thước N trang yêu cầu N khung trang tự

Cơ chế MMU kỹ thuật phân trang:

Hình 3.9 Cơ chế phần cứng hỗ trợ phân trang

Cơ chế phần cứng hỗ trợ thực chuyển đổi địa chế phân trang bảng trang (pages table):

Mỗi tiến trình có bảng trang

Số phần tử bảng trang=số trang khơng gian địa tiến trình

(10)

Hình 3.10

Chuyển đổi địa chỉ: Địa logic <p, d> Địa vật lý <f, d>

số hiệu trang (p): sử dụng mục đến phần tử tương ứng bảng trang

địa tương đối trang (d): kết hợp với địa bắt đầu trang để tạo địa vật lý mà trình quản lý nhớ sử dụng

Số hiệu khung trang (f):địa bắt đầu khung trang nhớ vật lý

Kích thước trang phần cứng qui định Để dễ phân tích địa ảo thành số hiệu trang địa tương đối, kích thước trang thông thường lũy thừa (biến đổi phạm vi 512 bytes 8192 bytes)

Nếu kích thước khơng gian địa 2m kích thước trang 2 n, m-n

bits cao địa ảo biễu diễn số hiệu trang, n bits thấp cho biết địa tương đối trang

Cài đặt bảng trang:

(11)

- Nếu bảng trang có kích thước lớn, phải lưu trữ nhớ chính, sử dụng ghi để lưu địa bắt đầu lưu trữ bảng trang (PTBR)

Theo cách tổ chức này, truy xuất đến liệu hay thị đòi hỏi hai lần truy xuất nhớ : cho truy xuất đến bảng trang cho thân liệu, truy cập chậm

Hình 3.11 Sử dụng ghi trỏ đến bảng trang

- Để nâng cao tốc độ truy xuất, sử dụng thêm vùng nhớ đặc biệt , với tốc độ truy xuất nhanh cho phép tìm kiếm song song, vùng nhớ cache nhỏ thường gọi nhớ kết hợp (translation look-aside buffer TLBs) Mỗi ghi nhớ kết hợp chứa số hiệu trang số hiệu khung trang tương ứng, CPU phát sinh địa logic, số hiệu trang địa so sánh lúc với số hiệu trang nhớ kết hợp để tìm phần tử tương ứng Nếu có trang tương ứng nhớ kết hợp xác định số hiệu khung trang tương ứng, không cần thực thao tác tìm kiếm bảng trang.Nhờ đặc tính mà việc tìm kiếm nhớ kết hợp thực nhanh, chi phí phần cứng lại cao

(12)

Hình 3.12 Bảng trang với TLBs

Tổ chức bảng trang:

Hình 3.13 Bảng trang cấp

Mỗi hệ điều hành có phương pháp riêng để tổ chức lưu trữ bảng trang Đa số hệ điều hành cấp cho tiến trình bảng trang Tuy nhiên phương pháp chấp nhận hệ điều hành cho phép quản lý không gian địa có dung lượng (232, 264): hệ thống thế, thân bảng trang đòi hỏi vùng nhớ qúa lớn!

(13)

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ỏ

Phân trang đa cấp: phân chia bảng trang thành phần nhỏ, thân bảng trang phân trang

Ví dụ bảng trang cấp cho máy 32 bit với kích thước trang 4KB Địa logic 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 logic sau:

Hình 3.14 Phân trang cấp

Khơng gian địa 64 bit, kích thước trang 4KB

Bảng trang nghịch đảo (inverted page table)

(14)

Trong : pid định danh tiến trình p số hiệu trang

d địa tương đối trang

Hình 3.15

Mỗi phần tử bảng trang nghịch đảo cặp <pid, p > Khi tham khảo đến nhớ phát sinh, phần địa ảo <idp, p > đưa đến cho trình quản lý nhớ để tìm phần tử tương ứng bảng trang nghịch đảo, tìm thấy, địa vật lý <i,d> phát sinh Trong trường hợp khác, xem tham khảo nhớ truy xuất địa bất hợp lệ

Bảo vệ:

Cơ chế bảo vệ hệ thống phân trang thực với bit bảo vệ gắn với khung trang Thông thường, bit lưu bảng trang , truy xuất đến nhớ phải tham khảo đến bảng trang để phát sinh địa vật lý, đó, hệ thống kiểm tra thao tác truy xuất khung trang tương ứng có hợp lệ với thuộc tính bảo vệ khơng

(15)

Bất hợp lệ: trang tương ứng không nằm không gian địa tiến trình, điều có nghĩa tiến trình truy xuất đến địa khơng phép

Hình 3.16 Cấu trúc phần tử bảng trang

Chia sẻ nhớ chế phân trang:

(16)

Một ưu điểm chế phân trang cho phép chia sẻ trang tiến trình.Trong trường hợp này, chia sẻ thực cách ánh xạ nhiều địa logic vào địa vật lý Có thể áp dụng kỹ thuật phép tiến trình chia sẻ vùng code chung: có nhiều tiến trình chương trình, cần lưu trữ đoạn code chương trình nhớ, tiến trình có

thể truy xuất đến trang chứa code chung Lưu ý để chia sẻ đoạn code, đoạn code phải có thuộc tính cố định khơng thay đổi q trình xử lý

Nhận xét

Kỹ thuật phân trang loại bỏ tượng phân mảnh ngoại vi : khung trang cấp phát cho tiến trình có u cầu Tuy nhiên tượng phân mảnh nội vi xảy kích thước tiến trình khơng bội số kích thước trang, đó, trang cuối không sử dụng hết

Một khiá cạnh tích cực quan trọng khác kỹ thuật phân trang phân biệt rạch rịi góc nhìn người dùng phận quản lý nhớ vật lý:

Góc nhìn người sử dụng: tiến trình người dùng nhìn thấy nhớ không gian liên tục, đồng chứa thân tiến trình

Góc nhìn nhớ vật lý: tiến trình người sử dụng lưu trữ phân tán khắp nhớ vật lý, nhớ vật lý đồng thời chứa tiến trình khác

Phần cứng đảm nhiệm việc chuyển đổi địa logic thành địa vật lý Sự chuyển đổi suốt người sử dụng

3.5.2 Phân đoạn (Segmentation)

(17)

Ý tưởng: quan niệm không gian địa tập phân đoạn (segments) – phân đoạn phần nhớ kích thước khác có liên hệ logic với nhau Mỗi phân đoạn có tên gọi (số hiệu phân đoạn) độ dài Người dùng thiết lập địa với hai giá trị : <số hiệu phân đoạn, offset>

Hình 3.18 Mơ hình phân đoạn nhớ

Cơ chế MMU kỹ thuật phân đoạn:

(18)

Cần phải xây dựng ánh xạ để chuyển đổi địa chiều người dùng định nghĩa thành địa vật lý chiều Sự chuyển đổi thực qua bảng phân đoạn Mỗi thành phần bảng phân đoạn bao gồm thanh ghi nền thanh ghi giới hạn Thanh ghi lưu trữ địa vật lý nơi bắt đầu phân đoạn nhớ, ghi giới hạn đặc tả chiều dài phân đoạn

Chuyển đổi địa chỉ:

Mỗi địa ảo <s,d> :

số hiệu phân đoạn s : sử dụng mục đến bảng phân đoạn

địa tương đối d : có giá trị khoảng từ đến giới hạn chiều dài phân đoạn Nếu địa tương đối hợp lệ, cộng với giá trị chứa ghi để phát sinh địa vật lý tương ứng

Cài đặt bảng phân đoạn:

Hình 3.20 Hệ thống phân đoạn

(19)

Với địa logic <s,d>, trước tiên số hiệu phân đoạn s kiểm tra tính hợp lệ (s <STLR) Kế tiếp, cộng giá trị s với STBR để có địa địa phần tử thứ s bảng phân đoạn (STBR+s) Điạ vật lý cuối (STBR+s + d)

Hình 3.21 Sử dụng STBR, STLR bảng phân đoạn

Bảo vệ: Một ưu điểm đặc biệt chế phân đoạn khả đặc tả thuộc tính bảo vệ cho phân đoạn Vì phân đoạn biễu diễn cho phần chương trình với ngữ nghĩa người dùng xác định, người sử dụng biết phân đoạn chứa đựng bên trong, họ đặc tả thuộc tính bảo vệ thích hợp cho phân đoạn

Cơ chế phần cứng phụ trách chuyển đổi địa nhớ kiểm tra bit bảo vệ gán với phần tử bảng phân đoạn để ngăn chặn thao tác truy xuất bất hợp lệ đến phân đoạn tương ứng

(20)

Hình 3.22 Chia sẻ code hệ phân đoạn

Một ưu điểm khác kỹ thuật phân đoạn khả chia sẻ mức độ phân đoạn Nhờ khả này, tiến trình chia sẻ với phần chương trình ( ví dụ thủ tục, hàm), khơng thiết phải chia sẻ tồn chương trình trường hợp phân trang Mỗi tiến trình có bảng phân đoạn riêng, phân đoạn chia sẻ phần tử bảng phân đoạn hai tiến trình khác đến vị trí vật lý

Kỹ thuật phân đoạn thõa mãn nhu cầu thể cấu trúc logic chương trình dẫn đến tình phải cấp phát khối nhớ có kích thước khác cho phân đoạn nhớ vật lý Điều làm rắc rối vấn đề nhiều so với việc cấp phát trang có kích thước tĩnh.Một giải pháp dung hoà kết hợp hai kỹ thuật phân trang phân đoạn : tiến hành phân đoạn kết hợp phân trang

3.5.3 Phân đoạn kết hợp phân trang (Paged segmentation)

Ý tưởng: Không gian địa tập phân đoạn, phân đoạn chia thành nhiều trang Khi tiến trình đưa vào hệ thống, hệ điều hành cấp phát cho tiến trình khung trang cần thiết để chứa đủ phân đoạn tiến trình

Cơ chế MMU kỹ thuật phân đoạn kết hợp phân trang:

Để hỗ trợ kỹ thuật phân đoạn, cần có bảng phân đoạn, phân đoạn cần có bảng trang phân biệt

Chuyển đổi địa chỉ:

Mỗi địa logic ba: <s,p,d>

Ngày đăng: 01/04/2021, 12:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w