Phân trang theo yêu cầu Phân trang theo yêu cầu là quá trình đưa một trang vào bộ nhớ khi có yêu cầu ◦ Yêu cầu I/O ít ◦ Yêu cầu về bộ nhớ nhỏ ◦ Thực hiện nhanh hơn ◦ Có nhiều tiến trìn
Trang 1Giới thiệu về bộ nhớ ảo
Nhóm
VITUAL MEMORY
Trang 2NỘI DUNG CHÍNH
Thông tin cơ bản - Background
Phân trang theo yêu cầu - Demand Paging
Trang 3 Một chương trình sẽ có kích thước lớn hơn kích thước thực cấp phát cho nó mà không gây ra lỗi hay không
Thoải mái lập trình mà không phải suy tư về
Trang 4của mô hình thiết lập
Trang 5Khái niệm Bộ nhớ ảo
Bộ nhớ ảo: là sự tách biệt bộ nhớ luận lý từ bộ nhớ vật lý.
◦ Chỉ một phần chương trình được thực hiện trong bộ nhớ.
◦ Địa chỉ không gian hợp lý do đó có thể lớn hơn nhiều so với không gian địa chỉ vật lý.
◦ Cho phép các không gian địa chỉ được chia sẻ bởi một số tiến trình.
◦ Cho phép tạo ra nhiều tiến trình hiệu quả.
Bộ nhớ ảo có thể được thực hiện thông qua:
∘ Phân trang theo yêu cầu (Demand paging)
∘ Phân đoạn theo yêu cầu (Demand segmentation)
Trang 6Bộ nhớ ảo lớn hơn bộ nhớ vật lý
Bộ nhớ ảo chỉ bị giới hạn bởi dung lượng ổ đĩa
Trang 7Không gian địa chỉ ảo
Trang 8Phân trang theo yêu cầu
Phân trang theo yêu cầu là quá trình đưa một trang vào bộ nhớ khi có yêu cầu
◦ Yêu cầu I/O ít
◦ Yêu cầu về bộ nhớ nhỏ
◦ Thực hiện nhanh hơn
◦ Có nhiều tiến trình được xử lý hơn
◦ Tham chiếu không hợp lệ hủy bỏ
◦ Không có trong bộ nhớ chuyển vào bộ nhớ
◦ Có trong bộ nhớ thì truy xuất
Bộ hoán vị lười (Lazy swapper): không bao giờ hoán vị một trang vào trong bộ nhớ trừ khi trang đó được yêu cầu.
◦ Bộ hoán vị giao tiếp với trang qua một bộ trang
Trang 9Chuyển bộ nhớ được phân trang
tới không gian đĩa liên tục
Trang 10Cơ chế bit hợp lệ - không hợp
lệ
Với cơ chế này, chúng ta cần một số dạng phần cứng hỗ trợ
để phân biệt giữa các trang ở trong bộ nhớ và các trang ở trên đĩa Cơ chế bit hợp lệ-không hợp lệ có thể được dùng cho mục đích này.
◦ Valid : giá trị này hiển thị rằng trang được tham chiếu tới là hợp lệ và ở đang trong bộ nhớ.
◦ Invalid : giá trị này hiển thị rằng trang không hợp lệ (nghĩa là trang không ở trong không gian địa chỉ của quá trình) hoặc hợp lệ nhưng hiện đang ở trên đĩa.
Trang 11Cơ chế phần cứng
Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo yêu cầu là
sự kết hợp kỹ thuật phân trang và kỹ thuật swapping :
◦ Bảng trang : cấu trúc bảng trang phải cho phép phản ánh tình trạng của một trang là đang nằm trong bộ nhớ chính hay bộ nhớ phụ
◦ Bộ nhớ phụ: dùng để lưu trữ những trang không được nạp vào bộ nhớ chính, bộ nhớ phụ thường dùng là đĩa và vùng không gian đĩa
dùng để lưu trữ tạm các trang trong kỹ thuật swapping được gọi là
không gian swapping.
Trang 12Bit hợp lệ - không hợp lệ
Với mỗi bảng trang sẽ được nhập bit hợp lệ (v) - không hợp lệ (i) ( v
nằm trong bộ nhớ, i không nằm trong bộ nhớ )
Ban đầu bit hợp lệ - không hợp lệ được thiết lập để i trên tất cả các
mục.
- Ví dụ một bảng trang được chụp nhanh.
- Trong khi địa chỉ đang dịch, nếu
bit hợp lệ - không hợp lệ được đưa vào
trong bảng trang là i lỗi trang (page fault).
Trang 13Bảng trang khi một số trang không
Trang 14 Chúng ta lập thời biểu thao tác đĩa để đọc trang mong muốn vào
khung trang vừa mới được cấp phát
Khi đọc đĩa hoàn thành, chúng ta sửa đổi bảng bên trong với quá trình
và bảng trang để hiển thị rằng trang bây giờ ở trong bộ nhớ
Chúng ta khởi động lại chỉ thị mà nó bị ngắt bởi trap địa chỉ không hợp
lệ Bây giờ quá trình có thể truy xuất trang mặc dù nó luôn ở trong bộ
nhớ
Trang 15Các bước xử lý khi có lỗi trang
Trang 16Thi hành phân trang theo yêu cầu
Xác suất xảy ra lỗi trang 0 p 1.0
◦ Nếu p = 0, không có trang lỗi
◦ Nếu p = 1, mỗi truy xuất sẽ phát sinh một lỗi trang.
Thời gian thực sự truy xuất bộ nhớ (EAT):
EAT = (1 – p) * memory access + p (page fault overhead
+ swap page out + swap page in + restart overhead )
Trung bình thời gian lỗi trang = 8 milliseconds
EAT = (1 – p) * 200 + p (8 milliseconds)
= (1 – p ) * 200 + p * 8,000,000
= 200 + p x 7,999,800
EAT = (1 – p) * memory access + p (page fault overhead
+ swap page out + swap page in + restart overhead )
Trang 17Ví dụ phân trang theo yêu cầu
Thời gian xử lý page-fault : 25 milliseconds
Thời gian truy xuất bộ nhớ (ma) : 100 nanoseconds EAT = (1- p) * 100 + p * 25,000,000 nanoseconds = 100 + 24,999,990 * p nanoseconds
EAT tỷ lệ trực tiếp với tỷ lệ page-fault, nếu p càng lớn thì EAT càng lớn máy càng chậm
Muốn hiệu năng giảm dưới 10 %, ta cần có :
110 > 100 + 25,000,000 * p p < 0.0000004
Trang 19và các quá trình ban đầu của con để chia sẻ
cùng một trang trong bộ nhớ
Nếu quá trình sửa đổi, hoặc một trang chia
sẻ, chỉ sau đó là trang sao chép
hơn là chỉ các trang đổi sẽ được sao chép
một hồ bơi của số không trên các trang
Trang 20Trước khi tiến trình 1 làm thay đổi Trang C
Trang 21Sau khi tiến trình 1 làm thay đổi Trang C
Trang 22Điều gì sẽ xảy ra nếu không có khung trống ?
bộ nhớ, nhưng không được sử dụng, nó sẽ đưa những trang đó ra ngoài
Trang 24Thay thế trang
Trang 25Các thuật toán thay thế trang
Mục đích : muốn tỷ lệ lỗi trang thấp nhất
Đánh giá giải thuật bằng cách chạy nó trên một
chuỗi riêng biệt các tham chiếu bộ nhớ và tính số lỗi trang trên chuỗi đó
Trong tất cả các ví dụ, chuỗi tham chiếu đưa ra là :
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Trang 26Đồ thị liên hệ giữa số trang lỗi và số khung
Trang 27 Chuỗi tham chiếu : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
3 khung ( với mỗi tiến trình : 3 trang có thể nạp vào bộ nhớ một thời điểm ).
4 khung
Thuật toán First-In-First-Out
(FIFO)
1 2 3
1 2 3
4 1 2
5 3 4
9 page faults
10 page faults
1 2 3
1 2 3
5 1 2
4 5 4
4 3
Trang 28FIFO Page Replacement
Trang 29Minh họa sự bất thường của Belady
Trang 30Thuật toán tối ưu ( OPT hay MIN )
Thay trang có khoảng thời gian không dùng lâu nhất
Ví dụ 4 khung
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Làm thế nào bạn biết được điều này ?
Được sử dụng cho việc đánh giá các thuật toán khác
6 page faults
1 2 3
4
4 5
Trang 31Optimal Page Replacement
Trang 32Thuật toán lâu nhất chưa sử
dụng (Least Recently Used -
LRU )
Chuỗi tham chiếu :
Sự thực hiện của bộ đếm
◦ Mọi phần tử của bảng có một bộ đếm, mọi thời điểm
trang được tham chiếu qua phần tử bảng này sao chép vòng vào trong bộ đếm.
◦ Khi cần trang được hoán đổi, tìm trong bộ đếm để xác đinh trang nào là trang nạn nhân.
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
4
5
2 4 3
1 2 3 4
1 2
5
1 2 5
3
1 2
4
3
Trang 33Thay thế trang LRU
Trang 34Thuật toán LRU (cont.)
Sự thực hiện của Stack – dành ra một stack của các
số trang trong một danh sách liên kết kép.
◦ Khi trang được tham chiếu
Chuyển nó lên đỉnh
Cần 6 con trỏ để đổi trang
◦ Không cần tìm kiếm để thay thế
Trang 35Các thuật toán xấp xỉ LRU
Tham chiếu bit (Reference bit) :
◦ Gắn một bit vào mỗi trang, ban đầu = 0
◦ Khi trang được tham chiếu, bit đó được thiết lập = 1
◦ Thay trang co bit tham chiếu = 0,nếu trang con tồn tại
Tuy nhiên chúng ta không biết thứ tự
Cơ hội thứ hai (Second chance) :
◦ Cần có bit tham chiếu
◦ Thay thế vòng tròn
◦ Nếu trang tham chiếu (trong thứ tự vòng tròn) có bit
tham chiếu = 1 thì :
Thiết lập bit = 0
Chuyển trang vào trong bộ nhớ
Thay thế trang tiếp theo (trong thứ tự vòng tròn) với quy luật thay thế tương tự.
Trang 36Thuật toán thay thế trang cơ hội thứ hai
Trang 37Thuật toán đếm (Counting Algorithms)
Thuật toán LFU (Least Frequently Used): thay
trang đếm đượ ít nhất ( có tần số truy xuất nhỏ
nhất )
Thuật toán MFU (Most Frequently Used) : thay
trang đếm được nhiều nhất ( có tần số truy xuất cao nhất), dựa trên lý luận rằng trang đếm được ít nhất là có thể vừa đưa vào bộ nhớ và chưa kịp
được sử dụng
Trang 38Phân phối các khung
để thực hiện
lệnh SS MOVE
◦ Lệnh có độ dài 6 byte, có thể chứa trong 2 trang
◦ 2 trang để thực hiện from
◦ 2 trang để thực hiện to
◦ Phân phối cố đinh (fixed allocation)
◦ Phân phối có ưu tiên (priority allocation)
Trang 39Phân phối cố định
Phân phối công bằng – ví dụ, nếu có 100 khung
và 5 tiến trình, cho mỗi tiến trình 20 trang
Cấp phát theo tỷ lệ - Phân phối theo kích thước của tiến trình
m S
s p
a
m
s S
p s
i i
i
i
i i
frames of
number total
process of
size
59
64 137
127
5
64 137
10 127 10 64
2 1 2
i
Trang 40Phân phối có ưu tiên
thuộc vào độ ưu tiên của tiến trình hơn là phụ thuộc kích thước tiến trình
Nếu tiến trình Pi phát sinh lỗi trang
◦ Chọn một trong các khung trang của nó để thay thế
◦ Chọn một khung trang của quá trình khác với độ
ưu tiên thấp hơn để thay thế
Trang 41Thay thế trang toàn cục hay
cục bộ
Thay thế toàn cục (Global replacement): tiến trình được chọn một khung thay thế từ tập tất cả các khung, một tiến trình có thể lấy một khung từ tiến trình khác
Thay thế cục bộ (Local replacement) : mỗi tiến
trình chỉ chọn một khung thay thế từ chính tập các khung đã phân phối cho nó
Trang 42Sự trì trệ (Thrashing)
lệ trang lỗi là rất cao Điều này dẫn đến :
◦ 1) Hệ điều hành giám sát việc sử dụng CPU
◦ 2) Nếu hiệu suất sử dụng CPU quá thấp, hệ điều hành sẽ nâng mức độ đa chương bằng cách đưa thêm một quá trình mới vào hệ thống
◦ 3) Hệ thống có thể sử dụng giải thuật thay thế toàn cục để chọn các trang nạn nhân thuộc một tiến trình bất kỳ để có chỗ nạp quá trình mới, có thể sẽ thay thế cả các trang của tiến trình đang
xử lý hiện hành
Trang 43Sự trì trệ (cont.)
◦ 4) Khi có nhiều quá trình trong hệ thống hơn, thì một quá trình sẽ được cấp ít khung trang hơn và do đó
phát sinh nhiều lỗi trang hơn
◦ 5) Khi các quá trình phát sinh nhiều lỗi trang, chúng phải trải qua nhiều thời gian chờ các thao tác thay
thế trang hoàn tất, lúc đó hiệu suất sử dụng CPU ại giảm
◦ 6) Hệ điều hành lại quay trở lại bước 1
Hệ thống sẽ lâm vào tình trạng luẩn quẩn của việc
giải phóng các trang để cấp phát thêm khung trang cho một tiến trình, và các tiến trình khác lại thiếu
khung trang và các tiến trình không thể tiếp tục xử
lý Trì trệ toàn bộ hệ thống
Trang 44Sự trì trệ - Thrashing(cont.)
Trang 45Giới thiệu về máy ảo
Nhóm 5A5
Trang 46 Cùng 1 lúc vừa dùng Linux, vừa dùng
windows, lúc sau lại nhảy qua OpenSolaris trên máy tính mà không phải khởi động lại?
nguồn gốc hay các nguy hiểm tiềm ẩn có
Trang 52 Trong quá trình nghiên cứu của nhóm nảy sinh nhu cầu phải cài đặt và thử nghiệm nhiều hệ điều hành khác nhau:
Trang 53Một bản sao hoàn toàn độc lập và hiệu quả của máy thật
Trang 54 System virtual machine:
◦ Native VM: XEN (loại 1)
Trang 551. Giả lập phần cứng
2. Giả lập hệ thống
Trang 572 Giả lập hệ thống:
Cho phép phần mềm hoặc hệ điều hành viết
cho những kiến trúc khác nhau có thể chạy trên kiến trúc bất kì
Emulator
JVM
Trang 583 Ảo hóa mức hệ điều hành
◦ Được áp dụng cho các server
◦ Một server vật lí được chia sẻ ra làm nhiều server ảo
Môi trường ảo
Server riêng ảo
người dùng thấy đó là server thật và chỉ thấy server mà họ sở hữu
◦ Solaris Zones
Nhiều hệ điều hành khách cùng chạy
Các hệ này cũng fải là Solaris
Trang 60Cám ơn các bạn đã theo dõi
Trang 61Các bước thiết lập máy ảo & cách cài hệ điều hành
Trang 87 Bản free cho phép chạy các VM Image được tạo bởi Vmware workstation
http://www.vmware.com/download/player/
http://vmplanet.net/
có thể nói nó là 1 player như 1 trình nghe nhạc