1. Trang chủ
  2. » Công Nghệ Thông Tin

BÀI 8 BỘ NHỚ ẢO pdf

7 595 6

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 360,63 KB

Nội dung

TẠI SAO PHẢI CẦN BỘ NHỚ ẢO - Không nhất thiết tất cả các phần trong process được nạp vào bộ nhớ chính tại cùng một thời điểm.. BỘ NHỚ ẢO VITRUAL MEMORY - Cho phép thực thi một

Trang 1

BÀI 8 BỘ NHỚ ẢO GROUP6789.COM

I TẠI

SAO

PHẢI

CẦN

BỘ

NHỚ

ẢO

- Không nhất thiết tất cả các phần trong process được nạp vào bộ nhớ chính tại cùng một thời điểm

- Nêu nạp tất cả chương trình vào bộ nhớ chính cũng chưa chắc rằng chúng sử dụng cùng lúc

- Có nên chăng lưu trữ một số thứ trong process mà lâu lâu mới xài tới??

II BỘ NHỚ

ẢO

(VITRUAL

MEMORY)

- Cho phép thực thi một quá trình mà chỉ cần giữ lại một phần của không gian địa chỉ luận lý của nó trong bộ nhớ chính (giữ mấy địa chỉ cần thiết), còn lại giữ trên bộ nhớ phụ (đĩa)

- Thông thường những phần chưa cần nạp vào bộ nhớ chính thì

được giữ lại tại một vùng đặc biệt trên đĩa gọi là swap space

- Ưu điểm:

 Số lượng process trong bộ nhớ nhiều hơn (đa nhiệm)

 Process có thể được thực thi mặc dù kích thước của nó lớn hơn bộ nhớ thực

III PHẦN

CỨNG HỖ

TRỢ BỘ

NHỚ ẢO

- Sự hỗ trợ của phần cứng đối với việc phân trang đã được nói

ở chương trước

- Mỗi mục của bảng trang còn kèm thêm các bit trạng thái đặc biệt:

 Present bit: nếu =1 là trang hợp lệ và hiện trong memory, nếu =0 là trang không hợp lệ hoặc không có trong

memory

 Modified bit: cho biết trang này có thay đổi kể từ khi nạp vào bộ nhớ hay không

IV HIỆN

THỰC BỘ

NHỚ ẢO

- Hiện thực bộ nhớ ảo là công việc chuyển đổi các trang từ

bộ nhớ ảo sang bộ nhớ thực khi được yêu cầu

Demand paging: các trang của quá trình chi được nạp vào

bộ nhớ chính khi có yêu cầu

- -Khi có một tham chiếu đến trang mà trong đó không nằm

trong bộ nhớ chính (present bit =0) thì phần cứng sẽ gây ra một ngắt (page-fault trap) kích khởi page –fault service routine (PFSR) của OS

Trang 2

1 Chuyền process về trạng thái blocked

2 Phát yêu cầu đọc đĩa để nạp trang được tham chiếu vào 1 frame trống Lúc này một process khác vào CPU để thực thi

3 Sauk hi I/O hoàn tất, đĩa lại gây ra 1 ngắt đến hệ điều hành

PFSR sẽ cập nhật lại pagetable và chuyển process về trạng thái

ready

Nhìn vào hình vẽ

Bước 1 khi tham chiếu (reference) vào page talbe bị lỗi (trang này không có trong bộ nhớ chính)

Bước 2 báo ngắt (trap) về cho hệ điều hành để HĐH xử lí Bước 3 Tìm trang được lưu trữ trong bộ nhớ phụ

Bước 4 Tìm được rồi thì nhét nó vào bộ nhớ vật lý (thông qua frame trống)

Bước 5 Reset bảng trang

Bước 6 Khởi động lại việc truy cập

*** Lỡ may không có free Frame thì làm thế nào!!??***

1 Xác định vị trí của trang đang cần trên đĩa

2 Tìm một frame trống:

 Nếu có frame trống thì dùng nó

 Nếu không có frame trống thì dùng một frame nào đó làm vật hi sinh (victim)

 Swap victim và trang đang cần với nhau Lúc này page cần sẽ vào frame của victim

3 Cập nhật page table và frame table tương ứng

Trang 3

Như hình vẽ ta có Bước 1: swap victim Bước 2: change frame của swap thành invalid Bước 3: Nhét trang cần truy cập vào bộ nhớ vật lý Bước 4: reset page table Khi đó frame của victim chinh là frame của trang cần truy cập

V HIỆN

THỰC

DEMAND

PAGING

- Có 2 vấn đề cần giải quyết:

1 Cấp phát cho process bao nhiêu frame của bộ nhớ thực?

2 Giải thuật thay thế trang như thế nào là phù hợp?

- Mục tiêu là làm sao cho lượng page fault nhỏ nhất

- Được đánh giá bằng cách thực thi giải thuật đối với một chuỗi

tham chiếu bộ nhớ và xác định số lần xảy ra page fault

VI CÁC

GIẢI THUẬT

THAY

TRANG

FIFO (tới trước thay trước)

Hình vẽ bên dưới nhé!

Hàng đầu tiên là chuỗi tham chiếu Hàng thứ 2,3,4 số khung trang Page Fault được đánh dấu hoa thị

- Đầu tiên là 7 vào, vì trong khung trang chưa có 7 nên nó sẽ báo lỗi, đồng thời add 7 vào frame 1

- Sau đó 0 vào, cũng báo lỗi và được add vào frame 2

- Tương tự 1 được add vào frame 3

Trang 4

- Tiếp theo 2 được xét Check trong 3 frame không có Nhưng tại

7 vào đầu tiên nên 2 và 7 sẽ swap cho nhau.(trước đó đã báo lỗi)

- Tiếp theo 0 được xét Vi 0 có trong page frame nên không báo lỗi

- Tiếp theo là 3 Vì 0 là thằng đầu tiên vào trong 3 thằng 2 0 1 nên swap 3 với 0 ta được 2 3 0 Cứ xét như vậy cho đến hết

NGHỊC LÍ BeLady

- Nếu page frame ở ví dụ ít quá (3 Frame) ta có thể tăng lên 4Frame nhằm hạn chết Page Faults Nhưng kết quả là số Page Faults lại tăng nhiều hơn Tại sao vậy?

- Các page faults phần lớn xảy ra ở khúc đầu, nghĩa là page frame đang trống, và do vậy nếu frame càng nhiều thì càng có nhiều

page faults

GIẢI THUẬT OPTIMAL (OPT) Hay còn gọi là giải thuật nhìn về tương lai Mục đích: thay thế trang nhớ sẽ được tham chiếu trễ nhất trong tương

lai Giả sử có 1 process chứa 7 trang Và được cấp 3 frame

Các bước thực hiện như sau

- 3 bước đầu giống với giải thuật FIFO

- Kế tiếp, khi ta cho 2 vào, hãy nhìn đằng trước nó trang nào sẽ được tham chiếu trễ nhất

Trang 5

- Bằng cách đi ngược lại, ta sẽ dễ dàng chọn được 7, vì 1 và 0 được dùng trước cả 7 Nên ta sẽ swap 7 với 2 Lúc này frame chứa 2 0 1

- Tiếp theo, 0 vào không báo lỗi (vì page frame đã chứa 0)

- Sau đó 3 vào Quan sát trên trình tự vào frame thấy trong 3 frame (2,0,1) ta thấy 0 và 2 là 2 trang vào trước, 1 là trang sẽ vào sau, nên ta swap 1 với 3, ta được các frame còn lại là 2 0 3

Cứ làm tương tự

Một mẹo nhỏ khi làm

- Trước khi chèn page vào frame, bạn nên kiểm tra frame đó

có những page nào So sánh với trình tự xuất hiện lần lượt sau đó của các page này để thấy được page nào sẽ lâu lâu mới được gọi

GIẢI THUẬT LRU (LEAST RECENTLY USED)

GT LÂU NHẤT CHƯA SỬ DỤNG

(giải thuật này còn được gọi là nhìn về quá khứ)

- Vẫn là một process có 7 page và được cấp 3 frame

- 3 lượt đầu, vẫn như các giải thuật khác

- Tiếp theo Khi page 2 vào Xét trong 3 frame chứa 3 trang

7,0,1 Ta thấy 7 là thằng lâu nhất chưa được sử dụng vậy nên ta swap 2 và 7 Lúc này page frame có 2 0 1 (thằng nào chưa có trong page frame làm ơn cho nó 1 cái hoa thị rồi tính tiếp)

Trang 6

- Tiếp theo 0 đã có trong frame nên miễn bàn và không page faults

- Tiếp theo là page số 3 Nhận thấy trong 3 frame 2, 0, 1 thì 1

chính là thằng lâu lắm rồi không xài, nên đương nhiên là swap

3 với 1

Rõ ràng ta thấy số 0 ở trước số 1 nếu đi theo hướng mũi tên, nhưng hãy cẩn thận nhé, vì 0 mới đung trước 3 Luôn cẩn thận nhé bạn

SO SÁNH 2

GIẢI THUẬT

LRU VÀ

FIFO

- Nhìn vào 2 giải thuật ta thấy số lượng page faults của LRU

ít hơn so với của FIFO

Số lượng

frame cấp cho

mỗi process

- Chiến lược cấp phát tĩnh:

Cấp phát cố định tại thời điểm ban đầu

- Chiến lươc cấp phát động:

Số lượng frame có thể thay đổi trong quá trình hoạt động

Hệ điều hành phải mất chi phí để ước tính lỗi trang

1 Chiến lược cấp phát tĩnh

- Cấp phát bằng nhau

- Cấp phát theo tỉ lệ, dựa vào kích thước process (có công thức kèm theo)

- Cấp phát theo độ ưu tiên

Trang 7

Có p1,p2,p3 P nào được ưu tiên cao nhất thì được cấp phát nhiều frame

TRÌ TRỆ HỆ

THỐNG

(THRASHIN

G)

Trashing là

a Mô hình cục bộ (Locality) Nguyên lý locality:

- Là tập các trang được tham chiếu gần nhau nhất

- Một process gồm nhiều locality, và trong quá trình thực thi, process sẽ chuyển từ locality nài sang locality khác

- Thrashing xảy ra khi tổng các trang tham chiếu gần nhau nhất lớn hơn kích thước bộ nhớ

b Giải pháp tập làm việc

Ngày đăng: 29/03/2014, 08:20

HÌNH ẢNH LIÊN QUAN

Hình vẽ bên dưới nhé! - BÀI 8 BỘ NHỚ ẢO pdf
Hình v ẽ bên dưới nhé! (Trang 3)

TỪ KHÓA LIÊN QUAN

w