Kỹ thuật phân vùng động

Một phần của tài liệu Bài giảng nguyên lý hệ điều hành chương 3 GV đặng quang hiển (Trang 28 - 38)

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2Kỹ thuật phân vùng động

 Số lượng các phân vùng trên bộ nhớ và kích thước của mỗi phân vùng có thể thay đổi. Phần user program trên bộ nhớ không được phân chia trước mà khi có một tiến trình được nạp vào bộ nhớ thì HĐH cấp cho nó một không gian vừa đủ để chứa tiến trình, phần còn lại để sẵn sàng cấp cho tiến trình khác sau này

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

 Khi tiến trình yêu cầu thì nó tìm vùng nhớ vừa đủ, nếu phân vùng lớn thì một phần được cấp cho tiến trình, phần còn lại tìm và kết hợp với các tiến trình khác để tạo thành vùng lớn hơn cấp cho các tiến trình có yêu cầu. Điều này làm giảm tốc độ hệ thống, hơn nữa khi tiến trình Swap out và phải swap in vào lại để hoạt động

 Kỹ thuật phân vùng động HĐH quản lý các khối nhớ đã cấp phát hay còn trống bằng sử dụng sơ đồ bit và danh sách liên kết:

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH 3.3.2 Kỹ thuật phân vùng động  Danh sách liên kết H 0 2 P 2 3 H 5 3 P 8 2 H 10 4 P 14 3 H 17 1 P 18 2 20 2

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

 Khi tiến trình cần được nạp vào bộ nhớ thì HĐH phải lựa chọn khối nhớ trống phù hợp nạp vào sao cho việc lựa chọn này dẫn đến việc sử dụng bộ nhớ chính là hiệu quả nhất

Best-fit: duyệt tất cả để chọn khối nhớ có kích thước vừa đúng bằng kích thước của tiến trình cần được nạp vào bộ nhớ

First-fit: duyệt tất cả các khối nhớ trống trong bộ nhớ và sẽ chọn khối nhớ trống đầu tiên có kích thước đủ lớn để nạp tiến trình

Next-fit: hệ điều hành bắt đầu quét từ khối nhớ trống kế sau khối nhớ vừa được cấp phát và chọn khối nhớ trống kế tiếp đủ lớn để nạp tiến trình

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

Ví dụ: giả sử có các khối nhớ như hình sau và có 1 tiến trình 16K cần được nạp vào bộ nhớ 8k 12k 22k 18k 8k 6k 14k 36k khối nhớ vừa được cấp phát cuối cùng

 Khối nhớ 22k nếu theo thuật toán First-fit, phân mảnh 6k

 Khối nhớ 18k nếu theo thuật toán Best-fit, phân mảnh 2k

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

 Các HĐH không cài đặt trước một thuật toán nào cả mà tùy vào trường hợp mà chọn thuật toán cấp phát sao cho hạn chế sự phân mảnh. Chọn thuật toán nào phụ thuộc vào thứ tự swap và kích thước của tiến trình.

First-fit: đơn giản, dễ cài đặt, tốc độ, có hiệu quả cao nhất

Next-fit: thường sử dụng được các khối nhớ trống ở cuối vùng nhớ thường có kích thước lớn nên, hạn chế được sự phân mảnh

Best-fit: hiệu suất thấp vì phải duyệt qua hết tất cả các khối nhớ trống để tìm khối nhớ có kích thước của tiến trình yêu cầu, giảm hiệu suất và chọn khối nhớ vừ đủ nên dẫn đến sự phân mảnh lớn vì có nhiều khối nhớ quá nhỏ

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

 Trong công tác cấp phát bộ nhớ, HĐH có thể Swap out một tiến trình ra ngoài đĩa để dành chỗ cấp phát cho tiến trình có yêu cầu và sau đó swap in vào lại tại thời điểm thích hợp. Khi nạp lại thì có thể không đúng với phân vùng nạp đầu tiên. Sự thay đổi này làm ảnh hưởng đến việc truy xuất dữ liệu khi một tiến trình được nạp vào bộ nhớ lần đầu tiên

 Ví dụ chương trình có code truy xuất tại địa chỉ 100K, nếu được nạp vào phân vùng 1 có đị chỉ 100k thì truy xuất là 200K, nếu nạp tại phân vùng 2 có địa chỉ 200k thì truy xuất 300k. Để giải quyết vấn đề này HĐH phải thực hiện công tác tái định vị tiến trình vào bộ nhớ nhưng trách việc truy xuất đến vùng nhớ của tiến trình khác

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

 Sử dụng 2 thanh ghi đặc biệt

• Thanh ghi cơ sở (base register): dùng để ghi địa chỉ cơ sở của tiến trình tiến trình được nạp vào bộ nhớ

• Thanh ghi giới hạn (limit register): dùng để ghi địa chỉ cuối cùng của tiến trình trong bộ nhớ

 Việc thiết lập giá trị của các thanh ghi này được thực hiện cả khi tiến trình lần đầu tiên được nạp và swap in vào lại bộ nhớ

• Thứ nhất: cộng địa chỉ ô nhớ với giá trị địa chỉ trong thanh ghi cơ sở để có được địa chỉ tuyệt đối của ô nhớ cần truy xuất

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

3.3.2 Kỹ thuật phân vùng động

• Hạn chế của kỹ thuật này là phân mảnh bộ nhớ và lãng phí bộ nhớ. Để khắc phục HĐH sử dụng phân trang/phân đoạn

Đị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ớ

KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNHKỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH KỸ THUẬT CẤP PHÁT BỘ NHỚ CHÍNH

Một phần của tài liệu Bài giảng nguyên lý hệ điều hành chương 3 GV đặng quang hiển (Trang 28 - 38)