Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 3: Quản lý bộ nhớ
1. Địa chỉ và các vấn đề liên quan
2. Một số cách tổ chức chƣơng trình
3. Các yêu cầu quản lý bộ nhớ
4. Phân chƣơng bộ nhớ
5. Phân trang bộ nhớ
6. Phân đoạn bộ nhớ
7. Bộ nhớ ảo
U=0 và M=0 sẽ bị đổi Chỉ kiểm tra mà không thay đổi nội dung bit U, bit M Bƣớc 2: Nếu quay hết 1 vòng mà không tìm đƣợc trang có U và M bằng 0 thì quét lại danh sách lần 2 Trang đầu tiên có U=0, M=1 sẽ bị đổi Đặt bit U của những trang đã quét đến nhƣng đƣợc bỏ qua là 0 Nếu chƣa tìm đƣợc thì lặp lại bƣớc 1 và cả bƣớc 2 nếu cần V. BỘ NHỚ ẢO 3.2 Các chiến lƣợc đổi trang www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 64 HDH dành ra một số khung trống đƣợc kết nối thành danh sách liên kết gọi là các trang đệm Trang bị đổi nhƣ bình thƣờng nhƣng nội dung trang này không bị xóa ngay khỏi bộ nhớ Khung chứa trang đƣợc đánh dấu là khung trống và thêm vào cuối danh sách trang đệm Trang mới sẽ đƣợc nạp vào khung đứng đầu trong danh sách trang đệm Tới thời điểm thích hợp, hệ thống sẽ ghi nội dung các trang trong danh sách đệm ra đĩa V. BỘ NHỚ ẢO 3.3 Sử dụng đệm trang www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 65 Kỹ thuật đệm trang cho phép cải tiến tốc độ: Nếu trang bị đổi có nội dung cần ghi ra đĩa, HDH vẫn có nạp trang mới vào ngay Việc ghi ra đĩa sẽ đƣợc lùi lại tới một thời điểm sau Thao tác ghi ra đĩa có thể thực hiện đồng thời với nhiều trang nằm trong danh sách đƣợc đánh dấu trống. Trang bị đổi vẫn đƣợc giữ trong bộ nhớ một thời gian: Nếu có yêu cầu truy cập trong thời gian này, trang sẽ đƣợc lấy ra từ danh sách đệm và sử dụng ngay mà không cần nạp lại từ đĩa => Vùng đệm đóng vai trò giống nhƣ bộ nhớ cache V. BỘ NHỚ ẢO 3.3 Sử dụng đệm trang www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 66 HDH cấp phát bao nhiêu khung cho mỗi tiến trình? Khi số lƣợng khung tối đa cấp cho tiến trình giảm tới mức nào đó, lỗi thiếu trang diễn ra thƣờng xuyên => Đặt giới hạn tối thiểu các khung cấp phát cho tiến trình Khi số lƣợng khung cấp cho tiến trình giảm tới mức nào đó thì việc tăng thêm khung cho tiến trình không làm giảm đáng kể tần suất thiếu trang nữa => Cấp phát số lƣợng khung cố định và số lƣợng khung thay đổi VI. CẤP PHÁT KHUNG TRANG 1. Giới hạn khung www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 67 Cấp cho tiến trình một số lƣợng cố định khung để chứa các trang nhớ Số lƣợng đƣợc xác định vào thời điểm tạo mới tiến trình và không thay đổi trong quá trình tiến trình tồn tại Cấp phát bằng nhau: Các tiến trình đƣợc cấp số khung tối đa bằng nhau Số lƣợng đƣợc xác định dựa vào kích thƣớc MEM và mức độ đa chƣơng trình mong muốn Cấp phát không bằng nhau: Các tiến trình đƣợc cấp số khung tối đa khác nhau Cấp số khung tỉ lệ thuận với kích thƣớc tiến trình Có mức ƣu tiên VI. CẤP PHÁT KHUNG TRANG 1.1. Cấp phát số lƣợng khung cố định www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 68 Số lƣợng khung tối đa cấp cho mỗi tiến trình có thể thay đổi trong quá trình thực hiện Việc thay đổi phụ thuộc vào tình hình thực hiện của tiến trình Cho phép sử dụng bộ nhớ hiệu quả hơn phƣơng pháp cố định => Cần theo dõi và xử lý thông tin về tình hình sử dụng bộ nhớ của tiến trình VI. CẤP PHÁT KHUNG TRANG 1.2. Cấp phát số lƣợng khung thay đổi www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 69 Cấp phát toàn thể: Cho phép tiến trình đổi trang mới vào bất cứ khung nào (không bị khóa), kể cả khung đã đƣợc cấp phát cho tiến trình khác Cấp phát cục bộ: Trang chỉ đƣợc đổi vào khung đang đƣợc cấp cho chính tiến trình đó Phạm vi cấp phát có quan hệ mật thiết với số lƣợng khung tối đa: Số lƣợng khung cố định tƣơng ứng với phạm vi cấp phát cục bộ Số lƣợng khung thay đổi tƣơng ứng với phạm vi cấp phát toàn thể VI. CẤP PHÁT KHUNG TRANG 2. Phạm vi cấp phát khung www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 70 Là tình trạng đổi trang liên tục do không đủ bộ nhớ Thời gian đổi trang của tiến trình lớn hơn thời gian thực hiện Xảy ra khi: Kích thƣớc bộ nhớ hạn chế Tiến trình đòi hỏi truy cập đồng thời nhiều trang nhớ Hệ thống có mức độ đa chƣơng trình cao VII. TÌNH TRẠNG TRÌ TRỆ (thrashing) www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 71 Khi tiến trình rơi vào tình trạng trì trệ, tần suất thiếu trang tăng đáng kể => sử dụng để phát hiện và giải quyết vấn đề trì trệ Theo dõi và ghi lại tần suất thiếu trang Có thể đặt ra giới hạn trên và giới hạn dƣới cho tần suất thiếu trang của tiến trình Tần suất vƣợt giới hạn trên: Cấp thêm cho tiến trình khung mới Nếu không thể tìm khung để cấp thêm, tiến trình sẽ bị treo hoặc bị kết thúc Tần suất thiếu trang thấp hơn giới hạn dƣới: thu hồi một số khung của tiến trình VII. TÌNH TRẠNG TRÌ TRỆ (thrashing) Kiểm soát tần suất thiếu trang www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 72 Hỗ trợ cơ chế quản lý bộ nhớ: phân đoạn đƣợc kết hợp với phân trang Không gian nhớ của tiến trình bao gồm nhiều đoạn, mỗi đoạn có thể có kích thƣớc khác nhau và đƣợc phân trang trƣớc khi đặt vào bộ nhớ Ánh xạ địa chỉ: 2 giai đoạn VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Địa chỉ lô gic Khối phân đoạn Địa chỉ tuyến tính Khối phân trang Địa chỉ vật lý www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 73 Cho phép tiến trình có tối đa 16KB (hơn 16000) đoạn, mỗi đoạn có kích thƣớc tối đa 4GB Không gian nhớ lô gic đƣợc chia thành hai phần: Phần 1: dành riêng cho tiến trình, bao gồm tối đa 8KB đoạn Phần 2: dùng chung cho tất cả tiến trình, bao gồm cả HDH, và cũng gồm tối đa 8KB đoạn LDT(Local Descriptor Table) & GDT (Global Descriptor Table): chứa thông tin quản lý : Mỗi ô có kích thƣớc 8 byte: chứa địa chỉ cơ sở và giới hạn của đoạn tƣơng ứng VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Phân đoạn www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 74 Có 6 thanh ghi đoạn: cho phép tiến trình truy cập đồng thời 6 đoạn Thông tin về đoạn đƣợc chứa trong 6 thanh ghi 8 byte Địa chỉ logic gồm (selector, offset): Selector: chọn ô tƣơng ứng từ hai bảng mô tả LDT, GDT S: là số thứ tự đoạn G: cho biết đoạn thuộc GDT (g=0) hay LDT(g=1) P: cho biết chế độ bảo vệ (p=0 là chế độ nhân, p=3 là chế độ ngƣời dùng) Offset: độ dịch trong đoạn, kích thƣớc 32bit VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Phân đoạn s g p 13 bit 1 bit 2 bit www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 75 Biến đổi địa chỉ logic thành địa chỉ tuyến tính: VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Phân đoạn S=0 S=1 S GDT LDT Giới hạn Địa chỉ cơ sở Thanh ghi GDTR Giới hạn Địa chỉ cơ sở Đoạn ... Thanh ghi LDTR 0 8 1 6 5 6 0 8 1 6 5 6 Selector Selector Địa chỉ cơ sở Giới hạn Các trường khác + Offset 32-Bit địa chỉ tuyến tính Bảng mô tả www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 76 Hỗ trợ kích thƣớc trang 4KB hoặc 4MB, tùy thuộc vào giá trị cờ kích thƣớc trang Trang kích thƣớc 4KB: tổ chức bảng trang thành 2 mức Địa chỉ tuyến tính có kích thƣớc 32 bit P1: cho phép tìm bảng trang mức hai P2: tìm ô tƣơng ứng trong bảng trang mức 2 kết hợp với độ dịch o tạo ra địa chỉ vật lý Trang kích thƣớc 4MB: Bảng trang chỉ có một mức P :10bit O: độ dịch, kích thƣớc 22bit cho phép trỏ tới vị trí cụ thể trong trang nhớ 4MB VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Phân trang p1 p1 o 10 bit 10 bit 12 bit www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 77 Biến đổi địa chỉ tuyến tính thành địa chỉ vật lý với kích thƣớc trang 4KB VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Phân trang P1 P2 O 31 22 21 12 11 0 Địa chỉ tuyến tính Khoản mục Khoản mục Địa chỉ vật lý CR3 (PDBR) 10 12 10 32 Bảng trang mức 1 Bảng trang mức 2 Trang 4KB www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 78 VIII. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM Ánh xạ địa chỉ P1 P2 O Segment Selector Offset Không gian địa chỉ tuyến tính Bảng mô tả toàn thể (GDT) Segment Descriptor Địa chỉ tuyến tính Khoản mục Khoản mục Địa chỉ vật lý Địa chỉ cơ sở đoạn Trang Đoạn Không gian địa chỉ vật lý Địa chỉ tuyến tính Địa chỉ logic Bảng trang mức 1 Bảng trang mức 2 Phân đoạn Phân trang www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 79 Cho phép tiến trình sử dụng bộ nhớ ảo tới 4GB 2GB đƣợc dùng riêng cho tiến trình 2GB sau đƣợc dùng chung cho hệ thống Bộ nhớ ảo thực hiện bằng kỹ thuật nạp trang theo nhu cầu và đổi trang Kích thƣớc trang nhớ 4KB Tổ chức bảng trang 2 mức Nạp trang theo cụm: khi xảy ra thiếu trang, nạp cả cụm gồm 1 số trang nằm sau trang bị thiếu IX. QUẢN LÝ BỘ NHỚ TRONG WINDOWS XP www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 80 Kiểm soát số lƣợng trang: gán cho mỗi tiến trình số lƣợng trang tối đa và tối thiểu Số lƣợng trang tối đa và tối thiểu cấp cho tiến trình đƣợc thay đổi tùy vào tình trạng bộ nhớ trống HDH lƣu danh sách khung trống, và sử dụng một ngƣỡng an toàn Số khung trống ít hơn ngƣỡng: HDH xem xét các tiến trình đang thực hiện. Tiến trình có số trang lớn hơn số lƣợng tối thiểu sẽ bị giảm số trang cho tới khi đạt tới số lƣợng tối thiểu của mình. Tùy vào vi xử lý, Windows XP sử dụng thuật toán đổi trang khác nhau IX. QUẢN LÝ BỘ NHỚ TRONG WINDOWS XP
File đính kèm:
- Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 3 Quản lý bộ nhớ.PDF