- Độ ưu tiờn của cỏc tiến trỡnh là (5 là độ ưu tiờn cao nhất): 1 1 2 4
3.2.3. Kỹ thuật phõn trang đơn (Simple Paging)
Trong kỹ thuật này khụng gian địa chỉ bộ nhớ vật lý được chia thành cỏc phần cú kớch thước cố định và bằng nhau, được đỏnh số địa chỉ bắt đầu từ 0 và được gọi là cỏc khung trang (page frame). Khụng gian địa chỉ của cỏc tiến trỡnh cũng được chia thành cỏc phần cú kớch thước bằng nhau và bằng kớch thước của một khung trang, được gọi là cỏc trang (page) của tiến trỡnh.
Khi một tiến trỡnh được nạp vào bộ nhớ thỡ cỏc trang của tiến trỡnh được nạp vào cỏc khung trang cũn trống bất kỳ, cú thể khụng liờn tiếp nhau của bộ nhớ. Khi HĐH cần nạp một tiến trỡnh cú n trang vào bộ nhớ thỡ nú phải tỡm đủ n khung trang trống để nạp tiến trỡnh này. Nếu kớch thước của tiến trỡnh khụng phải là bội số của kớch thước một khung trang thỡ sẽ xảy ra hiện tượng phõn mảnh nội vi ở khung trang chứa trang cuối cựng của tiến trỡnh. Ở đõy khụng xảy ra hiện tượng phõn mảnh ngoại vi. Trờn bộ nhớ cú thể tồn tại cỏc trang của nhiều tiến trỡnh khỏc nhau. Khi một tiến trỡnh bị swap-out thỡ cỏc khung trang mà tiến trỡnh này chiếm giữ sẽ được giải phúng để HĐH cú thể nạp cỏc trang tiến trỡnh khỏc.
Để theo dừi trạng thỏi của cỏc khung trang (cũn trống hay đó cấp phỏt) trờn bộ nhớ, HĐH sử dụng một danh sỏch để ghi số hiệu của cỏc khung trang cũn trống trờn bộ nhớ. Dựa vào danh sỏch này, HĐH tỡm ra cỏc khung trang trống trước khi quyết định nạp một tiến trỡnh vào bộ nhớ. Danh sỏch này được cập nhật ngay sau khi HĐH nạp một tiến trỡnh vào bộ nhớ, được kết thỳc hoặc bị swap out ra bờn ngoài.
Hệ điều hành sử dụng cỏc bảng trang (PCT: page control table) để theo dừi vị trớ cỏc trang tiến trỡnh trờn bộ nhớ, mỗi tiến trỡnh cú một bảng trang riờng. Bảng trang bao gồm nhiều phần tử, thường là bằng số lượng trang của một tiến trỡnh mà bảng trang này theo dừi, cỏc phần tử được đỏnh số bắt đầu từ 0. Phần tử 0 chứa số hiệu của khung trang đang chứa trang 0 của tiến trỡnh, phần tử 1 chứa số hiệu của khung trang đang chứa trang 1 của tiến trỡnh,… Cỏc bảng trang cú thể được chứa trong cỏc thanh ghi nếu cú kớch thước nhỏ, nếu kớch thước bảng trang lớn thỡ nú được chứa trong bộ nhớ chớnh, khi đú HĐH sẽ dựng một thanh ghi để lưu trữ địa chỉ bắt đầu nơi lưu trữ bảng trang, thanh ghi này được gọi là thanh ghi PTBR: page table base register.
Trong kỹ thuật phõn trang này khi cần truy xuất bộ nhớ BXL phải phỏt ra một địa chỉ logic gồm 2 thành phần: Số hiệu trang (Page): cho biết số hiệu trang tương ứng cần truy xuất. Địa chỉ tương đối trong trang (Offset): giỏ trị này sẽ được kết hợp với địa chỉ bắt đầu của trang để xỏc định địa chỉ vật lý của ụ nhớ cần truy xuất. Việc chuyển đổi từ địa chỉ logic sang địa chỉ vật lý do processor thực hiện.
Kớch thước của mỗi trang hay khung trang do phần cứng quy định, thường biến đổi từ 512 byte đến 8192 byte 16MB). Nếu kớch thước của khụng gian địa chỉ là 2m và kớch thước của trang là 2n thỡ m-n bớt cao của địa chỉ logic là số hiệu trang (page) và n bớt cũn lại là địa chỉ tương đối trong trang (offset).
Việc chuyển từ địa chỉ logic sang địa chỉ vật lý được thực hiện theo cỏc bước sau: - Trớch ra m-n bớt trỏi nhất (thấp nhất) của địa chỉ logic để xỏc định số hiệu trang cần truy xuất.
- Sử dụng số hiệu trang ở trờn để chỉ đến phần tử tương ứng trong bảng trang của tiến trỡnh, để xỏc định khung trang tương ứng, vớ dụ là k.
- Địa chỉ vật lý bắt đầu của khung trang là k x 2n , và địa chỉ vật lý của byte cần truy xuất là số hiệu trang cộng với giỏ trị offset. Địa chỉ vật lý khụng cần tớnh toỏn, nú dễ dàng cú được bằng cỏch nối số hiệu khung trang với giỏ trị offset.
65 000001 0111011110 10 bít Offset 16 bít địa chỉ logic 6 bít Page 000101 000110 011001 000110 0111011110 + 16 bít địa chỉ vật lý Bảng trang
của tiến trỡnh Khụng gian bộ nhớ vật
lý 0
Trong sơ đồ vớ dụ ở trờn, chỳng ta cú địa chỉ logic là: 0000010111011110, với số hiệu trang là 1, offset là 478, giả định rằng trang này thường trỳ trong bộ nhớ chớnh tại khung trang 6 = 000110. Thỡ địa chỉ vật lý là khung trang số 6 và offset là 478 = 0001100111011110.
Chia sẻ BN trong kỹ thuật phõn trang được sử dụng nhằm sử dụng hiệu quả BN chớnh và hỗ trợ được cho nhiều người dựng (trỡnh biờn dịch, hệ thống cửa sổ, thư viện, CSDL…). BN được chia sẻ được cài đặt cho nhiều địa chỉ ảo (mỗi địa chỉ ảo cho mỗi quỏ trỡnh chia sẻ BN) mà chỳng cựng được ỏnh xạ đến 1 địa chỉ vật lý.
Nhận xột về kỹ thuật phõn trang
- Cú thể thấy sự phõn trang tương tự như sự phõn vựng cố định. Sự khỏc nhau là với phõn trang cỏc phõn vựng cú kớch thước nhỏ hơn, một chương trỡnh cú thể chiếm giữ nhiều hơn một phõn vựng, và cỏc phõn vựng này cú thể khụng liền kề với nhau.
- Kỹ thuật phõn trang loại bỏ được phõn mảnh ngoại vi, nhưng vẫn cú thể xảy ra phõn mảnh nội vi khi kớch thước của tiến trỡnh khụng đỳng bằng bội số kớch thước của một trang, khi đú khung trang cuối cựng sẽ khụng được sử dụng hết.
- Khi cần truy xuất đến dữ liệu hay chỉ thị trờn BN thỡ hệ thống phải cần một lần truy xuất đến bảng trang, điều này cú thể làm giảm tốc độ truy xuất BN. Để khắc phục HĐH sử dụng thờm một bảng trang cache, để lưu trữ cỏc trang BN vừa được truy cập gần đõy nhất. Bảng trang cache này sẽ được sử dụng mỗi khi BXL phỏt ra một địa chỉ cần truy xuất.
- Mỗi HĐH cú một cơ chế tổ chức bảng trang riờng, đa số cỏc HĐH đều tạo cho mỗi tiến trỡnh một bảng trang riờng khi nú được nạp vào BN chớnh. Bảng trang lớn sẽ tốn BN để chứa nú.
- Để bảo vệ cỏc khung trang HĐH đưa thờm một bớt bảo vệ vào bảng trang. Theo đú mỗi khi tham khảo vào bảng trang để truy xuất BN hệ thống sẽ kiểm tra cỏc thao tỏc truy xuất trờn khung trang tương ứng cú hợp lệ với thuộc tớnh bảo vệ của nú hay khụng.
- Sự phõn trang khụng phản ỏnh được cỏch mà người sử dụng nhỡn nhận về BN. Với người sử dụng, BN là một tập cỏc đối tượng chương trỡnh và dữ liệu như cỏc segment, cỏc thư viện,... và cỏc biến, cỏc vựng nhớ chia sẻ, stack... Vấn đề đặt ra là tỡm một cỏch thức biểu diễn BN sao cho nú gần với cỏch nhỡn nhận của người sử dụng hơn. Kỹ thuật phõn đoạn BN cú thể thực hiện được mục tiờu này.