iam_iam_hihi

New Member

Download miễn phí Giáo trình Lý thuyết hệ điều hành





Như đã biết, để xử lý lỗi trang, trong trường hợp trên bộ nhớ không còn frame
trống, hệ điều hành phải tìm một page nào đó trên bộ nhớ chính để đưa ra đĩa, để
lấy frame trống đó để phục vụ cho việc xử lý lỗi trang. Khi quyết định chọn một
page nào đó để đưa ra đĩa thì hệ điều hành phải đảm bảo rằng việc chọn này là:
không ảnh hưởng đến các tiến trình khác, ít có nguy cơ xảy ra lỗi trang ngay sau đó
nhất và đặc biệt hệ thống khó có thể rơi vào tình trạng “trì trệ hệ thống” nhất.
Trong trường hợp này hệ điều hành đã đưa vào sử dụng các thuật toán thay trang
cụ thể như: Optinal, LRU, FIFO, Clock.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

u địa chỉ nằm trong phạm vị giới hạn
thì hệ điều hành cho phép tiến trình truy xuất bộ nhớ, ngược lại thì có một ngắt về
lỗi truy xuất bộ nhớ được phát sinh và hệ điều hành không cho phép tiến trình truy
xuất vào vị trí bộ nhớ mà nó yêu cầu. Như vậy việc bảo bệ truy xuất bất hợp lệ
được thực hiện dễ dàng ở đây.
Trong hệ thống đa chương sử dụng sự phân vùng động, nếu có một tiến trình
Địa chỉ
tương đối
Base Register
Limit Register
Céng
Stack
điều khiển
tiến trình
So s¸nh
Program
Data
Gởi ngắt đến
hệ điều hành
Tiến trình
trong bộ nhớ
Hình 3.5 : Tái định vị với sự hỗ trợ của phần cứng
<
>
mới cần được nạp vào bộ nhớ, trong khi bộ nhớ không còn chỗ trống và tất cả các
tiến trình trên bộ nhớ đều ở trạng thái khoá (blocked), thì hệ thống phải đợi cho
đến khi có một tiến trình được chuyển sang trạng thái không bị khoá (unblocked)
để tiến trình này có điều kiện trả lại không gian nhớ mà nó chiếm giữ cho hệ thống:
tiến trình hoạt động và kết thúc, tiến trình bị đưa ra khỏi bộ nhớ chính,..., để hệ
thống nạp tiến trình vừa có yêu cầu. Sự chờ đợi này làm lãng phí thời gian xử lý
của processor. Để tiết kiệm thời gian xử lý của processor trong trường hợp này hệ
điều hành chọn ngay một tiến trình đang ở trạng thái khoá để đưa ra ngoài lấy
không gian nhớ trống đó cấp cho tiến trình vừa có yêu cầu mà không phải đợi như
ở trên. Hệ điều hành sử dụng nhiều thuật toán khác nhau cho việc chọn một tiến
trình để thay thế trong trường hợp này, tất cả các thuật toán này đều hướng tới mục
dích: tiết kiệm thời gian xử lý của processor, tốc độ thay thế cao, sử dụng bộ nhớ
hiệu quả nhất và đặc biệt là không để dẫn đến sự trì trệ hệ thống. Chúng ta sẽ thảo
luận rõ hơn về vấn đề này ở phần sau của chương này.
 Chú ý: Một nhược điểm lớn của các kỹ thuật ở trên là dẫn đến hiện tượng
phân mảnh bộ nhớ bên trong và bên ngoài (internal, external) gây lãng phí bộ nhớ
nên hiệu quả sử dụng bộ nhớ kém. Để khắc phục hệ điều hành sử dụng các kỹ thuật
phân trang hay phân đoạn bộ nhớ.
III.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 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ệ điều hành 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ệ điều hành có thể nạp các trang tiến trình khác.
Trong kỹ thuật này hệ điều hành phải đưa ra các cơ chế thích hợp để 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ớ và các
khung trang đang chứa các trang của một tiến trình của các tiến trình khác nhau
trên bộ nhớ. Hệ điều hành 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ớ, hệ điều hành dựa vào danh sách này để tìm 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ệ điều hành nạp một tiến trình vào bộ nhớ, được kết thúc
hay 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ệ điều hành 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.
Page1 2 12
Page1 0 11
0
8
Page1 1 Page2 1 10
1
3
Page1 2 9
2
12
Page1 3 Page1 0 8
3
6
C¸c
page
7 Page
table
Process
1
Page1 3 6 Process
1
5
Page2 0 Page2 2 4
0
1
Page2 1 Page1 1 3
1
10
Page2 2 2
2
4
C¸c Page2 0 1 Page
page table
process
2
0 Process
2
Kh«ng gian «Þa chØ
cña bé nhí vËt lý
(a) (b) (c)
Hình 3.6: Các trang của 2 tiến trình process 1 và process 2 (a), được nạp
vào bộ nhớ (b), và 2 bảng trang tương ứng của nó (c).
Trong kỹ thuật phân trang này khi cần truy xuất bộ nhớ CPU 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 và thường
là lũy thừa của 2, biến đổi từ 512 byte đến 8192 byte. 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). Ví dụ:
nếu địa chỉ logic gồm 16 bit, kích thước của mỗi trang là 1K = 1024byte (210), thì
có 6 bít dành cho số hiệu trang, như vậy một chương trình có thể có tối đa 26 = 64
trang mỗi trang 1KB. Trong trường hợp này nếu CPU phát ra một giá trị địa chỉ 16
bít là: 0000010111011110 = 1502, thì thành phần số hiệu trang là 000001 = 1,
thành phần offset là 0111011110 = 478.
Hình minh hoạ:
Page 0 Page 1 Page 2
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:
000001 0111011110
§Þa chØ logic:
Page # = 1; Offset = 478
Phân mảnh
nội vi
478
Hình 3.7a: Các khung trang của bộ nhớ và địa chỉ logic
 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ị offs...
 
Top