Chưcyng 10 Bộ NHỚ ÀO

Một phần của tài liệu Giáo trình nguyên lý hệ điều hành phần 2 hồ đắc phương (Trang 51 - 54)

Bộ NHỚ ÀO

Mục tiêu của cắc phương pháp quản lý bộ nhớ là tải đồng thời nhiều tiến trình vào bộ nhớ. Chương 9 đã trinh bày cách tài toàn bộ tiến trinh vào trong bộ nhớ trước khi thực thi. Cõng nghệ bộ nhớ ào được giới thiệu trong chương này lại cho phép thực thi các tiến trình không nằm trọn vẹn trong bộ nhớ. Khi đó. kích thước chương trình có thể lớn hơn kích thước bộ nhớ vật lỷ và công nghệ này tăch bạch hình ảnh bộ nhớ vật lý với hình ảnh bộ nhớ logic dưới góc độ người dùng. Tuy nhiên, cài đặt bộ nhớ ảo khõng dễ và có thể làm giảm hiệu suẩt hệ thống.

1 0 .1 . Đ Ặ T V Á N Đ È

K ỹ th u ậ t p h ủ h ay n ạ p đ ộ n g (C h ư ơ n g 9) c h o p h é p tạ o ra c h ư ơ n g trìn h có k íc h th ư ớ c lớ n h ơ n b ộ n h ớ v ật lý đ ư ợ c c ấ p p h át. T rê n th ự c tế , n h iề u c h ư ơ n g trìn h m á y tín h có k h ả n ă n g th ự c thi kể c ả khi c h ư a n ằ m trọ n v ẹ n tro n g b ộ n h ớ (có th ề k h ô n g th ự c ih i n h ữ n g đ o ạ n m ã x ừ lý lồi n ế u lỗi k h ô n g x u ấ t h iệ n ). T h ậ m c h í, n g a y c ả khi c ẩ n sử d ụ n g to à n b ộ c h ư ơ n g trìn h th ì c ũ n g k h ô n g n h ất th iế t p h ải s ử d ụ n g to à n b ộ tại m ộ t th ờ i đ iể m .

K h ả n ă n g th ự c th i c h ư ơ n g trìn h m à chi cầ n tải m ộ t p h ầ n c h ư ơ n g trìn h v ào b ộ n h ớ đ e m lại n h iề u ư u đ iể m c h o c ả n g ư ờ i sử d ụ n g lẫn h ệ th ố n g . T h ứ n h ấ t, c h ư ơ n g trìn h k h ô n g bị k h ố n g c h ế b ở i k íc h th ư ớ c b ộ n h ớ v ậ t lý, vì b ộ n h ớ ảo tá c h h ẳ n b ộ n h ớ lo g ic k h ỏ i b ộ n h ớ v ậ t lý. L ậ p tr ìn h v iê n c ó Ih ể v iế t n h ữ n g c h ư ơ n g trìn h tro n g k h ô n g g ia n b ộ n h ớ ảo c ó k íc h th ư ớ c c ự c lớ n , v iệc lập trìn h trở n ên đorn g ià n h ơ n (k h ô n g p h ả i tự m ìn h th ự c h iệ n tả i ra /tả i v à o n h ư tro n g k ỹ th u ậ t p h ủ ). T h ứ h a i, chư om g trìn h c h iế m ít b ộ n h ớ v ậ t lý h ơ n , n ê n b ộ n h ớ có th ể c h ứ a n h iề u c h ư ơ n g trìn h , d o đ ó tă n g h iệ u s u ấ t s ử d ụ n g

C P U . C u ố i c ù n g , th ờ i g ia n tải h a y h o á n c h u y ể n c h ư ơ n g trìn h n g ư ờ i d ù n g v à o b ộ n h ớ g iả m , n ê n c h ư ơ n g Irìn h c ó th ể c h ạ y n h a n h h o n . M ặ c d ù p h ư ơ n g p h á p p h â n tra n g th e o y ê u c ầ u p h ổ b iế n h ơ n , tu y n h iê n b ộ n h ớ ảo c ũ n g c ó th ể cài đ ặ t tro n g hệ th ố n g p h â n đ o ạ n . T ro n g n h iề u h ệ th ố n g h ồ trợ p h ư ơ n g p h á p p h â n đ o ạ n k ế t h ọ p p h ân Ira n g (đ o ạ n đ ư ợ c c h ia th à n h n h iề u tra n g ), th ì d ư ớ i g ó c đ ộ n g ư ờ i d ù n g , b ộ n h ớ v ẫ n đ ư ợ c c h ia th à n h n h iề u đ o ạ n , n h ư n g H Đ H lại cà i đ ặ t k ỹ th u ậ t p h â n tra n g th e o y ê u cầu . P h â n đ o ạ n th e o y ê u c ầ u c ũ n g có th ể cài đ ặ t b ộ n h ớ ào , tu y n h iê n , th a y th ế đ o ạ n p h ứ c tạ p h ơ n th a y th ế tra n g vì k íc h th ư ớ c đ o ạ n k h ô n g cố đ ịn h . |M « Í" 7 (a) Bản đồ bộ nhở Chương trinh A Chương trinh B Bộ nhớ ảo Bộ nhớ vặt lý ố đĩa cừng Hoán chuyên ra (b) ’□ o s đ Hoán chuyẻn vào •>£ 5 ầ eỀ Tồị s n i c o i i c I2 Q 1 3 QuQ 15[; 16Q17ỌibỌ 18(Ị ^ ---- ---' Bộ nhỡ trong Hình 10.1. Bộ nhớ ảo và bộ nhớ vật lý 1 0 .2 . P H Â N T R A N G T H E O Y Ê U C Ả U

P h â n tra n g th e o y êu c ầ u tư ơ n g tự p h â n tra n g h o á n c h u y ể n . C á c tiế n Irìn h n ằ m trê n ổ đ ĩa đ ư ợ c b ộ p h â n tra n g tải v à o b ộ n h ớ k h i th ự c th i. C h ú ý, th a y vì đ ư a to à n b ộ tié n trìn h v à o , b ộ p h â n tra n g ch i đ ư a v à o b ộ n h ớ n h ữ n g tra n g m à tiế n trìn h th ự c sự c ầ n đ ến . ở đ â y có th ể x e m tiế n trìn h là tậ p h ợ p c á c tra n g , c h ứ k h ô n g p h ải m ộ t k h ô n g g ia n đ ịa ch i liê n tụ c. B ộ h o á n c h u y ể n lác đ ộ n g lê n to à n b ộ tiế n trìn h , tro n g k h i đ ố i tư ợ n g c ủ a b ộ p h â n tra n g là từ n g Ira n g riê n g lè. T rư ớ c khi tải tiế n trìn h v à o b ộ n h ớ , b ộ p h â n tra n g d ự đ o á n n h ữ n g tra n g sẽ đ ư ợ c sừ d ụ n g v à ch ỉ đ ư a n h ữ n g tra n g n à y v à o . D o k h ô n g p h ả i tả i c á c tra n g k h ô n g d ù n g , nôn g iả m th ờ i g ia n c h u y ể n đ ổ i v à tiế t k iệ m k h ô n g g ia n b ộ n h ớ v ậ t lý.

Đ ể x á c đ ịn h tra n g n ằ m tro n g b ộ n h ớ h a y n ằ m trê n ổ đ ĩa , H Đ H s ử d ụ n g b it h ợ p lệ - k h ô n g h ợ p lệ (v a lid -in v a lid ) n h ư tro n g m ụ c 9 .5 .2 . K h i b it có g iá

trị valid, trang tương ứng hợp lệ và nằm trong bộ nhớ. Trong trường hợp ngược lại, trang tương ứng hoặc không họrp lệ (không nằm trong không gian địa chi của tiến trình), hoặc họp lệ nhưng hiện nàm trên ổ đĩa. Tình huống này được mô tả trong Hình 10.2a.

BítHợplệ(v). Không hợp »«(1) Khungừ«f>g Bộ nhở ảo Bàng ưang

|a) Trang dang

nàm 9 0 iSacững Hệ đièu hành Thamcht^ 1- L& Khò«dộng Bâng trang Thndồi

gli tn bàng &W)0 Đưa trang thiểu vào bộ nhớ trong Bộ nhớ

vật lý Bộ nhớ

vật lý

Hình 10.2. Xử lý lỗi trang

Trang chưa đưa vào bộ nhớ không gây ảnh hường gì nếu không được sử dụng. Do đó, nếu dự đoán đúng và đưa vào bộ nhớ tất cả các trang cần thiết thì tiến trình vẫn chạy như thể toàn bộ tiến trình đã nàm trong bộ nhớ. v ấ n đề chi phát sinh khi tiến trình truy cập đến trang chưa tải vào bộ nhớ. Tình huống này gây ra lỗi trang. Trong quá trình giải mã địa chỉ, phần cứng phân trang nhận ra trang không họrp lệ, nên yêu cầu HĐH xử lý. Lỗi này do HĐH chưa tải trang cần thiết vào bộ nhớ, chứ không phải do truy cập tới vùng địa chi không hợp lệ. Các bước xử lý lỗi được minh họa trên Hình 10.2b nhu sau:

• Kiểm tra địa chi truy nhập có nằm trong vùng địa chi hợp lệ không. • Nếu yêu cầu truy nhập không hợp lệ, kết thúc công việc. Nếu yêu

cầu hợp lệ nhưng trang yêu cầu chưa nằm trong bộ nhớ, thi HĐH tải trang vào bộ nhớ.

• Tìm một frame trống (lấy từ danh sách frame trống).

• Yêu cầu đọc trang mong muốn từ ổ đĩa vào frame mới tìm thấy. • Khi hoàn tất việc đọc ổ đĩa, cập nhật bảng trạng thái của tiến trình và

• Khởi động lại chỉ thị bị ngắt do lồi trang. Lúc này tiến trình truy cập vào trang nhớ bình thường như thể trang đó luôn nằm trong bộ nhớ. Khi bị lồi trang, HĐH lưu lại ngữ cảnh tiến trình, nên tiến trình có thể khởi động lại tại đúng vị trí bị gián đoạn, ngoại trừ rằng, trang thiểu này đã có trong bộ nhớ.

Tiến trình có thể bắt đầu thực thi khi chưa có trang nào trong bộ nhớ. Khi thực thi chỉ thị đầu tiên, ngay lập tức tiến trinh bị phong tỏa do lỗi trang. Sau khi tải trang cần thiết vào bộ nhớ, tiến trình tiếp tục chạy, lồi trang lại xuất hiện cho tới khi nào tất cả các trang cần thiết được đưa vào bộ nhớ. Phương pháp này có thể gọi là phân trang theo yêu cầu thuần túy (không tải trang không cần thiết vào bộ nhớ).

v ề mặt lý thuyết, hoàn toàn có khả năng chi thị của chương trình tham chiếu tới nhiều trang nhớ (một trang cho chính chi thị và nhiều trang cho dữ liệu). Do vậy, một chi thị có thể gây ra nhiều lỗi trang. Điều này làm giảm đáng kể hiệu suất máy tính. Thống kê khi phân tích các tiến trình đang chạy cho thấy khả năng trên rất hiếm, vì các chương trình có xu hướng sử dụng

một miền tham chiếu cục bộ (locality o f reference). Do vậy, phân trang theo

yêu cầu làm tăng hiệu suất hệ thống. Phần cứng hồ trợ phân trang theo yêu cầu giống phần cứng hồ trợ phân trang hay hoán chuyển:

Bảng phân trang; Có thể đánh dấu trang là không hợp lệ thông qua bit valid-invalid, hoặc giá trị đặc biệt nào đó của bit bào vệ.

• Bộ n h ớ thứ cấp: Dùng để lưu trữ tất cả trang chưa nạp vào bộ nhớ chính. Bộ nhớ thứ cấp thường là ổ đĩa cứng. Vùng trên ổ đĩa dùng cho việc hoán chuyên được gọi là vùng hoán chuyển.

riến trình phải được khởi động ngay sau khi lỗi trang. Lỗi trang có thể xảy ra với bất kỳ yêu cầu truy cập bộ nhớ nào. Nếu xảy ra trong giai đoạn lấy chi thị về hệ thống, có thể khởi động lại bàng cách lấy lại chỉ thị. Nếu lỗi xảy ra trong giai đoạn đọc toán hạng, hệ thống phải lấy lại chi thị, giải mã và đọc lại toán hạng. Trường hợp phức tạp hơn, xét chi thị ADD A, B, c có 3 toán hạng thực hiện cộng giá trị A và B rồi đặt kết quả vào c . Các bước tiến hành sẽ là:

Một phần của tài liệu Giáo trình nguyên lý hệ điều hành phần 2 hồ đắc phương (Trang 51 - 54)