1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng HĐH 07

12 358 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bộ Nhớ Ảo
Chuyên ngành Hệ Điều Hành
Thể loại Bài giảng
Định dạng
Số trang 12
Dung lượng 154 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cơ chế  Sử dụng bộ nhớ phụ để lưu trữ tạm thời các trang chưa sử dụng  Ai chịu trách nhiệm chuyển đổi?.  Lập trình viên : Overlay Overlay  Hệ điều hành : Bộ nhớ ảo Virtual Memory Vir

Trang 1

BÀI 7 : BỘ NHỚ ẢO

Cho đến nay : Nạp toàn bộ tiến trình vào bộ nhơ rồi thực hiện nó

Chậm, lãng phí bộ nhớ

Nếu kích thước tiến trình lớn hơn dung lương bộ nhớ

chính ?

Lưu ý : tại 1 thời điểm chỉ có một chỉ thị được thực hiện

0x1000

test.exe

0x3000

0x3000

test.exe

0x7000 OS

(base)

Trang 2

Giải pháp

Nạp từng phần chương trình khi cần thiết

Demand paging

Real memory Real memory

Page0

emacs

Time

t2 t1

Page0

emacs

Page1 Page2

Trang 3

Cơ chế

Sử dụng bộ nhớ phụ để lưu trữ tạm thời các trang chưa sử dụng

Ai chịu trách nhiệm chuyển đổi ?

Lập trình viên : Overlay Overlay

Hệ điều hành : Bộ nhớ ảo (Virtual Memory Virtual Memory)

P

RAM

DISK

Trang 4

Bộ nhớ ảo = “lời nói dối vĩ đại“

Người dùng : sở hữu bộ nhớ “vô hạn”, “riêng biệt”

Hệ điều hành : “thầm lặng” thực hiện quá trình swapping

Memory address

10% RAM

+ 90% DISK

Trang 5

Thực hiện Bộ nhớ ảo

Bảng trang : thêm 1 bit valid/invalid để nhận diện trang

đã hay chưa được nạp vào RAM

Truy xuất đến một trang chưa được nạp vào bộ nhớ

:

lỗi trang (page fault)

17 1

4183 0

177 1

5721 0

Disk Mem Frame valid/invalid

Trang 6

Xử lý lỗi trang

Bộ nhớ vật lý

M

Bộ nhớ

ảo

nạp

M

OS

Bảng trang

truy xuất

1

2

lỗi trang

3 xác định vị trí lưu trang

trên đĩa

3’

swap out trang nạn nhân

4 mang trang cần truy xuất vào bộ nhớ

5

cập nhật bảng trang

6

tái kích hoạt tiến trình

frame trống

i

Trang 7

Các câu hỏi

1. Chọn trang nạn nhân ? => Chiến lược thay thế

trang

2. Chọn trang nào để nạp ? => Chiến lược nạp

Trang 8

Chiến lược thay thế trang

FIFO : trang “già” nhất

Công bằng ?

Không xét đến tính sủ dụng !

TỐI ƯU : trang lâu sử dụng

đến nhất trong tương lai

Tần suất lỗi trang thấp nhất

Không khả thi !

LRU :trang lâu nhất chưa sử

dụng đến trong quá khứ

Dự đoán tương lai LRU =

MIN ?

add victim

AGBDCAB C ABCGABC

victim

Cur page

victim

Cur page

Trang 9

Chiến lược nạp

Demand paging : nạp trang được yêu cầu

Khi nào ?

Nạp sau : tần suất lỗi trang cao ? => pure demand

paging

Nạp trước : làm sao biết ? =>prepaging

ld init pages ld page ld page ld page

Trang 10

Thrashing = ảo tưởng sụp đổ !

Tất cả tiến trình đầu bận rộn xử lý lỗi trang !

IO hoạt động 100 %, CPU rảnh !

Hệ thống ngừng trệ

Real mem

Các tiến trình trong hệ thống yêu cầu bộ nhớ nhiều hơn khả năng cung cấp của hệ thống !

Trang 11

Nguyên nhân Thrashing

Chỉ có thể kiểm soát thrashing do nguyên nhân 3.

1 Tiến trình không tái sử dụng bộ nhớ (quá khứ !=

tương lai)

2 Tiến trình tái sử dụng bộ nhớ, nhưng với kích thươc

lớn hơn

3 Quá nhiều tiến trình trong hệ thống

Trang 12

Giải quyết thrasing với mô hình Working set

Working set = tập hợp các trang tiến trình đang truy xuất tại 1 thời điểm.

Hệ điều hành :

Chỉ nạp một tiến trình khi có đủ khung trang tự do cho working set của nó

Kiểm soát mức độ đa chương của hệ thống : Nếu tổng số khung trang yêu cầu của các tiến trình

trong hệ thống vượt quá các khung trang có thể sử dụng, chọn một tiến trình để tạm dừng, ngược lại, khi tổng working set bé hơn số khung trang tự do, nạp thêm tiến trình.

Ngày đăng: 29/07/2013, 01:25

HÌNH ẢNH LIÊN QUAN

Bảng trang - Bài giảng HĐH 07
Bảng trang (Trang 6)
w