44
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 1 / 50 CHƯƠNG 6 MỨC MÁY HỆ ĐIỀU HÀNH

BGKTMT Ch6 mức máy hệ điều hành

  • Upload
    toa-cao

  • View
    624

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 1 / 50

CHƯƠNG 6

MỨC MÁY HỆ ĐIỀU HÀNH

Page 2: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 2 / 50

CHƯƠNG 6 MỨC MÁY HỆ ĐIỀU HÀNH

6.1 Giới thiệu mức máy hệ điều hành

6.2 Bộ nhớ ảo

6.2.1 Việc phân trang - Paging

6.2.2 Thực hiện việc phân trang

6.2.3 Phương pháp Cấp trang khi có yêu cầu

và Mô hình tập làm việc

6.3 Các chỉ thị vào/ra ảo - tự đọc

Page 3: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 3 / 50

6.1 Giới thiệu mức máy hệ điều hành

• Trình thông dịch chạy trên máy mức 1 có thể thông dịch các chương

trình được viết bằng ngôn ngữ máy mức 2

• Trình thông dịch chạy trên máy mức 2 có thể thông dịch các chương

trình được viết bằng ngôn ngữ máy mức 3.

Chúng ta gọi mức 3 là mức máy hệ điều hành.

Page 4: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 4 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

• Mức máy HĐH đã tiến

hoá dần lên từ mức

máy thông thường:- Hầu hết các chỉ thị của

mức máy HĐH cũng

có ở mức máy thông

thường

- Các chỉ thị mức 3

khác, được gọi là các

chỉ thị Mức máy HĐH.Thông dịch

trực tiếp bằng vi chương

trình

HĐH thông dịch

Page 5: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 5 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

- Hệ điều hành chịu trách nhiệm cấp phát vùng nhớ cho các tiến trình

có yêu cầu. Để thực hiện tốt nhiệm vụ này, hệ điều hành cần phải

xem xét các khía cạnh: 

- Sự tương ứng giữa địa chỉ logic và địa chỉ vật lý (physic) : làm

cách nào để chuyển đổi một địa chỉ tượng trưng (symbolic) trong

chương trình thành một địa chỉ thực trong bộ nhớ chính?

- Quản lý bộ nhớ vật lý: làm cách nào để mở rộng bộ nhớ có sẵn

nhằm lưu trữ được nhiều tiến trình đồng thời?

- Chia sẻ thông tin: làm thế nào để cho phép hai tiến trình có thể

chia sẻ thông tin trong bộ nhớ?

- Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm phạm đến

vùng nhớ được cấp phát cho tiến trình khác?

Page 6: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 6 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

- Các địa chỉ trong chương trình nguồn là địa chỉ

tượng trưng, vì thế, một chương trình phải trải qua

nhiều giai đoạn xử lý để chuyển đổi các địa chỉ này

thành các địa chỉ tuyệt đối trong bộ nhớ chính.

- Có thể thực hiện liên kết các chỉ thị và dữ liệu với

các địa chỉ bộ nhớ vào một trong những thời điểm

sau: Thời điểm biên dịch Thời điểm nạp Thời điểm xử lý

Page 7: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 7 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

Thời điểm biên dịch: Nếu tại thời điểm biên dịch, có thể biết vị

trí mà tiến trình sẽ thường trú trong bộ nhớ, trình biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối.

Nếu sau đó có sự thay đổi vị trí thường trú ban đầu của chương trình, cần phải biên dịch lại chương trình.

Page 8: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 8 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

Thời điểm nạp: Nếu tại thời điểm biên dịch, chưa thể biết vị trí

mà tiến trình sẽ thường trú trong bộ nhớ, trình biên dịch cần phát sinh mã tương đối.

Sự liên kết địa chỉ được trì hoãn đến thời điểm chương trình được nạp vào bộ nhớ, lúc này các địa chỉ tương đối sẽ được chuyển thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình.

Khi có sự thay đổi vị trí lưu trữ, chỉ cần nạp lại chương trình để tính toán lại các địa chỉ tuyệt đối, mà không cần biên dịch lại.

Page 9: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 9 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

Thời điểm xử lý: Nếu có nhu cầu di chuyển tiến trình từ

vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình xử lý, thì thời điểm liên kết địa chỉ phải trì hoãn đến tận thời điểm xử lý.

Để thực hiện liên kết địa chỉ vào thời điểm xử lý, cần sử dụng cơ chế phần cứng đặc biệt.

Page 10: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 10 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

Khái niệm không gian địa chỉ được xây dựng trên không gian nhớ vật lý:

Địa chỉ logic: còn gọi là địa chỉ ảo, là tất cả các địa chỉ do bộ xử lý tạo ra.

Địa chỉ vật lý: là địa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và thao tác.

Không gian địa chỉ: là tập hợp tất cả các địa chỉ ảo phát sinh bởi một chương trình.

Không gian vật lý: là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ ảo.

Page 11: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 11 / 50

... 6.1 Giới thiệu mức máy hệ điều hành

Phương thức liên kết địa chỉ vào thời điểm biên dịch và vào thời điểm nạp: Địa chỉ ảo và địa chỉ vật lý là như nhau.

Phương thức liên kết vào thời điểm xử lý: địa chỉ ảo và địa chỉ vật lý khác nhau.

Page 12: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 12 / 50

6.2 Bộ nhớ ảo

• Thời kỳ đầu bộ nhớ máy tính thường nhỏ chương trình

càng bé càng tốt.

• Giải pháp: sử dụng bộ nhớ phụ + kỹ thuật overlay (mỗi

overlay có thể nằm lọt trong bộ nhớ) đòi hỏi nhiều công

sức của người lập trình cho việc quản lý overlay.

Bộ nhớ ảo (Virtual Memory):

• Được một nhóm nhà khoa học ở Manchester, đề xuất

năm 1961.

• Phương pháp thực hiện quá trình overlay một cách

tự động.

• Đầu 1970s bộ nhớ ảo đã trở nên thông dụng

Page 13: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 13 / 50

6.2.1 Việc phân trang - Paging

• Ý tưởng: • Phân bộ nhớ vật lý thành các khối có kích thước

cố định, bằng nhau: là khung trang - page frame

• Không gian địa chỉ được chia thành các khối có cùng kích thước với khung trang: gọi là trang (page).

• Khi cần nạp một tiến trình để xử lý, các trang của tiến trình sẽ được nạp vào những khung trang còn trống. Một tiến trình kích thước N trang sẽ yêu cầu N khung trang tự do.

Page 14: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 14 / 50

6.2.1 Việc phân trang - Paging

Mô hình bộ nhớ phân trang

Page 15: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 15 / 50

6.2.1 Việc phân trang - Paging

Cơ chế MMU trong kỹ thuật phân trang: Cơ chế phần cứng hỗ trợ thực hiện chuyển đổi

địa chỉ trong cơ chế phân trang là bảng trang (pages table).

Mỗi phần tử trong bảng trang cho biết các địa chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong bộ nhớ vật lý (số hiệu khung trang trong bộ nhớ vật lý đang chứa trang ).

Page 16: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 16 / 50

6.2.1 Việc phân trang - Paging

• Ví dụ: một máy tính trong đó các chỉ thị có trường địa chỉ 16 bit và có bộ nhớ 4096 word.

• Một chương trình chạy trên máy tính này có thể đánh địa chỉ 65536 word bộ nhớ, chứ không phải 4096.

• Khi còn chưa phát minh ra bộ nhớ ảo, phải phân biệt 2 miền địa chỉ:

• 0..4095: khả dụng• 4096.. 65535: không khả dụng

Page 17: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 17 / 50

6.2.1 Việc phân trang - Paging

• Ý tưởng: tách biệt các khái niệm về không gian địa chỉ và các vị trí nhớ:

• Vào bất cứ thời điểm nào 4096 word bộ nhớ có thể được truy cập trực tiếp, nhưng chúng không nhất thiết phải tương ứng với các địa chỉ từ 0..4095.

• 4096 sử dụng word 0• 4097 sử dụng word 1• 8191 sử dụng word 4095

v.v.

Page 18: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 18 / 50

... 6.2.1 Việc phân trang - Paging

? Điều gì sẽ xảy ra nếu chương trình nhảy tới một địa chỉ nằm trong khoảng 8192..12287?

• Không có bộ nhớ ảo: Lỗi

• Có bộ nhớ ảo:1.Nội dung của bộ nhớ chính được

cất vào bộ nhớ phụ.2.Các word 8192..12287 đang nằm

trong bộ nhớ phụ được nạp vào bộ nhớ chính.

3.ánh xạ địa chỉ sẽ được thay đổi để ánh xạ các địa chỉ 8192..12287 vào các vị trí nhớ 0..4095.

4.Chương trình tiếp tục bình thường.

Page 19: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 19 / 50

... 6.2.1 Việc phân trang - Paging

• Kỹ thuật thực hiện overlay tự động được gọi là phân trang -

paging, các đoạn chương trình được đọc vào bộ nhớ chính

từ bộ nhớ phụ được gọi là các trang.

• Cơ chế phân trang có thể coi là trong suốt đối với người

lập trình.

Khi lập trình không cần phải biết đến sự tồn tại của bộ

nhớ ảo.

Có thể coi như đang lập trình cho một máy tính có một

bộ nhớ chính rất lớn (ảo giác)

Page 20: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 20 / 50

6.2.2 Thực hiện việc phân trang

• Bộ nhớ ảo cần có bộ nhớ phụ để chứa toàn bộ chương trình.

• Một số quy ước:

• Bản copy của chương trình trong bộ nhớ phụ là bản gốc

• Phần của chương trình thỉnh thoảng được đưa vào bộ nhớ chính là các bản copy

• Cập nhật bản gốc, mọi thay đổi xảy ra với bản copy trong bộ nhớ chính cần phải phản ánh vào trong bản gốc.

• Không gian địa chỉ ảo được chia thành các trang có kích thước bằng nhau, nằm trong khoảng 512..4096.

Page 21: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 21 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ• Không gian địa chỉ ảo 64K

được chia thành các frame

kích thước 4K.

• Không gian địa chỉ vật lý

32K chia thành các khung

trang kích thước 4K.

• Để thực hiện được bộ nhớ

ảo ở mức 2, cần phải sử

dụng page table có 16

word, để theo dõi trạng

thái sử dụng 16 trang của

bộ nhớ ảo.

4

65535

Page 22: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 22 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Chuyển đổi địa chỉ: Mỗi địa chỉ phát sinh bởi CPU được chia thành hai phần: Số hiệu trang (p): sử dụng như chỉ mục đến phần

tử tương ứng trong bảng trang. Địa chỉ tương đối trong trang (d): kết hợp với địa

chỉ bắt đầu của trang để tạo ra địa chỉ vật lý mà trình quản lý bộ nhớ sử dụng.

Page 23: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 23 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Kích thước của trang do phần cứng qui định. Để dễ phân tách địa chỉ ảo thành số hiệu

trang và địa chỉ tương đối, kích thước của một trang thông thường là một lũy thừa của 2 (512 bytes … 8192 bytes).

Nếu kích thước của không gian địa chỉ là 2m và kích thước trang là 2n

Thì m-n bits cao của địa chỉ ảo sẽ biễu diễn số hiệu trang

n bits thấp cho biết địa chỉ tương đối trong trang.

Page 24: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 24 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Cơ chế phần cứng hỗ trợ phân trang

Page 25: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 25 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Cài đặt bảng trang: Trong trường hợp đơn giản nhất, một tập các

thanh ghi được sử dụng để cài đặt bảng trang. Tuy nhiên việc sử dụng thanh ghi chỉ phù hợp

với các bảng trang có kích thước nhỏNếu bảng trang có kích thước lớn, nó phải được

lưu trữ trong bộ nhớ chính, và sử dụng một thanh ghi để lưu địa chỉ bắt đầu lưu trữ bảng trang (PTBR).

Page 26: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 26 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Mô hình bộ nhớ phân trang

Page 27: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 27 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Sử dụng thanh ghi nền trỏ đến bảng trang

Page 28: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 28 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Theo cách tổ chức này, mỗi truy xuất đến dữ liệu hay chỉ thị đều đòi hỏi hai lần truy xuất bộ nhớ: Truy xuất đến bảng trang Truy xuất đến bản thân dữ liệu!

Để giảm bớt việc truy xuất bộ nhớ hai lần sử dụng bộ nhớ cache, có tốc độ truy xuất nhanh và cho phép tìm kiếm song song, gọi là bộ nhớ kết hợp (TLBs).

TLBs được sử dụng để lưu trữ các trang bộ nhớ được truy cập gần hiện tại nhất. Khi CPU phát sinh một địa chỉ, số hiệu trang của địa chỉ sẽ được so sánh với các phần tử trong TLBs Nếu có trang tương ứng trong TLBs, xác định được ngay số

hiệu khung trang tương ứng Nếu không cần thực hiện thao tác tìm kiếm trong bảng trang.

Page 29: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 29 / 50

... 6.2.2 Thực hiện việc phân trang – Ví dụ

Page 30: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 30 / 50

... 6.2.2 Thực hiện việc phân trang

• Hình a: Khi một chương trình truy cập bộ nhớ, đầu tiên nó sẽ sinh ra một địa chỉ 16 bit

• 4 bit cao làm số trang ảo

• 12 bit thấp làm địa chỉ trong trang ảo đã được chọn

12310 (đc vật lý) là địa chỉ (ảo)22 của trang 3.

• Hình b: Mối liên hệ giữa trang và địa chỉ ảo.

Page 31: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 31 / 50

... 6.2.2 Thực hiện việc phân trang

Bảng phân trang:

• Bảng phân trang có số đề mục (entry) bằng số lượng trang ảo, có 3 trường:

1. Trường 1 (1 bit), 0/1: trang ảo tương ứng không/có nằm trong bộ nhớ chính.

2. Trường 2: địa chỉ (nơi chứa) trang ảo trong bộ nhớ phụ khi nó không nằm trong bộ nhớ chính (thí dụ số hiệu track hay sector trên đĩa).

3. Trường 3 (3 bit): chỉ khung trang, là nơi mà trang nằm nếu nó ở trong bộ nhớ chính.

Page 32: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 32 / 50

Tạo địa chỉ bộ nhớ chính (vật lý) từ địa chỉ ảo

• Từ đ/c ảo tính được trang ảo (+ địa chỉ trong trang ảo)

• Từ trang ảo, k.tra page table sẽ biết trang ảo có trong bộ nhớ chính không.

• Giả sử có: trường khung trang 3 bit sẽ chỉ ra trang nằm ở đâu.

• 3 bit này sẽ được nạp vào 3 bit bên trái nhất của MAR

• 12 bit thấp của MAR được nạp địa chỉ trong trang ảo.

Nhận được 15 bit, chính là địa chỉ cần cho bộ nhớ chính dung lượng 32K.

Page 33: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 33 / 50

... 6.2.2 Thực hiện việc phân trang

Minh hoạ ánh xạ từ không gian

chỉ ảo lên không gian bộ nhớ

chính:

• Trang ảo số 0 nằm ở khung

trang số 1.

• Trang ảo số 1 nằm ở khung

trang số 0.

• Trang ảo số 2 không nằm trong

bộ nhớ chính v.v.

Page 34: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 34 / 50

... 6.2.2 Thực hiện việc phân trang

• Để tăng tốc độ việc chuyển đổi địa chỉ ảo thành địa chỉ vật

lý, có 2 cách:

• Bảng phân trang thường được giữ trong các thanh ghi phần cứng

đặc biệt, việc chuyển đổi được thực hiện trực tiếp bằng phần

cứng. Cách này đòi hỏi các chi phí phần cứng.

• Bảng phân trang trong các thanh ghi tốc độ cao và dùng vi

chương trình thực hiện chuyển đổi bằng lập trình trực tiếp đối với

các thanh ghi. Tuỳ thuộc vào kiến trúc của mức vi chương trình,

chuyển đổi bằng cách này có thể gần nhanh bằng cách chuyển

đổi trực tiếp bằng phần cứng mà không đòi hỏi phải có các mạch

điện đặc biệt.

Page 35: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 35 / 50

... 6.2.2 Thực hiện việc phân trang

Tổ chức bảng trang:  Mỗi hệ điều hành có một phương pháp riêng

để tổ chức lưu trữ bảng trang. Đa số các hệ điều hành cấp cho mỗi tiến trình một bảng trang.

Tuy nhiên phương pháp này không thể chấp nhận được nếu hệ điều hành cho phép quản lý một không gian địa chỉ có dung lượng quá (232, 264): trong các hệ thống như thế, bản thân bảng trang đòi hỏi một vùng nhớ qúa lớn!

Page 36: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 36 / 50

... 6.2.2 Thực hiện việc phân trang

Có hai giải pháp cho vấn đề này: Phân trang đa cấp: phân chia bảng trang thành các phần

nhỏ, bản thân bảng trang cũng sẽ được phân trang

Page 37: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 37 / 50

... 6.2.2 Thực hiện việc phân trang

Bảng trang nghịch đảo: sử dụng duy nhất một bảng trang nghịch đảo cho tất cả các tiến trình . Mỗi phần tử trong bảng trang nghịch đảo phản ánh một khung trang trong bộ nhớ bao gồm địa chỉ logic của một trang đang được lưu trữ trong bộ nhớ vật lý tại khung trang này, cùng với thông tin về tiến trình đang được sỡ hữu trang. Mỗi địa chỉ ảo khi đ là �một bộ ba <idp, p, d > Trong đ  :    idp là định danh của tiến trình� p là số hiệu trang d là địa chỉ tương đối trong trang

Page 38: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 38 / 50

... 6.2.2 Thực hiện việc phân trang

Mỗi phần tử trong bảng trang nghịch đảo là một cặp <idp, p >. Khi một tham khảo đến bộ nhớ được phát sinh, một phần địa chỉ ảo là <idp, p > được đưa đến cho trình quản lý bộ nhớ để tìm phần tử tương ứng trong bảng trang nghịch đảo Nếu tìm thấy, địa chỉ vật lý <i,d> sẽ được phát sinh. Trong các trường hợp khác, xem như tham khảo bộ nhớ

đã truy xuất một địa chỉ bất hợp lệ.

Page 39: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 39 / 50

... 6.2.2 Thực hiện việc phân trang

Page 40: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 40 / 50

... 6.2.2 Thực hiện việc phân trang

Chia sẻ bộ nhớ trong cơ chế phân trang:  Một ưu điểm của cơ chế phân trang là cho phép chia sẻ các trang giữa

các tiến trình.Trong trường hợp này, sự chia sẻ được thực hiện bằng cách ánh xạ nhiều địa chỉ logic vào một địa chỉ vật l duy nhất. C thể p � � �dụng kỹ thuật này để cho ph p c tiến trình chia sẻ một vùng code � �chung: nếu có nhiều tiến trình của cùng một chương trình, chỉ cần lưu trữ một đoạn code của chương trình này trong bộ nhớ, các tiến trình sẽ có thể cùng truy xuất đến c c trang chứa code chung này. Lưu ý để c thể chia � �sẻ một đoạn code, đoạn code này phải có thuộc tính reenterable (cho phép một bản sao của chương trình được sử dụng đồng thời bởi nhiều t c vụ). �

Page 41: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 41 / 50

... 6.2.2 Thực hiện việc phân trang

Page 42: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 42 / 50

Thảo luận

Kỹ thuật phân trang loại bỏ được hiện tượng phân mảnh ngoại vi : mỗi khung trang đều c �thể được cấp phát cho một tiến trình nào đ �c yêu cầu. Tuy nhiên hiện tượng phân mảnh �nội vi vẫn có thể xảy ra khi kích thước của tiến trình không đ ng bằng bội số của k ch � �thước một trang, khi đ , trang cuối cùng sẽ �không được sử dụng hết.

Page 43: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 43 / 50

... 6.2.2 Thực hiện việc phân trang

Một khiá cạnh tích cực rất quan trọng khác của kỹ thuật phân trang là sự phân biệt rạch ròi góc nhìn của người dùng và của bộ phận quản lý bộ nhớ vật lý: Góc nhìn của người sử dụng: một tiến trình

của người dùng nhìn thấy bộ nhớ như là một không gian liên tục, đồng nhất và chỉ chứa duy nhất bản thân tiến trình này.

Góc nhìn của bộ nhớ vật lý: một tiến trình của người sử dụng được lưu trữ phân tán khắp bộ nhớ vật lý, trong bộ nhớ vật lý đồng thời cũng chứa những tiến trình khác.

Page 44: BGKTMT Ch6 mức máy hệ điều hành

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 44 / 50

... 6.2.2 Thực hiện việc phân trang

Phần cứng đảm nhiệm việc chuyển đổi địa chỉ logic thành địa chỉ vật l . Sự chuyển �đổi này là trong suốt đối với người sử dụng.

Để lưu trữ các thông tin chi tiết về quá trình cấp phát bộ nhớ, hệ điều hành sử dụng một bảng khung trang, mà mỗi phần tử mô tả tình trạng của một khung trang vật lý : tự do hay được cấp phát cho một tiến trình nào đ  .�