Tải bản đầy đủ (.pdf) (79 trang)

Bài giảng Hệ điều hành - Chương 3: Quản lý bộ nhớ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 79 trang )

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


1. TỔNG QUAN


1.1 Vì sao phải tổ chức, quản lý bộ nhớ?
 CPU chỉ có thể trao đổi thơng tin với bộ nhớ

chính
 Các chương trình muốn được thực thi cần được
nạp vào bộ nhớ chính, tạo lập tiến trình tương
ứng để xử lý
 Các hệ thống đa chương trên bộ nhớ chính ngồi
HĐH có thể có nhiều tiến trình đang hoạt động
 Kích thước bộ nhớ chính là hữu hạn nhưng u
cầu bộ nhớ thì vơ hạn
…
3


1.1 Vì sao phải tổ chức, quản lý bộ nhớ?
 Như vậy, HĐH cần phải tổ chức quản lý bộ nhớ

một cách hợp lý để có thể:
 Đưa bất kỳ một tiến trình nào đó vào bộ nhớ khi

có u cầu, cho dù khi trên bộ nhớ khơng cịn
khơng gian trống
 Bảo vệ các tiến trình của hệ điều hành và các tiến


trình trên bộ nhớ, tránh các trường hợp truy xuất
bất hợp lệ xảy ra.

4


1.2 Nhiệm vụ quản lý bộ nhớ
 Tái định vị
 Bảo vệ bộ nhớ
 Chia sẻ bộ nhớ
 Tổ chức bộ nhớ logic
 Tổ chức bộ nhớ vật lý

5


Tái định vị (Relocation)
 Trong các hệ thống đa chương khơng gian bộ

nhớ chính thường được chia sẽ cho nhiều tiến
trình và yêu cầu bộ nhớ của các tiến trình luôn
lớn hơn không gian bộ nhớ vật lý mà tiến trình
mà hệ thống hiện có
 Cần thực hiện cơ chế hốn đổi (Swap):
 Một chương trình đang hoạt động trên bộ nhớ sẽ bị

đưa ra đĩa (swap-out) và sẽ được đưa vào lại
(swap-in) tại thời điểm thích hợp
 Khi thực hiện swap-in 1 chương trình vào lại bộ
nhớ HĐH phải định vị nó đúng vào vị trí mà trước

khi nó bị swap-out
6


Bảo vệ bộ nhớ (Protection)
 Mỗi tiến trình phải được bảo vệ để chống lại sự

truy xuất bất hợp lệ vơ tình hay có chủ ý của các
tiến trình khác.
 Mỗi tiến trình chỉ được phép truy suất đến khơng
gian địa chỉ mà HĐH đã cấp cho nó
 Bộ phận Qlý bộ nhớ phải biết không gian địa chỉ
của tất cả các tiến trình trên bộ nhớ
 Khi tiến trình đưa ra địa chỉ truy xuất bộ phận Qlý
bộ nhớ phải kiểm tra tất cả các yêu cầu truy xuất
bộ nhớ của mỗi tiến trình

7


Chia sẻ bộ nhớ (Sharing)
 Bất kỳ một chiến lược nào được cài đặt đều

phải có tính mềm dẻo để cho phép nhiều tiến
trình có thể truy cập đến cùng một địa chỉ trên
bộ nhớ chính
 Ví dụ, khi có nhiều tiến trình cùng thực hiện
một chương trình thì việc cho phép mỗi tiến
trình cùng truy cập đến một bản copy của
chương trình sẽ thuận lợi hơn khi cho phép

mỗi tiến trình truy cập đến một bản copy sở
hữu riêng.
8


Tổ chức bộ nhớ logic (Logical organization)
 Bộ nhớ chính của hệ thống máy tính được tổ

chức như là một dịng hoặc một mảng
 Khơng gian địa chỉ bao gồm một dãy có thứ tự
các byte hoặc các word.
 Bộ nhớ phụ cũng được tổ chức tương tự
 Cách tổ chức này có sự kết hợp chặt chẻ với
phần cứng máy tính nhưng lại khơng phù hợp với
cách xây dựng của chương trình
 Đại đa số các chương trình được tổ chức thành
các modul

9


Tổ chức bộ nhớ vật lý (Physical organization)
 Bộ nhớ máy tính được tổ chức theo 2 cấp:
 Bộ nhớ chính: tốc độ truy xuất nhanh, nhưng giá

thành cao và dữ liệu khơng thể tồn tại lâu dài trên
nó.
 Bộ nhớ phụ: giá rẻ, dung lượng lớn, dữ liệu được
lưu trữ lâu dài nhưng tốc độ truy xuất chậm.
 Theo giản đồ 2 cấp này, việc tổ chức luồng thông


tin giữa bộ nhớ chính và bộ nhớ phụ là nhiệm vụ
quan trọng của hệ thống

10


1.3. Không gian địa chỉ và không gian
vật lý
 Địa chỉ logic (logical address) – 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ý (physical address) - 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.
 Việc ánh xạ tại thời điểm thực thi từ địa chỉ ảo tới địa
chỉ vật lý được thực hiện bởi một thiết bị phần cứng
được gọi là bộ quản lý bộ nhớ MMU (memorymanagement unit)
11


Sơ đồ tái định vị động (Dynamic Relocation)



12


CPU sản sinh Địa chỉ lô-gíc
MMU thực hiện: Địa chỉ lô-gíc + Nội dung thanh
ghi tái định vị ==> Địa chỉ vật lý


Vị trí và Chức năng của MMU

(MMU gửi các địa chỉ
vật lý sang Bộ nhớ)
13


SỬ DỤNG BASE REGISTER VÀ LIMIT REGISTER

(Địa chỉ byte
đầu của Job2)
(Số byte của Job2)

14

Memory


THUẬT GIẢI BẢO VỆ BỘ NHỚ

Job i

(CPU sản sinh 1
địa chỉ bộ nhớ)


15

(Bắt lỗi truy cập sai địa chỉ)


Cơ chế overlay
 Tại mỗi thời điểm, chỉ giữ lại trong bộ

nhớ những lệnh hoặc dữ liệu cần thiết,
giải phóng các lệnh/dữ liệu chưa hoặc
không cần dùng đến.
 Cơ chế này rất hữu dụng khi kích thước
một process lớn hơn không gian bộ nhớ
cấp cho process đó.
 Cơ chế này được điều khiển bởi người
sử dụng (thông qua sự hỗ trợ của các
thư viện lập trình) chứ không cần sự hỗ
trợ của hệ điều hành
16


Cơ chế overlay
Pass 1

70K

Pass 2

80K


Symbol table

20K

Đơn vị: byte

symbol
table

20K

common
routines

30K

overlay
driver

10K

Common routines 30K

Assembler

Total memory
available = 150KB

pass 1
17


70K

nạp và thực thi

pass 2
80K


Cơ chế swapping
 Một process có thể tạm thời bị swap ra khỏi bộ

nhớ chính và lưu trên một hệ thống lưu trữ phụ.
Sau đó, process có thể được nạp lại vào bộ nhớ
để tiếp tục quá trình thực thi.
Swapping policy: hai ví dụ

 Round-robin: swap out P1 (vừa tiêu thụ hết quantum

của nó), swap in P2 , thực thi P3 ,…
 Roll out, roll in: dùng trong cơ chế định thời theo độ
ưu tiên (priority-based scheduling)
 Process có độ ưu tiên thấp hơn sẽ bị swap out nhường chỗ

cho process có độ ưu tiên cao hơn mới đến được nạp vào
bộ nhớ để thực thi

 Hiện nay, ít hệ thống sử dụng cơ chế swapping trên
18



Minh họa cơ chế swapping

19


Phân mảnh (fragmentation)
 Phân mảnh ngoại (external fragmentation)
 Kích thước không gian nhớ còn trống đủ để thỏa mãn một
yêu cầu cấp phát, tuy nhiên không gian nhớ này không
liên tục  có thể dùng cơ chế kết khối (compaction) để
gom lại thành vùng nhớ liên tục.
 Phân mảnh nội (internal fragmentation)
 Kích thước vùng nhớ được cấp phát có thể hơi lớn hơn
vùng nhớ yêu cầu.
 Ví dụ: cấp một khoảng trống 18,464 bytes cho một

process yêu cầu 18,462 bytes.

 Hiện tượng phân mảnh nội thường xảy ra khi bộ nhớ thực

được chia thành các khối kích thước cố định (fixed-sized
block) và các process được cấp phát theo đơn vị khối. Ví
dụ: cơ chế phân trang (paging).

20


Phân mảnh nội
operating

system

yêu cầu kế tiếp là
18,462 bytes !!!

(used)

hole kích thước
18,464 bytes

cần quản lý khoảng
trống 2 bytes !?!

OS sẽ cấp phát hẳn khối 18,464 bytes
cho process  dư ra 2 bytes không dùng!
21


Phân cấp bộ nhớ

22


NGUYÊN TẮC LƯU GẦN (CACHING)







23

Là nguyên tắc quan trọng của hệ thống máy
tính.
Thông tin từ RAM có thể được cơ chế phần
cứng đưa vào bộ nhớ nhanh hơn gọi là Cache.
Khi CPU cần chính thông tin đó, không cần phải
truy xuất RAM, mà lấy ngay từ Cache.
Loại bộ nhớ này không do HĐH quản lý và cấp
phát.
Thực tế, RAM (Bộ nhớ Sơ cấp) là loại Cache
nhanh so với đóa cứng (Bộ nhớ thứ cấp) và HĐH
có chức năng quản lý sự lưu chuyển dữ liệu
giữa 2 loại bộ nhớ


2. KỸ THUẬT CẤP PHÁT BỘ NHỚ


 Kỹ thuật phân vùng cố định (Fixed partitioning)
 Kỹ thuật phân vùng động (Dynamic partitioning)
 Kỹ thuật phân trang (Paging)
 Kỹ thuật phân đoạn (Segmentation)

25


×