Bài giảng môn Hệ điều hành - Chương 5: Quản lý bộ nhớ

5.1 Tổng quát vềquản lý bộnhớ

5.2 Quản lý bộnhớthật

5.3 Quản lý bộnhớảo

5.4 Quản lý bộnhớảo phân trang

5.5 Quản lý bộnhớảo phân đoạn

5.6 Quản lý bộnhớảo phân đoạn và phân trang

5.7 Quản lý bộnhớcủa CPU Intel 80x86

pdf25 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 2772 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng môn Hệ điều hành - Chương 5: Quản lý bộ nhớ, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
có nhiều vùng độc lập để
chứa thông tin độc lập.
hệ thống muốn chương trình 
có không gian rất lớn, không 
bận tâm kích thước RAM
Vì sao kỹ thuật này được phát sinh
CóKhông Các chương trình có thể dùng chung dữ
liệu và hàm ?
CóKhôngCác bảng dữ liệu dễ thích ứng khi kích 
thước của chúng bị thay đổi ?
CóKhôngHàm và dữ liệu được tách biệt và bảo vệ
riêng biệt ?
CóCóKích thước không gian ảo tổng cộng có
lớn hơn kích thứơc RAM ?
n1Chương trình có bao nhiêu vùng địa chỉ
tuyến tính độc lập ?
CóKhôngNgười lập trình có biết kỹ thuật này 
đang dùng ?
SegementationKỹ thuật PagingĐặc tính
Quản lý bộ nhớ ảo phân đoạn
18
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 35
Chương 5 : Quản lý bộ nhớ
5.6 Quản lý bộ nhớ ảo phân đoạn và phân trang
Qui trình đổi địa chỉ ảo sang địa chỉ thật ở slide trước có khuyết 
điểm trong trường hợp quản lý segemnt có kích thước lớn : ta 
khó/không tìm được vùng RAM trống chứa nó. Vì lý do này, trong 
thực tế, người ta phải kết hợp 2 phương pháp quản lý phân trang và 
phân đoạn lại, đây là phương pháp mạnh nhất hiện nay. ý tưởng là
hệ thống sẽ quản lý mỗi segment phần mềm như là 1 không gian ảo 
gồm nhiều trang ảo, mỗi lần chương trình truy xuất ô nhớ nằm trong 
trang ảo nào của segment nào, hệ thống sẽ tìm cách nạp nó vào 
RAM.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 36
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ ảo phân đoạn và phân trang
Qui trình đổi địa chỉ ảo sang địa chỉ thật :
1. từ địa chỉ mà chương trình truy xuất gồm 2 thành phần : segement (s) 
và offset, hệ thống sẽ tách offset ra thành 2 thành phần page (p) + 
offset1.
2. Truy xuất record quản lý segement s trong bảng đặc tả segement. 
Nếu field inRAM=1 thì bản đặc tả trang cho segement s đã có trong 
RAM. Nếu không thì tìm cách nạp nó vào RAM.
3. Truy xuất record quản lý trang ảo p trong bảng đặc tả trang. Nếu field 
inRAM=1 thì địa chỉ thật tương ứng là :
page frame Offset và qui trình kết thúc.
4. Nếu inRAM =0, hệ thống sẽ tìm 1 trang thật rãnh (k), nếu không có
phải tìm cách giải phóng 1 trang thật ít gây phiền hà nhất (k), dựa vào 
thông tin trong field "inDisk" để mở file và đọc trang ảo vào trang thật 
k.
5. Hiệu chỉnh lại field inRAM = 1 và field page frame = k rồi quay lại 
bước 3.
19
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 37
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ ảo phân đoạn và phân trang
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 38
Chương 5 : Quản lý bộ nhớ
5.7 Quản lý bộ nhớ của CPU Intel 80x86
Với mục tiêu phải tương thích ngược với các CPU đời cũ hơn, các 
CPU 80x86 (x>=3) cung cấp 3 cơ chế quản lý bộ nhớ :
1. real mode : đã có trong CPU 8088, CPU được dùng để xây 
dựng máy IBM PC đầu tiên. Đây là cơ chế quản lý bộ nhớ thật 
dùng kỹ thuật phân đoạn (segmentation).
2. protected mode : đã có trong CPU 80286. Đây là cơ chế quản 
lý bộ nhớ ảo dùng kỹ thuật phân đoạn (segmentation).
3. 386 enchanced mode : mới thêm vào cho các CPU từ 80386 trở 
lên. Đây là cơ chế quản lý bộ nhớ tổng hợp vừa phân đoạn vừa 
phân trang.
20
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 39
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ Real mode
Nguyên lý hoạt động :
ƒ không gian bộ nhớ của chương trình là 1 tập các segment, 
ƒ mỗi địa chỉ truy xuất được xác định bởi chương trình gồm 2 
tham số : chỉ số segment + offset, mỗi tham số dài 16 bit. Ở
góc nhìn lập trình, mỗi phần mềm có 216 segment, mỗi segment 
có 216 byte → mỗi chương trình dài maximum 4GB!
ƒ Thường thì chương trình sẽ truy xuất tuần tự các ô nhớ nên 
tham số segment sẽ được chứa vào 1 trong các thanh ghi 
segment (CS, DS, ES, SS), mỗi lệnh máy chỉ cần miêu tả offset 
của ô nhớ cần truy xuất.
ƒ Máy sẽ đổi địa chỉ ảo sang địa chỉ thật theo công thức sau :
physical address = segment * 16 + offset,
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 40
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ Real mode
Nguyên lý hoạt động (tt) :
ƒ bit A20 của kết quả hoặc bị bỏ đi (trong chế độ A20 disable), 
hoặc được giữ lại và dùng (trong chế độ A20 enable). Chế độ 
A20 được thiết lập trong ROM BIOS.
ƒ Theo cách đổi địa chỉ ảo như trên, ta thấy các segment phần 
mềm khác nhau có thể giao nhau, độ lệch tối thiểu của 2 
segment là 16 ô nhớ (1 paragraph).
ƒ Thí dụ các ô nhớ 0:80H ≡1:70H ≡ 2:60H ≡ 3:50H ≡ 4:40H ≡
5:30H 6:20H ≡ 7:10H ≡ 8:0H đều chiếm cùng 1 ô nhớ RAM.
ƒ không gian RAM mà chương trình truy xuất được thực tế là 1MB 
(A20 disable) hay 1MB + 65520 B (A20 enable). Ta gọi phần 
trên 1MB là HIGH MEMORY.
21
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 41
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ Protected mode
Nguyên lý hoạt động :
ƒ không gian bộ nhớ của chương trình là 1 tập các segment ảo, 
ƒ mỗi địa chỉ truy xuất được xác định bởi chương trình gồm 2 
tham số : chỉ số segment + offset, tham số segment dài 16 bit y 
như chế độ real mode, còn tham số offset có thể dài 32 bit. Như 
vậy, ở góc nhìn lập trình, mỗi phần mềm có 216 segment, mỗi 
segment có 232 byte → mỗi chương trình dài maximum 248 =
256TB!
ƒ Thường thì chương trình sẽ truy xuất tuần tự các ô nhớ nên 
tham số segment sẽ được chứa vào 1 trong các thanh ghi 
segment (CS, DS, ES, SS), mỗi lệnh máy chỉ cần miêu tả offset 
của ô nhớ cần truy xuất.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 42
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ Protected mode
Nguyên lý hoạt động (tt) :
ƒ nội dung trong thanh ghi segment không phải là chỉ số segment 
cần truy xuất mà nó được hiểu là “segment selector” gồm 3 
thông tin :
ƒ như vậy, không gian bộ nhớ của chương trình có kích thước 
maximum là 8K segment toàn cục (global) và 8K segment 
cục bộ (local). Mỗi segment dài tối đa 4GB (dùng format 32-
bit cho offset) → bộ nhớ chương trình tổng cộng là 64 TB. 
22
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 43
Chương 5 : Quản lý bộ nhớ
Limit 0-7
Limit 8-15
Base 8-15
Base 16-23
Base 0-7
Base 24-31
Limit 16-19
TypeSP DPL
G D
Cấu trúc record quản lý segment của Intel
ƒ Base0-31 : địa chỉ RAM chứa segment
ƒ Limit0-19 : độ lớn segment (đơn vị tính 
là byte/page)
ƒ D = 0 : Limit tính theo byte / D = 1 : 
tính theo page 4KB
ƒ G = 0 : segment 16-bit / G = 1 : 
segment 32-bit
ƒ P = 0 : segment chưa nạp vào RAM / P 
= 1 : nạp vào RAM rồi
ƒ S = 0 : System / S = 1 : Application
ƒ DPL : mức độ phân quyền từ 0 - 3
ƒ Type : kiểu segment và bảo vệ segment 
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 44
Chương 5 : Quản lý bộ nhớ
Địa chỉ luận lý có dạng segment:Offset, địa chỉ thật tương ứng là địa 
chỉ 32 bit, kết quả của phép cộng số học trong hình sau :
Qui trình đổi địa chỉ ảo sang địa chỉ thật
23
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 45
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ 368 enchanced mode
Nguyên lý hoạt động :
ƒ không gian bộ nhớ của chương trình là 1 tập các segment ảo, 
ƒ mỗi địa chỉ truy xuất được xác định bởi chương trình gồm 2 
tham số : chỉ số segment + offset, tham số segment dài 16 bit y 
như chế độ real mode, còn tham số offset có thể dài 32 bit. Như 
vậy, ở góc nhìn lập trình, mỗi phần mềm có 216 segment, mỗi 
segment có 232 byte → mỗi chương trình dài maximum 248 =
256TB!
ƒ Thường thì chương trình sẽ truy xuất tuần tự các ô nhớ nên 
tham số segment sẽ được chứa vào 1 trong các thanh ghi 
segment (CS, DS, ES, SS), mỗi lệnh máy chỉ cần miêu tả offset 
của ô nhớ cần truy xuất.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 46
Chương 5 : Quản lý bộ nhớ
Quản lý bộ nhớ Protected mode
Nguyên lý hoạt động (tt) :
ƒ nội dung trong thanh ghi segment không phải là chỉ số segment 
cần truy xuất mà nó được hiểu là “segment selector” gồm 3 
thông tin :
ƒ như vậy, không gian bộ nhớ của chương trình có kích thước 
maximum là 8K segment toàn cục (global) và 8K segment 
cục bộ (local). Mỗi segment dài tối đa 4GB (dùng format 32-
bit cho offset) → bộ nhớ chương trình tổng cộng là 64 TB. 
24
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 47
Chương 5 : Quản lý bộ nhớ
Limit 0-7
Limit 8-15
Base 8-15
Base 16-23
Base 0-7
Base 24-31
Limit 16-19
TypeSP DPL
G D
Cấu trúc record quản lý segment của Intel
ƒ Base0-31 : địa chỉ RAM chứa segment
ƒ Limit0-19 : độ lớn segment (đơn vị tính 
là byte/page)
ƒ D = 0 : Limit tính theo byte / D = 1 : 
tính theo page 4KB
ƒ G = 0 : segment 16-bit / G = 1 : 
segment 32-bit
ƒ P = 0 : segment chưa nạp vào RAM / P 
= 1 : nạp vào RAM rồi
ƒ S = 0 : System / S = 1 : Application
ƒ DPL : mức độ phân quyền từ 0 - 3
ƒ Type : kiểu segment và bảo vệ segment 
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 48
Chương 5 : Quản lý bộ nhớ
Địa chỉ luận lý có dạng segment:Offset, địa chỉ ảo tương ứng là địa 
chỉ 32 bit, kết quả của phép cộng số học trong hình sau :
Qui trình đổi địa chỉ ảo sang địa chỉ thật
25
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 49
Chương 5 : Quản lý bộ nhớ
Địa chỉ ảo tuyến tính 32 bit được đổi sang địa chỉ thật của RAM bằng 
cơ chế phân trang 2 cấp như hình bên.
Qui trình đổi địa chỉ ảo sang địa chỉ thật
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Hệ điều hành
Slide 50
Chương 5 : Quản lý bộ nhớ
Các mức phân quyền bảo vệ segment
CPU 80x86 cung cấp 4 
mức phân quyền từ 0 (cao 
nhất) tới 3 (thấp nhất). Mỗi 
segment có field DPL = 
mức phân quyền của mình.
Mỗi process có mức phân 
quyền : hệ thống có mức 0, 
còn application có mức 3. 
Hệ thống có thể truy xuất 
bất kỳ segment nào, còn 
application chỉ có thể truy 
xuất các segment có mức 
phân quyền bằng hay cao 
hơn mình.

File đính kèm:

  • pdfBài giảng môn Hệ điều hành - Chương 5 Quản lý bộ nhớ.pdf