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

Chương 8 Quản lý bộ nhớ

47 505 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 đề Chương 8 Quản lý bộ nhớ
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Hà Nội
Chuyên ngành Hệ điều hành
Thể loại Chương
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 1,99 MB

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

Nội dung

 Thời gian thực thi: nếu quá trình có thể được di chuyển trong thời gian thực thi từ một phân đoạn bộ nhớ này tới một phân đoạn bộ nhớ khác thì việc liên kết Liên kết các chỉ thị và dữ

Trang 1

QUẢN LÝ

QUẢN LÝ

BỘ NHỚ

BỘ NHỚ

Trang 2

Giới thiệu

 Bộ nhớ chính là một tài nguyên của hệ thống dùng để

cấp phát và chia sẻ cho nhiều tiến trình đang ở trạng thái

hoạt động

 Quản lí bộ nhớ là một trong những nhiệm vụ quan trọng

và phức tạp nhất của hệ điều hành

Công cụ cơ bản của quản lí bộ nhớ là sự phân trang

(paging) và sự phân đoạn(segmentation).Mỗi tiếp cận

có ưu điểm và nhược điểm riêng.Có thể kết hợp giữa

phân trang và phân đoạn để có được một chiến lược

quản lí bộ nhớ linh hoạt hơn Chọn phương pháp quản lý

bộ nhớ cho một hệ thống xác định phụ thuộc vào nhiều yếu tố, đặc biệt trên thiết kế phần cứng của hệ thống

Chúng ta thấy nhiều giải thuật yêu cầu hỗ trợ phần cứng mặc dù các thiết kế gần đây đã tích hợp phần cứng và

hệ điều hành

Trang 3

Mục đích

 Hiểu các cách khác nhau để quản lý bộ nhớ

 Hiểu tiếp cận quản lý bộ phân trang và phân đoạn

 Vận dụng một cách quản lý bộ nhớ phù hợp với hệ thống xác định

Trang 5

Nền tảng

 Bộ nhớ là trung tâm để điều hành hệ

thống máy tính Bộ nhớ chứa một mảng lớn các từ (words) hay các bytes, mỗi

phần tử với địa chỉ riêng CPU lấy các chỉ thị từ bộ nhớ dựa theo giá trị của thanh đếm chương trình.

Trang 6

Liên kết địa chỉ

 Chương trình được nạp vào bộ nhớ và

được đặt trong một tiến trình để chạy.

 Input queue - tập hợp các tiến trình trên đĩa đang chờ đợi để được đưa vào bộ nhớ

để thực thi.

 Chương trình người dùng đi qua một vài bước trước khi chạy

Trang 7

Thời gian thực thi: nếu quá trình có thể được di

chuyển trong thời gian thực thi từ một phân đoạn bộ

nhớ này tới một phân đoạn bộ nhớ khác thì việc liên kết Liên kết các chỉ thị và dữ liệu tới các địa chỉ có thể được thực hiện tại bất cứ bước nào sau đây:

Trang 8

Xử lý nhiều bước của chương trình người

dùng

Trang 9

Không gian địa chỉ logic và không gian

địa chỉ vật lí

 Không gian địa chỉ logic ràng buộc với một không gian địa chỉ vật lý là trung tâm để quản lý bộ nhớ thích hợp

Logical address - được tạo ra bởi CPU, còn

được gọi là địa chỉ ảo

Physical address - địa chỉ được thấy bởi các

đơn vị bộ nhớ

 Địa chỉ logic và địa chỉ vật lý là như nhau trong thời gian biên dịch và thời gian nạp địa chỉ ràng buộc nhau Cơ chế liên kết địa chỉ tại thời điểm

Trang 10

Định vị tự động dùng thanh ghi tái định

vị

Trang 11

 Nạp động không yêu cầu hỗ trợ đặc biệt từ hệ điều hànhNạp động không yêu cầu hỗ trợ đặc biệt từ hệ điều hành

Trang 12

Liên kết động và các thư viện

 Khi stub này được thực thi, nó kiểm tra để thấy chương

trình con được yêu cầu đã ở trong bộ nhớ hay chưa Nếu chưa, chương trình này sẽ nạp chương trình con vào trong

bộ nhớ Dù là cách nào, stub thay thế chính nó với địa chỉ của chương trình con và thực thi chương trình con đó

 Liên kết động đặc biệt hữu ích cho các thư viện

Trang 13

thi Tuy nhiên, một tiến trình có thể được hoán vị (swapped) tạm thời khỏi bộ nhớ tới vùng lưu trữ phụ backing store, sau đó mang trở lại bộ nhớ để việc thực thi được tiếp tục.

một đĩa tốc độ cao Nó phải đủ lớn để chứa các bản sao của tất cả hình ảnh bộ nhớ cho tất cả

người dùng, và nó phải cung cấp truy xuất trực tiếp tới các hình ảnh bộ nhớ này.

Trang 14

 Thí dụ, giả sử một môi trường đa chương với

giải thuật lập thời biểu CPU round-robin Khi

định mức thời gian hết, bộ quản lý bộ nhớ sẽ

bắt đầu hoán vị ra (swap out) vùng lưu trữ phụ tiến trình vừa mới kết thúc và hoán vị vào (swap in) một tiến trình khác tới không gian bộ nhớ

được trống (hình 0-4) Do đó, bộ định thời biểu CPU sẽ cấp những phần thời gian tới những tiến trình khác trong bộ nhớ

Trang 15

Hoán vị hai tiến trình dùng đĩa

như là backing store

Trang 16

 Một biến thể của chính sách hoán vị này được dùng cho các giải thuật định thời trên cơ sở ưu tiên Nếu một tiến trình có độ ưu tiên cao hơn đến và muốn phục vụ, bộ quản lý bộ nhớ có thể hoán vị ra tiến trình có độ ưu tiên thấp hơn để mà nó có thể nạp và thực thi tiến trình có

độ ưu tiên cao hơn Khi tiến trình có độ ưu tiên cao hơn kết thúc, tiến trình có độ ưu tiên thấp hơn có thể được hoán vị vào trở lại và được tiếp tục Biến thể của hoán vị này thường được gọi là cuộn ra (roll out), và cuộn vào (roll in)

 Phần lớn thời gian trao đổi là thời gian chuyển giao; thời gian chuyển giao tổng số là tỷ lệ thuận với số lượng bộ nhớ đổi chỗ

 Các phiên bản sửa đổi của hoán vị được tìm thấy trên nhiều hệ thống (như UNIX, Linux và Windows)

Trang 17

Cấp phát liên tục

Cấp phát liên tục

-Một cho hệ điều hành định vị

-Một cho các quá trình người dùng

Thanh ghi tái định vị chứa giá trị địa chỉ vật lý nhỏ

nhất, thanh ghi giới hạn chứa dãy các địa chỉ luận lý (thí dụ: tái định vị = 100040 và giới hạn = 74600)

Với các thanh ghi tái định vị và giới hạn, mỗi địa chỉ luận lý phải ít hơn thanh ghi giới hạn; MMU (đơn vị

quản lý bộ nhớ) ánh xạ địa chỉ luận lý động bằng cách cộng giá trị trong thanh ghi tái định vị Địa chỉ được tái định vị này được gửi tới bộ nhớ (như hinh dưới)

Trang 18

Hỗ trợ phần cứng cho các thanh ghi tái định

vị và các giới hạn

Trang 19

Phân mãnh

 External Fragmentation - tổng bộ nhớ không gian tồn tại để đáp ứng yêu cầu, nhưng nó không phải là tiếp giáp

 Internal Fragmentation - cấp phát bộ nhớ có thể không lớn hơn so với

bộ nhớ yêu cầu; sự khác biệt này là kích thước bộ nhớ trong một

phân vùng, nhưng không được sử dụng

 Phân mãnh bộ nhớ có thể là phân mãnh trong hoặc phân mãnh ngoài

 Xét cơ chế cấp phát nhiều phân khu với một lỗ trống có kích thước 18,464 bytes Giả sử rằng quá trình tiếp theo yêu cầu 18,462 bytes Nếu chúng ta cấp phát chính xác khối được yêu cầu, chúng ta để lại một lỗ trống có kích thước 2 bytes Chi phí để giữ vết của lỗ này sẽ lớn hơn kích thước của lỗ trống

 Tiếp cận thông thường là chia bộ nhớ vật lý thành những khối có kích thước cố định, và cấp phát bộ nhớ dựa theo đơn vị của kích thước

khối Với tiếp cận này, bộ nhớ được cấp phát tới một quá trình có thể

là lớn hơn một chút so với khối được yêu cầu Sự chênh lệnh giữa hai

số này là phân mãnh trong-bộ nhớ bị phân mãnh trong đối với một phân khu thì không thể được dùng

Trang 20

Hệ thống đa chương với phân khu động

 Tập hợp các lỗ trống được tìm thấy để xác định lỗ nào là tốt nhất để cấp phát Các chiến lược first-fit, best-fit,

worst-fit là những chiến lược phổ biến nhất được dùng để chọn một lỗ trống từ tập hợp các lỗ trống

 • First-fit: cấp phát lỗ trống đầu tiên đủ lớn Tìm kiếm có thể bắt đầu tại đầu tập hợp các lỗ trống hay tại điểm kết thúc của tìm kiếm first-fit trước đó Chúng ta dừng tìm

kiếm ngay khi chúng ta tìm thấy một lỗ trống đủ lớn

 • Best-fit: cấp phát lỗ trống nhỏ nhất đủ lớn Chúng ta phải tìm toàn bộ danh sách, trừ khi danh sách được xếp thứ tự theo kích thước Chiến lược này tạo ra lỗ trống nhỏ nhất còn thừa lại

 • Worst-fit: cấp phát lỗ trống lớn nhất Chúng ta phải tìm toàn danh sách trừ khi nó được xếp theo thứ tự kích

thước Chiến lược này tạo ra lỗ trống còn lại lớn nhất mà

có thể có ích hơn lỗ trống nhỏ từ tiếp cận best-fit

Trang 21

 Một giải pháp đối với phân mãnh ngoài là kết lại thành khối (compaction)

trống với nhau trong một khối lớn Kết khối không phải luôn thực hiện được Nếu việc tái định vị là tĩnh và được thực hiện tại thời điểm hợp dịch và nạp thì việc kết khối là không thể

thực hiện được Kết khối chỉ có thể thực hiện được chỉ nếu tái định vị là động và được thực hiện tại thời điểm thực thi Nếu địa chỉ được tái định vị động, tái định vị yêu cầu chỉ di chuyển chương trình và dữ liệu, sau đó thay đổi thanh ghi nền để

phản ánh địa chỉ nền mới Khi kết khối là có thể, chúng ta

phải xác định chi phí của nó.

tới cuối bộ nhớ; tất cả lỗ trống di chuyển theo hướng ngược lại, tạo ra một lỗ trống lớn của bộ nhớ sẳn dùng Cơ chế này

có thể đắt.Một giải pháp khác cho vấn đề phân mãnh ngoài là cho phép không gian địa chỉ luận lý của một quá trình là

không liên tục, do đó cho phép một quá trình được cấp phát

bộ nhớ vật lý bất cứ đâu sau khi sẳn dùng Hai kỹ thuật bù trừ để đạt giải pháp này là phân trang và phân đoạn

Trang 22

Phân trang

 Phân trang là cơ chế quản lý bộ nhớ cho phép không gian địa chỉ vật

lý của quá trình là không kề nhau.

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

là các khung (frames)

 Bộ nhớ luận lý cũng được chia thành các khối có cùng kích thước

được gọi là các trang (pages).

 Khi một quá trình được thực thi, các trang của nó được nạp vào các khung bộ nhớ sẳn dùng từ vùng lưu trữ phụ Vùng lưu trữ phụ được chia thành các khối có kích thước cố định và có cùng kích thước như các khung bộ nhớ

 Tất cả các khung trống phải giử lại tất cả các track

 Để thực hiện một chương trình với kích thước n trang thì cần phải tìm

n khung trống và nạp chương trình vào

 Ta phải cài đặt bảng trang để chứa địa chỉ nền của mỗi trang trong

bộ nhớ vật lý Địa chỉ nền này được kết hợp với độ dời trang để định nghĩa địa chỉ bộ nhớ vật lý mà nó được gởi đến đơn vị bộ nhớ

Trang 23

Phương pháp phân trang cơ bản

 Số trang được dùng như chỉ mục vào bảng trang

và bảng trang chứa địa chỉ nền của mỗi trang

trong bộ nhớ vật lý.

 Địa chỉ nền này được kết hợp với độ dời trang

để định nghĩa địa chỉ bộ nhớ vật lý mà nó được gởi đến đơn vị bộ nhớ

Trang 24

Phần cứng phân trang

Trang 25

Sự thi hành của bảng trang

bảng trang

thước của bảng trang

Trang 26

Bảo vệ

 Bảo vệ bộ nhớ trong môi trường phân trang được thực hiện bằng cách bảo vệ bit kết hợp với mỗi khung trang Bình thường, các bit được lưu giữ trong bảng trang.

 -Thêm một bit là thường gắn liền với mỗi mục nhập

trong bảng trang: một bit hợp lệ- không hợp lệ

 -Khi bit này được thiết lập để "hợp lệ", phân trang liên quan trong không gian địa chỉ logic của tiến trình và là

một (hay pháp lý hợp lệ) phân trang hợp lệ

 -Khi bit được thiết lập để "không hợp lệ", trang không

có trong không gian địa chỉ logic của tiến trình địa chỉ

bất hợp lệ bị mắc kẹt bởi sử dụng bit hợp lệ- không hợp

lệ Hệ điều hành này đặt ra cho mỗi bit để cho phép hoặc không cho phép truy cập vào phân trang

Trang 27

Bit hợp lệ hoặc không hợp lệ trong

bảng trang

Trang 28

Cấu trúc bảng trang

-Trang phân cấp

-Bảng trang băm

-Bảng trang đảo

Trang 30

Bảng trang được băm

 Thường dùng cho việc quản lý Không gian địa chỉ lớn hơn 32bit,giá trị băm là số

Trang 31

Cơ chế của bảng trang được băm

Trang 32

Bảng trang đảo

 Có một mục nhập cho mỗi trang thực của

bộ nhớ.

 Mặc dù cơ chế này giảm lượng bộ nhớ

được yêu cầu để lưu mổi bảng

trang,nhưng nó gia tăng lượng thời gian cần cho việc tìm kiếm bảng khi có 1 tham chiếu xay ra.

Trang 33

Hoạt động của bảng trang đảo

Trang 34

Mã và dữ liệu riêng tư:

 Mỗi tiến trình có bản sao riêng của mình về đăng ký và lưu trữ dữ liệu để giữ các dữ liệu để thực hiện của tiến trình

 Trang cho mã và dữ liệu riêng tư có thể xuất hiện bất cứ đâu trong cùng một không gian địa chỉ logic

đâu trong cùng một không gian địa chỉ logic

Trang 35

+ kích thước: tùy theo từng đoạn.

- Phân đoạn là một cơ chế quản lý bộ nhớ hổ trợ tầm nhìn bộ nhớ của người dùng.

Trang 36

PHÂN ĐOẠN

Tầm nhìn chương trình của người dùng:

Trang 37

trong bộ nhớ.

Trang 38

PHÂN ĐOẠN

 Cách nhìn logic về phân đoạn:

1 4

2 3

3 1

3

Trang 39

PHÂN ĐOẠN

- Hệ điều hành sử dụng bảng phân đoạn SCTđể theo dõi các bảng phân đoạn: (gồm 2 trường) + base segment: địa chỉ cơ sở của phân

Trang 40

thước lớn thì được lưu vào bộ nhớ chính) + STLR(segment table length register): để ghi kích thước hiện tại của bảng phân

đoạn.

Trang 41

PHÂN ĐOẠN

- Một địa chỉ vật lý gồm có 2 phần: số hiệu phân đoạn s (từ 0 đến giới hạn đoạn) và độ dời phân đoạn d.

Trang 42

PHÂN ĐOẠN

 Sơ đồ về quá trinh xác định địa chỉ vật lý:

Trang 43

PHÂN ĐOẠN

 Xét ví dụ về phân đoạn:

Trang 44

Phân đoạn và Phân trang

 Hệ thống MULTICS giải quyết vấn đề của các

phân mảnh ngoài và thời gian dài tìm kiếm bằng cách phân trang các phân đoạn

 Giải pháp khác với phân đoạn thuần túy trong

đó bảng đoạn không chứa địa chỉ cơ sở của

phân đoạn, mà đúng hơn là địa chỉ cơ sở của

một bảng trang cho phân đoạn này

một bảng trang cho phân đoạn này

Trang 45

Phân đoạn với phân trang -

Intel 386

 Như được hiển thị trong sơ đồ sau đây, Intel

386 sử dụng phân đoạn với phân trang để quản

lý bộ nhớ với hai cấp sơ đồ phân trang

Trang 46

Intel 30.386 Địa chỉ Translation

Ngày đăng: 13/05/2014, 00:26

HÌNH ẢNH LIÊN QUAN

Bảng trangbảng trang - Chương 8 Quản lý bộ nhớ
Bảng trangb ảng trang (Trang 27)
Bảng trang được bămBảng trang được băm - Chương 8 Quản lý bộ nhớ
Bảng trang được bămBảng trang được băm (Trang 30)
Bảng trang cho phân đoạn này - Chương 8 Quản lý bộ nhớ
Bảng trang cho phân đoạn này (Trang 44)

TỪ KHÓA LIÊN QUAN

w