BÀI 7 QUẢN LÍ BỘ NHỚ - Pdf 12



BÀI 7 QUẢN LÍ BỘ NHỚ
Group6789.com

I. KHÁI NIỆM
-
QLBN
là công việc của HĐH với sự hỗ trợ của phần cứng nhằm phân
phối, sắp xếp các P trong bộ nhớ sao cho hiệu quả
- Mục tiêu: chứa càng nhiều P càng tốt
- Kernel chiếm một phần cố định của bộ nhớ, phần còn lại chia cho các P

II. CÁC KIỂU
ĐỊA CHỈ
NHỚ
-
Đ

a ch


v

t lý (Physical Ad
d
ress):
là địa chỉ thực trong
bộ nhớ chính
- Địa chỉ luận lý (Logical Address): là một địa chỉ nhớ
được diễn tả trong một trương trình (còn gọi là địa chỉ ảo)


a ch


là một
quá trình ánh x

một địa chỉ
từ không gian địa chỉ này sang không gian địa chỉ khác.
- Các thời điểm mà địa chỉ lệnh (instruction) và địa chỉ dữ liệu (data) có
thể biến thành địa chỉ vật lý
1. Compile time
Ta có i là instruction (địa chỉ lệnh) và j là địa chỉ dữ liệu. i và j được chuyển
đổi thành các địa chỉ thực ngay sau khi Compile nếu ta biết được địa chỉ vật
lý bộ nhớ của chương trình
Khuyết điểm:phải biên dịch lại nếu thay đổi địa chỉ nạp chương trình (thay
đổi địa chỉ vật lý trong bộ nhớ)
2. Load time

Ta có i và j được chuyển đổi thành các địa chỉ khả tái định vị vào thời điểm
Compile. Vào thời điểm Loading, loader phải chuyển đổi các địa chỉ khả
tái định vị này thành địa chỉ thực dựa trên một địa chỉ nền (base address).
Khuyết điểm: địa chỉ nền thay đổi  phải reload vì ta có địa chỉ thực của
chương trình đã được tính toán vào thời điểm nạp chương trình

- Stub cần sự hỗ trợ của OS để biết được routine có được nạp vào bộ nhớ
hay chưa
- Ưu điểm của Dynamic linking:
External Module thường là 1 thư viện cung cấp các tiện ích của
OS. Các chương trình có thể dùng chúng mà không cần sửa đổi
hay biên dịch lại. mà không cần sửa đổi hay biên dịch lại.

Code sharing: External module chỉ cần nạp vào bộ nhớ một lần. các
process cần dùng external module này thì cùng chia sẻ code giúp tiết
kiệm không gian nhớ và ổ đĩa.
Dynamic linking cần sự hỗ trợ của OS để biết được phần thủ tục nào
đó là phần mã chia sẻ, hay là phần mã của riêng 1 process. V. OVERLAY
AND
SWAPPING
Overlay(Phủ lắp)
- Mục tiêu: chỉ giữ lại những lệnh or data cần thiết, giải phóng các vùng
dữ liệu chưa hoặc không cần dùng.
- Phù hợp với các process có kích thước lớn hơn so với bộ nhớ mà nó
được cấp.
- Chế độ user mode. Không cần Can thiệp từ OS.

- Trong hình có 2 phần (pass 1+2).Vùng nhớ còn 90Kb. Không thể nhét 2
thằng vào được. Do đó từng thằng sẽ vào, sau khi thằng 1 được thực
hiện xong, nó giải phóng, và thằng tiếp theo sẽ được vào.

6.1 Phân vùng bộ nhớ cố
định
(Fixed partitioning) - Bộ nhớ chính được chia thành nhiều phần (partitions) có kích thước
bằng nhau
- Process nào có size < hoặc == kích thước partition đó thì được vào.
- Nếu chương trình có kích thước lớn hơn partition thì phải dùng cơ chế
overlay - Xảy ra hiện tượng phân mảnh nội  Không hiểu quả

Chiến lược Placement

TH1: Các Partitions có kích thước bằng nhau:
- Nếu partition nào trống, process sẽ được nạp vào partition đó
- Nếu không, tìm trong bộ nhớ có process nào đang bị blocked, sau đó
tiến hành swap process đó ra bộ nhớ phụ và thay process mới vào
TH2: Các partitions có kích thước không bằng nhau:
 Giải pháp 1:
- Tạo hàng đợi cho mỗi partition
- Gán mỗi process phù hợp với partitions
- ĐƯỢC LỢI: giảm thiểu phân mảnh nội.
- VÂN ĐỀ: có thể có một số hàng đợi không chứa Process nào.
 Giải pháp 2:

- Bảng phân trang (pagetable) ánh xạ địa chỉ luận lí th
ành
địa chỉ thực

A Chuyển đổi địa chỉ trong PAGING

Nhìn vào hình vẽ ta có:
Địa chỉ luận lí bao gồm :
- p: là số hiệu trang (page number)
- d: Địa chỉ tương đối trong trang (Page offset)
Nếu kích thước của Không gian địa chỉ ảo là 2
m
và kích thước của mỗi
trang là 2
n
thì ta sẽ có được tổng cộng là 2
m-n
trang. Tức là lúc đó ta cũng sẻ
có được một Page Table có chừng ấy số trang.

B Cài đặt bảng trang
Bảng phân trang được lưu trữ ở trong bộ nhớ chính.
- Ứng với 1 process sẽ có 1 bảng phân trang.
- Thanh ghi Page-Table base (PTBR) trỏ đến bảng phân trang.
- Thanh ghi Page- Table Length (PTLR) biểu thị kích thước của bảng phân trang

E. Bảo vệ bộ nhớ

- Gắn frame (khung trang) với các bit bảo vệ được giữ trong bảng
phân trang.
- Các bit này biểu thị các thuộc tính: read-only, read-write, execute-
only
- Ngoài ra còn có một valid/invalid bit gắn với mỗi entry (mục) trong
bảng phân trang.

Nhận xét:Cơ chế phân trang làm không gian địa chỉ ảo tách biệt hoàn
toàn với không gian bộ nhớ thức. nghĩa là phải thực hiện phép ánh xạ.

VIII.
PHÂN ĐOẠN
(Segmentation)
- Thực tế cho thấy, dưới con mắt của người dùng, chương trình được
chia thành các đoạn. Mỗi đoạn (segment) là một đơn vị luận lí của
chương trình.
- Thông thường khi 1 chương trình được biên dịch. Trình biên dịch sẽ
tự động xây dựng các segment. Sau đó trình loader sẽ gán mỗi
segment một số định danh riêng

1.

Cơ chế phân đoạn: - Không gian địa chỉ ảo là một tập các segment, mỗi đoạn có tên và
kích thước riêng.

- Mục đích: giải quyết được những khuyết điểm, phát huy ưu điểm
của cả hai hình thức.
Vấn đề của phân đoạn: Nếu một đoạn quá lớn thì nó có thể không nạp
đươc vào bộ nhớ
- Ý tưởng: chia đoạn thành các page, khi đó ta chỉ cần giữ trong bộ
nhớ các page của đoạn hiện đang cần
-

Hình vẽ cho chúng ta thấy giả sử s= 5,p=4,d=234
S=5 => STBR sẽ trỏ đến bảng phân đoạn đến seg thứ 5. Trong đó có
địa chỉ thực và giới hạn
Như đã nói, mỗi seg được chia ra thành các trang. Muốn truy cập trang p=4 ta phải xác định được vị trí của page đó (bằng cách sử
dụng PTBR).
Sau đó kết hợp với d=234 (page offset) ta sẽ được vị trí chính xác
của nó trong bộ nhớ vật lý


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status