Giới thiệu: CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA, TỆP + Một trong những nhiệm vụ quan trọng nhất của HĐH + Trong các hệ thống đa chương, HĐH phải đảm bảo các yếu tố sau: - Phương pháp chuyể
Trang 1KIẾN TRÚC MÁY TÍNH
VÀ HỆ ĐIỀU HÀNH
Trang 26.1 Quản lý bộ nhớ
CHƯƠNG 6:
QUẢN LÝ BỘ NHỚ, QUẢN LÝ VÀO
RA VÀ QUẢN LÝ TỆP CỦA HỆ ĐIỀU
HÀNH
6.2 Quản lý vào ra
6.3 Quản lý tệp
Trang 36.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
+ Một trong những nhiệm vụ quan trọng nhất của HĐH
+ Trong các hệ thống đa chương, HĐH phải đảm bảo các yếu tố sau:
- Phương pháp chuyển đổi địa chỉ
- Phương pháp mở rộng bộ nhớ
- Phương pháp chia sẻ thông tin trong bộ nhớ
- Phương pháp bảo vệ vùng nhớ của các tiến trình
Trang 5- Cấu trúc chương trình Overlay
- Cấu trúc chương trình phân trang
- Cấu trúc chương trình phân đoạn
- Cấu trúc chương trình tuyến tính
- Cấu trúc chương trình động
Trang 66.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình tuyến tính:
- Cấu trúc đơn giản, dễ viết, nhiều NNLT hỗ trợ
- Tập tin thực thi có tính độc lập cao, tốc độ thực hiện chương trình cao
- Tốn bộ nhớ
- Các modun, thư viện được biên dịch lại thành 1 modun
- HĐH nạp toàn bộ modun chương trình vào bộ nhớ
Trang 7- Modun chính có thể gọi các modun khác vào bộ nhớ
- HĐH chỉ nạp modun chính vào bộ nhớ khi bắt đầu
- Tiết kiệm bộ nhớ
- Chương trình được viết dưới dạng các modun riêng lẻ
- Các thư viện không được tích hợp trong modun chính
- Tính độc lập kém đi, chương trình thực hiện chậm hơn
Trang 86.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình Overlay:
- Các modun lớp 0 có thể gọi nạp modun ở lớp 1, 2, 3,…
- Các modun trong 1 lớp không thể gọi lẫn nhau
- Chương trình được viết dưới dạng các modun riêng lẻ
và được phân thành các lớp khác nhau (0, 1, 2, 3,…)
- Kích thước của modun lớn nhất được xem là kích thước của lớp
Trang 96.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình Overlay:
- Người lập trình cung cấp đầy đủ các thông tin:
Chương trình gồm bao nhiêu modun
Mỗi modun bao gồm thư viện và thủ tục nào
Kích thước của mỗi modun
CT được chia thành bao nhiêu lớp modun
Xây dựng sơ đồ biên dịch và quản lý sơ đồ Overlay
Trang 106.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình Overlay:
- HĐH nạp sơ đồ Overlay, nạp các modun ở lớp 0
- Cơ chế nạp các modun khác:
Các modun phải nạp đúng đoạn bộ nhớ của lớp
Modun gọi nạp sau được quyền ghi đè modun cùng lớp đã nạp vào bộ nhớ trước đó
- Tiết kiệm bộ nhớ hơn cấu trúc động
- Công tác cấp phát bộ nhớ đơn giản
Trang 116.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình phân trang:
- CT được biên dịch thành 1 modun duy nhất
- Chia modun thành các phần bằng nhau trang CT
- Bộ nhớ cũng được phân trang khung trang (frame)
- HĐH nạp các trang CT vào các khung trang bộ nhớ
- HĐH xây dựng bảng điều khiển trang PCT
- Tiết kiệm bộ nhớ nhưng tốc độ truy xuất dữ liệu chậm
Trang 126.1 Quản lý bộ nhớ
6.1.1 Giới thiệu:
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Cấu trúc chương trình phân đoạn:
- CT biên dịch thành các modun riêng lẻ đoạn CT
- Bộ nhớ cũng được phân đoạn (segmentation)
- HĐH nạp các đoạn CT vào các phân đoạn bộ nhớ
- HĐH xây dựng bảng điều khiển trang SCT
- Tiết kiệm bộ nhớ nhưng tốc độ truy xuất dữ liệu chậm
Trang 136.1 Quản lý bộ nhớ
6.1.2 Các chiến lược quản lý bộ nhớ
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
+ Các chiến lược nạp (fetch):
- Các chiến lược nạp yêu cầu
- Các chiến lược nạp phòng ngừa+ Các chiến lược sắp xếp
- Best - fit
- Worst - fit+ Các chiến lược thay thế
- First - fit
Trang 14- Đa chương với phân vùng động
- Đa chương với kỹ thuật chuyển đổi (swapping)
Trang 15Người sử dụng
Hệ điều hành
Không sử dụng
0 a
b c
CPU
Thanh ghi giới hạn a
Trang 16+ Yêu cầu phải có kế hoạch cẩn thận và thời gian chi phối chặt chẽ
Trang 17Pha tiến hành
Phần đoạn mã và dữ liệu
phải được tồn tại trong bộ
nhớ chính trong suốt thời
gian thực thi
Pha xuất
1 2 3
Trang 18+ Các công việc được sắp xếp vào các hàng đợi ứng với mỗi phần của bộ nhớ chính
Trang 196.1 Quản lý bộ nhớ
6.1.3 Cấp phát liên tục
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Các hệ thống đa chương với phân vùng cố định:
+ Hạn chế của phân vùng cố định kích thước bằng nhau:
- Kích thước CT quá lớn so với kích thước 1 phân vùng:
- Kích thước CT quá nhỏ so với kích thước 1 phân vùng:
Thiết kế CT theo cấu trúc overlay
Phân mảnh bộ nhớ
Lãng phí bộ nhớ
Sử dụng các phân vùng có kích thước không bằng nhau
Trang 20Phần 3
Hàng đợi cho vùng 1 Hàng đợi cho vùng 2
Hàng đợi cho vùng 3
0 a b
c
d
Trang 21Phần 3
Hàng đợi cho vùng 1 Hàng đợi cho vùng 2
Hàng đợi cho vùng 3
0 a b
c
d
Trang 22Phần 3
Hàng đợi
0 a b
c
d
Trang 23Hệ điều hành
Tự do
Trang 25Tiến trình B 20K
Trang 26Tiến trình H cần 18K Tiến trình A 15K
Tiến trình B 20K Tiến trình C 10K
Trang 27Tiến trình I cần 9K Tiến trình A 15K
Tiến trình B 20K Tiến trình C 10K
Tiến trình D 25K
Trang 28Tiến trình A 15K Tiến trình B 20K Tiến trình C 10K
Tiến trình D 25K
Tiến trình E 14K
Trang 29Lỗ hổng 15K Tiến trình B 20K
Lỗ hổng 10K
Lỗ hổng 25K
Tiến trình E 14K
Trang 30Lỗ hổng 15K Tiến trình B 20K
Lỗ hổng 35K
Tiến trình E 14K
Trang 31Lỗ hổng 15K Tiến trình B 20K
Tiến trình F 32K
Tiến trình E 14K
Trang 32Tiến trình B 20K
Tiến trình F 32K
Tiến trình E 14K Tiến trình G 11K
Trang 33Tiến trình B 20K
Tiến trình F 32K
Lỗ hổng 14K Tiến trình G 11K
Trang 34Tiến trình B 20K
Tiến trình F 32K
Lỗ hổng 21K Tiến trình G 11K
Trang 35Tiến trình B 20K
Tiến trình F 32K
Tiến trình H 18K Tiến trình G 11K
Trang 36Tiến trình I 9K
Trang 376.1 Quản lý bộ nhớ
6.1.3 Cấp phát liên tục
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Các hệ thống đa chương với phân vùng động:
+ Bản đồ Bit và Danh sách liên kết:
Trang 38- Worst - fit: Đặt tiến trình vào lỗ hổng vừa, lớn nhất
- First - fit: Đặt tiến trình vào lỗ hổng vừa, tự do đầu tiên
+ Ví dụ: Nạp tiến trình 18K vào bộ nhớ sau:
Trang 406.1 Quản lý bộ nhớ
6.1.3 Cấp phát liên tục
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Các hệ thống đa chương với kỹ thuật chuyển đổi:
+ Swap - out: đưa 1 tiến trình đang hoạt động trên bộ nhớ chính ra ngoài bộ nhớ phụ
+ Swap - in: nạp lại tiến trình swap - out vào bộ nhớ chính+ Vị trí nạp vào có thể thay đổi giữa lần đầu và sau khi swap - in tái định vị tiến trình vào lại bộ nhớ
+ Bảo vệ vùng nhớ của mỗi tiến trình (dùng 2 thanh ghi)
Trang 42+ Địa chỉ ảo trong hệ thống phân trang là 1 cặp (p, d):
+ Tiến trình thực thi nếu trang hiện thời của nó đang ở trong bộ nhớ chính
+ Bộ nhớ chính chia thành các blocked khung trang
- p: chỉ số trang trong bộ nhớ ảo
- d: độ dịch chuyển bên trong trang p
Trang 4310 Page 1 0
Page 1 1 Page 1 2 Page 1 3
Page 2 0 Page 2 1 Page 2 2
Trống
9 8 7 6 5 4 3 2 1 0
Page Table
của tiến trình
8 1 3
Trang 44- kích thước của không gian địa chỉ là 2m
- kích thước của trang là 2n
(m - n) bit cao của địa chỉ logic là số hiệu trang (page)
n bit còn lại là địa chỉ tương đối trong trang (offset)
Trang 456.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc tối ưu:
+ Trang thay thế là trang sẽ không được dùng lại trong thời gian lâu nhất trong tương lai
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Trang 466.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc tối ưu:
+ Trang thay thế là trang sẽ không được dùng lại trong thời gian lâu nhất trong tương lai
Trang 476.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc thay thế vào trước ra trước:
+ Trang thay thế là trang đã ở trong bộ nhớ chính lâu nhất
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Trang 486.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc thay thế vào trước ra trước:
+ Trang thay thế là trang đã ở trong bộ nhớ chính lâu nhất
Trang 496.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc thay thế trang “lâu nhất chưa sử dụng”:
+ Trang thay thế là trang chưa được sử dụng trong một thời gian lâu nhất
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Trang 506.1 Quản lý bộ nhớ
6.1.5 Các thuật toán thay thế trang
CHƯƠNG 6: QUẢN LÝ BỘ NHỚ, VÀO RA,
TỆP
* Nguyên tắc thay thế trang “lâu nhất chưa sử dụng”:
+ Trang thay thế là trang chưa được sử dụng trong một thời gian lâu nhất