Bài giảng Hệ điều hành nâng cao: Bài 9 - Phân đọan và phân trang. Những nội dung chính được trình bày trong chương này gồm có: Mô hình segmentation, chuyển đổi địa chỉ trong mô hình segmentation, mô hình paging, chuyển đổi địa chỉ trong mô hình paging,. . | BÀI 9 : PHÂN ĐỌAN VÀ PHÂN TRANG Cấp phát không liên tục : Segmentation Paging Mô hình Segmentation Tiến trình gồm nhiều segment, áp dụng base bound cho từng segment Phân chia không gian địa chỉ thành các segment ? gcc Text seg r/o Stack seg r/w 0x1000 0x3000 0x5000 0x6000 Real memory 0x2000 0x8000 0x6000 Base&bound? Chuyển đổi địa chỉ trong mô hình Segmentation Virtual addr Seg# offset 3 128 Seg table Prot base len r 0x1000 512 mem seg 128 + 0x1000 ? yes no fault Mô hình Segmentation Cấp phát không liên tục => tận dụng bộ nhớ hiệu quả Chia sẻ được ở mức module Chuyển đổi địa chỉ phức tạp Vấn đề “Cấp phát động” : lựa chọn vùng nhớ liên tục cho 1 segment ? Phân mảnh ngoại vi gcc emacs ?? External fragmentation Nachos Mô hình Paging Không gian địa chỉ = {page} Không gian vật lý = {frame} Kích thước trang ? Internal frag Real memory gcc emacs emacs gcc Chuyển đổi địa chỉ trong mô hình Paging CPU KGVL Physical addr Logical addr p d f d f Mô hình Paging Cấp phát bộ nhớ đơn giản Không còn phân mảnh ngoại vi Không chia sẻ ở mức module Phân mảnh nội vi Lưu trữ bảng trang ? | BÀI 9 : PHÂN ĐỌAN VÀ PHÂN TRANG Cấp phát không liên tục : Segmentation Paging Mô hình Segmentation Tiến trình gồm nhiều segment, áp dụng base bound cho từng segment Phân chia không gian địa chỉ thành các segment ? gcc Text seg r/o Stack seg r/w 0x1000 0x3000 0x5000 0x6000 Real memory 0x2000 0x8000 0x6000 Base&bound? Chuyển đổi địa chỉ trong mô hình Segmentation Virtual addr Seg# offset 3 128 Seg table Prot base len r 0x1000 512 mem seg 128 + 0x1000 ? yes no fault Mô hình Segmentation Cấp phát không liên tục => tận dụng bộ nhớ hiệu quả Chia sẻ được ở mức module Chuyển đổi địa chỉ phức tạp Vấn đề “Cấp phát động” : lựa chọn vùng nhớ liên tục cho 1 segment ? Phân mảnh ngoại vi gcc emacs ?? External fragmentation Nachos Mô hình Paging Không gian địa chỉ = {page} Không gian vật lý = {frame} Kích thước trang ? Internal frag Real memory gcc emacs emacs gcc Chuyển đổi địa chỉ trong mô hình Paging CPU KGVL Physical addr Logical addr p d f d f Mô hình Paging Cấp phát bộ nhớ đơn giản Không còn phân mảnh ngoại vi Không chia sẻ ở mức module Phân mảnh nội vi Lưu trữ bảng trang | BÀI 9 : PHÂN ĐỌAN VÀ PHÂN TRANG Cấp phát không liên tục : Segmentation Paging Mô hình Segmentation Tiến trình gồm nhiều segment, áp dụng base bound cho từng segment Phân chia không gian địa chỉ thành các segment ? gcc Text seg r/o Stack seg r/w 0x1000 0x3000 0x5000 0x6000 Real memory 0x2000 0x8000 0x6000 Base&bound? Chuyển đổi địa chỉ trong mô hình Segmentation Virtual addr Seg# offset 3 128 Seg table Prot base len r 0x1000 512 mem seg 128 + 0x1000 ? yes no fault Mô hình Segmentation Cấp phát không liên tục => tận dụng bộ nhớ hiệu quả Chia sẻ được ở mức module Chuyển đổi địa chỉ phức tạp Vấn đề “Cấp phát động” : lựa chọn vùng nhớ liên tục cho 1 segment ? Phân mảnh ngoại vi gcc emacs ?? External fragmentation Nachos Mô hình Paging Không gian địa chỉ = {page} Không gian vật lý = {frame} Kích thước trang ? Internal frag Real memory gcc emacs emacs gcc Chuyển đổi địa chỉ trong mô hình Paging CPU KGVL Physical addr Logical addr p d f d f Mô hình Paging Cấp phát bộ nhớ đơn giản Không còn phân mảnh ngoại vi Không chia sẻ ở mức module Phân mảnh nội vi Lưu trữ bảng trang ?