Chap7: QUẢN LÝ BỘ NHỚ
(memory management)
GV: TS. Trần Thị Minh Khoa
(part3 WilliamStalling+Silberschatz)(4t)
Memory Management
1.
1.
2.
3.
4.
5.
Memory Hierarchical
Memory Management Requirements
Memory Partitioning
Paging
//Segmentation
Virtual Memory
2.
1.
2.
3.
4.
Hardware and Control Structures
OS Software
Window Memory Management
Linux Memory Management
Memory Hierarchical (1)
Memory
Cache
Registers
Cache??
- Fast access
- Reduce
Memory Hierarchical (2)
Memory
Cache
Registers
Câu hỏi: Phải làm gì nếu ta muốn thực thi chương
trình mà yêu cầu bộ nhớ lớn hơn bộ nhớ ta đang có
sẳn?
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
Memory Management Requirements
Relocation (more…SWAPPING)
Protection
Sharing
Logical organization
Physical organization
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
Mỗi tiến trình cần được bảo vệ chống
lại sự can thiệp của các tiến trình
khác
Do đó, các tiến trình khác khơng được
can thiệp vào vùng nhớ mà 1 tiến
trình đang đọc hoặc ghi mà không cos
sự cho phép
Memory Management Requirements
Relocation
Protection (more…)
Sharing
Logical organization
Physical organization
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
Bất kì cơ chế bảo vệ nào cũng phải nên linh
động cho một số tiến trình truy cập vào một
cùng một phần của vùng nhớ chính
Các tiến trình đang hợp tác trong một số
nhiệm vụ phải truy cập vào cùng một cấu trúc
dữ liệu
Hệ thống quản lý bộ nhớ kiểm soát cho
phép các tiến trình truy cập và chia sẻ vùng
nhớ
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
- Là địa chỉ ảo (Virtual address)
- Quản lý bởi processor
Memory Management Requirements
Relocation
Protection
Sharing
Logical organization
Physical organization
- Là địa chỉ thực (Real address)
- Logical address Physical address at:
Compile time, load time, execution time
Memory Partitioning
Fixed Partitioning
1.
1.
2.
Partition Sizes
Placement Algorithm
Dynamic Partitioning
2.
1.
2.
Placement Algorithm
Replacement Algorithm
Memory Partitioning
Fixed Partitioning
1.
1.
2.
Partition Sizes
Placement Algorithm
Có 2 loại partition :
Kích thước bằng nhau
Không bằng nhau
Memory Partitioning
Fixed Partitioning
1.
1.
2.
Partition Sizes
Placement Algorithm
Chiến lược cấp phát
• Sử dụng hàng đợi
Nhiều hàng đợi
1 hàng đợi
Memory Partitioning
Fixed Partitioning – Nhận xét
1.
Phân mảnh nội (internal fragmentation)
Mức độ đa chương phụ thuộc bởi số partition
Memory Partitioning
2.
Dynamic Partitioning
• BNC khơng được phân chia trước, các partition có kích thước tuỳ ý hình
thành trong q trình nạp các tiến trình vào hệ thống
• Mỗi tiến trình sẽ được cấp phát đúng theo kích thước yêu cầu ko còn hiện
tượng phân mảnh nội
Memory Partitioning
Dynamic Partitioning
2.
1.
2.
Cấp phát bộ nhớ kích thước X được
Placement Algorithm thực hiện như thế nào?
First-fit: cấp phát vùng trống đầu
Replacement Algorithm
tiên đủ cho yêu cầu.
Best-fit: cấp phát vùng trống nhỏ
nhất vừa đủ yêu cầu; phải duyệt
toàn danh sách, nếu không sắp theo
thứ tự. Sẽ tạo ra vùng nhớ trống dư
ra nhỏ nhất.
Worst-fit: cấp phát vùng trống lớn
nhất; phải duyệt tồn danh sách.
Sẽ tạo những ơ trống dư ra lớn
nhất
Memory Partitioning
Dynamic Partitioning
2.
1.
2.
Placement Algorithm
Replacement Algorithm
Bài tập 1
Trong mơ hình cấp phát bộ nhớ liên tục, có bốn phân mảnh bộ nhớ
theo thứ tự với kích thước là 600KB, 500KB, 200KB, 300KB.
Giả sử có 4 tiến trình đang chờ cấp phát bộ nhớ theo thứ tự P1 P2
P3 P4.
Kích thước tương ứng của các tiến trình trên là: 212 KB, 417 KB, 112
KB, 426 KB.
Hãy cấp phát bộ nhớ cho các tiến trình trên theo thuật tốn First-fit,
Best-fit, Worst-fit.
Memory Partitioning
Dynamic Partitioning
2.
1.
2.
Placement Algorithm
Replacement Algorithm
Buddy system!!!!!
Bộ nhớ ảo
Bộ nhớ ảo là sự trừu tượng hóa của HĐH, nó cung cấp người
lập trình một khơng gian địa chỉ lớn hơn không gian địa chỉ vật
lý thật sự
Bộ nhớ ảo có thể được triển khai bằng cách phân trang
(paging) hoặc phân đoạn (segmentation), hiện tại phân trang
thông dụng hơn
Mơ hình kết hợp cũng thường được dùng, phân đoạn thường khá
đơn giản (v.d., một số lượng xác định các đoạn cùng kích thước)
Hữu ích của bộ nhớ ảo:
Lập trình viên khơng lo lắng với việc các máy tính khác nhau có kích
thước bộ nhớ vật lý khác nhau
Phân mảnh trong môi trường đa chương
Chuyển đổi địa chỉ
Processor
translation
box (MMU)
MMU: memory management unit
Physical
memory
Địa chỉ và chuyển đổi địa chỉ (1)
Địa chỉ
Logic
Vật lý
=> không gian địa chỉ logic
=> không gian đia chỉ vật lý
Chuyển đổi địa chỉ logic => vật lý
3 thời điểm chuyển đổi
Được thực hiện bởi ai?
Ưu nhược điểm ?
Địa chỉ và chuyển đổi địa chỉ (2)
Test.cpp
Bộ nhớ chính