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

Bài Giảng Hệ Điều Hành-Chương 7: BỘ NHỚ CHÍNH potx

57 1,2K 10

Đ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

Định dạng
Số trang 57
Dung lượng 905,08 KB

Nội dung

z Thời gian nạp Load time: phải sinh ra mã có thể định vị lại relocatable code nếu vị trí bộ nhớ không được biết trước khi biên dịch z Thời gian thực hiện Execution time: sự gắn kết bị l

Trang 1

CHƯƠNG 7: BỘ NHỚ CHÍNH

Main Memory

Trang 2

8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

NỘI DUNG

„ Background

„ Swapping

„ Cấp phát bộ nhớ kề (Contiguous Memory Allocation)

„ Phân trang (Paging)

„ Cấu trúc của bảng trang (Structure of the Page Table)

„ Phân đoạn (Segmentation)

„ Ví dụ: Intel Pentium

Trang 4

8.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Background

„ Chương trình phải được mang (từ đĩa) vào trong bộ nhớ và được

sắp xếp bên trong một quá trình để chạy

„ Chỉ có bộ nhớ chính và các thanh ghi là các lưu trữ mà CPU có thể

truy xuất trực tiếp

„ Truy xuất thanh ghi mất một xung đồng hồ (hoặc ít hơn)

„ Truy xuất bộ nhớ chính có thể mất nhiều xung đồng hồ

„ Cache ở giữa bộ nhớ chính và các thanh ghi CPU.

„ Bộ nhớ đòi hỏi phải được bảo vệ để đảm bảo hoạt động đúng

Trang 5

THANH GHI CƠ SỞ VÀ THANH GHI GIỚI HẠN

Base and Limit Registers

„ Một cặp thanh ghi cơ sởthanh ghi giới hạn xác định không

gian địa chỉ logic

Trang 6

8.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

NHỚ

„ Gắn kết địa chỉ chỉ thị và dữ liệu với địa chỉ bộ nhớ xảy ra trong

ba giai đoạn khác nhau

z Thời gian biên dịch (compile time): nếu vị trí bộ nhớ

được biết trước, mã tuyệt đối (absolute code) có thể được

sinh ra; phải biên dịch lại nếu vị trí khởi đầu thay đổi

z Thời gian nạp (Load time): phải sinh ra mã có thể định vị

lại (relocatable code) nếu vị trí bộ nhớ không được biết

trước khi biên dịch

z Thời gian thực hiện (Execution time): sự gắn kết bị làm

trễ đến tận khi thời gian chạy nếu quá trình có thể được dichuyển trong khi thực hiện từ một đoạn bộ nhớ sang mộtđoạn khác Cần hỗ trợ phần cứng cho các ánh xạ địa chỉ(các thanh ghi cơ sở và giới hạn)

Trang 7

XỬ LÝ NHIỀU BƯỚC CỦA MỘT CHƯƠNG

TRÌNH NGƯỜI DÙNG

Trang 8

8.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

KHÔNG GIAN ĐỊA CHỈ LOGIC vs KHÔNG

„ Quan niệm của một không gian địa chỉ logic gắn kết với một

không gian địa chỉ vật lý tách biệt là tâm đối với quản trị bộ nhớ

z Địa chỉ logic (Logical address) – được sinh ra bởi CPU;

cũng được tham khảo như địa chỉ ảo

z Địa chỉ vật lý (Physical address) – địa chỉ được nhìn thấy

bởi đơn vị bộ nhớ (memory unit)

„ Các địa chỉ logic và vật lý là như nhau trong các sơ đồ gắn kết

địa chỉ thời gian biên dịch và thời gian nạp; các địa chỉ logic vàvật lý khác nhau trong sơ đồ gắn kết địa chỉ thời gian thực hiện

Trang 9

ĐƠN VỊ QUẢN TRỊ BỘ NHỚ

„ Thiết bị phần cứng ánh xạ địa chỉ ảo với địa chỉ vật lý

„ Trong sơ đồ MMU, giá trị trong thanh ghi tái định vị được cộng với

mỗi địa chỉ được sinh ra bởi một quá trình người dùng tại thời điểm

nó được gửi đến bộ nhớ

„ Chương trình người dùng giao tiếp với các địa chỉ logic, không bao

giờ nhìn thấy các địa chỉ thực

Trang 10

8.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

TÁI ĐỊNH VỊ ĐỘNG DÙNG MỘT THANH GHI

TÁI ĐỊNH VỊ

Trang 11

NẠP ĐỘNG Dynamic Load

„ Thủ tục (Routine) không được nạp đến tận khi được gọi

„ Sử dụng không gian bộ nhớ tốt hơn, thủ tục không được dùng đến

không bao giờ được nạp

„ Hữu dụng khi các lượng lớn code cần thiết cho quản lý các trường

hợp không thường xuyên xảy ra

„ Không có hỗ trợ đặc biệt từ HĐH được yêu cầu được thực thi qua

thiết kế chương trình

Trang 12

8.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

LIÊN KẾT ĐỘNG Dynamic Linking

„ Liên kết bị trì hoãn đến tận thời gian thực hiện

„ Mảnh code nhỏ, stub, được dùng để định vị thủ tục thư viện

thường trú trong bộ nhớ thích hợp

„ Stub tự sắp đặt lại với địa chỉ thủ tục và thực hiện thủ tục

„ HĐH cần kiểm tra thủ tục nằm trong không gian địa chỉ quá

trình

„ Liên kết động đặc biệt hữu dụng đối với các thư viện

„ Hệ thống được biết như các thư viện chia sẻ (shared

libraries)

Trang 13

„ Một quá trình có thể được hoán chuyển tạm thời ra khỏi bộ nhớ lên lưu trữ

ngoài, và sau đó được mang trở lại vào bộ nhớ để tiếp tục thực hiện

„ Lưu trữ ngoài – đĩa nhanh, đủ lớn để chứa được các bản sao của tất cả

các ảnh bộ nhớ người dùng; phải cung cấp truy xuất trực tiếp đến các ảnh

bộ nhớ này

„ Roll out, roll in – biến thể của swapping được dùng cho các thuật toán lập

lịch biểu dựa trên ưu tiên; quá trình độ ưu tiên thấp bị chuyển ra, quá trình

có độ ưu tiên cao được nạp vào và được thực hiện

„ Phần lớn thời gian swap là thời gian truyền; tổng thời gian truyền tỷ lệ với

lượng bộ nhớ được swapped

„ Các phiên bản được sửa đổi được tìm thấy trên nhiều HĐH (UNIX, Linux,

và Windows)

„ Hệ thống duy trì một hàng đợi sẵn sàng (ready queue) các quá trình sẵn

sàng chạy có ảnh bộ nhớ trên đĩa

Trang 14

8.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Trang 15

Cấp phát kề

„ Bộ nhớ chính thông thường chia thành hai phần:

z HĐH thường trú, thường được lưu trong bộ nhớ thấp vớivector interrupt

z Các quá trình người dùng được lưu trong bộ nhớ cao

„ Các thanh ghi tái định vị được dùng để bảo vệ các quá trình

Trang 16

8.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Bảo vệ bộ nhớ với base register và limit register

Trang 17

Cấp phát kề (Cont.)

„ Cấp phát đa ngăn (multiple-partition allocation)

z Lỗ (Hole) – khối bộ nhớ sẵn có; các lỗ kích cỡ khác nhau vàtrải ra trên bộ nhớ

z Khi quá trình đến nó được cấp phát một lỗ đủ lớn để chứa quátrình

z Hệ điều hành duy trì thông tin về :a) các ngăn được cấp phát b) các ngăn tự do (hole)

OS process 5

process 8 process 2

OS process 5

process 2

OS process 5

process 2

OS process 5 process 9

process 2 process 9

process 10

Trang 18

8.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ First-fit: Cấp phát lỗ đầu tiên phù hợp

„ Best-fit: Cấp phát lỗ nhỏ nhất trong các lỗ phù hợp

„ Worst-fit: Cấp phát lỗ lớn nhất

Làm thế nào thỏa mãn yêu cầu kích cỡ n từ một danh sách các lỗ tự do

First-fit và best-fit tốt hơn worst-fit về tốc độ và sử dụng lưu trữ

Trang 19

Phân mảnh (Fragmentation)

„ Phân mảnh ngoài (External Fragmentation) – Tổng không gian

bộ nhớ đủ để đáp ứng yêu cầu nhưng không kề (gồm những mảnhnhỏ nằm rải rác trong bộ nhớ)

„ Phân mảnh trong (Internal Fragmentation) – Bộ nhớ được cấp

phát cho quá trình lớn hơn bộ nhớ được yêu cầu, phần bộ nhớ

“dư” trở nên “lãng phí”

„ Giảm sự phân mảnh ngoài bởi “dồn nén” - compaction

z Dồn nội dung bộ nhớ đã được cấp phát về một phía bộ nhớ, như vậy các “mảnh” nhỏ bộ nhớ tự do sẽ được “dổn về phíangược lại, hợp lại thành một khối lớn

z “Dồn nén” - Compaction chỉ có thể thực hiện với tái định vịđộng và được tiến hành ở thời gian chạy

Trang 20

8.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Bộ nhớ vật lý được chia thành các khối kích thước cố định,

được gọi là các khung - frames (kích thước là lũy thừa của 2,

thường nằm trong khoảng 512 bytes đến 8,192 bytes)

„ Bộ nhớ logic (của quá trình) được chia thành các khối cùng

kích thước, được gọi là các trang - pages

Trang 21

Sơ đồ dịch địa chỉ

„ Địa chỉ được sinh ra bởi CPU được chia thành hai phần:

z Số trang - Page number (p) – được dùng như chỉ số

trong bảng trang, “ô” ở chỉ số đó lưu địa chỉ cơ sở củakhung chứa trang

z Độ dời trang - Page offset (d) – Được tổ hợp với địa

chỉ cơ sở để xác định địa chỉ vật lý

z Đối với không gian địa chỉ logic 2m và kích thước trang 2n

page number page offset

Trang 22

8.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Trang 23

Mô hình phân trang của bộ nhớ logic và bộ

nhớ vật lý

Trang 24

8.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Bộ nhớ 32-byte và kích thước trang 4-byte

Trang 25

Các khung tự do

Trang 26

8.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Bảng trang được duy trì trong bộ nhớ chính

„ Thanh ghi cơ sở bảng trang - Page-table base register (PTBR) trỏ

tới bảng trang

„ Thanh ghi độ dài bảng trang - Page-table length register (PRLR)

chỉ ra kích thước của bảng trang

„ Theo sơ đồ này, mỗi truy xuất data/instruction đòi hỏi hai truy xuất bộ

nhớ: Một cho bảng trang và một cho data/instruction

„ Vấn đề hai truy xuất bộ nhớ có thể được giải quyết bởi sử dụng cache

phần cứng tìm kiếm nhanh đặc biệt được gọi là bộ nhớ kết hợp

(associative memory or translation look-aside buffers - TLBs)

„ Một vài TLBs lưu bộ định danh không gian địa chỉ - address-space

identifiers (ASIDs) trong mỗi đầu vào TLB – xác định duy nhất mỗi

quá trình để cung cấp bảo vệ không gian địa chỉ cho quá trình đó

Trang 27

Bộ nhớ kết hợp

„ Bộ nhớ kết hợp – Tìm kiếm song song

Dịch địa chỉ (p, d)

z Nếu p có trong thanh ghi kết hợp lấy ra số khung

z Nếu không lấy số khung từ bảng trang trong bộ nhớ

Page # Frame #

Trang 28

8.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Trang 29

Thời gian truy xuất hiệu quả

„ Tìm kiếm kết hợp (Associative Lookup) = ε (đơn vị thời gian)

„ Giả sử thời gian chu kỳ bộ nhớ là 1 microsecond

„ Hit ratio – phần trăm thời gian một số trang được tìm thấy

trong các thanh ghi kết hợp; tỷ số này liên quan đến số cácthanh ghi kết hợp

„ Hit ratio = α

„ Effective Access Time (EAT)

EAT = (1 + ε) α + (2 + ε)(1 – α)

= 2 + ε – α

Trang 30

8.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Bảo vệ bộ nhớ được thực thi bởi kết hợp bit bảo vệ với mỗi

khung

„ Bit Valid-invalid được gắn với mỗi đầu vào bảng trang:

z “valid” chỉ ra rằng trang kết hợp là trong không gian địa chỉlogic của quá trình, và như vậy là một trang hợp lệ

z “invalid” chỉ ra rằng trang không ở trong không gian địa chỉcủa quá trình

Trang 31

Bit Valid (v) / Invalid (i) trong một bảng trang

Trang 32

8.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Code riêng và Data riêng (Private code and data)

z Mỗi quá trình giữ một bản sao code và dữ liệu tách biệt

z Các trang của code riêng và data riêng có thể xuất hiệnbất kỳ nơi nào trong không gian địa chỉ logic

Trang 33

Ví dụ các trang chia sẻ

Trang 34

8.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Bảng trang phân cấp

„ Bảng trang băm

„ Bảng trang nghịch đảo

Trang 35

Bảng trang phân cấp

„ Bảng trang được xem như “không gian địa chỉ logic” được phân

trang và có bảng trang tương ứng

„ Một kỹ thuật đơn giản là bảng trang hai mức

Trang 36

8.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Two-Level Page-Table Scheme

Trang 37

Ví dụ phân trang hai mức

„ Địa chỉ logic (trên máy 32-bit với kích thước trang 1K) được chia thành:

z Số trang gồm 22 bits

z Độ dời trang gồm 10 bits

„ Vì bảng trang được phân trang, số trang được chia thành :

z Số trang 12-bit

z Độ dời 10-bit

„ Như vậy, một địa chỉ logic như sau:

trong đó p 1 là chỉ số cho bảng trang ngoài, p 2 là độ dời của bảng trang trong

page number page offset

12 10 10

Trang 38

8.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Trang 39

Sơ đồ phân trang đa mức

Trang 40

8.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Thông thường dùng trong không gian địa chỉ > 32 bits

„ Số trang ảo được băm vào một bảng trang Bảng trang này chứa

một danh sách các phần tử băm đến cùng vị trí

„ Số trang ảo được so sánh với các số trang trong danh sách Nếu

tương thích, khung vật lý tương ứng được trích ra

Trang 41

Bảng trang băm băm

Trang 42

8.42 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Một đầu vào cho một trang bộ nhớ thực (khung)

„ Đầu vào gồm địa chỉ ảo của trang được được chứa trongtrang thực tương ứng, với thông tin về quá trình sở hữutrang

„ Giảm bộ nhớ cần thiết để lưu trữ bảng trang nhưng tăngthời gian tìm kiếm

Trang 43

Kiến trúc bảng trang nghịch đảo

Trang 44

8.44 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Sơ đồ quản trị bộ nhớ hỗ trợ góc nhìn người dùng

„ Một chương trình là một bộ các đoạn Một đoạn là một đơn vị logic:

main program,procedure, function,method,object,local variables, global variables,common block,

stack,symbol table, arrays

Trang 45

Góc nhìn người dùng về một chương trình

Trang 46

8.46 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

2

3

user space physical memory space

Trang 47

Kiến trúc phân đoạn

„ Địa chỉ logic gồm:

<Số đoạn, độ dời>

„ Bảng đoạn - Segment table – ánh xạ địa chỉ vật lý hai chiều;

mỗi đầu vào bảng đoạn gồm:

z base – chứa địa chỉ vật lý đầu đoạn

z limit – Xác định chiều dài đoạn

„ Thanh ghi cơ sở bảng đoạn - Segment-table base

register (STBR) trỏ tới vị trí bảng đoạn trong bộ nhớ

„ Thanh ghi độ dài bảng đoạn - Segment-table length

register (STLR) chỉ ra số đoạn được dùng bởi một chương

trình

Số doạn s là hợp lệ nếu s < STLR

Trang 48

8.48 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

„ Bảo vệ

z Kết hợp với mỗi dầu vào bảng đoạn:

 Bit validation (= 0 ⇒ đoạn bất hợp lệ)

Trang 49

Phần cứng phân đo đo ạn

Trang 50

8.50 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Trang 51

Example: The Intel Pentium

„ Supports both segmentation and segmentation with paging

„ CPU generates logical address

z Given to segmentation unit

 Which produces linear addresses

z Linear address given to paging unit

 Which generates physical address in main memory

 Paging units form equivalent of MMU

Trang 52

8.52 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Logical to Physical Address Translation in

Pentium

Trang 53

Intel Pentium Segmentation

Trang 54

8.54 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Pentium Paging Architecture

Trang 55

Linear Address in Linux

Broken into four parts:

Trang 56

8.56 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005

Three-level Paging in Linux

Trang 57

End of Chapter 7

Ngày đăng: 28/06/2014, 15:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w